2.3.1 Khái niệm
Có những định nghĩa khác nhau về ontology [38],[37],[50],[53]. Trong các định nghĩa đó thì định nghĩa của Thomas Gruber [50] được thừa nhận rộng rãi [7], [21], [27]. Ông định nghĩa ontology là một đặc tả rõ ràng và chính xác của một khái niệm phức tạp. Thuật ngữ “ontology” là từ vay mượn từ triết học, trong đó Ontology là một
miêu tả có hệ thống của Sự tồn tại. Đối với các hệ thống trí tuệ nhân tạo, những gì “tồn tại” thì đều có thể biểu diễn được. Trong trí tuệ nhân tạo, chúng ta có thể mơ tả ontology bằng cách định nghĩa một tập hợp các thuật ngữ tiêu biểu. Trong ontology đó gồm: các định nghĩa kết hợp tên (của các lớp, các mối quan hệ, các chức năng, hay các đối tượng khác) với các từ ngữ mô tả ý nghĩa của các tên đó, và những ràng buộc về cách trình diễn và sử dụng các thuật ngữ này.
Trên thực tế, một ontology thường định nghĩa bộ từ vựng với các truy vấn trao đổi giữa các agent với nhau. Các cam kết của ontology là các thỏa thuận để sử dụng bộ từ vựng dùng chung sao cho nhất quán và chặt chẽ. Các agent dùng chung một bộ từ vựng khơng cần phải có chung một cơ sở tri thức; mỗi agent có thể biết kiến thức mà các agent khác không biết, và một agent thỏa hiệp với một ontology không nhất thiết phải đáp ứng hết tất cả các truy vấn trong bộ từ vựng dùng chung.
Sau đây là một số định nghĩa tiêu biểu khác về ontology:
Borst[9] đưa ra một định nghĩa cụ thể hơn so với định nghĩa của Gruber: ontology là một đặc tả hình thức của một khái niệm phức tạp dùng chung. “Dùng chung” ở đây có nghĩa là ontology nên phản ánh các tri thức được số đơng mọi người chấp nhận, “hình thức” có nghĩa là một máy tính có thể hiểu được ontology đó.
Uschold và Jasper[52]: có thể có một vài dạng ontology khác nhau nhưng chúng luôn luôn chứa một riêng và một số đặc tả đi kèm. Chúng bao gồm các định nghĩa và các mối quan hệ về sự tương quan giữa các khái niệm
37
Neches [39] định nghĩa ontology không chỉ là một tập hợp các thuật ngữ và các mối quan hệ về từ vựng của một chủ đề nào đó mà cịn có các quy tắc để kết hợp các thuật ngữ và các mối quan hệ đó với nhau để xác định phần từ vựng mở rộng.
Gruninger và Fox [17] định nghĩa ontology là một mơ tả mang tính hình thức của các thực thể, các thuộc tính, các mối quan hệ, các ràng buộc, và các hành vi.
Noy và McGuinness [43] cho rằng ontology là một mơ tả hình thức rõ ràng và chính xác về các khái niệm trong một lĩnh vực, trong đó mỗi khái niệm có các thuộc tính miêu tả một vài đặc điểm, tính chất và các ràng buộc đối với các thuộc tính đó.
2.3.2 Các thành phần của ontology
Có nhiều kỹ thuật khác nhau để thiết kế và biểu diễn ontology như các các kỹ thuật kỹ nghệ phần mềm hay các kỹ thuật CSDL v.v…. biểu diễn cùng một tri thức dưới các mức độ chi tiết khác nhau nhưng chúng đều có các thành phần cơ bản như sau [48]:
Các lớp: biểu diễn các khái niệm. Các lớp hỗ trợ đa thừa kế, một lớp có thể có
một vài lớp cha.
Các thuộc tính: biểu diễn đặc điểm của các khái niệm. Phạm vi của các thuộc
tính là một kiểu dữ liệu (kiểu chuỗi, kiểu số, kiểu logic, v.v…).
Các quan hệ: biểu diễn các kiểu kết hợp giữa các khái niệm với nhau. Đơi khi
có thể dùng các mối quan hệ dạng nhị phân để biểu diễn các thuộc tính của khái niệm. Tuy nhiên phạm vi của một quan hệ là một khái niệm.
Các thể hiện: biểu diễn các phần tử cụ thể. Chúng là các thực thể riêng của một
lớp. Có thể tạo ra các thể hiện mới, gán các giá trị cho thuộc tính và quan hệ.
Các hàm số (function): biểu diễn các trường hợp đặc biệt của quan hệ trong đó
phần tử thứ n của quan hệ là duy nhất và khác biệt so với n-1 phần tử trước đó.
38
Theo Andreia Malucelli[6], các bước để tiến hành mơ hình một ontology như sau:
Xác định phạm vi và lĩnh vực của ontology bằng cách xác định phạm vi sử dụng ontology, các câu hỏi liên quan đến ontology và ai sẽ sử dụng và duy trì ontology.
Cân nhắc việc tái sử dụng các ontology đã có sẵn.
Liệt kê các thuật ngữ quan trọng trong ontology.
Định nghĩa các thuộc tính của các lớp (hay cịn gọi là các slot).
Định nghĩa các giá trị của thuộc tính: kiểu giá trị, các giá trị cho phép và bản số.
Tạo các thể hiện của một lớp.
2.3.3 Phân loại ontology
Có nhiều cách khác nhau để phân loại ontology, tiếp sau đây luận văn xin trình bày một số cách phân loại ontology:
Van Heijst [54] phân chia ontology theo dạng tri thức được biểu diễn:
Ontology ứng dụng: định nghĩa các khái niệm cần thiết cho việc biểu diễn tri
thức trong một ứng dụng cụ thể. Thơng thường, chúng cụ thể hóa các thuật ngữ trong các ontology chung hoặc ontology miền. Các ontology này rất khó sử dụng lại.
Ontology lĩnh vực: định nghĩa các khái niệm và các quan hệ trong một lĩnh vực
cụ thể nào đó. Các ontology này có thể sử dụng lại được trong một lĩnh vực cho trước (xe ô tô, kỹ nghệ, y học,…).
Ontology chung: định nghĩa các khái niệm độc lập trong một lĩnh vực chung.
Các tri thức biểu diễn trong ontology này có thể dùng lại được trong các lĩnh vực khác. Chúng định nghĩa các khái niệm như các sự kiện, thời gian, không gian, nguyên nhân, hành vi, v.v…
39
Ontology biểu diễn: dùng các từ gốc dùng để hình thức hóa tri thức trong một
mẫu biểu diễn tri thức cho trước. Chúng cung cấp các định nghĩa hình thức về các từ gốc đại diện thường được dùng trong các ngôn ngữ dựa theo cấu trúc và cho phép xây dựng các ontology khác bằng các quy ước dựa cấu trúc.
Uschold và Gruninger [53] phân loại ontology tùy theo mức độ hình thức của các thuật ngữ, tri thức biểu diễn ontology có thể giống nhau nhưng cách giải thích tri thức khác nhau, các tác giả phân chia ontology thành bốn loại sau:
Khơng hình thức: khi biểu diễn trong các ngơn ngữ tự nhiên. Ontology này có lẽ
khá tối nghĩa và mơ hồ do tính nhập nhằng nội tại của ngơn ngữ tự nhiên.
Bán khơng hình thức: khi biểu diễn trong các dạng thu hẹp và có cấu trúc của
ngơn ngữ tự nhiên. Dạng ontology này đã có cải thiện trong việc giảm thiểu tính nhập nhằng.
Bán hình thức: khi biểu diễn trong các ngơn ngữ nhân tạo (đã được định nghĩa
một cách hình thức).
Hình thức hồn tồn: khi định nghĩa chính xác với các ngữ nghĩa hình thức, các
định lý và các thuộc tính.
Guarino [18] phân chia ontology thành bốn loại dựa theo mức độ tổng quát như sau:
Ontology mức đỉnh: thường mô tả các khái niệm rất chung chung hoặc các tri
thức chung không phụ thuộc vào một lĩnh vực hay một bài toán cụ thể nào.
Ontology miền: đưa ra các từ vựng về một lĩnh vực chung.
Ontology tác vụ: định nghĩa các khái niệm liên quan đến việc thực thi một công
việc hay một hoạt động cụ thể.
Ontology ứng dụng: mô tả các khái niệm phụ thuộc vào một lĩnh vực hay một
cơng việc riêng biệt nào đó. Các ontology này thường mở rộng và chuyên biệt hóa các ontology miền và ontology tác vụ.
40
2.3.4 Các công cụ phát triển Ontology
Bộ công cụ xây dựng và phát triển Ontology bao gồm các công cụ hỗ trợ và môi trường giúp người dùng có thể xây dựng một Ontology mới từ bản thiết kế mới hoặc sử dụng lại những Ontology mới có sẵn. Một trình chỉnh sửa ontology thường hỗ trợ việc định nghĩa các khái niệm, các thuộc tính, các ràng buộc và hệ thống các khái niệm… Các trình chỉnh sửa này cũng cung cấp các giao diện đồ họa và tuần theo các tiêu chuẩn chung cho phát triển phần mềm trên Web, có thể phát triển ontology, kiểm tra, duyệt, mã hóa và bảo trì nó bằng trình chỉnh sửa ontology .
Một số mơi trường phát triển được xây dựng từ trước như Ontosaurus, Ontolingua và WebOnto. Các bộ công cụ này được xây dựng đơn thuần nhằm hỗ trợ duyệt và biên tập các Ontology được viết bằng những ngôn ngữ riêng (Ontolingua, LOOM và OCML). Những bộ công cụ editor này hiện nay khơng cịn đáp ứng đủ nhu cầu của người sử dụng. Thế hệ mới các bộ công cụ xây dựng Ontology có nhiều ưu việt cũng như tính năng hơn hẳn các bộ cơng cụ này, ví dụ như khả năng mở rộng, hệ thống kiến trúc các thành phần – giúp người dùng có thể cung cấp thêm các tính năng cho mơi trường phát triển một cách dễ dàng. Những bộ công cụ mới được sử dụng nhiều gần đây bao gồm OntoEdit, OilED,WebODE, Chimera DAG- Edit và Protégé [46].
Một trong những bộ công cụ được sử dụng rộng rãi nhất hiện nay là Protégé 2000, được phát triển bởi trường ĐH Stanford. Bộ công cụ này được phát triển dựa trên hai mục tiêu: có thể tương thích với các hệ thống khác, dễ dàng sử dụng và hỗ trợ các cơng cụ trích chọn thơng tin. Phần chính của mơi trường này là một ontology editor. Bên cạnh đó, Protégé cịn bao gồm rất nhiều các plugins nhằm hỗ trợ chức năng như quản lý nhiều ontology, dịch vụ suy luận, import/export ngôn ngữ ontology (hỗ trợ về vấn đề ngôn ngữ ontology) [2].
Hình 2.2 là một số nhận xét về các bộ công cụ trên dựa trên một số tiêu chí đánh giá: kiến trúc phần mềm và sự phát triển cơng cụ, sự tương thích với các bộ cơng cụ khác, cách biểu diễn tri thức, các dịch vụ inference tích hợp vào bộ cơng cụ và khả năng sử dụng:
41
Hình 2.2. So sánh các cơng cụ xây dựng Ontology.
2.3.5 Các ngôn ngữ Ontology
Các ngôn ngữ Ontology bao gồm: LOOM, LISP, Ontolingua, XML, SHOE, OIL, DAML+OIL và OWL [2]. Ngôn ngữ ontology cần phải tương thích với những cơng cụ khác, tự nhiên và dễ học, tương thích với các chuẩn hiện tại của web như XML, XML Schema, RDF và UML. Dưới đây là một số các ngôn ngữ dựa trên nền web [2].
EXtensible Markup Language (XML) là một chuẩn mở dùng để biểu diễn dữ
liệu từ W3C, có tính mềm dẻo và mạnh hơn so với HTML. RDF (Resource Description Framework) được phát triển như một framework giúp mô tả và trao đổi các siêu dữ liệu
42
SHOE (Simple HTML Ontology Extensions) được xây dựng vào năm 1996 tại
trường ĐH Maryland, như một mở rộng của HTML để có thể hợp nhất các tri thức ngữ nghĩa trên các văn bản web hiện tại thơng qua việc chú thích các trang HTML
OIL (Ontology Inference Layer) là mở rộng của RDF, được phát triển bởi dự án
ON-To_Knowledge, là ngôn ngữ mô tả và trao đổi cho ontology.
DAML+OIL được phát triển dựa trên dự án DARPA năm 2000. Cả OIL
và DAML+OIL đều cho phép mô tả các khái niệm, các taxonomy, các quan hệ nhị phân, chức năng và thực thể.
OWL là một ngôn ngữ ontology được sử dụng nhiều hiện nay, được tối ưu hoá
cho việc trao đổi dữ liệu và chia sẻ tri thức. Ngôn ngữ này được sử dụng khi thông tin chứa trong văn bản cần được xử lý bởi các ứng dụng. OWL là một ngơn ngữ DL based, có thể được xử dụng để biểu diễn ngữ nghĩa các thuật ngữ trong tập từ vựng và mối quan hệ giữa những thuật ngữ này. OWL bao gồm OWL Lite, OWL DL (RDF) và OWL FULL.
2.4 MƠ HÌNH TÍCH HỢP THƠNG TIN DỰA TRÊN ONTOLOGY
2.4.1 Vai trị của Ontology trong tích hợp thơng tin
Như trong đã trình bày ở trên, ontology được định nghĩa là “một đặc tả rõ ràng
và chính xác của một khái niệm phức tạp” [50]. Do vậy có thể sử dụng ontology trong
tích hợp để mơ tả ngữ nghĩa của các nguồn thông tin cũng như xác định và kết hợp các khái niệm tương đương về mặt ngữ nghĩa [20].
Sử dụng ontology trong tích hợp dữ liệu có rất nhiều thuận lợi như sau [3]: ontology cung cấp một bộ từ vựng đầy đủ được định nghĩa từ trước và độc lập với các lược đồ CSDL; những tri thức được biểu diễn bởi ontology mang tính tồn diện và hỗ trợ tốt cho việc chuyển đổi giữa tất cả các nguồn thơng tin có liên quan; ontology cũng hỗ trợ việc quản lý nhất quán và nhận dạng các dữ liệu không nhất quán; v.v…
Theo H. Wache và H. Stuckenschmidt [19], [20], trong hầu hết các phương pháp tích hợp dựa trên ontology đều sử dụng các ontology để diễn tả ngữ nghĩa của nguồn thơng tin. Có rất nhiều cách khác nhau để thực thi ontology trong đó có ba hướng tiếp cận chính là đơn ontology, đa ontology và cách tiếp cận lai.
43
2.4.1.1 Cách tiếp cận đơn ontology
Cách tiếp cận đơn ontology sử dụng một ontology tổng quát cung cấp bộ từ vựng dùng chung để xác định ngữ nghĩa, tất cả các nguồn thông tin đều liên quan trực tiếp đến một ontology tổng quát này (hình 2.3).
Có thể áp dụng cách tiếp cận đơn ontology cho bài tốn tích hợp trong trường hợp tất cả các nguồn thơng tin cần tích hợp có các mức thể hiện dữ liệu khá giống nhau trong cùng một lĩnh vực (mức độ chi tiết giống nhau). Nếu một nguồn thông tin biểu diễn dữ liệu hơi khác so với các nguồn thông tin khác trong một lĩnh vực, ví dụ, khác mức độ chi tiết, khi đó sẽ rất khó tìm ra giao kết ontology tối thiểu. Ví dụ, nếu hai nguồn thơng tin đều cung cấp các đặc tả chi tiết về sản phẩm nhưng lại tham khảo từ hai danh mục sản phẩm khác nhau hồn tồn, khi đó sẽ rất khó để phát triển lên một ontology tổng quát từ hai danh mục sản phẩm khác nhau. Tích hợp các nguồn thông tin tham chiếu tới các danh mục sản phẩm tương tự nhau dễ dàng hơn nhiều. Hơn nữa, cách tiếp cận đơn ontology cũng dễ dàng bị ảnh hưởng khi các nguồn thơng tin thay đổi do nó ảnh hưởng đến q trình khái niệm hóa các lĩnh vực được biểu diễn trong ontology. Khi một nguồn thơng tin thay đổi có thể dẫn đến việc thay đổi ontology tổng quát và ánh xạ đến các nguồn thông tin khác.
Hình 2.3. Cách tiếp cận đơn ontology.
2.4.1.2 Cách tiếp cận đa ontology
Trong cách tiếp cận đa ontology, mỗi nguồn thông tin được miêu tả bởi ontology của riêng nó (hình 2.4). Có thể thấy ngay thuận lợi của cách tiếp cận này là không cần đến giao kết chung và tối thiểu cho một ontology tổng quát. Có thể phát
44
triển riêng mỗi ontology nguồn mà không cần quan tâm đến các nguồn khác cũng như các ontology của chúng - không cần phải có ontology chung cho tất cả các nguồn.
Hình 2.4. Cách tiếp cận đa ontology.
Có thể dễ dàng thay đổi kiến trúc ontology trong cách tiếp cận đa ontology, ví dụ, sửa đổi trong một nguồn thông tin, thêm hoặc bớt thông tin trong các nguồn. Tuy nhiên trên thực tế sẽ cực kỳ khó để đối chiếu giữa các ontolog nguồn khác nhau nếu thiếu một bộ từ vựng chung. Để giải quyết vấn đề này cần có cách biểu diễn sự ánh xạ giữa các ontology. Ánh xạ này xác định các thuật ngữ tương đương về mặt ngữ nghĩa giữa các ontology nguồn khác nhau, và xem xét các mức độ dữ liệu khác nhau trong cùng một lĩnh vực ví dụ như xem xét các khái niệm ontology ở các mức chi tiết và mức kết hợp khác nhau. Nhưng trong thực tiễn rất khó để định nghĩa rõ ánh xạ giữa các ontology bởi vì có q nhiều vấn đề về sự khơng đồng nhất ngữ nghĩa.
2.4.1.3 Cách tiếp cận lai
Cách tiếp cận lai là sự kết hợp của hai cách tiếp cận đơn ontology và đa ontology nhằm khắc phục những hạn chế của chúng (hình 2.5). Tương tự như cách tiếp cận đa ontology, mỗi nguồn thơng tin có ontology riêng, các ontology này không được ánh xạ tới các ontology cùng cấp mà ánh xạ tới một ontology dùng chung tổng quát để