CHƯƠNG 1: KHÁI NIỆM 1.1 Khái niệm Ontology Ontology là một mô hình biểu diễn dữ liệu tri thức. Ontology được thể hiện qua các khái niệm, các thuộc tính trong khái niệm đó và mối liên hệ giữa các khái niệm với nhau. Các khái niệm này liên kết với nhau và tạo thành một lưới tri thức (knowledge graph). Ontology là một trong các mô hình biểu diễn tri thức rộng rãi và tiên tiến nhất hiện nay.
Với hình thức biểu diễn tri thức này, mô hình của các khái niệm và mối quan hệ giữa các khái niệm trong miền tri thức cho phép tri thức có thể được được chia sẻ rộng rãi. Ontology được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau như: ❖ Ứng dụng trong xử lý ngôn ngữ tự nhiên ❖ Mô hình hoá tri thức thành một lưới tri thức (knowledge graph). ❖ Ứng dụng trí tuệ nhân tạo vào các nhóm ngành, nghề cụ thể. ❖ Ứng dụng trong thư viện lưu trữ toàn thư.
Tuy nhiên, một trong những ứng dụng phổ biến nhất của ontology là trong lĩnh vực web ngữ nghĩa (Semantic Web). Đây chính là nền tảng cung cấp ngữ nghĩa cho dữ liệu, cho phép dữ liệu có thể được hiểu bởi máy tính.2 RDFS RDFS (viết tắt của Resource Description Framework Schema) là một tiêu chuẩn W3C để biểu diễn tri thức. Nó được sử dụng để biểu diễn trong hầu hết Khung tri thức (KBs) hiện nay. RDFS dựa trên 1 nhóm Resources U.
Trong đa số các ứng dụng, Resources U được tách nhỏ thành: Instance I, Relation R, Literal L và Class C, với công thức: 𝑼 = 𝑰 ∪𝑹 ∪𝑳 ∪𝑪 Trong đó: Class (hoặc type): là tên đại diện cho một nhóm các instance. Ví dụ: Class “City” là đại diện cho một tập các thực thể là thành phố. 12 Relation: là thể hiện tên mối quan hệ giữa các resources (Ví dụ: vị_trí, hoặc ngày_thành_lập). Tất cả relation r giới hạn bởi domain: dom(r) ∈ 𝑪, và range: ran(r) ∈ 𝑪.
Literal: là kiểu dữ liệu number, string, hay date. Một mệnh đề có ý nghĩa (Statement s) là tập hợp của một bộ ba (triple) thành phần: 𝑠 ∈ (𝑈 \ 𝐿 ) × 𝑅 × 𝑈 𝑠 ∈ 𝐼 × 𝑅 × 𝑈 (𝐼 ∪ 𝐿 ) Thành phần đầu tiên: chủ ngữ (subject) có mối quan hệ được đưa ra bởi: thành phần thứ hai: vị ngữ (predicate) với thành phần thứ ba: tân ngữ (object).3 Ngôn ngữ OWL Ngôn ngữ OWL (viết tắt của Web Ontology Language) là một ngôn ngữ cho phép xuất bản và chia sẻ ontology trên World Wide Web. OWL được phát triển như một phần mở rộng của RDF [6]. Như chúng ta đã biết, World Wide Web là nơi mọi thứ có thể đều chia sẻ công khai, OWL cũng cần phải làm được điều tương tự, hơn nữa cho phép nhập và trộn các bản thể luận khác nhau.
Một số trong số các bản thể luận có thể là đưa ra các nội dung gây mâu thuẫn, nhưng các thông tin mới sẽ liên tục được bổ sung, giải thích cho những mâu thuẫn đó. Để cung cấp những tính năng như vậy, cùng với hỗ trợ tính toán và suy luận trong thời gian có hạn, OWL giới thiệu ba ngôn ngữ con phục vụ cho các mục đích khác nhau: OWL Full, OWL DL và OWL Lite. ❖ OWL Full: OWL Full cung cấp khả năng diễn đạt tối đa và sự tự do về cú pháp của RDF, nhưng không cung cấp bất kỳ đảm bảo tính logic, đúng đắn nào. Đặc điểm chính của OWL Full trong so với OWL DL và OWL Lite là một lớp, theo định nghĩa, là một tập hợp các cá nhân, 13 có thể là chính cá nhân đó.
Rõ ràng là cách tiếp cận này có thể dẫn đến các mô hình cần thời gian vô hạn để tính toán. ❖ OWL DL: OWL DL (Descriptive Logic) cho phép đảm bảo và biểu đạt tối đa tính đầy đủ của logic và khả năng đảm bảo tất cả các tính toán sẽ kết thúc trong thời gian hữu hạn. Thành phần của OWL DL bao gồm: cấu trúc của OWL Full và nối thêm một số ràng buộc (relations). Các ràng buộc quan trọng nhất là lớp đó không thể là một cá nhân hoặc tài sản, hoặc tài sản đó không thể là một cá nhân hoặc giai cấp.
OWL DL có nền tảng chính thức tốt vì nó được tạo ra dựa trên logic mô tả. ❖ OWL Lite: OWL Lite chủ yếu nhằm hỗ trợ hệ thống phân cấp, phân loại đơn giản. Các tính năng trên OWL Lite tương đối hạn chế. OWL Lite là điểm khởi đầu tốt cho các thí nghiệm đơn giản.
Do vậy, ngôn ngữ này có thể hữu ích trong di chuyển các nguyên tắc phân loại hiện có sang OWL. Tựu chung lại, OWL Full là phần mở rộng của OWL DL, là phần mở rộng của OWL Lite. Do đó mọi ontology OWL Lite là OWL DL và OWL Full; mọi ontology OWL DL là OWL Full. Tuỳ theo nhu cầu thực tế, ta sẽ xem xét và chọn một ngôn ngữ con phù hợp nhất.4 Các thành phần của Ontology Ontology bao gồm các thành phần: thực thể (Individuals), lớp (Classes), thuộc tính (Properties) và quan hệ (Relations).
[3] ❖ Lớp (Classes): Lớp là các nhóm hay tập hợp các đối tượng có chung một số thuộc tính. Lớp có thể bao gồm các lớp con (subclasses), các thực thể hoặc bao gồm cả hai. Ví dụ: - Lớp “Du lịch Hà Nội”, “Di tích quốc gia đặc biệt”… - Lớp “Du lịch Hà Nội” có các lớp con là: “Ẩm thực Hà Nội”, “Bảo tàng tại Hà Nội”. ❖ Thuộc tính 14 Thuộc tính chỉ ra đặc điểm, tính chất giữa các thực thể, giữa thực thể và kiểu dữ liệu.
Ví dụ: - Thuộc tính đối tượng “vị trí” chỉ ra nơi đặt trụ sở của một “Địa điểm du lịch”. - Thuộc tính kiểu dữ liệu với một “địa điểm du lịch” có thể có các thuộc tính: tên, ngày tháng thành lập, vị trí, kinh độ, vĩ độ. Giá trị của một thuộc tính dữ liệu có thể có các kiểu dữ liệu khác nhau như kiểu chuỗi, kiểu số… ❖ Thực thể Thực thể là các thành phần cơ bản của ontology. Các thực thể là các đối tượng cụ thể, là thể hiện của một hoặc nhiều lớp.
Ví dụ về các tên con đường là tướng lĩnh, chính khách, người có công với đất nước… Ví dụ về các thực thể: đại tướng Võ Nguyên Giáp, chủ tịch nước Hồ Chí Minh, Võ Văn Kiệt, Trần Hưng Đạo, Quang Trung… ❖ Mối quan hệ Mối quan hệ được sử dụng để xác định sự liên quan của đối tượng này với một đối tượng khác bằng các thuộc tính tương ứng. Cùng với đó là tập hợp các quan hệ mô tả ngữ nghĩa của miền như quan hệ đồng nghĩa, trái nghĩa và các quan hệ khác. Điểm mạnh của Ontology là khả năng mô tả các mối quan hệ. Tập hợp các kiểu quan hệ được sử dụng và hệ thống phân cấp của chúng mô tả sức mạnh biểu đạt của ngôn ngữ mà Ontology được thể hiện.
Ví dụ: - Mối quan hệ tương đồng giữa 2 thực thể là Quang Trung & Nguyễn Huệ ❖ Các thành phần liên quan: Thuộc tính Mô tả Ví dụ owl:Ontology Định nghĩa những tóm tắt cơ bản nhất của tổng thể 1 Ontology owl:Class Định nghĩa một lớp Địa điểm du lịch Individual Các thực thể là đối tượng của các lớp và các thuộc tính có thể được sử dụng 15 để liên kết giữa thực thể này với thực thể khác. rdfs:Resource URI của thực thể rdfs:Datatype Kiểu dữ liệu - String: tên nhân vật, bài - String là kiểu giá trị đơn giản nhất viết được sử dụng cho các thuộc tính. Thể - Number: năm sinh của hiện dạng ký tự một nhân vật - Number (Float, Integer, …) mô tả - Boolean: nhân vật đã các thuộc tính có giá trị số. mất hay chưa - Bolean là kiểu giá trị có - không.
- Enumerated: Danh sách - Enumerated chỉ rõ một danh sách tuỳ chọn giới tính của các giá trị được phép cho thuộc tính. một nhân vật: Nam, Nữ. - Instance: cho phép xác định mối - Instance: một thực thể, quan hệ giữa các thực thể. Các thuộc nhân vật khác.
tính có kiểu giá trị Instance cũng phải xác định danh sách các lớp được phép mà các thực thể thuộc vào. rdfs:range Phạm vi thuộc tính giới hạn các thực thể mà thuộc tính có thể có. rdfs:domain Miền của thuộc tính giới hạn các thực Thuộc tính “công trạng” thể mà thuộc tính có thể được áp dụng. giới hạn trong thể“Danh nhân”.
rdfs:type Thể hiện loại của thuộc tính rdfs:subClassOf Thể hiện một lớp là lớp con của một Lớp “Danh nhân” là một lớp khác lớp con của lớp “Person” rdfs:subPropertyOf Thuộc tính thể hiện một thuộc tính là Thuộc tính “chức vị” thuộc tính con của một hoặc nhiều được sử dụng để liên kết thuộc tính khác 16 Cả owl:ObjectProperty và một thực thể của lớp owl:DatatypeProperty là các lớp con “Danh nhân” của lớp RDF rdf:Property. rdfs:label Nội dung thể hiện của thuộc tính. Đây là giá trị thường xuyên sử dụng. rdf:Property Thuộc tính được sử dụng để chỉ ra mối quan hệ giữa các thực thể hoặc giữa các thực thể và giá trị dữ liệu owl:equivalentClass Hai lớp có thể được cho là tương Lớp “Ô tô” là tương đương, hay còn gọi là hai lớp đồng đương với lớp “Xe hơi”.
nghĩa khi chúng có các đối tượng giống nhau owl:equivalentProperty Hai thuộc tính có thể được cho là tương đương, hay còn gọi là các thuộc tính đồng nghĩa khi chúng liên kết một thực thể owl:sameAs Hai thực thể có thể được cho là giống Thực thể “Quang Trung” nhau khi cùng đề cập đến cùng một và “Nguyễn Huệ” là hai đối tượng giống nhau thực thể giống nhau owl:differentFrom Thể hiện một thực thể có thể khác với Thực thể “Nguyễn Huệ” những thực thể khác khác với thực thể “Nguyễn Nhạc” và khác với thực thể “Võ Nguyên Giáp” 1.5 Truy vấn SPARQL SPARQL là một ngôn ngữ truy vấn thông tin, thao tác dữ liệu RDF. Hầu hết các dạng truy vấn SPARQL đều chứa một bộ ba mẫu (subject, predicate và object) được gọi là mẫu đồ thị cơ bản (basic graph pattern), trong đó mỗi thành phần trong 17 bộ ba mẫu có thể là một biến. SPARQL hỗ trợ truy vấn ngữ nghĩa, cho phép thực hiện truy vấn cả ở chủ ngữ (subject), vị ngữ (predicate) và tân ngữ (object) từ lưới tri thức. SPARQL có các thành phần truy vấn như sau: - SELECT: Trả về tất cả hoặc một tập hợp con của các biến được ràng buộc trong một mẫu truy vấn phù hợp - WHERE: Bắt đầu các điều kiện lọc - ASK: Trả về một boolean cho biết một mẫu truy vấn có khớp hay không.
- FILTER: Lọc theo điều kiện truòng dữ liệu - Regex: Cho phép tìm kiếm theo Regular Expression Ví dụ dưới đây sử dụng SPARQL để tìm thực thể có tên gọi là “Quang Trung” từ lưới tri thức.