Khái niệm Ontology

Một phần của tài liệu Công nghệ agent pptx (Trang 59 - 196)

3.1.1 Khái niệm

Ontology là một thuật ngữ của triết học đã được sử dụng một cách rộng rãi trong lĩnh vực trí tuệ nhân tạo và đã có nhiều định nghĩa khác nhau về ontology ([1], [4], [15], [17], [20], [36]), trong đó định nghĩa của T. Gruber là được chấp nhận rộng rãi nhất. Theo T. Gruber ([15]), Ontology là một đặc tả hình thức về khái niệm. Các yêu cầu cho biểu diễn ontology là:

• Các khái niệm được dùng trong ontology và các ràng buộc giữa các khái niệm đó phải được định nghĩa một cách rõ ràng.

• Ontology phải là dạng thông tin sao cho máy có thể hiểu được.

• Thông tin biểu diễn trong ontology phải có tính phổ quát nghĩa là thông tin đó không chỉ cho một thành phần mà cần được chấp nhận bởi một nhóm các thành phần khác nhau.

Có thể nói, ontology xác định tập các thuật ngữ dùng để mô tả và biểu diễn các khái niệm dựa trên mối quan hệ qua lại (hoặc ràng buộc) giữa các khái niệm đó. Các khái niệm trong ontology giúp cho việc dùng chung và chia sẻ tri thức giữa hai miền tri thức khác nhau.

Khi sử dụng trong hệ đa agent, ontology là một cấu trúc ngữ nghĩa được tham chiếu trong quá trình truyền thông giữa các agent, giúp các agent, với các miền tri thức quan tâm khác nhau, có thể hiểu nhau trong quá trình trao đổi (thông qua việc hiểu các message mà nó nhận được).

Để minh hoạ cho định nghĩa trên, ta xem xét ví dụ trong Hình 4.1. Các khái niệm như UserRequest, HotelRequest, TrainRequest ... được biểu diễn dưới dạng các nút trong một đồ thị có hướng. Mỗi cạnh của đồ thị đều có nhãn biểu diễn mối quan hệ giữa các khái niệm trong đồ thị. Ở đây ta có ba mối quan hệ là SubClassOf (khái niệm này là lớp con của khái niệm kia), InstanceOf (khái niệm này là thể hiện của khái niệm kia) và HasA

3.1.2 Ontology và cơ sở tri thức

Ontology biểu diễn tri thức của các agent chứ không phải về dữ liệu của một miền nào đó. Nó cung cấp tập các khái niệm biểu diễn tri thức trong miền quan tâm của các agent. Các agent sẽ thông qua ontology để hiểu nhau trong quá trình trao đổi, tương tác. Giữa ontology và cơ sở tri thức cũng có sự khác biệt ở vai trò của việc biểu diễn tri thức. Các đặc điểm thể hiện sự khác biệt này bao gồm:

• Ontology hướng tới việc mô tả tri thức như xã hội con người. Trong khi cơ sở tri thức hướng tới việc đặc tả tri thức cho một lĩnh vực cụ thể nào đó mà hệ thống cần giải quyết.

• Ontology liên quan đến tri thức miền tĩnh. Cơ sở tri thức biểu diễn các thông thông tin có thể bị thay đổi trong quá trình suy luận. Do đó, các luật và các cơ chế suy luận là thành phần rất quan trọng của cơ sở tri thức. Tri thức biểu diễn trong ontology là không đổi trong quá trình suy luận. Ontology biểu diễn các khái niệm như các hành động, các quá trình, các tài nguyên, các khái niệm đó không bị thay đổi khi có suy luận. Trong khi tri thức biểu diễn trong cơ sở tri thức là các hoạt động được thực hiện trong một hệ riêng biệt, các tài nguyên dùng để tạo nên các sản phẩm cụ thể nào đó. Những tri thức như vậy sẽ bị thay đổi trong quá trình hoạt động của hệ thống (khi có suy luận).

• Tri thức trong ontology hướng tới việc sử dụng lại và dùng chung trong các trình ứng dụng.

