2.2 HỆ ĐA AGENT VÀ TÍCH HỢP THÔNG TIN
2.2.1 Hệ đa agent
Nhiều agent thương mại trước đây được phát triển để tìm kiếm thơng tin. Mỗi agent riêng biệt chạy trong một phạm vi để thu thập một số kiểu thơng tin nhất định nào đó và trả về thơng tin tới người u cầu. Nói cách khác, các agent này hoạt động đơn lẻ một mình và rất ít khi tương tác với các agent khác (nếu có). Cách tiếp cận như vậy chắc chắn sẽ có những lợi ích của nó. Tuy nhiên, nếu nhìn vào thế giới con người thực, cách tiếp cận đơn độc như thế sẽ không thể xây dựng được mạng xã hội hoặc có khả năng hỗ trợ mọi người đến và tham gia các tổ chức. Thay vào đó, chúng ta thiết lập các mạng có thể tương tác lẫn nhau phục vụ cho nhiều mục đích. Tương tác giữa các agent chưa đủ để xây dựng xã hội agent, chúng ta cần các agent có thể phối hợp với nhau – dù là cộng tác, cạnh tranh hay tổ hợp của cả hai. Các “xã hội” agent này được gọi là hệ đa agent (multiagent systems – MAS). Vậy các hệ đa agent là các hệ thống bao gồm các agent kết hợp trong mối quan hệ với các agent khác và tương tác với nhau theo một cách nào đó.
32
Một agent có thể làm mọi thứ, nhưng các agent chậm chạp (fat agents) sẽ giảm về tốc độ, độ tin cậy, khả năng bảo trì, v.v…(tức là khơng có các agent tuyệt đối). Phân chia chức năng giữa các agent sẽ tăng tính mơ đun, tính linh động, dễ sửa đổi và mở rộng.
Các tri thức đặc biệt thường khơng có sẵn trong một agent đơn, khi cần có thể kết hợp tri thức từ rất nhiều nguồn (agent) khác nhau.
Các ứng dụng địi hỏi tính tốn phân tán thường được hỗ trợ tốt hơn bởi MAS. Khi đó, có thể thiết kế các agent như là các thành phần tự chủ và hoạt động song song. Các quá trình xử lý và giải quyết vấn đề đồng thời có thể cung cấp các giải pháp cho nhiều vấn đề.
Để hỗ trợ các hệ đa agent cần phải thiết lập một mơi trường thích hợp. Các mơi trường MAS phải cung cấp một cơ sở hạ tầng có các giao thức tương tác và truyền thông, thường xuyên mở hoặc thiết kế tập trung và có các agent tự chủ, thích nghi, phối hợp.
2.2.2 Mối quan hệ giữa hệ đa agent và tích hợp thơng tin
Như đã trình bày trong chương 1, các hệ đa agent là các hệ thống bao gồm các agent kết hợp trong mối quan hệ với các agent khác hoạt động tự chủ, thích nghi và phối hợp với nhau, các hệ đa agent hỗ trợ tốt các ứng dụng địi hỏi tính tốn phân tán và cũng rất phù hợp với các ứng dụng tích hợp thơng tin bởi các nguyên nhân sau:
Mỗi agent trong hệ đa agent thường đại diện cho một thành phần hay một nguồn thơng tin nào đó trong hệ thống. Do đó, các mơ hình tương tác giữa các agent sẽ là cơ sở để tích hợp thơng tin trong hệ thống.
Đặc điểm của mỗi agent trong hệ đa agent là chủ động và hướng đích. Các
agent trong hệ thống do vậy sẽ ln hành động hướng tới đích riêng của mình và chủ động trong việc tìm các thơng tin cần thiết để quyết định hành động tiếp theo cần thực hiện. Đó cũng là một trong những đặc trưng của hệ tích hợp thơng tin.
Tương tác trong hệ đa agent sử dụng ontology. Ontology có vai trị quan trọng
trong việc biểu diễn thông tin và tri thức của miền tri thức mà agent quan tâm. Do đó, thơng qua tương tác, các agent sẽ trao đổi thông tin và tri thức giữa các nguồn thơng
33
tin. Đây chính là cơ sở để giải quyết vấn đề không đồng nhất giữa các nguồn thơng tin trong tích hợp thơng tin.
Hệ đa agent có tính động. Điều này phù hợp với sự thay đổi, thêm bớt các
nguồn thông tin trong hệ thống tích hợp thơng tin. Hơn nữa, các agent ln sống (chạy
không ngừng). Do vậy hệ đa agent sẽ luôn cập nhật được những thay đổi của các
nguồn thông tin cần cho việc tích hợp.
Xét theo chiều ngược lại, tích hợp thơng tin cũng là một yêu cầu tất yếu đặt ra cho các hệ phần mềm đa agent. Điều này được thể hiện qua các điểm sau:
Các agent trong hệ đa agent là độc lập và nắm giữ một nguồn thông tin hạn chế (hoặc một tài nguyên hạn chế). Chúng bắt buộc phải tương tác với các agent khác để
hướng tới đích riêng của mình. Bản chất của các tương tác này chính là q trình gửi và nhận thơng tin giúp các agent ra quyết định về hành động tiếp theo nhằm hướng tới đích.
Các đích riêng của các agent là rất khác nhau (có khi trái ngược nhau như
trong hệ thương mại điện tử) nhưng cuối cùng các agent đều phải hướng tới đích chung của xã hội các agent. Điều này cần một chiến lược tích hợp thơng tin hiệu quả để tập hợp các thông tin được biểu diễn khác nhau trong các nguồn thông tin do các agent đơn quản lý để ra quyết định chung cho cả hệ thống.
Các giao thức tương tác trong hệ đa agent đều cần sự phối hợp và trao đổi qua lại giữa các agent. Một trong các yêu cầu đặt ra là hệ thống phải quản lý được số
lượng, tính chất và khả năng của các agent trong “xã hội agent”. Do vậy, cần phải tích hợp các thơng tin liên quan đến tính chất, khả năng của các agent trong hệ thống cũng như các nguồn thông tin mà các agent nắm giữ.
2.2.3 Cấu trúc chung của hệ đa agent tích hợp thơng tin
Sơ đồ tổng qt của một hệ đa agent tích hợp thơng tin được thể hiện trong hình 2.1, trong đó:
Các agent từ 1 đến n là các agent quản lý các nguồn thông tin. Mỗi nguồn
thông tin này lại được đặt trong một hệ thống khác nhau. Khi tích hợp thơng tin, các agent này đóng vai trị là agent thu thập thơng tin.
34
IntAgent là agent tích hợp thơng tin: có nhiệm vụ tích hợp các thơng tin thu
được từ các agent thu thập thơng tin. Q trình tích hợp này sẽ diễn ra theo một phương pháp tích hợp cụ thể.
Hình 2.1. Sơ đồ hệ đa agent tích hợp thơng tin tổng quát.
Thực tế, trong một hệ thống cụ thể khơng có sự phân biệt rạch rịi đâu là agent thu thập thơng tin và đâu là agent tích hợp thông tin. Thường mỗi agent trong hệ thống sẽ quản lý một nguồn thông tin xác định. Khi một agent cần thu thập thông tin từ các nguồn khác cho hoạt động của mình, agent đó sẽ đóng vai trị là agent tích hợp thơng tin và các agent khác sẽ là agent thu thập thông tin. Trong một thời điểm khác agent thu thập thông tin lúc trước có thể lại trở thành agent tích hợp thơng tin.
Có nhiều dạng nguồn thơng tin khác nhau như các trang Web, các file thông tin, hoặc các hệ CSDL. Luận văn chỉ tập trung tìm hiểu phương pháp tích hợp thơng tin trong đó các nguồn thơng tin được biểu diễn dưới dạng các CSDL. Trong hệ thống nhiều nguồn thông tin, mỗi nguồn thông tin là một hệ CSDL riêng thì việc tích hợp dữ liệu trong các CSDL này chính là cơ sở để tích hợp thơng tin.
Để dữ liệu trong các CSDL khác nhau có thể tích hợp được với nhau thì các CSDL này phải thoả mãn một số tính chất nhất định. Người ta dùng thuật ngữ CSDL
liên hợp để chỉ một CSDL thoả mãn điều kiện tích hợp. Cũng giống như các nguồn thơng tin nói chung, CSDL liên hợp cũng u cầu cần phải có một phương pháp tích
hợp thông tin hiệu quả để thu được thông tin phù hợp từ các CSDL khác nhau. Những đặc điểm thể hiện yêu cầu này được tổng kết trong [3], bao gồm:
35
Tính tự chủ: Tính tự chủ được thể hiện ở chỗ người dùng và ứng dụng có thể
truy cập dữ liệu thông qua hệ thống liên hợp chung của các CSDL liên hợp hoặc có thể trực thông qua hệ thống cục bộ. Nói cách khác, mỗi CSDL cục bộ có tính tự chủ, khơng chịu tác động của các hệ thống khác. Tính tự chủ thể hiện qua tính tự chủ trong thiết kế, tự chủ trong truyền thơng và tự chủ trong thực thi.
Tính phân tán: Tính phân tán là tính chất tất yếu của các CSDL liên hợp hiện
nay. Do sự phát triển của hệ thống mạng, nhất là mạng Internet, nên hiện nay hầu như khơng có hệ CSDL nào tách rời khỏi hệ thống mạng. Các nguồn thông tin, cụ thể là các CSDL, được lưu trữ về mặt vật lý trên các máy chủ khác nhau nhưng có thể liên lạc với nhau qua hệ thống mạng.
Tính khơng đồng nhất: Tính khơng đồng nhất của các CSDL có bốn loại:
không đồng nhất về cấu trúc: các mơ hình dữ liệu của các CSDL là khác nhau; không đồng nhất về cú pháp: ngôn ngữ biểu diễn và phương pháp biểu diễn dữ liệu trong các
CSDL là không giống nhau; không đồng nhất hệ thống: phần cứng và hệ điều hành
giữa các hệ thống khác nhau; không đồng nhất về ngữ nghĩa: không đồng nhất về ngữ nghĩa được chia làm ba trường hợp sau:
Các khái niệm có ngữ nghĩa tương đương: Các mơ hình dữ liệu sử dụng các
thuật ngữ khác nhau để biểu diễn cùng một khái niệm. Ví dụ đơn giản nhất cho trường hợp này chính là các từ đồng nghĩa.
Các khái niệm có ngữ nghĩa khơng liên quan: Cùng một thuật ngữ nhưng
dùng trong các hệ thống khác nhau lại biểu diễn các khái niệm hoàn toàn khác nhau. Trường hợp này xảy ra khi có từ đồng âm hoặc từ có nghĩa thay đổi tuỳ theo ngữ cảnh sử dụng.
Các khái niệm có ngữ nghĩa liên quan: Trường hợp này xảy ra khi trong các
hệ CSDL khác nhau sử dụng các khái niệm có tính chất tổng quát/phân loại hoặc chung/riêng.
Với các đặc điểm như trên, nhất là tính khơng đồng nhất về ngữ nghĩa, hệ các CSDL liên hợp địi hỏi phải có một phương pháp tích hợp thơng tin hiệu quả, giải quyết được tất cả các trường hợp mâu thuẫn về ngữ nghĩa. Phương pháp tích hợp thơng tin dựa trên ontology trong hệ đa agent đã được áp dụng cho nhiều hệ đa CSDL
36
và được khẳng định là hiệu quả cho nhiều dạng bài tốn tích hợp [3], [29], [20], [16], sẽ được trình bày chi tiết trong phần sau.
2.3 ONTOLOGY VÀ CÁC VẤN ĐỀ LIÊN QUAN
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…