5. Ý nghĩa khoa học và thực tiễn
1.2.4. Ngôn ngữ Ontology
Ngôn ngữ Ontology (Ontology languages) là ngôn ngữ hình thức đƣợc sử dụng để xây dựng Ontology (Web_Ontology_Language). Nó cho phép việc mã hóa tri thức trong một lĩnh vực cụ thể và thƣờng bao gồm các quy tắc suy luận cung cấp cho việc xử lý các yêu cầu dựa trên tri thức đó. Ngôn ngữ Ontology thƣờng là ngôn ngữ khai báo, và hầu hết là những sự tổng hợp của ngôn ngữ cấu trúc, và thƣờng đƣợc xây dựng dựa trên Logic thủ tục (First- Order Logic) hoặc dựa trên Logic mô tả (Description Logic). Có rất nhiều ngôn ngữ Ontology đã đƣợc thiết kế và đƣa ra tuân theo sự tiêu chuẩn hóa, ta
sẽ tìm hiểu một số ngôn ngữ Ontology thông dụng nhất trong ngữ cảnh của Web ngữ nghĩa và biểu diễn tri thức hiện nay nhƣ RDF, RDFS và OWL.
Tìm hiểu về RDF/RDFS
RDF (Resource Description Framework): là một “bộ khung” đƣợc sử
dụng để mô tả các nguồn tài nguyên trên Internet. 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ểu thức RDF Thuộc tính
- (Properties): thuộc tính, đặc tính, hoặc quan hệ dùng để mô tả tính chất của tài nguyên.
- Phát biểu (Statements): mỗi phát biểu gồm ba thành phần sau: Subject (Tài nguyên): địa chỉ hay vị trí tài nguyên muốn mô tả Predicate (Vị ngữ): xác định tính chất của tài nguyên.
Object (Bổ ngữ): có thể là một giá trị nguyên thủy hoặc cũng có thể là một tài nguyên.
Mỗi một phát biểu (subject, predicate, object) còn gọi là một bộ ba ( triple).
- Đồ thị RDF
Là một tập hợp các RDF Triple đƣợc gọi là một đồ thị RDF (RDF Graph).
Mối quan hệ giữa các thành phần trong triple
- Namespace
Namespace là một tập các tên (name), đƣợc định dan bởi các URI, đƣợc sử dụng trong các tài liệu XML nhƣ các element type và attribute name.
- Literal
Literal đƣợ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ể đƣợc biểu diễn dƣới dạng một URI.
- Kiểu dữ liệu có cấu trúc
RDF Container: RDF sử dụng một số phần tử đặc biệt để xây dựng các danh sách, gọi là các “bộ chứa” (RDF Container). Ba phần tử chính đƣợc dùng để mô tả các nhóm là rdf:Bag, rdf:Seq và rdf:Alt.
RDF Collection: 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).
RDFS (RDF Schema)
RDFS đƣợc sử dụng để định nghĩa các nguồn tài nguyên và các lớp. Trong RDF, tất cả mọi thứ đều đƣợc coi là các nguồn tài nguyên, bản thân các lớp cũng là các nguồn tài nguyên, nhƣng bên trong nó cũng có thể là tập hợp các nguồn tài nguyên khác.
RDF/RDFS trƣớc đây đƣợc coi là một thành phần cốt yếu để biểu diễn nội dung trong Semantic Web. Tuy nhiên, chúng không đủ mạnh để mô tả thông tin một cách chi tiết. Cụ thể hơn, chúng không có các ràng buộc cục bộ giữa domain và range, các ràng buộc tồn tại, tập hợp, các thuộc tính bắc cầu nghịch đảo, đối xứng… (các thuộc tính liên quan đến logic), và đặc biệt là chúng không có chuẩn ngữ nghĩa nên khó hỗ trợ cho suy diễn, lập luận.
Điểm mạnh và giới hạn của RDF và RDFS
bản của RDF/RDFS liên quan đến tổ chức bộ từ vựng trong việc phân cấp: các quan hệ lớp con, thuộc tính con, các ràng buộc domain và range, các thể hiện của lớp. Tuy nhiên một số các đặc điểm bị thiếu. Ví dụ nhƣ:
- Tách rời các lớp: Thỉnh thoảng chúng ta muốn chỉ ra các lớp tách rời
nhau. Ví dụ lớp Male và lớp Female là tách rời, nhƣng trong RDFS chúng ta chỉ có thể để ở quan hệ lớp con, ví dụ: Female là lớp con của lớp Person
- Phạm vi giá trị của thuộc tính: rdfs:range định nghĩa dải giá trị của
thuộc tính áp dụng cho tất cả các lớp. Vì vậy trong RDF Schema chúng ta không thể khai báo các ràng buộc với dải giá trị chỉ áp dụng với một vài lớp nhất định. Ví dụ, trong RDFS chúng ta không thể định nghĩa bò chỉ ăn cỏ, trong khi các loài động vật khác cũng có thể ăn cỏ.
- Kết hợp các lớp với nhau: Đôi khi chúng ta muốn xây dụng một lớp mới
đƣợc tạo ra từ việc kết hợp các lớp khác sử dụng hợp hoặc giao hoặc bù. Ví dụ chúng ta có thể định nghĩa lớp Person bằng việc hợp hai lớp phân biệt là Male và Female. RDF Schema không cho phép chúng ta định nghĩa nhƣ vậy.
- Các ràng buộc về lực lượng: Chúng ta muốn các ràng buộc bao nhiêu
giá trị thuộc tính phân biệt có thể có hoặc bắt buộc. Ví dụ: Chúng ta thích nói rằng một ngƣời có đúng hai cha mẹ, hoặc một khóa học đƣợc dạy bởi ít nhất một giảng viên. Kiểu ràng buộc này không thể biểu diễn trong RDF Schema đƣợc
- Các đặc điểm cụ thể của thuộc tính: Nó hữu ích khi nói một thuộc tính
là bắc cầu (ví dụ “Lớn hơn”), hoặc duy nhất (“là mẹ của”), hoặc nghịch đảo của thuộc tính khác (nhƣ thuộc tính “là mẹ của”, và thuộc tính “là con của”)
Vì những hạn chế này mà chúng ta cần một ngôn ngữ ontology giàu có hơn (cách biểu diễn phong phú ) RDF Schema. Trong thiết kế một ngôn ngữ nên chú ý đến sự cân bằng giữa sức mạnh biểu diễn và hỗ trợ suy diễn hiệu quả. Nên ngôn ngữ ontology cho web (OWL – Ontology Web Language)
ra đời. OWL đƣa ra tiêu chuẩn cho ontology sử dụng trong web. Mục đích chính của OWL là sẽ cung cấp các chuẩn để tạo ra một nền tảng để quản lý tài nguyên, để chia sẻ cũng nhƣ tái sử dụng dữ liệu trên Web.
Hình 1.6. So sánh giữa RDF và RDFS
Trong hình chúng ta thấy, ở tầng RDF chỉ biểu diễn đƣợc thông tin ở dạng bộ ba. Đến tầng RDFS, thông tin đã đƣợc phân loại rõ ràng. Chẳng hạn nhƣ Quan Thanh Tho có kiểu là Lecturer và Lecturer là lớp con của Academic Staff…
Các lớp và thuộc tính trong RDF/RDFS: - RDF/RDFS định nghĩa 10 lớp cơ bản:
rdfs :Resource (Chỉ định đây là một tài nguyên) rdfs :Class (Dùng để khởi tạo một lớp)
rdfs :Literal (Lớp các giá trị nguyên thủy: chuỗi, số nguyên...) rdfs :XMLLiteral rdfs:Container
rdfs: ContainerMembershipProperty
rdf:Property (Cho biết tài nguyên thuộc lớp này là một thuộc tính - property)
rdf:Statement (Cho biết tài nguyên thuộc lớp này là một phát biểu - statement)
rdf :Bag rdf :Seq rdf :Alt rdf :list (Lớp danh sách RDF) rdf:Container
- Và một số thuộc tính:
rdf :type (Xác định kiểu cho một tài nguyên) rdfs :subClassOf (Cho biết là „lớp con của ’)
rdfs:subPropertyOf („Thuộc tính con của ’ thuộc tính) rdfs:domain (Chỉ định vùng) rdfs :range (Chỉ định tầm vực)
rdfs:label (Gán nhãn cho m ột tài nguyên) rdfs:comment (Chú thích) rdf :member (Thành viên của một lớp chứa - container)
rdf first (Phần tử đầu tiên trong một danh sách RDF) rdf :rest (Danh sách các phần tử còn lại)
rdfs :seeAlso (Các thông tin bổ sung) rdfs :isDefinedBy (Được định nghĩa bởi)
rdf :value (Gán một giá trị nào đó cho chủ thể) rdf :subject (Chủ thể của một phát biểu)
rdf :predicate (Thuộc tính của một phát biểu) rdf :object (Giá trị thuộc tính của một phát biểu)
Các lớp và thuộc tính thƣờng dùng trong RDF/RDFS chủ yếu là: Resource, Class, Property, type, label, subClassOf, subPropertyOf, domain, và range. Trong đó domain là miền tài nguyên sử dụng thuộc tính đó, còn range là phạm vi giá trị có thể gán cho thuộc tính đó. Ví dụ ta có lớp thuộc
tính là hasChild thì domain của hasChild là lớp Person, còn range là lớp số nguyên dƣơng chẳng hạn (số con từ 1 trở lên).
Ngôn ngữ OWL
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 đƣợc viết bởi XML, các thông tin OWL có thể dễ dàng trao đổi giữa các kiểu hệ thống máy tính khác nhau, sử dụng các hệ điều hành và các ngôn ngữ ứng dụng khác nhau. Mục đích chính của OWL là sẽ cung cấp các chuẩn để tạo ra một nền tảng để quản lý tài sản, tích hợp mức doanh nghiệp và để chia sẻ cũng nhƣ tái sử dụng dữ liệu trên Web. OWL đƣợc phát triển bởi nó có nhiều tiện lợi để biểu diễn ý nghĩa và ngữ nghĩa hơn so với XML, RDF và RDFS, và vì OWL ra đời sau các ngôn ngữ này, nó có khả năng biểu diễn các nội dung mà máy có thể biểu diễn đƣợc trên Web.
Các phiên bản của OWL: Hiện nay có ba loại OWL : OWL Lite, OWL DL (description logic), và OWL Full.
thứ bậc và các ràng buộc đơn giản. Ví dụ: Trong khi nó hỗ trợ các ràng buộc về tập hợp, nó chỉ cho phép tập hợp giá trị của 0 hay 1. Điều này cho phép cung cấp các công cụ hỗ trợ OWL Lite dễ dàng hơn so với các bản khác.
- OWL DL (OWL Description Logic): hỗ trợ cho những ngƣời dùng cần sự diễn cảm tối đa trong khi cần duy trì tính tính toán toàn vẹn (tất cả các kết luận phải đƣợc đảm bảo để tính toán) và tính quyết định (tất cả các tính toán sẽ kết thúc trong khoảng thời gian hạn chế). OWL DL bao gồm tất cả các cấu trúc của ngôn ngữ OWL, nhƣng chúng chỉ có thể đƣợc sử dụng với những hạn chế nào đó (Ví dụ: Trong khi một lớp có thể là một lớp con của rất nhiều lớp, một lớp không thể là một thể hiện của một lớp khác). OWL DL cũng đƣợc chỉ định theo sự tƣơng ứng với logic mô tả, một lĩnh vực nghiên cứu trong logic đã tạo nên sự thiết lập chính thức của OWL.
- OWL Full muốn đề cập tới những ngƣời dùng cần sự diễn cảm tối đa và sự tự do của RDF mà không cần đảm bảo sự tính toán của các biểu thức. Ví dụ, trong OWL Full, một lớp có thể đƣợc xem xét đồng thời nhƣ là một tập của các cá thể và nhƣ là một cá thể trong chính bản thân nó. OWL Full cho phép một ontology gia cố thêm ý nghiã của các từ vựng đƣợc định nghĩa trƣớc (RDF hoặc OWL).
Các phiên bản này tách biệt về các tiện ích khác nhau, OWL Lite là phiên bản dễ hiểu nhất và phức tạp nhất là OWL Full. Mối liên hệ giữa các ngôn ngữ con của OWL:
- Mọi ontology hợp lệ dựa trên OWL Lite đều là ontology hợp lệ trên OWL DL.
- Mọi ontology hợp lệ dựa trên OWL DL đều là ontology hợp lệ trên OWL Full.
- Mọi kết luận hợp lệ dựa trên OWL Lite đều là hợp lệ trên OWL DL.
Bảng 1.1. Các lớp và thuộc tính của OWL Classes Properties owl:AllDifferent owl:Class owl:DataRange owl:DataTypeProperty owl:DeprecatedProperty owl:DeprecatedClass owl:FunctionalProperty owl:InverseFunctionalP roperty owl:Nothing owl:ObjectProperty owl:someValuesFrom owl:Ontology owl:Restriction owl:SymmetricProperty owl:allValuesFrom owl:backwardCompatible With owl:cardinality owl:complementOf owl:distinctMembers owl:differentFrom owl:disjointWith owl:equivalentClass owl:equivalentProperty owl:hasValue owl:imports owl:incompatiblewith owl:intersectionOf owl:TransitiveProperty owl:inverseOf owl:maxCardinality owl:minCardinality owl:oneOf owl:onProperty owl:priorVersion owl:sameAs owl:sameIndividualAs owl:subClassOf owl:unionOf owl:versionInfo