UserRequest HotelRequest TrainRequest Distance Position StarNumber RoomCost SubClassOf SubClassOf HasA HasA HasA HasA Cost InstanceOf Timelost Internet TicketPrice HasA HasA HasA InstanceOf Hình 3.1: Ví dụ về ontology

• Mặc dù ontology hướng tới việc miêu tả các tri thức có tính chất tĩnh nhưng nó vẫn phụ thuộc chặt chẽ vào trình ứng dụng. Nếu hai trình ứng dụng cùng chung một miền tri thức nhưng nhiệm vụ lại khác nhau thì biểu diễn ontology trong miền đó cho mỗi ứng dụng là khác nhau. Điểm này khác với cơ sở tri thức vì trong cơ sở tri thức, tri thức biểu diễn một miền xác định là nhất quán.

Trong một hệ thống gồm tập hợp nhiều agent, mỗi agent thường có cơ sở tri thức riêng của mình và hệ thống cũng có thể dùng nhiều ontology. Xét về mối quan hệ, ontology mô tả các khái niệm để từ đó mỗi agent (qua tương tác) cập nhật tri thức vào trong cơ sở tri thức của mình. Tuy nhiên, mục đích chính khi xây dựng ontology trong hệ đa agent là giúp cho quá trình tương tác và truyền thông giữa các agent.

3.1.3 Phân loại ontology

Ontology có thể được phân loại dựa trên phương pháp hình thành khái niệm. Theo H. Beck et al ([1]), có các kiểu ontology như sau:

Ontology biểu diễn (Representation ontologies hay còn gọi là meta ontologies). Kiểu ontology này nhằm khái niệm hoá và biểu diễn các tri thức theo kiểu hình thức. Ontology kiểu này định nghĩa các khái niệm như là các lớp, các mối quan hệ, các hàm hay các tiên đề được định danh (named-axiom).

Ontology chung (General ontology) hay còn gọi là ontology mức cao (upper ontology). Kiểu ontology này nhằm phân loại một tập các thực thể tồn tại trong thế giới vật chất. Nó thường biểu diễn các khái niệm chung, không phụ thuộc vào vấn đề hay miền cụ thể nào được mô tả trong ontology đó. Tri thức định nghĩa trong kiểu ontology này thường là sự vật (thing), sự kiện (event), thời gian (time), không gian (space) hoặc các khái niệm chung khác.

Ontology miền (Domain ontologies). Tri thức được định nghĩa trong kiểu ontology này là tri thức xác định một miền nào đó. Từ vựng, khái niệm được mô tả trong kiểu ontology này có mối quan hệ gần gũi với các miền tri thức tổng quát, ví dụ như hàng không, y tế…

Ontology ứng dụng (Application ontology). Mô tả các phần tri thức phụ thuộc vào một miền tri thức riêng biệt cũng như nhiệm vụ cụ thể nào đó. Một ontology ứng dụng thường biểu diễn các khái niệm liên quan trực tiếp đến việc giải quyết bài toán. Tuy được phân thành nhiều loại, nhưng thường thì ontology của một hệ thống bao gồm nhiều kiểu ontology chứ không chỉ có một kiểu ontology nhất định nào đó. Ví dụ, trong

ontology của một hệ thương mại điện tử luôn có các khái niệm thuộc kiểu ontology chung ở mức cao nhất, dưới đó sẽ là các khái niệm ứng với miền tri thức của ứng dụng thương mại điện tử đó. Trong ontology này cũng có thể có các khái niệm chỉ liên quan đến ứng dụng như các khái niệm liên quan đến cơ chế hoạt động của agent.

3.1.4 Vai trò của ontology trong tương tác giữa các agent

Ontology có thể được xem như một khuôn mẫu chung để biểu diễn ngữ nghĩa của thông tin trong một miền xác định thông qua một tập khái niệm (concept), các mối quan hệ (relation) và một tập các luật (axiom) được sử dụng để ràng buộc các khái niệm và mối quan hệ khi cần thiết. Theo [31], ontology được sử dụng cho các mục đích sau đây:

• Hỗ trợ truyền thông giữa con người, giữa con người với máy tính và giữa các hệ thống máy tính độc lập với nhau.

