3.1.1 Khái niệm
Trong khoa học máy tính, Ontology là biểu diễn hình thức của một tập các khái niệm trong miền cụ thể và các mối quan hệ giữa các khái niệm. Ontology được dùng để suy luận về các thuộc tính của miền, có thể được dùng để định nghĩa miền [56].
Theo lý thuyết, Ontology là một đặc tả hình thức, rõ ràng của một khái niệm được dùng chung [56]. Một Ontology cung cấp một bảng từ vựng dùng chung, bảng từ vựng này có thể được sử dụng để mô hình hóa một miền, cung cấp các đối tượng và (hoặc) các khái niệm đang có, và các thuộc tính cùng với các mối quan hệ của chúng.
Ontologies được sử dụng trong trí tuệ nhân tạo, Web ngữ nghĩa, công nghệ phần mềm, trong tin sinh, thư viện học, và kiến trúc thông tin như một dạng biểu diễn tri thức về thế giới hoặc một về một miền ứng dụng c ụ thể.
3.1.2 Tổng quan về Ontology
Ontology là mô hình mô tả tri thức về miền ứng dụng cụ thể, biểu diễn các đối tượng, các khái niệm, cùng với các thuộc tính và các mối quan hệ.
15
3.1.2.1 Các thành phần của Ontology
Ontologies hiện nay có chung các cấu trúc giống nhau và không quan tâm tới ngôn ngữ mà chúng được thể hiện. Hầu hết các Ontology miêu tả các thực thể (các đối tượng), các lớp (các khái niệm), các thuộc tính và các mối quan hệ.
Các thành phần phổ biến của các Ontologies bao gồm : - Các thực thể: các đối tượng (các đối tượng cơ bản).
- Các lớp: các khái niệm về các đối tượng, hoặc các loại vật chất.
- Các thuộc tính: các đặc tính, đặc trưng, các đặc điểm hoặc các tham số mà các đối tượng (và các lớp) có thể có.
- Các mối quan hệ: các cách để các lớp, các thực thể có thể được liên kết tới các lớp (hoặc thực thể) khác.
- Các thuật ngữ chức năng: các cấu trúc phức tạp được hình thành từ các quan hệ đã biết, sử dụng thuật ngữ thích hợp trong một phát biểu.
- Các giới hạn: các mô tả được phát biểu phải chính xác và hợp lệ.
- Các quy tắc: các phát biểu dưới dạng mệnh đề if – then (điều kiện – kết quả) miêu tả suy luận logic.
- Các tiền đề: các khẳng định (bao gồm các quy tắc) trong một hình thức logic và đồng thời bao gồm toàn bộ lý thuyết mà Ontology miêu tả trong miền ứng dụng của nó.
- Các sự kiện: các thay đổi của các thuộc tính hoặc các mối quan hệ. Các Ontology thường được mã hóa bởi các ngôn ngữ Ontology.
3.1.2.2 Các thực thể
Các thực thể (các đối tượng) là các thành phần cơ bản, mức cơ sở của một Ontology. Các thực thể trong một Ontology bao gồm các đối tượng cụ thể như người, động vật, bàn ghế, xe ô tô, … cũng như các đối tượng trừu tượng chẳng hạn như các số, các từ. Một Ontology có thể không cần bất kỳ thực thể nào, nhưng mục đích của Ontology là đưa ra phương pháp phân loại các thực thể, ngay cả khi những thực thể này không là thành phần trong Ontology.
16
3.1.2.3 Các lớp
Các lớp có thể được định nghĩa như là một sự mở rộng (extension) hoặc như một độ tăng cường (intension) [58]. Theo như định nghĩa mở rộng, các lớp là các nhóm, các bộ hoặc các tập hợp các đối tượng trừu tượng. Theo định nghĩa độ tăng cường, các lớp là các đối tượng trừu tượng được định nghĩa bởi các dạng giá trị, các dạng giá trị này là các ràng buộc cho phần tử của lớp. Trong định nghĩa mở rộng cho thấy một lớp là một tập các lớp con. Còn định nghĩa theo độ tăng cường, giữa các tập hợp và các lớp có nhiều khác nhau cơ bản. Các lớp có thể phân loại các thực thể, phân loại các lớp khác, hoặc kết hợp cả hai phân loại. Ví dụ về lớp:
- Người, lớp toàn bộ con người, hoặc đối tượng trừu tượng có thể được mô tả bởi các tiêu chuẩn cho một người.
Một lớp là mở rộng khi và chỉ khi lớp đó được mô tả bởi mọi phần tử của lớp. Nếu một lớp không thỏa mãn điều kiện này, khi ấy nó là độ tăng cường. Các lớp mở rộng hoạt động tốt hơn và xử lý tính toán tốt hơn, và cũng ít nhập nhằng, thì lại không cho phép phân biệt rõ ràng giữa các lớp. Trong khi đó, các lớp được định nghĩa cường độ thường có các điều kiện cần để liên kết với các phần tử trong mỗi lớp. Một vài lớp cũng có thể có các điều kiện đủ, và trong các trường hợp này sự kết hợp các điều kiện cần và đủ làm cho lớp được định nghĩa đầy đủ.
Một lớp có thể là lớp con (hoặc kiểu con) của một lớp nào đó (lớp cha), và tạo ra một hệ phân cấp các lớp. Lớp con được thừa kế thuộc tính từ lớp cha. Vì vậy, bất cứ điều gì đúng đối với lớp cha thì cũng đúng với tất cả các lớp con của nó.
17
Một phân vùng là một tập các lớp có liên quan cùng với các quy tắc được liên kết. Các quy tắc được liên kết cho phép các phân chia các đối tượng bởi các lớp con thích hợp. Chẳng hạn, hình 3.1 hiện thị một phần của một Ontology có một phân vùng của lớp ―Car‖ với các lớp con ―2-Wheel Drive Car‖ và ―4-Wheel Drive Car‖. Các quy tắc phân vùng xác định nếu có một Car cụ thể thì được phân loại bởi lớp ―2-Wheel Drive Car‖ hoặc bởi lớp ―4-Wheel Drive Car‖.
Các quy tắc phân vùng bảo đảm rằng một Car cụ thể không thể được tồn tại trong cả hai lớp, khi ấy, phân vùng đó được gọi là một phân vùng rời. Nếu quy tắc phân vùng đảm bảo mọi đối tượng cụ thể trong lớp cha là một đối tượng thuộc ít nhất một trong các lớp con, thì phân vùng đó được gọi là một phân vùng đầy đủ.
3.1.2.4 Thuộc tính
Các đối tượng trong Ontology có thể được mô tả bởi liên kết của chúng với những đối tượng khác, những liên kết này thường được gọi là các thuộc tính, mặc dù có thể là những liên kết độc lập. Loại đối tượng và loại thuộc tính xác định loại quan hệ giữa chúng. Một đối tượng dựa vào thuộc tính để liên kết tới đối tượng khác. Ví dụ: đối tượng Nguyễn_Quốc_Đại có các thuộc tính chẳng hạn như:
- <có_tên> Nguyễn_Quốc_Đại - <có_quê> Hà_Nội
- <học> k50_khoa_học_máy_tính
Giá trị của một thuộc tính có thể có một kiểu dữ liệu phức tạp.
3.1.2.5 Các mối quan hệ
Các mối quan hệ giữa các đối tượng trong Ontology chỉ ra các đối tượng đó có liên quan như thế nào đến những đối tượng khác. Và quan hệ giữa các lớp cụ thể dẫn đến quan hệ giữa các đối tượng trong các lớp đó.
Các quan hệ trong Ontology xuất phát từ khả năng muốn miêu tả các liên kết giữa các khái niệm. Tập hợp các loại quan hệ được sử dụng để thể hiện ngôn ngữ biểu diễn Ontology.
Loại quan hệ quan trọng nhất là quan hệ is-a-superclass-of, quan hệ này là nghịch đảo is-a-subtype-of. Các quan hệ này xác định các đối tượng được phân loại do các lớp
18
trong Ontology . Với thí dụ trong hình 3.2, lớp Ford Explorer is-a-subclass-of 4-Wheel Drive Car, 4-Wheel Drive Car is-a-subclass-of Car và Car is-a-superclass-of 4-Wheel Drive Car.
Hình 3.2. Ví dụ về lớp ô tô
Các quan hệ is-a-subclass-of tạo ra một cấu trúc dạng cây miêu tả các đối tượng liên quan đến một đối tượng khác như thế nào.
Quan hệ phổ biến khác là quan hệ được part-of, mô tả các đối tượng kết hợp lại với nhau như thế nào để hình thành các đối tượng ghép. Thí dụ, nếu Ontology về lớp ô tô (hình 3.2) được mở rộng bao gồm khái niệm Steering Wheel, thì có quan hệ dạng ―Steering Wheel is-by-definition-a-part-of-a Ford Explorer‖. Khi Ontology thêm vào các quan hệ part-of thì cấu trúc cây trở nên phức tạp và gặp nhiều khó khăn để biên dịch bằng tay. Tương tự quan hệ is-a-subclass-of và is-by-definition-a-part-of-a, các Ontology thường bao gồm các quan hệ bổ sung để mô tả ngữ nghĩa cho miền ứng dụng cụ thể. Chẳng hạn như các quan hệ:
- Các quan hệ giữa các lớp.
- Các quan hệ giữa các đối tượng.
- Các quan hệ giữa một đối tượng và một lớp.
- Các quan hệ giữa một đối tượng riêng lẻ và một tập đối tượng. - Các mối quan hệ giữa các tập đối tượng.
Các quan hệ trong một miền cụ thể được dùng để lưu trữ các kiểu dữ liệu cụ thể hoặc trả lời các câu hỏi đặc biệt.
19
3.2 Ngôn ngữ Web Ontology (Web Ontology Language)
Ngôn ngữ Web Ontology – OWL (Web Ontology Language) là một họ ngôn ngữ biểu diễn tri thức cho các Ontology, và được xác nhận bởi W3C (World Wide Web Consortium). Họ các ngôn ngữ này phần lớn dựa trên hai ngữ nghĩa: ngữ nghĩa OWL DL và OWL Lite. Trong khi đó OWL Full sử dụng một mô hình ngữ nghĩa mới nhằm cung cấp tính tương thích với RDF Schema. Các Ontology OWL đa số thường sử dụng cú pháp RDF/XML, và OWL là một trong các công nghệ nền tảng hỗ trợ Web ngữ nghĩa (Semantic Web).
Khung mô tả tài nguyên – RDF (Resource Description Framework) là một hệ thống các đặc điểm kỹ thuật của W3C (World Wide Web Consortium) được thiết kế độc đáo như một mô hình siêu dữ liệu. RDF được dùng để mô tả khái niệm hoặc mô hình hóa thông tin [61].
RDF Schema (viết tắt khác như RDFS, RDF (S), RDF-S, hoặc RDF/S) là một ngôn ngữ biểu diễn tri thức mở rộng, cung cấp các thành phần cơ bản để mô tả Ontology. RDF Schema còn được gọi là từ vựng RDF, dùng để cấu trúc các tài nguyên RDF [62].
3.2.1 OWL Ontology
Trong OWL Ontology, dữ liệu được mô tả như một tập các đối tượng và một tập các thuộc tính liên kết các đối tượng với nhau. OWL Ontology có một tập các ràng buộc giữa các lớp và các quan hệ giữa các lớp đó. Các ràng buộc này cung cấp ngữ nghĩa cho Ontology, vì có thể cho phép hệ thống tìm các thông tin bổ sung dựa vào dữ liệu đã biết.
Ví dụ, Ontology có ràng buộc thuộc tính ―hasMother‖ chỉ được liên kết giữa hai đối tượng khi thuộc tính ―hasParent‖ cũng liên kết giữa hai đối tượng đó. Các đối tượng của lớp ―HastypeOBlodd‖ không liên quan đến các đối tượng của lớp ―HasTypeABBlood‖ thông qua thuộc tính ―hasParent‖. Nếu có phát biểu Harriet liên kết tới đối tượng Sue qua quan hệ ―hasMother‖ và Harriet là một đối tượng của lớp ―HastypeOBlodd‖. Từ đó, có thể được suy luận rằng Sue không là đối tượng của lớp ―HasTypeABBlood‖.
20
3.2.2 Mối quan hệ logic mô tả (Description logics – DLs)
Việc xây dựng Ontology quy mô lớn thường có sai sót trong các định nghĩa về lớp, thuộc tính. Chẳng hạn, với quan hệ ―is-a‖ thì có 18 cách sử dụng khác nhau. Do vậy, OWL xử lý sai sót dựa vào logic mô tả. Logic mô tả (Description logics – DLs) là một hệ thống các quy tắc, và Ontology sử dụng DLs để xây dựng lên ngữ nghĩa.
3.2.3 Các dạng OWL
W3C (World Wide Web Consortium) đưa ra định nghĩa về ba dạng khác nhau của OWL, với các mức độ mô tả khác nhau là OWL Lite, OWL DL và OWL Full.
OWL Lite hỗ trợ cho những người dùng cần một phân loại phân cấp và các ràng buộc đơn giản. Chẳng hạn, OWL Lite hỗ trợ các ràng buộc về số lượng thì chỉ cho phép số lượng đó có giá trị là 0 hoặc 1. OWL Lite cung cấp các công cụ hỗ trợ nhằm làm đơn giản các quan hệ nhiều ý nghĩ a. Tuy nhiên trong thực tiễn, các đặc trưng OWL Lite được kết hợp để hình thành nên cấu trúc có sẵn trong OWL DL.
OWL DL được thiết kế để cung cấp khả năng mô tả tối đa nhất, trong khi giữ lại tính đầy đủ, tính quyết định và tính sẵn dùng của những thuật toán suy luận mang tính thực tế. OWL DL bao gồm tất cả các cấu trúc ngôn ngữ OWL, nhưng chỉ có thể được sử dụng trong các giới hạn đã biết.
OWL Full được hình thành dựa trên các ngữ nghĩa khác nhau từ OWL Lite và OWL DL. OWL Full được thiết kế để đảm bảo tính tương thích với RDF Schema. Trong OWL Full một lớp có thể được xử lý đồng thời như một tập các đối tượng, điều này không được cho phép trong OWL DL. OWL Full cho phép một Ontology bổ sung nghĩa của các từ vựng được định nghĩa từ trước. Những thiết lập dưới đây mô tả quan hệ giữa các dạng OWL, nhưng điều ngược lại không đúng:
- Mỗi Ontology OWL Lite hợp lệ là một Ontology OWL DL hợp lệ. - Mỗi Ontology OWL DL hợp lệ là một Ontology OWL Full hợp lệ. - Mỗi kết luận OWL Lite hợp lệ là một kết luận OWL DL hợp lệ. - Mỗi kết luận OWL DL hợp lệ là một kết luận OWL Full hợp lệ.
21
3.3 Sesame
3.3.1 Khái niệm về Sesame
Chúng tôi giới thiệu trong phần 3.2, khung mô tả tài nguyên – RDF (Resource Description Framework) là một hệ thống các đặc điểm kỹ thuật của W3C (World Wide Web Consortium) được thiết kế độc đáo như một mô hình siêu dữ liệu. RDF được dùng để mô tả khái niệm hoặc mô hình hóa thông tin.
RDF Schema (viết tắt khác như RDFS, RDF (S), RDF-S, RDF/S) là một ngôn ngữ biểu diễn tri thức mở rộng, cung cấp các thành phần cơ bản để mô tả Ontology. RDF Schema còn được gọi là từ vựng RDF, dùng để cấu trúc các tài nguyên RDF.
Sesame là một Java framework mã nguồn mở để lưu trữ, truy vấn và suy luận đối với RDF và RDF schema [59]. Sesame có thể được sử dụng như là một cơ sở dữ liệu cho RDF và RDF Schema, hoặc là một thư viện Java cho các ứng dụng cần tìm kiếm thông tin bên trong RDF.
Nếu một ứng dụng cần đọc một file RDF lớn, tìm thông tin thích hợp, và sử dụng thông tin đó. Sesame cung cấp những công cụ cần thiết để phân tích, biên dịch, truy vấn và lưu trữ tất cả các thông tin này, nhúng vào trong ứng dụng đó. Ngoài ra, Sesame cung cấp một công cụ chứa đựng các tính năng hữu ích đối với RDF.
3.3.1.1 Sesame Server
Sesame có thể được sử dụng như là một máy chủ với các ứng dụng khách có thể giao tiếp thông qua HTTP. Sesame có thể được triển khai như là một ứng dụng Java Servlet trong Apache Tomcat – một webserver hỗ trợ Java Servlets và ngôn ngữ JSP.
22
3.3.1.2 Kho dữ liệu và suy luận (Repositories and Inferencing)
Sesame framework có khái niệm về kho dữ liệu (repository). Một kho dữ liệu là một bộ lưu trữ cho RDF hoặc là một cơ sở dữ liệu quan hệ. Hầu hết các tương tác của Sesame đều liên quan tới kho dữ liệu, khi thêm dữ liệu RDF thì bổ sung vào một kho dữ liệu nào đó, và thực hiện truy vấn đối với một kho dữ liệu cụ thể.
Với một tập RDF và (hoặc) RDF schema, Sesame hỗ trợ suy luận RDF Schema (RDF Schema inferencing). Sesame có thể tìm thấy thông tin ẩn trong kho dữ liệu do dễ dàng thêm các thông tin ẩn đó vào kho dữ liệu.
3.3.1.3 Tổng quan kiến trúc Sesame
Hình 3.4. Kiến trúc của Sesame [59]
Tầng lưu trữ và suy luận (the Storage And Inference Layer – SAIL API) là giao diện chương trình ứng dụng bên trong Sesame (internal Sesame API - Application program interface) cung cấp hỗ trợ suy luận (hình 3.4). Các xử lý của SAIL cung cấp chức năng như bộ nhớ đệm hoặc xử lý truy cập đồng thời. Mỗi kho dữ liệu Sesame có đối tượng SAIL riêng để biểu diễn cho kho dữ liệu đó.
23
Trong kiến trúc của Sesame (hình 3.4), phía trên SAIL, là các module chức năng của Sesame, chẳng hạn như các công cụ truy vấn SeRQL, RQL và RDQL, module quản trị, và module trích xuất file RDF. Truy cập vào các module chức năng có sẵn thông qua các giao diện chương trình ứng dụng truy cập của Sesame (Sesame's Access APIs), bao gồm hai phần riêng biệt: Repository API và Graph API. Repository API cung cấp quyền truy cập bậc cao vào các kho dữ liệu Sesame, chẳng hạn như truy vấn, lưu trữ các file RDF, trích xuất file RDF,… Graph API cung cấp nhiều hỗ trợ bổ sung