1.5.1. Giới thiệu
Nhƣ chúng ta đã biết RDF là một cách để mô tả thông tin về các tài nguyên Web một cách linh động. Nó đƣợc sử dụng để mô tả nhiều loại thông tin ví dụ nhƣ thông tin về cá nhân, về hệ thống mạng toàn cầu, meta-data về multimedia nhƣ music và hình ảnh cũng nhƣ là cung cấp một phƣơng tiện để tích hợp các nguồn tài nguyên khác. Với một lƣợng thông tin quá lớn nhƣ vậy, làm thế nào dữ liệu có thể đƣợc truy vấn nhanh chóng và chính xác? Tổ chức W3C đã phát triển một ngôn ngữ chuẩn để truy vấn dữ liệu RDF với việc cung cấp nhiều chức năng cho các developer và end users cách để viết và thực thi một câu truy vấn. Kỳ này mô tả ngôn ngữ truy vấn Protocol And RDF Query Language (SPARQL) để truy cập dữ liệu RDF đƣợc phát triển bởi nhóm RDF Data Access Working Group-một phần trong hoạt động của Semantic Web.
Một RDF Graph là một tập các bộ ba subject, predicate và object. Những bộ này có thể đến từ nhiều tài nguyên khác nhau. Ví dụ nhƣ: chúng có thể đến từ một tài liệu RDF, chúng có thể đƣợc suy ra từ các RDF triple khác hoặc là chúng có thể là sự mô tả RDF của các dữ liệu đƣợc lƣu trữ từ các định dạng khác nhƣ XML hay là từ một cơ sở dữ liệu quan hệ.
SPARQL là một ngôn ngữ để truy cập thông tin từ các đồ thị RDF. Nó cung cấp các tính năng sau:
- Trích thông tin trong các dạng của URI, các blank node và các plain hay typed literals.
- Trích thông tin từ các đồ thị con.
- Xây dựng một đồ thị RDF mới dựa trên thông tin trong đồ thị truy vấn.
1.5.2. Cú pháp truy vấn Cú pháp của câu truy vấn
Các giá trị đƣợc đặt trong dấu „<>‟ dùng để chỉ một định danh URI. Các giá trị đƣợc đặt trong dấu (“ “) là các giá trị literal.
Biến trong ngôn ngữ truy vấn có giá trị toàn cục. Biến thƣờng bắt đầu với kí tự „?‟ hay kí tự „$‟ để chỉ một biến.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
SPARQL cung cấp một cơ chế viết tắt. Tiếp đầu ngữ (prefix) có thể đƣợc định nghĩa và một QName sẽ cung cấp một dạng viết làm cho URI có thể ngắn gọn. Sau đây là một cách viết tắt cho triple pattern
PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?title
WHERE {<http://example.org/book/book1> dc:title ?title } Ta có thể sử dụng một cách viết tắt :
PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX : <http://example.org/book/>
SELECT $title
WHERE { :book1 dc:title $title } Blank node
Blank node có thể xuất hiện trong một mẫu truy vấn. Nó giữ vai trò nhƣ một biến, dù không đƣợc đề cập trong kết quả của câu truy vấn hay bất kỳ nơi nào ở trong graph pattern.
Blank node trong các câu truy vấn khác với với các blank node trong dữ liệu, do đó blank node trong một graph pattern không tƣơng ứng với một blank node trong dữ liệu thông qua một nhãn blank node.
Ví dụ: - Dữ liệu
@prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Chuong Nguyen" .
_:a foaf:mbox <> . - Truy vấn
PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?mbox
WHERE
{ ?x foaf:name "Chuong Nguyen" . ?x foaf:mbox ?mbox }
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
mbox
Danh sách predicate-Object
Các triple pattern với một subject chung có thể đƣợc viết sao cho subject đó chỉ đƣợc viết 1 lần, mỗi triple pattern sẽ đƣợc cách nhau bởi dấu „;‟
?x foaf:name ?name ; foaf:mbox ?mbox .
Cách viết trên tƣơng tự với cách viết: ?x foaf:name ?name .
?x foaf:mbox ?mbox .
1.5.3. Rằng buộc dữ liệu
Trong phần này giới thiệu từ vựng RDF để tạo ra những phát biểu về những ràng buộc vào việc dùng những thuộc tính và những lớp trong dữ liệu RDF. Ví dụ, một RDFS có thể mô tả những hạn chế dựa trên các loại giá trị mà hợp lệ đối với một số thuộc tính. RDFS cung cấp một cơ chế để mô tả những ràng buộc, nhƣng không cho biết một ứng dụng phải xử lý các thông tin ràng buộc này nhƣ thế nào. Ví dụ, trong khi RDFS có thể khẳng định rằng một thuộc tính author đƣợc dùng để chỉ thị những tài nguyên mà tài nguyên đó là thành viên của lớp Person thì nó không cho biết một ứng dụng cần phải họat động nhƣ thế nào trong việc xử lý thông tin đó. RDFS có thể mô tả những ràng buộc quan hệ nhiều mục từ vựng từ nhiều giản đồ phát triển độc lập. Từ khi các URI đƣợc dùng để xác định các lớp và các thuộc tính thì nó có thể tạo ra những thuộc tính mới mà thuộc tính domain hay range của nó ràng buộc tham chiếu tới các lớp định nghĩa trong khôn gian tên khác. Những ràng buộc rdfs:domain và rdfs:range là những ràng buộc về thuộc tính, các luật mà thuộc tính rdfs:subPropertyOf và rdfs:subClassOf không nên tạo ra những vòng lặp, cộng với những ràng buộc sử dụng kỹ thuật có thể mở rộng
rdfs:ConstraintResource. Những ứng dụng khác nhau có thể hoạt động khác nhau khi làm việc với những RDF. Một số các ví dụ của các ràng buộc bao gồm:
Giá trị của một thuộc tính phải là một tài nguyên của một lớp rõ ràng. Điều này đƣợc biết nhƣ một ràng buộc range. Ví dụ, một ràng buộc range áp dụng
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
cho thuộc tính author có thể mô tả rằng giá trị của thuộc tính author phải là một tài nguyên của lớp Person.
Một thuộc tính có thể đƣợc dùng dựa trên các tài nguyên của một lớp nhất định. Điều này đƣợc biết nhƣ một ràng buộc domain. Ví dụ, thuộc tính author chỉ có thể bắt nguồn từ một tài nguyên mà tài nguyên đó là môt thể hiện của lớp Book.
Mặc dù mô hình dữ liệu RDF không cho phép những thuộc tính rõ ràng nhƣ thuộc tính rdf:type để gán cho những Literal, tuy nhiên, chúng ta coi nhƣ những thực thể này là thành viên của các lớp (ví dụ: chuỗi “John Smith” là thành viên của lớp rdfs:Literal).
rdfs:ConstraintResource.
Tài nguyên này định nghĩa ra một lớp con của rdfs:Resource mà thể hiện của chúng là những kết cấu RDFS liên quan tới các biểu thức ràng buộc. mục đích của lớp này là cung cấp một cơ chế để cho phép các bộ xử lý RDF đánh giá khả năng của chúng để dùng thông tin ràng buộc kết hợp với mô hình RDF.
rdfs:ConstraintProperty.
Tài nguyên này định nghĩa ra một lớp con của rdf:Property, tất cả các thể hiện cua chúng đều là các thuộc tính sử dụng để xác định các ràng buộc. Lớp này là lớp con của rdfs:ContraintResource và tƣớng tác với tậpcon của lớp đó để biểu diễn những thuộc tính. Cả rdfs:domain và rdfs:range là các thể hiện của rdfs:ConstraintProperty.
rdfs:range.
Là một thể hiện của rdf:property, chúng đƣợc dùng để chỉ rõ rằng giá trị của một thuộc tính là thể hiện của một hay nhiều hơn một lớp. Bộ ba: P rdfs:range C chỉ ra rằng P là một thể hiện của lớp rdf:Property, trong đó C là một thể hiện của lớp rdfs:Class và những tài mguyên đó thể hiện bởi những tân ngữ của bộ ba mà vị từ của chúng là P và là thể hiện của lớp C.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ở đâu P có hơn một thuộc tính rdfs:range, thì ở đó những tài nguyên bao gồm những tân ngữ của những bộ ba với vị từ P là những thể hiện của tất cả những lớp đƣợc chỉ ra bởi những thuộc tính rdfs:range. Thuộc tính rdfs:range có thể đƣợc áp dụng cho chính nó. Rdfs:range của rdfs:range là một lớp rdfs:Class. Điều này chỉ ra rằng đó là giá trị của một thuộc tính rdfs:range và là thể hiện của rdfs:Class. Thuộc tính rdfs:range đƣợc áp dụng cho những thuộc tính. Điều này có thể đƣợc biểu diễn trong RDF sử dụng thuộc tính rdfs:domain. rdfs:domain của rdfs:range là lớp rdf:Property. Điều này chỉ ra rằng bất kỳ tài nguyên nào có thuộc tính rdfs:range là thể hiện của rdf:Property.
rdfs:domain.
Là một thể hiện của rdf:Property và chúng đƣợc dùng để chỉ rằng bất kỳ tài nguyên nào có một thuộc tính đã cho là một thể hiện của một hay nhiều hơn một lớp. Một bộ ba P rdfs:domain C chỉ rằng P là một thể hiện của lớp rdf:Property, mà C là một thể hiện của lớp rdfs:Class và những tài nguyên chỉ ra bởi các chủ ngữ của bộ ba mà vị từ của bộ ba nào là P thì chúng là những thể hiện của lớp C. Nơi nào thuộc tính P có nhiều hơn hơn thuộc tính rdfs:domain thì những tài nguyên đƣợc chỉ thị bởi chủ ngữ của bộ ba với vị từ P là thể hiện của tất cả các lớp chỉ ra bởi thuộc tính rdfs:domain. Thuộc tính rdfs:domain có thể áp dụng cho chính nó. rdfs:domain của rdfs:domain là lớp rdf:Property và điều đó chỉ ra rằng bất kỳ tài nguyên nào có giá trị của thuộc tính rdfs:domain là một thể hiện của rdf:Class.
RDFS sử dụng những thuộc tính ràng buộc để ràng buộc những thuộc tính riêng của nó có thể dùng nhƣ thế nào. Những ràng buộc này đƣợc biểu diễn trong hình . Chú ý những hình có đƣờng viền đậm bên ngoài là thể hiện của rdfs:Class.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1. 6 Những ràng buộc trong RDFS.
Ví dụ: tiếp tục với ví dụ lúc trƣớc về MotorVehicle, trong ví dụ này, chúng ta định nghĩa ra hai thuộc tính registeredTo và rearSeatLegRoom. Thuộc tính registeredTo áp dụng cho MotorVehicle và giá trị của nó là một Person. Vì lợi ích của ví dụ này, rearSeatLegRoom chỉ áp dụng cho Minivans và PassengerVehicles mà giá trị là một number. <rdf:RDF xml:lang="en" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdf:Description ID="registeredTo"> <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax- ns#Property"/> <rdfs:domain rdf:resource="#MotorVehicle"/> <rdfs:range rdf:resource="#Person"/> </rdf:Description> <rdf:Description ID="rearSeatLegRoom">
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ <rdf:type resource="http://www.w3.org/1999/02/22-rdf-syntax- ns#Property"/> <rdfs:domain rdf:resource="#PassengerVehicle"/> <rdfs:domain rdf:resource="#Minivan"/> <rdfs:range rdf:resource="http://www.w3.org/2000/03/example/classes#Number"/> </rdf:Description> </rdf:RDF> 1.6. Tổng kết chƣơng 1
Trong chƣơng này, luận văn đã trình bày khái quát các chiến lƣợc tìm kiếm thông tin, sự thiếu hụt của web hiện tại và sự ra đời của Sematic Web, giới thiệu về kiến trúc phân tầng Web ngữ nghĩa, nền tảng của web ngữ nghĩa và truy vấn dữ liệu trong RDF.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƢƠNG 2: CÔNG NGHỆ XÂY DỰNG WEB NGỮ NGHĨA 2.1. Ontology và ngôn ngữ web OWL
2.1.1. Khái niệm Ontology
Trƣớc hết ta cần phải biết Ontology là gì? Nói một cách đơn giản ontology là tập từ vựng để mô hình hóa thế giới bên ngoài, nó đƣa ra các khái niệm cơ bản và định nghĩa quan hệ giữa các khái niệm đó trong một miền lĩnh vực. Đồng thời ontology còn cung cấp các ràng buộc, là các giả định cơ sở về ý nghĩa mong muốn của bộ từ vựng[5].
Ontology đƣợc xây dựng nhằm các mục đích sau:
Chia sẻ hiểu biết chung về cấu trúc thông tin giữa con ngƣời và phần mềm agent Sử dụng lại tri thức về một miền lĩnh vực đã đƣợc xây dựng từ trƣớc
Trong hình trên ta thấy các ứng dụng khác nhau, muốn trao đổi thông tin với nhau thì cần phải có một tri thức chung, vì vậy các ứng dụng này đều sử dụng một ontology để có thể chia sẻ tri thức cho nhau.
Ontology đƣợc sử dụng rộng rãi trong công nghệ tri thức, trí tuệ nhân tạo, và khoa học máy tính trong các ứng dụng liên quan đến quản lý tri thức, xử lý ngôn ngữ tự nhiên, thƣơng mại điện tử, tích hợp thông tin, tìm kiếm thông tin, thiết kế cơ sở dữ liệu.
2.1.2. Thành phần của Ontology
Ontology đƣợc sử dụng nhƣ là một biểu mẫu trình bày tri thức về thế giới hay một phần của nó[5].
Ontology thƣờng miêu tả:
* Thực thể: Các đối tƣợng cơ bản, nền tảng. * Lớp: Các tập hợp, hay kiểu của các đối tƣợng.
* Thuộc tính: Thuộc tính, tính năng, đặc điểm, tính cách, hay các thông số mà các đối tƣợng có và có thể đem ra chia sẻ.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Bộ từ vựng ontology đƣợc xây dựng trên cơ sở tầng RDF và RDFS, cung cấp khả năng biểu diễn ngữ nghĩa mềm dẻo cho tài nguyên Web và có khả năng hỗ trợ lập luận.
Thực thể (Individuals) – Thể hiện
Cá thể là thành phần cơ bản của một ontology. Các cá thể trong một ontology có thể bao gồm các đối tƣợng rời rạ .. , cũng nhƣ các đối tƣợng trừu tƣợng nhƣ con số và từ.
Lớp (Classes) - Khái niệm
ững nhóm, bộ hoặc tập hợp các đối tƣợng. Một lớp có thể gộp nhiều lớp hoặc đƣợc gộp vào lớp khác. Một lớp gộp vào lớp khác đƣợc gọi là lớp con của lớp gộ ọng của quan hệ xếp gộp là tính kế thừa.
Thuộc tính (Properties)
Các đối tƣợng trong ontology có thể đƣợc mô tả thông qua việc khai báo các thuộc tính của chúng. Mỗi một thuộc tính đều có tên và giá trị của thuộc tính đó. Các thuộc tính đƣợc sử dụng để lƣu trữ các thông tin mà đối tƣợng có thể có. Ví dụ, đối với một cá nhân có thể có các thuộc tính: Họ_tên, ngày_sinh, quê_quán, số_cmnd…
Giá trị của một thuộc tính có thể có các kiểu dữ liệu phức tạp.
Mối quan hệ (Relation)
Quan hệ giữa các đối tƣợng trong một ontology cho biết các đối tƣợng liên hệ với đối tƣợng khác nhƣ thế nào. Sức mạnh của ontolgy nằm ở khả năng diễn đạt quan hệ. Tập hợp các quan hệ cùng nhau mô tả ngữ nghĩa của domain. Tập các dạng quan hệ đƣợc sử dụng và cây phân loại thứ bậc của chúng thể hiện sức mạnh diễn đạt của ngôn ngữ dùng để biểu diễn ontology.
Ontology thƣờng phân biệt các nhóm quan hệ khác nhau. Vd: Quan hệ giữa các lớp
Quan hệ giữa các thực thể
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Quan hệ giữa một đối tƣợng đơn và một tập hợp Quan hệ giữa các tập hợp.
2.1.3. Phƣơng pháp xây dựng Ontology
Trong những năm gần đây, một loạt các phƣơng pháp luận khác nhau đƣợc thiết kế để trợ giúp cho việc tiến hành phát triển các nhiệm vụ đƣợc báo cáo trong tài liệu trí tuệ nhân tạo. Các phƣơng pháp truyền thống gồm Cyc (Lenat & Guha 1990), Uschold và King (Uschold $ King 1995), Gruninger và Fox (Gruninger $ Fox 1995), Kactus (Kactus 1996),và Methontology (Fernandez-Lopez, Gomes-Perez & Juritso 1997) [3].
Các phƣơng pháp luận cung cấp các chỉ dẫn chung và có cấu trúc. Nếu làm theo có thể tăng quy trình phát triển và cải tiến chất lƣợng cho kết quả cuối cùng. Theo nhƣ đánh giá phƣơng pháp luận “Methontology” là phƣơng pháp luận thiết kế ontology phổ biến nhất (đƣợc hỗ trợ môi trƣờng WebODE).
2.1.4. OWL (Ontology Web Language)
OWL (The Web Ontology Language) là một ngôn ngữ gần nhƣ XML dùng để mô tả các hệ cơ sở tri thức. OWL là một ngôn ngữ đánh dấu dùng để xuất bản và chia sẻ dữ liệu trên Internet thông qua những mô hình dữ liệu gọi là “ontology”. Ontology mô tả một lĩnh vực (domain) và diễn tả những đối tƣợng trong lĩnh vực đó cùng những mối quan hệ giữa các đối tƣợng này. OWL là phần mở rộng về từ vựng của RDF và đƣợc kế thừa từ ngôn ngữ DAML+OIL Web ontology – một dự án đƣợc hỗ trợ bởi W3C. OWL biểu diễn ý nghĩa của các thuật ngữ trong các từ vựng và mối liên hệ giữa các thuật ngữ này để đảm bảo phù hợp với quá trình xử lý bởi các phần mềm.
OWL đƣợc xem nhƣ là một kỹ thuật trọng yếu để cài đặt cho Semantic Web trong tƣơng lai. OWL đƣợc thiết kế đặc biệt để cung cấp một cách thức thông dụng trong việc xử lý nội dung thông tin của Web. Ngôn ngữ này đƣợc kỳ vọng rằng sẽ cho phép các hệ thống máy tính có thể đọc đƣợc thay thế cho con ngƣời. Vì OWL