• Cho phép các hệ thống sử dụng lại miền tri thức • Làm cho miền tri thức trở nên rõ ràng hơn

• Phân tách hay kết hợp các miền tri thức nhờ các phép toán

Trong các trường hợp sử dụng ontology để hỗ trợ truyền thông giữa các agent phần mềm thì các ontology sẽ biểu diễn các khái niệm và các thuật ngữ được sử dụng trong quá trình tương tác giữa các agent cùng với các mối quan hệ cũng như các luật ràng buộc giữa các khái niệm, thuật ngữ đó. Để thực hiện được truyền thông giữa các agent, mỗi một agent trong hệ thống phải biết các thông tin:

• Khả năng và dịch vụ của các agent khác (có thể chỉ biết về một agent, hoặc biết tất cả các agent trong hệ thống).

• Ontology để định nghĩa các khái niệm trao đổi. (adsbygoogle = window.adsbygoogle || []).push({});

• Ngôn ngữ truyền thông agent (ACL: Agent Communication Language) mà các agent dùng để biểu diễn thông điệp.

Như vậy các agent trong hệ thống phải dùng chung một ngôn ngữ truyền thông để biểu diễn các thông điệp và trong mỗi thông điệp phải có ontology tương ứng mà agent gửi thông điệp đó sử dụng.

Có hai dạng ngôn ngữ truyền thông phổ biến là KQML (Knowledge Query and Manipulation Language) ([11]) và FIPA-ACL (Foundation Intelligent Physical Agent) ([10]). Cấu trúc các thông điệp truyền thông biểu diễn theo hai ngôn ngữ này đều có trường ontology trong đó chỉ rõ ontology mà thông điệp đó sử dụng. Agent nhận thông

điệp sẽ dựa trên nội dung trường này để xác định ontology mà agent gửi sử dụng và dựa trên các khái niệm, các thuật ngữ được biểu diễn trong ontology đó để hiệu nội dung của thông điệp.

Bảng 2.1 biểu diễn cấu trúc chung của hai ngôn ngữ KQML và FIPA-ACL. Tuy biểu diễn theo hai dạng khác nhau (KQML biểu diễn theo dạng khai báo lớp còn FIPA- ACL biểu diễn theo dạng thẻ XML) nhưng cấu trúc hai ngôn ngữ này vẫn có những điểm chung. Các trường trong KQML tương ứng với các thẻ trong FIPA-ACL.

Bảng 3.1 Cấu trúc chung của KQML và FIPA-ACL

KQML FIPA ACL (KQML-performative sender: <word> receiver: <word> language: <word> ontology: <word> content: <expression> ) <fipa-message act = “ “> <sender> </sender> <receiver> </receiver> <content> </content> <language> </language> <ontology> </ontology> <conversation- id></conversation-id> </fipa-message>

Trong phần 3.2.3, chúng ta sẽ xem xét chi tiết hơn các agent sử dụng ontology như thế nào trong quá trình tương tác.

3.2 Biểu diễn ontology

Một trong những vấn đề quan trọng khi nghiên cứu và phát triển các hệ tương tác dựa trên ontology là biểu diễn ontology. Có hai cách tiếp cận để biểu diễn ontology:

Cách tiếp cận biểu diễn ontology theo kiểu hình thức: Theo cách tiếp cận này, ontology sẽ được biểu diễn dựa trên đồ thị từ đó ta có thể xây dựng được cấu trúc đại số với các phép toán trên ontology.

Cách tiếp cận biểu diễn ontology theo kiểu không hình thức. Theo cách này, ontology sẽ được biểu diễn và sử dụng cho phát triển các hệ thống theo một ngôn ngữ nào đó được xây dựng cho mục đích riêng (ví dụ như OIL, RDF, DAML, ...) hoặc sử dụng trực tiếp ngôn ngữ lập trình (ví dụ như Java).

3.2.1 Biểu diễn ontology theo kiểu hình thức3.2.1.1 Các khái niệm 3.2.1.1 Các khái niệm 3.2.1.1 Các khái niệm

