Rdf graph là gì

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAMTRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNGLý Hưng ThịnhTìm hiểu RDF-Database, đồ thị ý niệm.Viết ứng dụng minh họa cho phép người dùngsử dụng đồ thị ý niệm truy vấn, tìm kiếm dữliệu RDF trực tuyến.Chuyên ngành : Công nghệ thông tinMã số : 01.01.11Luận văn tốt nghiệp cử nhân khoa học máy tínhGiáo viên hướng dẫn khoa học :THS. VÕ HOÀNG HẢITHÀNH PHỐ HỒ CHÍ MINH 2008TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAMTRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNGLý Hưng ThịnhTìm hiểu RDF-Database, đồ thị ý niệm.Viết ứng dụng minh họa cho phép người dùngsử dụng đồ thị ý niệm truy vấn, tìm kiếm dữliệu RDF trực tuyến.Chuyên ngành : Công nghệ thông tinMã số : 01.01.11Luận văn tốt nghiệp cử nhân khoa học máy tínhGiáo viên hướng dẫn khoa học :THS. VÕ HOÀNG HẢITHÀNH PHỐ HỒ CHÍ MINH 2008Lời cảm ơnXin chân thành cảm ơn khoa Công nghệ thông tin, Toánứng dụng Đại học Tôn Đức Thắng đã hỗ trợ, tạo điều kiện thuậnlợi cho tôi trong quá trình học tập cũng như khoảng thời gianthực hiện đề tài tốt nghiệp.Tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy Võ HoàngHải - người thầy đã hướng dẫn trực tiếp tôi trong quá trìnhnghiên cứu và hoàn thành luận văn này, thầy đã tận tình hướngdẫn, truyền đạt rất nhiều kiến thức bổ ích và thú vị.Tôi cũng gửi lời cảm ơn tới các anh nhóm Java công tyASAO Entertainment đã cho tôi nhiều góp ý đúng đắn. Gia đìnhvà bạn bè là những nhân tố tinh thần to lớn giúp tôi vượt quanhiều khó khăn.Tôi cũng muốn gửi lời cảm ơn tới những đàn anh đi trướcđã để lại nhiều tài liệu hay và các nhà khoa học trên toàn thếgiới đã phát minh ra thế hệ web mới này. Cảm ơn Google, côngcụ tìm kiếm giúp tôi tìm được hầu hết tài liệu tôi cần.Cuối cùng, tôi xin cảm ơn tất cả mọi người, cảm ơn đời đãcho tôi ngày hôm nay.Tóm lược1. Mục đích:Tìm hiểu một vài công nghệ nền tảng của Semantic Web như: RDF/RDFSchema, ngôn ngữ truy vấn dữ liệu RDF – SPARQL, đồ thị ý niệm, ontology. Từ đóxây dựng ứng dụng web minh họa, cho phép người dùng truy vấn, tìm kiếm dữ liệubằng đồ thị ý niệm.2. Nội dung:Gồm hai phần: cơ sở lý thuyết và ứng dụng minh họa.a) Lý thuyết:■Giới thiệu web ngữ nghĩa.■RDF/ RDF Schema – thành phần nền tảng của web ngữ nghĩa.■Ngôn ngữ truy vấn RDF.■Ontology■Đồ thị ý niệm.b) Xây dựng ứng dụng:■Mô tả ứng dụng.■Phân tích ứng dụng.■Thiết kế, cài đặt.■Hạn chế, hướng phát triển3. Công cụ: Các ngôn ngữ sử dụng: XML, RDF, RDF Schema, Ontology...Ứng dụng được cài đặt bằng các ngôn ngứ lập trình: Java, JavaScript.Sử dụng công cụ hỗ trợ: protege.4. Kết quả: viết báo cáo luận văn các nội dung kể trên.Chương trình ứng dụng minh hoạ: CGQueryTouristMục lụcChương 1: Giới thiệu đề tài .................................................................................... - 4 1.1Bối cảnh ........................................................................................................... 41.2Mục tiêu và phạm vi ........................................................................................ 8Chương 2: Web ngữ nghĩa ........................................................................................ 102.1Web ngữ nghĩa là gì? ..................................................................................... 102.2Cấu trúc của một Semantic Web ................................................................... 12Chương 3: RDF - Nền tảng Semantic Web .............................................................. 143.1Giới thiệu: ..................................................................................................... 143.2Các khái niệm cơ bản: ................................................................................... 143.2.1Namespace: ............................................................................................ 143.2.2Qualified name(QName) và cách sử dụng ............................................. 143.2.3Mô hình RDF ( RDF Model) ................................................................. 153.3Cấu trúc RDF/XML....................................................................................... 203.3.1 Cú pháp RDF/XML cơ bản ......................................................................... 203.3.2 RDF Container ............................................................................................ 203.3.3. RDF Collection ........................................................................................... 213.4. RDF Schema ...................................................................................................... 213.5. Kết luận: ............................................................................................................ 22Chương 4: Truy vấn dữ liệu RDF............................................................................. 234.1. Giới thiệu ........................................................................................................... 234.2. Tạo một câu truy vấn đơn giản .......................................................................... 234.3. Cú pháp của câu truy vấn .................................................................................. 244.4. Blank node ......................................................................................................... 254.5. Những dạng cú pháp khác ................................................................................. 264.6. RDF Collections ............................................................................................ 274.7. RDF Literal .................................................................................................... 274.8.Ràng buộc dữ liệu ......................................................................................... 284.8.1. Thêm vào kiểu Optional ............................................................................. 294.8.2 Ràng buộc trong khối Optional.................................................................... 304.8.3 Nhiều khối Optional..................................................................................... 314.8.4 Khối Optional lồng nhau.............................................................................. 314.9.Các phép toán và điều kiện trên câu truy vấn .............................................. 324.9.1 Phép hội ....................................................................................................... 324.9.2. Phép chiếu ................................................................................................... 334.9.3. Distinct ........................................................................................................ 334.9.4 ORDER BY ................................................................................................. 34-1-4.9.5 LIMIT ......................................................................................................... 344.9.6. Lựa chọn biến được trả về ....................................................................... 354.10. Kết luận: .......................................................................................................... 35Chương 5: Ontology ................................................................................................... 365.1. Khái niệm ...................................................................................................... 365.2. OWL (Ontology Web Language) .................................................................. 385.3. Ngôn ngữ con của của OWL ......................................................................... 395.3.1. OWL Full: .............................................................................................. 395.3.2. OWL DL: .............................................................................................. 395.3.3. OWL Lite: .............................................................................................. 405.4. Các thành phần Class: ................................................................................... 415.5. Các thành phần Properties ............................................................................. 415.6. Tổng kết ......................................................................................................... 42Chương 6: Đồ thị ngữ nghĩa ...................................................................................... 436.1. Khái niệm: ..................................................................................................... 436.2. Mô tả câu truy vấn bằng đồ thị ý niệm:......................................................... 446.3. Phân loại cách thức biểu diễn của CG:.......................................................... 456.4. Mở rộng thuộc tính: ....................................................................................... 466.5. Kết luận: ........................................................................................................ 47Chương 7: Xây dựng ứng dụng ................................................................................ 48 Chức năng ứng dụng: .................................................................................... 48 Cách thức hoạt động: ..................................................................................... 48 Các yêu cầu của ứng dụng: ............................................................................ 48 Yêu cầu lưu trữ: ..................................................................................... 48 Yêu cầu giao diện:.................................................................................. 48 Yêu cầu chức năng: ................................................................................ 48 Yêu cầu phi chức năng: .......................................................................... 49 Mô hình ứng dụng: ........................................................................................ 50 Kiến trúc phía Client: .................................................................................... 51 Kiến trúc phía Server:.................................................................................... 52 Các loại thông điệp truyền nhận client – server ............................................ 56 Danh sách Object: .................................................................................. 56 Danh sách thuộc tính của Object: .......................................................... 57 Danh sách Relation: ............................................................................... 57 Mô hình yêu cầu truy vấn: ..................................................................... 57 Kết quả tìm kiếm: ................................................................................... 58 Các bố sung ở client, trên nền của Openjacob: ............................................. 59 Vẽ đối tượng: ......................................................................................... 59-2- Tạo/xóa/sửa thuộc tính: .......................................................................... 59 Vẽ quan hệ: ............................................................................................ 59 Thời điểm tạo quan hệ: .......................................................................... 60 Thanh công cụ: ....................................................................................... 61 Dịch đồ thị ý niệm về XML: .................................................................. 61 Phân tích kết quả trả về của Server: ....................................................... 62 Các thuật toán chi tiết: ................................................................................... 62 Tìm thuộc tính của kiểu đối tượng: ........................................................ 62 Tìm kiểu dữ liệu của thuộc tính: ............................................................ 63 Tìm quan hệ giữa hai kiểu đối tượng: .................................................... 63 Chuyển đồ thị ý niệm về dạng XML: .................................................... 64 Chuyển dữ liệu XML về Đối tượng: ...................................................... 65 Tạo câu truy vấn từ các đối tượng: ........................................................ 65Giao diện của ứng dụng: ............................................................................ 66 Trang chủ: .............................................................................................. 66 Trang hiển thị kết quả: ........................................................................... 69 Trang hiển thị mã XML: ........................................................................ 69 Ví dụ:...................................................................................................... 69Chương 8: Tổng kết ..................................................................................................... 73Tài liệu tham khảo...................................................................................................... 74Phụ lục ......................................................................................................................... 75-3-Chương 1: Giới thiệu đề tàiChúng ta đang chìm ngập trong thông tinnhưng lại khát khao tri thức.(John Naisbitt)1.1Bối cảnhWeb đang chuyển mình vào thời kỳ mới tinh tế hơn. Chúng ta đã từng tốn thờigian chỉ cho việc ngao du trên Internet, đọc và tải về bất cứ thứ gì có thể tìm thấy. Giờđây chúng ta có cơ hội để thể hiện cái tôi của mình qua việc chia sẻ quan điểm, hìnhảnh; trao đổi với người khác bằng văn bản, tiếng nói và video hay bổ sung dữ liệu củamình vào bản đồ thế giới.Các ứng dụng chạy trong trình duyệt giờ đây làm việc nhanh không kém cácứng dụng cài đặt trên PC, đó là nhờ các kỹ thuật lập trình mới như Ajax(Asynchronous JavaScript and XML) và Ruby on Rails. Các công nghệ mới chophép thực hiện nhiều tác vụ hơn tại PC người dung, điều này có nghĩa ít phải traođổi qua lại với máy chủ hơn. Các chương trình chạy trên trình duyệt có thể tương tácvới website tốt hơn, dễ dàng hơn. Ví dụ như Google, Amazon và các site lớn kháccho phép mọi người tạo ứng dụng móc nối tới dữ liệu của mình thong qua thư việnlập trình API.Việc chuyển từ hưởng thụ sang tham gia là thay đổi then chốt trong cuộc cáchmạng Web 2.0. Một số người khác gọi nó là “Open API” (thư viện mở) ám chỉ việcchia sẻ thư viện hàm API. Có thể nói năm 2006 là năm bùng nổ của các trang Web2.0: Các mạng xã hội trực tuyến: MySpace, FaceBook, Yahoo 360, OperaCommunity Website cho phép làm việc: JotSpot: các thành viên ở xa nhau làm việctrên cùng một trang; ThinkFree: có thể làm gần đủ mọi thứ như vớicác ứng dụng Office (Word, Excel và Powerpoint) của Microsoft;Writeboard: chia sẻ ý tưởng trực tuyến (writeboard.com); Basecamp:quản lý dự án (www.basecamphq.com); HipCal: lên lịch làm việc trựctuyến (hipcal.com); Digg: săn lùng tin tức công nghệ (www.digg.com)-4- Chia sẻ hình ảnh, video: Flickr: flickr.com, Picaboo: picaboo.com,YouTube: www.youtube.com, Google video: video.google.com Bản đồ trực tuyến: Google Earth: earth.google.com, Yahoo Maps:maps.yahoo.com, GeoBloggers: thông tin địa lý (geobloggers.com),MapLandia: đem cả thế giới đến PC (maplandia.com), Trulia: tìm nhàtrực tuyến (www.trulia.com)Thật sự, Web 2.0 không phải là một cái gì đó hoàn toàn mới mà là sự phát triểntừ Web hiện tại. Nó vẫn là Web như chúng ta dùng lâu nay, chỉ có điều giờ đâychúng ta làm việc với Web theo cách khác. Các website không còn là các “ốc đảo”mà trở thành những nguồn thông tin và chức năng, hình thành nên môi trường điệntoán phục vụ các ứng dụng web và người dùng. Xu hướng chuyển đổi sang Web 2.0đang diễn ra mạnh mẽ và là xu thế tất yếu.Thế nhưng, điều đó đồng nghĩa với việc gia tăng một cách chóng mặt các trangweb, cũng như số lượng thông tin mà nó cung cấp. Tuy nhiên, lượng thông tinkhổng lồ đó cũng tạo ra những khó khăn lớn trong việc tìm kiếm và chia sẻ thông tintrên WWW. Sự phát triển nhanh chóng đó đã thúc đẩy sự ra đời của một thế hệ webmới, web ngữ nghĩa (Semantic Web). Một công nghệ mới cho phép máy tính “hiểu”được thông tin và dữ liệu biểu diễn dưới dạng thích hợp với con người.Theo định nghĩa của Tim Berners Lee, giám đốc tổ chức World Wide WebConsortium (http://www.w3c.org), đồng thời là cha đẻ của WWW, Web ngữ nghĩa làsự mở rộng của WWW hiện tại bằng cách thêm vào các mô tả ý nghĩa (hay ngữnghĩa) của thông tin mà máy tính có thể “hiểu” và do vậy cho phép sử lý thông tinhiệu quả hơn. Như vậy Web có ngữ nghĩa sẽ bao gồm các thông tin được biểu diễntheo cách truyền thống cùng với ngữ nghĩa của các thông tin này được biểu diễn mộtcác tuờng minh. Việc thêm phần ngữ nghĩa cung cấp thêm tri thức cho các chươngtrình (agent), giúp nâng cao chất lượng phân loại, tìm kiếm, trao đổi thông tin.Sự phát triển mạnh mẽ của các công cụ tìm kiếm (search engine và metasearch engine) đã minh chứng cho điều này. Các công cụ được sử dụng nhiều nhấtphải kể đến là Google, Yahoo, MSN, Ask, … Hình dưới đây cho thấy thị phần củacác công cụ tìm kiếm trong tháng 7 năm 2006.5Hình 1.1: Thị phần các công cụ tìm kiếm trong tháng 7-2006Với một loạt công cụ tìm kiếm như vậy, trong thực tế người sử dụng vẫn chưathể truy cập thông tin một cách nhanh chóng và hiệu quả nhất. Phần lớn các công cụkể trên vẫn chỉ cho phép người dùng tìm kiếm trên các từ khóa mà việc tìm kiếm nàyđôi khi chưa đúng và đủ . Lấy ví dụ, một người muốn tìm kiếm các tài liệu liên quanđến danh tướng Trần Hưng Đạo chẳng hạn. Người đó sẽ phải nhập vào các công cụtìm kiếm từ khóa “Trần Hưng Đạo”. Hình 1-2 cho thấy 5 kết quả đầu tiên trả về từGoogle.Hình 1.2: Kết quả tìm kiếm trả về từ Google6Như ta đã thấy, trong số những kết quả trả về đầu tiên có cả tài liệu về trườngPTTH Trần Hưng Đạo hay đền thờ Trần Hưng Đạo, không liên quan gì đến nội dungmà ta định tìm kiếm. Hơn nữa, giả sử có một trang web nào đó mà chỉ dùng một tênkhác của con người này như là Trần Quốc Tuấn, Hưng Đạo Vương thì trang web đósẽ không được Google trả về. Đó cũng là vấn đề chung mà các công cụ tìm kiếm hiệnnay đều gặp phải.Với mục đích giúp người sử dụng có thể dễ dàng khai thác kho tri thức đồ sộtrên mạng, người ta đã bắt đầu nói nhiều đến thuật ngữ Web có ngữ nghĩa (SemanticWeb). Với thế hệ mới này của Web, máy tính có thể hiểu tốt hơn nội dung của trangWeb, từ đó việc tìm kiếm sẽ trở nên chính xác và hiệu quả hơn. Một hướng tiếp cậnmới trong lĩnh vực tìm kiếm là ta sẽ xây dựng một công cụ tìm kiếm mới không dựatrên từ khóa mà dựa trên thực thể, tức là tìm kiếm trên ngữ nghĩa của đoạn văn bảnmà người dùng nhập vào.Xét ví dụ trên khi ta áp dụng công nghệ của thế hệ web mới này, máy tính sẽnhận ra được “Trần Hưng Đạo” là một định danh cho nhiều thực thể khác nhau: conngười, đền thờ, trường học, con đường... Khi đó người dùng cần phải chọn một thựcthể nhất định, từ đó kết quả tìm kiếm sẽ được giới hạn và chính xác hơn rất nhiều.Không chỉ có thể tìm kiếm các thực thể khác nhau về loại, công cụ tìm kiếmmới dựa trên ngữ nghĩa còn có thể tìm kiếm dựa trên thông tin mô tả mà người dùngnhập vào. Ví dụ, người dùng có thể đánh vào “nhà máy bia Tiger ở thành phố Hồ ChíMinh”, công cụ sẽ trả về đúng các tài liệu liên quan đến nhà máy bia đó mà khôngphải là một nhà máy bia Tiger ở Hà Nội hay một thành phố khác. Và khi đó người tìmkiếm tiết kiệm được rất nhiều thời gian.Một viễn cảnh xa hơn mà mọi người trông chờ vào thế hệ mới của Web này làkhả năng trả lời những câu hỏi tìm kiếm phức tạp và có tính suy luận. Ví dụ như: “tìmkiếm các tài liệu liên quan đến các thành phố ở Việt Nam có dân số lớn hơn 1 triệungười”. Nếu làm được điều này, có thể nói mọi thông tin đều ở trong tầm tay của conngười.71.2Mục tiêu và phạm viMục tiêu của luận văn là xây dựng ứng dụng có khả năng truy vấn trithức bằng đồ thị ý niệm, bằng cách cho phép người dùng vẽ các mô hìnhtheo phương pháp trực quan sinh động, sau đó sẽ được một module đểchuyển mô hình trên về ngôn ngữ truy vấn SPARQL – ngôn ngữ truy vấntri thức biểu diễn bằng RDF/RDFS nhằm hỗ trợ người dùng dễ dàng hơntrong quá trình sử dụng.Để đạt được mục tiêu trên, tôi phải tìm hiểu và nắm bắt được các kỹthuật nền tảng của web ngữ nghĩa như: RDF, RDF Schema, ngôn ngữ truyvấn dữ liệu RDF, đồ thị ý niệm, ontology. Kết quả của việc tìm hiểu này sẽđược báo cáo lần lượt trong phần lý thuyết của luận văn.Tôi đã xây dựng ứng dụng dựa trên mô hình hai tầng Client – Server, sửdụng Ajax trong quá trình truyền/nhận dữ liệu bất đồng bộ. Phía người dùngđược xây dựng bằng ngôn ngữ JavaScript, cho phép vẽ mô hình để truy vấn.Phía server được xây dựng bằng ngôn ngữ Java, có nhiệm vụ làm một servertrung gian, giải quyết các yêu cầu tìm kiếm thông tin bằng cách phân tích nộidung yêu cầu cần truy vấn thành ngôn ngữ truy vấn – trong ứng dụng nàyngôn ngữ truy vấn được sử dụng là SPARQL – và câu truy vấn này sẽ gửi tớimột server khác (Joseki) để tìm kiếm dữ liệu. Bằng cách tương tự ta có thểviết nhiều module khác nhau cho các ngôn ngữ truy vấn khác nhau và chỉ cầncấu hình lại là ta có thể tương tác với các server truy vấn dữ liệu RDF khácnhau.Với yêu cầu trên, ta phải xây dựng một ứng dụng rich client, có nghĩalà: các thao tác vẽ, xóa, tạo quan hệ giữa các thực thể phải được xử lý ở phíangười dùng, giúp tăng tính hiệu quả của ứng dụng, hỗ trợ tối đa các yêu cầungười dùng. Có nhiều giải pháp được đưa ra nhằm giải quyết yêu cầu trên:1. Sử dụng GWT Framework (Google Web Toolkit Framework): Được ra đời vào tháng 5 năm 2006, GWT là một tập cáccông cụ phát triển, các tiện ích lập trình và widget cho phép tạoứng dụng rich client. GWT có đặc điểm rất hay: viết mã choclient bằng ngôn ngữ Java, sao đó sẽ được framework chuyểnthành Javascript. Với giải pháp này, chúng ta hoàn toàn có khả năng xâydựng ứng dụng với yêu cầu trên. Nhưng phải tốn khá nhiều côngsức để lập trình các thao tác vẽ, xóa, tạo kết nối.2. Sử dụng Open Jacop:8 Open Jacop là một framework mã nguồn mở, cho phép vẽcác hình cơ bản dạng 2D, được viết bằng ngôn ngữ Javascript. Framework đã xây dựng sẵn các lớp Class, Connector,Port… bên cạnh đó còn bổ sung thêm các thao tác kéo thả (Dragand Drop). Framework này đã giúp ta khá nhiều trong việc xâydựng ứng dụng phía client. Công việc còn lại là đọc mã, tùy biếnchúng, tương tác với phía server.Trong luận văn này, tôi sẽ dùng Open Jacop và bổ sung thêm kỹthuật Ajax (Asynchronous Javascript and XML) nhằm mục đích tươngtác với server, giúp ứng dụng nhanh hơn, hoạt động mượt mà hơn. Bêncạnh đó, tôi cũng sử dụng thêm Yahoo User Interface (YUI), với mụcđích xây dựng giao diện.Với những mục tiêu và phạm vi đã được đề ra như trên, tôi xintrình bày những gì đã tìm hiểu được và kết quả của đề tài trong cácchương sau.9Chương 2: Web ngữ nghĩaI have a dream for theWeb [in which computers] become capable of analyzingall the data on the Web – the content, links, andtransactions between people and computers. A‘Semantic Web’, which should make this possible, hasyet to emerge, but when it does, the day-to-daymechanisms of trade, bureaucracy and our daily liveswill be handled by machines talking to machines. The‘intelligent agents’ people have touted for ages willfinally materialize.(Tim Berners-Lee, 1999)2.1Web ngữ nghĩa là gì?Nếu bạn nghĩ rằng thế hệ Web 2.0 vẫn thực sự chưa hoàn hảo và World WideWeb vẫn là một đám mây chứa đầy những thông tin vô định hình, thì đó chính là điềumà thế hệ Web 3.0 khắc phục được - xóa đi lớp mây ấy bằng những trật tự nhất định.Bước đột phá mới của kênh phương tiện.Với nhiều tỷ trang web phân bố trên hầu hết các quốc gia,World wide web(WWW) là môi trường tốt cho việc biểu diễn và truy cập thông tin dạng số. Tuynhiên, lượng thông tin đó cũng tạo nên một khó khăn cực lớn trong việc tìm kiếm,chia sẻ thông tin trên WWW. Hiện nay thông tin trên WWW được biểu diễn chủ yếudưới dạng ngôn ngữ tự nhiên(biểu diễn bằng HTML). Cách biểu diễn đó phù hợp vớicon người nhưng gây khó khăn cho chương trình làm nhiệm vụ hỗ trợ tìm kiếm chiasẻ và trao đổi tin. Chương trình máy tính không hiểu được thông tin và dữ liệu biểudiễn dạng phù hợp với con ngườiĐiều này đã thúc đẩy sự ra đời của ý tưởng "Web ngữ nghĩa"(Semantic web),một thế hệ mới của Web, mà lộ trình phát triển của nó đã được Tim Berners-Lee, chađẻ của Web, phác thảo ra chỉ khoảng vài năm về trước. "Web ngữ nghĩa" là sự mởrộng của Web hiện tại mà trong đó thông tin được định nghĩa rõ ràng sao cho conngười và máy tính có thể cùng làm việc một cách hiệu quả hơn. Mục tiêu của "Web10ngữ nghĩa" là để phát triển các chuẩn chung và công nghệ ngày nay cho phép máytính có thể hiểu được thông tin trên Web,sao cho chúng có thể hỗ trợ tốt hơn việc tìmkiếm thông tin, tích hợp dữ liệu, tự động hóa công việc Ví Dụ 1: Phiên bản web mới của Berners-Lee tiến hành như một chuỗi các cơsở dữ liệu nối tiếp nhau với nguồn thông tin tập trung theo một biểu mẫu đãđược xây dựng từ trước. Bên trong kết cấu ấy được bổ sung các hệ thống ýthức để máy tính có thể hiểu được. Chẳng hạn, khi bạn dùng công cụ Googleđể tìm kiếm một người nào đó thì trong Web 3.0, nhân vật ấy sẽ được miêu tảđầy đủ với nguồn thông tin rất dồi dào, từ ngày sinh, chức danh trong côngviệc, địa chỉ nhà, sở thích đến thứ tự trong gia phả. Ví dụ 2: Người sử dụng Semantic Web sẽ có được những kết nối rõ ràng nhấtvới nơi làm việc, người thân, lịch làm việc và những sở thích của nhau. Giả sửmuốn sắp xếp một bữa tiệc sau một hội nghị, trước tiên bạn sẽ lướt qua cuốn sổđịa chỉ và gửi email xem ai có thể tham gia hội nghị, sau đó gửi tiếp thư mờidự tiệc. Kế đó, tất cả khách mời cùng chủ tiệc cùng nhau bàn luận về thời gianvà địa điểm ăn tiệc qua email. Ví dụ 3: Trong Semantic Web, phần mềm trợ lý của bạn sẽ biết trước những gìsẽ liên quan đến việc sắp xếp bữa tiệc nên thay vì bạn phải gửi hàng tá email,nó sẽ chắt lọc những đối tượng dự hội nghị rồi lên danh sách khách dự tiệc.Thậm chí nó còn có thể thông qua cuốn sổ địa chỉ của bạn để xem những aiđang sống ở đâu và lúc nào tổ chức tiệc là phù hợp nhất. Một khi danh sáchkhách mời đã được bạn chấp thuận, phần mềm trợ lý sẽ xem xét địa điểm tổchức tiệc, cuối cùng sẽ gửi chỉ dẫn đến mọi người.Ý tưởng liên kết các nguồn tài nguyên khác nhau(hình ảnh, con người, các kháiniệm) cho phép ta mở rộng Web thành một môi trường mới với tập các mối quan hệmới( như hasLocation, worksFor, isAuthorOf,hasSubjectOf,dependsOn,…) giữa cácnguồn dữ liệu, tạo ra các mối liên hệ ngữ cảnh, điều mà Web hiện tại chưa thể làmđược.11Ví dụ:2.2Cấu trúc của một Semantic WebHình 2.1: Cấu truc Semantic web12 Lớp Unicode & URI: nhằm bảo đảm việc sử dụng tập kí tự quốc tế vàcung cấp phương tiện nhằm định danh các đối tượng trong Semantic Web. Lớp XML cùng với các định nghĩa về namespace và schema (lược đồ) bảođảm rằng chúng ta có thể tích hợp các định nghĩa Semantic Web với cácchuẩn dựa trên XML khác. Lớp RDF [RDF] và RDFSchema [RDFS]: ta có thể tạo các phát biểu(statement) để mô tả các đối tượng với những từ vựng và định nghĩa củaURI, và các đối tượng này có thể được tham chiếu đến bởi những từ vựngvà định nghĩa của URI ở trên. Đây cũng là lớp mà chúng ta có thể gán cáckiểu (type) cho các tài nguyên và liên kết. Và cũng là lớp quan trọng nhấttrong kiến trúc Semantic Web . Lớp Ontology: hỗ trợ sự tiến hóa của từ vựng vì nó có thể định nghĩa mốiliên hệ giữa các khái niệm khác nhau. Lớp Digital Signature: được dùng để xác định chủ thể của tài liệu (vd: tácgiả của một tài liệu hay một lời tuyên bố). Các lớp Logic, Proof, Trust: đang trong giai đoạn nghiên cứu và các thể hiệncủa các ứng dụng giản đơn đang được xây dựng. Lớp Logic cho phép viết ra các luật(rule) trong khi lớp Proof thi hành các luật và cùng với lớp Trust đánh giá nhằmquyết định ứng dụng nên hay không nên tin tưởng/chấp nhận (trust) chứng cớ(proof).13Chương 3: RDF - Nền tảng SemanticWeb3.1 Giới thiệu:Có thể nói RDF chính là nền tảng và linh hồn của Semantic web. RDF mô tảcác siêu dữ liệu của tài nguyên trên web. RDF dựa trên cú pháp XML nhưngcó sự khác biệt giữa XML và RDF là: XML chỉ mô tả dữ liệu còn RDF có khảnăng biều diễn ngữ nghĩa giữa chúng thông qua các tài nguyên được định danhbằng URL. Ở chương này, ta sẽ có cái nhìn bao quát hơn về RDF.3.2 Các khái niệm cơ bản:3.2.1 Namespace:Namespace là một tập các tên( name) , được định danh bởi cácURI, được sử dụng trong các tài liệu XML như các element type vàattribute name. Một namespace được khai báo sử dụng một tập cácthuộc tính có đã được định nghĩa. Tên của một thuộc tính phải có xmlnshay xmlns: như là một tiếp đầu ngữ.Ta có một ví dụ khai báo cho một namespace sau: Tiếp đầu ngữ “edi” dùng để chỉ URI http://ecommerce.org/schema3.2.2 Qualified name(QName) và cách sử dụngMột QName bao gồm một tiếp đầu ngữ (prefix) mà đã được gán trướcđó bởi một URI theo sau là dấu ‘:’ và tên cục bộ. Ví dụ như nếu một QNamecó prefix là foo được gán cho một URI là http://example.org/somewhere/,ta sẽ có QName foo:bar là cách viết tắt của địa chỉ URIhttp://example.org/somewhere/barCách dùng QName đối với kiểu dữ liệu là element:


32.18

Cách dùng QName đối với kiểu dữ liệu là attribute14


Baby food

Một số QName phổ biến hay sử dụng:PrefixNamespace URIrdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#rdfs:http://www.w3.org/2000/01/rdf-schema#owl:http://www.w3.org/2002/07/owl#xsd:http://www.w3.org/2001/XMLSchema#3.2.3 Mô hình RDF ( RDF Model)Mô hình cơ bản của RDF gồm ba đối tượng sau: Tài nguyên (Resources): là tất cả những gì được mô tả bằng biểuthức RDF mà có một URI cụ thể. Nó có thể là mộttrangWeb, vídụ như trang http://www.w3.org/Overview.html,cũng có thể là một phần của trang Web, hoặc là một tập các trangWeb, ... Thuộc tính (Property): là một nguồn tài nguyên được đặt tên, như:“Tac_Gia” hay “Dien_dan”.Giá trị của thuộc tính (Property value): là một giá trị của một thuộctính nào đó. VD: “HungThinh” hay “Diễn đàn Java Việt Nam”, haythậm chí có thể là một nguồn tài nguyên khác nhưhttp://www.javavietnam.orgSự kết hợp của một nguồn tài nguyên, một thuộc tính và một giá trịcủa thuộc tính được đặt trong một cái phát biểu có tên là Statement.Mỗi phát biểu gồm ba thành phần sau:o Subject (Chủ thể): địa chỉ hay vị trí tài nguyên muốn mô tả,thông thường thì đây là chuỗi định URL hoặc URI.15o Predicate (Vị ngữ): xác định tính chất của tài nguyên.o Object (Bổ ngữ): nội dung gán cho thuộc tính.Thực chất subject, predicate, object chỉ là tên gọi khác của resource,property, property value.3.2.3.1 Bộ ba RDF ( RDF Tripple)Mỗi một phát biểu (subject, predicate,object) còn gọi là một bộ ba(triple).Ví dụ:http://www.hungthinh.org/index.htmlhas a creator whose value is Hung ThinhPhát biểu trên được phân ra thành các phần sau:Subjecthttp://www.hungthinh.org/index.htmlPredicatehttp://purl.org/dc/elements/1.1/creatorObjecthttp://www.hungthinh.org/staffid/12345Chúng ta đã biết URI dùng để mô tả bất cứ cái gì trên Web, cho nên ởphát biểu trên thay vì phải dùng từ “creator” và “Hung Thinh”, ta sẽ dùng URI“http://purl.org/dc/elements/1.1/creator“ và “http://www.hungthinh.org/staffi/12345”để mô tả cho từng khái niệm trên.Phát biểu trên được biểu diễn dưới dạng một tripple như sau:



3.2.3.2 Đồ thị RDF ( RDF Graph)Tập các triple hợp lại tạo thành đồ thị RDF( RDF Graph). Các nút trongtrong đồ thị có thể là các subject và object trong triple và các cung (arc)trongđồ thị là các predicate. Cho nên một triple còn có thể được mô tả dưới dạngnode-arc-node. Hướng của đồ thị rất quan trọng. Cung của đồ thị luôn bắt đầutừ subject đến object.16Hình 3.1: Mối quan hệ giữa các thành phần trong triple.Phát biểu trên được mô hình hóa bằng đồ thị có hướng sau:http://www.hungthinh.org/index.htmlhttp://purl.org/dc/elements/1.1/creatorhttp://www.hungthinh.org/staffid/12345Hình 3.2: Mô tả một phát biểu đơn giản bằng đồ thị3.2.3.3 LiteralLiteral được sử dụng để biểu diễn các giá trị như con số, ngày tháng,chuỗi... Bất cứ cái gì có thể biểu diễn bởi một giá tri Literal cũng có thể đượcbiểu diễn dưới dạng một URI. Một Literal có thể là object của một phát biểunhưng không thể là subject hay là predicate.Literal có hai kiểu sau : plain literal hay là typed literal: Plain Literal là một chuỗi được kết hợp với một tag tùy ý. Trongngôn ngữ tự nhiên ta có thể gọi nó là một kiểu text.Typed literal được hình thành bằng cách kết hợp một chuỗi với mộtđịnh danh URI để biểu diễm một kiểu dữ liệu đặc biệt nào nó.3.2.3.4Tripple và cách sử dụng namespaceĐôi khi không thuận tiện để biểu diễn các phát biểu dưới dạng đồ thị, tacó thể dùng cách viết dưới dạng tripple. Ta có thể viết lại như sau:



.17


"August 16, 1999" .


"en".Với cách viết này đòi hỏi mỗi URI phải được biết đầy đủ trong một cặpdấu ngoặc nhọn (<>) , điều này gây ra một bất lợi là các URI phải viết rất dàinhư ta đã thấy ở trên. Để thuận lợi hơn, RDF đã cung cấp một cách viết ngắngọn hơn đó là cách dùng QName mà không cần dùng đến cặp dấu <>.Như vậy ta thấy rằng việc khai báo các URI thông qua một QName sẽ rấtthuận lợi, nó làm cho các URI này ngắn gọn và dễ hiểu. Hơn nữa khi có mộtthay đổi về URI thì ta chỉ việc thay đổi ở phần namespace mà chúng ta đã khaibáo chứ không cần phải thay đổi tất cả URI trong bộ dữ liệu của mình .3.2.3.5 Kiểu dữ liệu có cấu trúc và Blank nodeNếu mọi dữ liệu trên Web đều rõ ràng thì thật dễ dàng để khai báo. Tuynhiên, hầu hết các dữ liệu trên Web đều liên quan đến các cấu trúc phức tạp.Trong ví dụ ... ngày của trang web được tạo có thuộc tính khai báo làexterms:creation-date, với một kiểu dữ liệu là plain literal. Tuy nhiên, giả sửnhư giá trị của thuộc tính exterms:creation-date cần phải lưu trữ thông tin vềngày,tháng ,năm độc lập với nhau thì phải biểu diễn vấn đề này như thế nào?.Hay là trong trường hợp thông tin cá nhân của Mr John Smith, giả sử khi mô tảđịa chỉ của Mr John thì giá trị của nó sẽ được viết dưới dạng một plain literal,như trong tripple sau:exstaff:85740exterms:address"1501 Grant Avenue, Bedford, Massachusetts 01730" .Tuy nhiên, giả sử rằng địa chỉ này cần phải được chia thành một cấu trúcbao gồm các thành phần riêng biệt như đường, thành phố, bang, và mã vùng.Làm thế nào có thể làm được trong RDF?Cấu trúc thông tin như trên sẽ được mô tả trong RDF bằng cách xemthông tin kết hợp là một resource, sau đó tạo ra các phát biểu về resource mới18này; hay nói cách khác mục đích của blank node để diễn đạt tài nguyên nó đạidiện mà không thể đặt tên tại thời điểm sử dụng.Vì vậy, trong đồ thị RDF , để tạo ra địa chỉ của Mr John Smith từ cácthành phần của nó, một node mới sẽ được tạo ra để biểu diễn khái niệm địa chỉcủa Mr John, với một URI để định danh cho nó, ví dụ nhưhttp://www.example.org/addressid/85740 (viết tắt là exaddressid:85740). Các phátbiểu RDF ( bao gồm các cung và node) sau đó sẽ được biểu diễn ra trong đồ thịvới node mới vừa tạo là subject. Ta hãy xem tripple sau:Exstaff:85740exterms:addressexaddressid:85740 .exaddressid:85740exterms:street"1501 Grant Avenue" .exaddressid:85740exterms:city"Bedford" .exaddressid:85740exterms:state"Massachusetts" .exaddressid:85740exterms:postalCode"01730" .Cách biểu diễn thông tin có cấu trúc như vậy đòi hỏi phải có một địa chỉURI exaddressid:85740 để mô tả khái niệm kết hợp (địa chỉ của Mr John).Những khái niệm như thế này có thể không được sử dụng bởi các thành phầnkhác trong đồ thị và chính vì vậy định danh này không cần thiết. Chính vì vậyta nên dùng một node trống (blank node) để biểu diễn node này.Và có thể mô tả dưới dạng tripple như sau:exstaff:85740exterms:address??? .???exterms:street"1501 Grant Avenue" .???exterms:city“Bedford" .???exterms:state"Massachusetts" .???exterms:postalCode "01730" .Ở đây ta dùng ??? để chỉ sự hiện diện của blank node. Trong trường hợpmột đồ thị sử dụng nhiều blank node, làm thế nào để phân biệt các blank node?Kết quả là bằng cách dùng một định danh (blank node identifiers), có dạng_:name, để chỉ sự hiện diện của một blank node. Ví dụ như, trong ví dụ nàyđịnh danh _:johnaddress được sử dụng để chỉ blank node( là địa chỉ của MrJohn). Ta có thể viết lại tripple sau:exstaff:85740exterms:address_:johnaddress ._:johnaddressexterms:street"1501 Grant Avenue" .19_:johnaddressexterms:city“Bedford" ._:johnaddressexterms:state"Massachusetts" ._:johnaddressexterms:postalCode"01730" .3.3 Cấu trúc RDF/XML3.3.1 Cú pháp RDF/XML cơ bảnMô hình RDF thể hiện một mô hình ở mức trừu tượng để định nghĩametadata. Cú pháp RDF được dùng để tạo ra và trao đổi metadata. Cấu trúcRDF dựa trên cú pháp XML.Ví dụ: ex:index.html exterms:creation-date "August 16, 1999" .Một cú pháp RDF/XML để biểu diễn cho phát biểu trên như sau:

xmlns:exterms="http://www.example.org/terms/">

August 16, 1999

3.3.2 RDF ContainerChúng ta thường có nhu cầu mô tả các nhóm của nhiều đồ vật. Ví dụ như:1quyển sách được viết bởi nhiều tác giả, hoặc là danh sách các sinh viên trong 1khoá học, hoặc là những modules phần mềm tróng gói phần mềm v.v... RDFcung cấp nhiều kiểu và nhiều thuộc tính tích hợp sẵn giúp chúng ta mô tả đượcnhững nhóm như vậy. Bên cạnh đó, RDF cũng cung cấp một kiểu khai báo làcontainer, dùng để lưu danh sách các tài nguyên hoặc các kiểu giá trị (chuỗicác ký tự, kí số, ...). Các thành phần của 1 container có thể là các resources(gồm cả các blanknodes) hay là các literals.RDF định nghĩa 3 loại đối tượng container: Bag, Sequence, Alternative.Bag là danh sách không có thứ tự của các tài nguyên hoặc các giá trị.Nó được dùng để khai báo thuộc tính có nhiều giá trị và thứ tự của20những giá trị này không cần quan tâm đến. Bag cho phép những giá trịcó thể trùng lặp nhau.Sequence là danh sách có thứ tự của các tài nguyên hoặc các giá trị. Nóđược dùng để khai báo thuộc tính có nhiều giá trị và thứ tự của nhữnggiá trị này cần được quan tâm đến. Chẳng hạn như dùng Sequence đểlưu trữ các giá trị theo thứ tự bảng chữ cái. Sequence cho phép nhữnggiá trị có thể trùng lặp nhau.Alternative là một danh sách các tài nguyên hoặc các giá trị, được dùngđể biểu diễn các giá trị lựa chọn của một thuộc tính. Để biểu diễn mộttập hợp các tài nguyên, RDF dùng một tài nguyên mới để xác định mộttập tài nguyên cần được biểu diễn. Tài nguyên mới này phải được khaibáo như là một thể hiện của một trong các loại đối tượng container đượcđề cập ở trên. Thuộc tính type được dùng để khai báo loại đối tượngcontainer được sử dụng. Mối quan hệ thành viên giữa container và cáctài nguyên của tập hợp được xác định bằng những tên đơn giản như :“_1”, “_2”, “_3” ...3.3.3. RDF CollectionCũng dùng trong mục đích định nghĩa ra những tập hợp. Nhưng RDF containerlà định nghĩa một tập hợp mở, vì nó không báo rằng không còn có thêm những thànhviên mới nữa. Trong khi đó, RDF collection cho phép khai báo một tập hợp đóng.Cấu trúc của RDF Collection tương tự như một danh sách, có phần tử đầu (rdf:first),phần tử kế (rdf:rest)và phần tử cuối(rdf:nil).3.4. RDF SchemaRDF cung cấp một cách để mô tả các phát biểu đơn giản về các resource,sử dụng các thuộc tính và giá trị đã được định nghĩa trước. Tuy nhiên, nhu cầucủa con người đỏi hỏi phải có một khả năng để tự định nghĩa các thuật ngữ màhọ muốn dùng trong các phát biểu đó. Ví dụ như, công ty example.com muốnmô tả các lớp như exterms:Tent, và sử dụng thuộc tính exterms:model,exterms:weighInKg và exterms:packedSize để mô tả chúng hoặc là một ứngdụng nào đó muốn mô tả các lớp như ex3:Person, ex3:Company và các thuộctính như ex3:age, ex3:jobTitle, ex3:stockSymbol, ex3:numberOfEmployees...Tuy nhiên mô hình dữ liệu RDF không cung cấp những cơ chế cho việckhai báo các thuộc tính, cũng như không cung cấp bất kỳ cơ chế nào để có thểđịnh nghĩa ra những quan hệ giữa các thuộc tính và các tài nguyên. Đó sẽ làvai trò của RDF Schema, hay nói cách khác RDF Schema được dùng để định21