WEB NGỮ NGHĨA VÀ KHAI PHÁ DỮ LIỆU Semantic Web, hay web ngữ nghĩa là đứa con tinh thần của Tim BernersLee, cha đẻ của World Wide Web. World Wide Web là một mạng lưới lơn các thông tincon người có thể hiểu được được trao đổi dưới đinh dạng HTML. Web ngữ nghĩa là một mở rộng của nó, cả ý tưởng lẫn thực thi đều nhằm cho mạng lưới dữ lớn này có thể hiểu được bởi cả máy tính và con người.
Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG __________*__________ TIỂU LUẬN MÔN HỌC: “WEB NGỮ NGHĨA VÀ KHAI PHÁ DỮ LIỆU” Đề tài: Xây dựng Web ngữ nghĩa đơn giản Sinh viên thực hiện: Mai Vũ Đức Nguyễn Đăng Đức Nông Anh Đức Nguyễn Việt Dũng Lớp: 12BCNTT1 Giáo viên hướng dẫn: PGS. Lê Thanh Hương Hà nội, 2013 Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 1 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 Mục lục: Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 2 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 I. A quick introduction to the Semantic Web Semantic Web, hay web ngữ nghĩa là đứa con tinh thần của Tim Berners-Lee, cha đẻ của World Wide Web. World Wide Web là một mạng lưới lơn các thông tincon người có thể hiểu được được trao đổi dưới đinh dạng HTML. Web ngữ nghĩa là một mở rộng của nó, cả ý tưởng lẫn thực thi đều nhằm cho mạng lưới dữ lớn này có thể hiểu được bởi cả máy tính và con người. Minh chứng từ số lượng lớn các API hiện này cho phép lập trình viên có thể truy cập tới các website cụ thể và con người muốn coi website như là một đối tượng dữ liệu. Khác với APIs từ các websites không giống nhau, mặc dù vậy chúng lại cho phép truy cập cùng một loại dữ liệu. Nếu muốn xây dựng phần mềm biên dịch các kết quả của các APIs, chung ta phải viết một interface mới. Với web ngữ nghĩa, vấn đề đó bị loại bỏ và dữ liệu là khả dụng trong mẫu chuẩn ngay từ website, hơn là phải truy cập chúng từ API. II. RDF, RDFa, microformats, and GRDDL Các vấn đề cần quan tâm là RDF, RDFa, microformats và GRDDL. II.1. Resource Description Framework (RDF): Là nền tảng cơ sở tiêu chuẩn của công nghệ web ngữ nghĩa. Nó cho phép biểu diễn các tri thức ở định dạng rõ ràng không lẫn lộn, được biểu diễn dưới dạng XML mà cả con người và máy tính đều đọc được. Để website thành một phần là web ngữ nghĩa thì cần thiết phải extract RDF được. II.2. Microformats: Không hẳn là tiêu chuẩn như các mẫu tiêu biểu. Bằng cách sử dụng HTML và XHTML chuẩn ở trong cách thức, các thông tin ngữ nghĩa mở rộng có thể được suy ra từ ý nghĩa các thẻ. Microformats thường thể hiện trong các trường hợp như people (hCard), events (hCalendar), weblogs (hAtom), curriculum vitae (hResume), and reviews (hReview). Có thể thu được RDF từ microformats bằng công cụ GRDDL. II.3. RDFa: Là kỹ thuật nhúng RDF vào mã XHTML. Để thực hiện điều này, cần mở rộng XHTML elements với các attributes, thuộc tính, bổ xung; các thuộc tính này sau đó được tương ứng với cấu trúc RDF trực tiếp trên trang. Có thể thu được RDF từ RDFa, và trích xuất nó sử dụng GRDDL. Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 3 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 II.4. Gleaning Resource Descriptions from Dialects of Languages (GRDDL— pronounced 'griddle'): Cho phép suy diễn RDF từ tài liệu không phải là RDF. Microformats, RDFa, là đối tượng của GRDDL, nhưng hơn hết thì nó có thể viết công cụ truyển đổi bất cứ trang nào để sinh ra RDF tương ứng. Ý tưởng của GRDDL là giúp cho việc nhanh chóng và dễ dàng lấy một lương lớn thông tin quan trọng của nội dung web. III. Implementing a Semantic URI Scheme Url của một trang web bản thân chính nó đã chứa dữ liệu; nó có thể có cấu trúc mang ngữ nghĩa. Trong phần này, sẽ đề cập đến làm thế nào để Url của một trang web có thể chứa ngữ nghĩa và làm cho ngữ nghĩa đó dễ dùng. III.1. What is a semantic URI Scheme? Ý tưởng sau Url mang ngữ nghĩa là Url có thể đại diện cho mô hình danh mục cảu website hơn là trỏ đến địa chỉ vật lý của file hoặc script. Có thể thực hiện điều này bằng mod_rewrite module trong Apache. Đối với ứng dụng demo có các trang sau : : • user.php— chứa các thông tin về người dùng trong hệ thống. • index.php—là trang chủ của hệ thống. • list.php—là trang chứa danh sách các người dùng, ảnh 1. Figure 1. The user list, generated by list.php page Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 4 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 • profile.php—Shown in action in Figure 2, this page is for users to edit their profiles Figure 2. The profile.php page for users to edit their details Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 5 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 • login.php—Đăng nhập. • logout.php—đăng xuất và trở về index page. • add-friend.php— thêm bạn Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 6 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 • register.php—đăng kí làm thành viên. III.2. Apache mod_rewrite Là một module trong apache server hỗ trợ việc viết lại url trong requested url. III.3. Using RewriteRule in .htaccess Sau khi bật mod_rewrite, sẽ phải thực hiện việc phản hồi các truy cập bằng việc config trong .htaccess. dưới đây là một số ví dụ: http://www.myshop.com/product_detail.php?product_id=987654321 Sẽ được viết lại thành http://www.myshop.com/product/987654321 hoặc: http://www.myshop.com/products/deluxe-widget Và giờ người dùng sẽ nhìn thấy deluxe-widget là một sản phẩm và sẽ dễ dàng hơn khi nhớ đường dẫn và tìm lại trong lịch sử của trình duyệt Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 7 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 Sử dụng mod_rewrite, có thể sử dụng regular expression to đáp ứng hai kiểu request, để đạt được điều đó có thể viết lại thành /products/([0-9]+) /product_detail.php? product_id=$1. Dưới đây là một số cách phổ biến cho việc viết lại đường dẫn Listing 1. Using the RewriteMap directive RewriteMap products txt:/path/to/file/userids.txt RewriteRule / ^(.*)$ user.php?uid=${products:$1|0} Using RewriteCond to optionally process rules Listing 2. .htaccess entries for your simple semantic URI scheme <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z0-9]+)$ user.php?user=$1 [L,QSA] </IfModule> Representing the user's contact information with hCard Một đặc điểm của RDF là một danh từ trong triples thường được nhắc đến bởi URIs. Trong thế giới ngữ nghĩa, trang chủ của người dùng sẽ thể hiện chính họ. Để làm cho sự thể hiện mang tính ngữ nghĩa, chúng ta sẽ sử dụng hCard microformat, do đó khi người dùng xem trang chủ của người dùng họ sẽ dễ dàng trích xuất thông tin liên hệ chi tiết dưới dang vCard, định dạng mà có thể dễ dàng import bời nhiều phần mềm quản lý phổ biến. Introduction to hCard Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 8 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 hCard là một cách để dùng HTML chuẩn cho phép chỉ ra tên field như là định dạng RFC 2422 của vCard. vCard được hiểu bởi hầu hết các trình duyệt mail, các ứng dụng phổ biến. Định dạng đó trông như sau Listing 3. Example vCard begin:vcard fn:Rob Crowther n:Crowther;Rob adr:;;;London;;;United Kingdom email;internet:robert@crowther.info title:Web Developer url:http://www.boogdesign.com/ version:2.1 end:vcard Như đã thấy, định dạng hết sức là đơn giản, bao gồm chủ yếu loại và giá trị được phân cách bởi “:”, dấu “;” để phân cách nhiều giá trị Và hCard là một thể hiện của vCard dưới dạng HTML sử dụng tên class và cấu trúc html tự nhiên. Như sau Listing 4. Example from Listing 4 coded up as hCard <div class="vcard"> <a class="url fn" href="http://www.boogdesign.com/">Rob Crowther</a> (<span class="title">Web Developer</span>) <div>Email: <span class="email"> <span class="type">internet</span> <span class="value">robert@crowther.info</span> </span> </div> <div class="adr"> <span class="locality">London</span>, <span class="country-name">United Kingdom</span> </div> </div> Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 9 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 Khi mà có hCard chúng ta có thể sử dụng một extension Operator cho Firefox để xuất ra vCard Implementing hCard Như trong Listing 4, để thực thi hCard và đạt được cấu trúc đúng, chúng ta phải hầu như thêm vào các classes khi cần thiết và thêm vào một số thẻ cần thiết. Đầu tiên là danh sách đầy đủ các thuộc tính của hCard. Và các thuộc tính con, sẽ trở thành thẻ con: • fn • n (family-name, given-name, additional-name, honorific-prefix, honorific-suffix) • nickname, sort-string • url, email (type, value), tel (type, value) • adr (post-office-box, extended-address, street-address, locality, region, postal- code, country-name, type, value), label • geo (latitude, longitude), tz • photo, logo, sound, bday • title, role, org (organization-name, organization-unit) • category, note • class, key, mailer, uid, rev hCard chỉ có hai thuộc tính bắt buộc: FN và N. Một số trường có kiểu con như notably adr, email and tel. Có một số điều cần lưu ý khi nói đến microformats để hiểu rõ hơn tại sao chúng lại giới hạn hơn thông tin chung cung cấp bởi RDF: • Giải quyết một vấn đề cụ thể—trước khi microformat mới được xem xét đến. • Bắt đầu đơn giản nhất có thể—Nếu một vấn đề phức tạp, hãy giải quyết phần đơn giản trước. • Thiết kế coi trọng hướng tới con người đầu tiên, sau đó là máy tính. • Tái sử dụng các khối đã được đông đảo chấp nhận sử dụng như chuẩn. • Tính thành phần và cài đặt. Table 1 mẫu tương ứng trường trong phpBB với hCard. Table 1. Using phpBB user info in hCard phpBB Column hCard property username fn, n, nickname Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 10 [...]... } ?> Kết quả như sau Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 12 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 Figure 3 User profiles with hCard displayed in your social network app Microformats nhằm mục đích nhẹ và dễ sử dụng Extracting RDF from hCard with GRDDL Có thể sử dụng service GRDDL để extract ra rdf từ web của w3c http://www.w3.org/2007/08/grddl/?docAddr=[our... Birthday: Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 11 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 13 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 test_user_1 ... thuộc tính:foaf:Name, foaf:homepage và foaf:knows Listing 7 Ví dụ về FOAF Rob FOAF sử dụng RDFa Listing 9 FOAF in RDFa Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 15 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 Rob . Xây dựng web ngữ nghĩa đơn giản 1 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 Mục lục: Đề tài số 3: Xây dựng web ngữ nghĩa đơn giản 2 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm. luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG __________*__________ TIỂU LUẬN MÔN HỌC: WEB NGỮ NGHĨA VÀ KHAI PHÁ DỮ LIỆU” Đề. tài số 3: Xây dựng web ngữ nghĩa đơn giản 10 Tiểu luận: Web ngữ nghĩa và khai phá dữ liệu – Nhóm 11 user_email email user_birthday bday user_from adr user_avatar photo user_website url user_occ