Theo P. Mitra và G. Weiderhold [28], ontology O=(G,R) được biểu diễn một cách hình thức bởi một đồ thị có hướng G và một tập các luật R, trong đó đồ thị G = (V,E) bao gồm một tập hữu hạn các đỉnh V và một tập hữu hạn các cạnh E.

Nhãn của mỗi đỉnh trong V là một xâu ký tự không rỗng biểu diễn các danh từ. Đó chính là các khái niệm (concept) hoặc các thuật ngữ (term). Nhãn của các cạnh trong E là tên của các mối quan hệ ngữ nghĩa giữa các cạnh trong V. Nhãn này có thể rỗng (null) khi mối quan hệ giữa hai khái niệm là không xác định. Mỗi cạnh có thể được biểu diễn theo dạng Statement (câu) với cấu trúc chung là Subject-R-Object (SRO). Subject và Object là các khái niệm trong V và R là mối quan hệ giữa hai khái niệm đó.

Luật trong ontology được biểu diễn dựa trên logic vị từ. Theo [28], lớp ngôn ngữ logic vị từ được lựa chọn để biểu diễn luật trong ontology là Horn Clause . Một luật r sẽ có dạng như sau:

CompoundStatement => Statement

Statement chính là một câu SRO (Subject R Object) như trình bày ở trên, trong đó subject và object có thể là nhãn của các nút trong sơ đồ ontology hoặc là giá trị của một hay nhiều nút trong ontology. Tiền đề của luật r, CompoundStatement, có thể là một giá trị Bolean (đúng hay sai) hoặc một sự liên kết các Statement.

Để minh hoạ cho các khái niệm trong phần biểu diễn ontology theo kiểu hình thức, chúng ta xem xét ví dụ như trong Hình 3.1. Ontology O1 chỉ có một khái niệm duy nhất là Phương tiện. Các ontology còn lại có nhiều hơn một khái niệm như O2 có các khái nệm Ôtô, Thuyền…. Mỗi khái niệm được biểu diễn bởi một đỉnh có hình ovan với nhãn là tên của khái niệm. Các mối quan hệ là các cạnh có hướng trong đồ thị. SubclassOf biểu diễn khái niệm này là lớp con của khái niệm kia, HasA biểu diễn khái niệm này có thuộc tính là khái niệm kia, InstanceOf biểu diễn khái niệm này là thể hiện của khái niệm kia. Như vậy, ontology được biểu diễn giống như mạng ngữ nghĩa trong biểu diễn tri thức.

Trong các phép toán trên tập ontology, các khái niệm được biểu diễn là Tên_ontology.Tên_khái_niệm (ví dụ như O2.Ôtô hay O3.XeLuxury).

Với mỗi tập các luật R sẽ có một tập các đỉnh ứng với luật đó, ký hiệu là Nodes(R). Ví dụ R = {(O2.Ôtô SubclassOf O1.Phương tiện), (O2.Thuyền SubclassOf O1.Phương tiện)} thì Nodes(R) = {O2.Ôtô, O1.Phương tiện, O2.Thuyền}.

3.2.1.2 Luật kết hợp và hàm sinh luật kết hợp

Thông thường, để biểu diễn tri thức miền trong một hệ thống lớn cần một hệ nhiều ontology. Để giải quyết tính chất không đồng nhất giữa các ontology, Mitra [28] cho rằng cần có một hàm sinh các quan hệ tương ứng giữa các khái niệm trong các ontologies khác nhau. Mỗi quan hệ như vậy gọi là một luật kết hợp (articulation rule). Mỗi hàm sinh các quan hệ như vậy gọi là hàm sinh luật kết hợp.

Đầu vào của hàm sinh luật kết hợp là hai ontology (trong tập các ontology có thể có O) và đầu ra của hàm này là một tập các luật kết hợp (trong một tập tất cả các luật có thể R) giữa hai ontology đó. Như vậy, một cách hình thức hàm sinh luật kết hợp là hàm

f: OxO → 2R, trong đó O là tập tất cả ontology có thể có và 2R là tập tất cả các tập con của những luật trong R. Chúng ta giả sử rằng các hàm sinh kết hợp là một hàm hoàn

InstanceOf HasA HasA HasA InstanceOf HasA HasA HasA HasA SubClassOf SubClassOf

Hình3.2: Ví dụ biểu diễn ontology

Phương tiện Ô tô Thuyền Giá cả Đơn vị tiền tệ Giá trị Dolla r Tàu Ô tô con XeLuxury Đơn vị tiền tệ Giá bán lẻ Giá trị Dolla r O2 O3 O1 SubClassOf Các luật kết hợp:

1. True => (O2.Ôtô SubclassOf O1.Phương tiện)

2. (X InstanceOf O3.Ôtô), (X HasA X.Giácả ), (Y InstanceOf X.Giácả) (Y HasA Y.Giátrị), (Z InstanceOf Y.Value), (adsbygoogle = window.adsbygoogle || []).push({});

chỉnh, tức là với 2 ontology cho trước, hàm này sẽ luôn luôn kết thúc và trả lại các luật kết hợp tương ứng. Như vậy, có thể định nghĩa hàm sinh luật kết hợp như sau:

Định nghĩa 1: Cho hai ontology O1, O2. Một hàm f nối hai đỉnh n1 O1 và n2 O2 được gọi là hàm sinh luật kết hợp nếu f sinh ra một cạnh (n1 R n2) hoặc (n2 R n1), với R là một quan hệ nào đó. Ký hiệu: f(O1,O2).

Hình 3.1 biểu diễn 2 luật kết hợp. Một luật kết hợp có thể có dạng đơn giản như luật số 1 hoặc phức tạp hơn nhiều như trong luật số 2 (true là mệnh đề hằng đúng). Có một số dạng hàm sinh luật kết hợp như hàm sinh bắc cầu hoặc hàm sinh nhất quán (xem chi tiết trong [28]).

3.2.1.3 Các phép toán trên tập ontology

Từ các định nghĩa ontology, các quan hệ, các luật kết hợp và các hàm sinh luật kết hợp, ta có thể xây dựng các phép toán trên ontology bao gồm các phép lựa chọn (Select), phép giao (intersection), phép hợp (union) và phép hiệu (difference).

Phép chọn

Phép chọn dùng để lựa chọn một phần trong ontology cần quan tâm. Ví dụ, khi một người chỉ quan tâm đến việc đặt chỗ khách sạn mà không quan tâm đến việc mua vé tàu hoả thì người đó chỉ cần xem xét phần ontology mô tả yêu cầu về khách sạn và bỏ đi các khái niệm mô tả yêu cầu liên quan đến các chuyến tàu. Phép Select được định nghĩa theo 2 dạng như sau:

Định nghĩa 2: Cho một ontology O = ((N,E),R) và một đỉnh n N, phép chọn select(O,n) = (Gn,Rn) với Gn = (Nn, En) là một đồ thị con của G sao cho với tất cả các đỉnh n’ trong Nn, tồn tại một đường đi từ n đến n’ trong G. Trong đó, En = {e=(n1Rn2) E| n1,n2 Nn} là tập sao cho mỗi cạnh trong En biểu diễn một quan hệ giữa n1 và n2 trong Nn; Rn = {r R|Nodes(r) Nn} là một tập các luật lấy ra từ tập R tất cả các luật trong O ứng với các khái niệm trong Nn.

Định nghĩa 3: Cho một ontology O = ((N, E), R) và một tập các đỉnh V. Phép chọn được định nghĩa là Select(O,V) = (G, Rv) với G = (V, Ev), Ev = {e= (n1 Rn2) E|n1,n2

V} và Rv = {r R|Nodes(r) V}.

Xem xét lại ví dụ đã trình bày trong Hình 3.1. Ontology O3 chứa các cạnh (O3.XeLuxury SubClassOf O3.Ôtôcon) và (O3.XeLuxury HasA O3.Giábánlẻ). Phép Select(O3, Ôtôcon) sẽ chọn ra tất cả các đỉnh có thể thu được từ đỉnh Ôtôcon trong

Một phần của tài liệu Công nghệ agent pptx (Trang 59 - 196)