Ngôn ngữ truyền thông giữa các agent

Một phần của tài liệu Đề tài nghiên cứu khoa học lập trình hướng agent (Trang 31)

Các agent trao đổi với nhau thông qua các thông điệp. Khác với hệ hướng đối tượng, thông điệp trong hệ đa agent không chỉ biểu diễn các lời gọi hàm mà còn phải biểu diễn thông tin và tri thức cần trao đổi giữa các agent. Các thông điệp này được biểu diễn theo

các ngôn ngữ truyền thông agent (ACL: Agent Comminucation Language) nhằm mục đích:

• Định nghĩa khuôn dạng các thông điệp để trao đổi giữa các agent trong hệ thống. • Thiết lập một giao thức trao đổi giữa các agent, bao gồm: định nghĩa các kiểu thông

điệp gửi và nhận, các mô hình trao đổi thông điệp giữa các agent.

Các ngôn ngữ truyền thông đều dựa trên lý thuyết hành động - lời nói (speech-act) ([11]). Mỗi thông điệp bao giờ cũng phải mô tả đầy đủ người gửi, người nhận, mục đích của lời nói và ngữ nghĩa của lời nói. Một hành động - lời nói đầy đủ không chỉ định nghĩa cấu trúc lời nói mà còn xác định hành động liên quan đến lời nói đó. Có nhiều ngôn ngữ truyền thông đa agent đã được đưa ra trong đó hai ngôn ngữ truyền thông được sử dụng rộng rãi nhất nhất là KQML ([11]) và FIPA-ACL ([10]).

KQML (Knowledge Query and Manipulation Language)

Đây là một ngôn ngữ được phát triển theo dự án DARPA trong khoảng thời gian đầu những năm 1990 [11]. KQML định nghĩa ngôn ngữ và giao thức cho quá trình chuyển đổi thông tin và tri thức trong hệ đa agent.

KQML định nghĩa ba mức là mức nội dung, mức thông điệp và mức truyền thông. Mỗi thông điệp KQML định nghĩa một hành động thoại, ngữ nghĩa đi kèm hành động thoại đó, giao thức và một tập các thuộc tính. Cấu trúc chung của một thông điệp KQML như sau

(performative-name : sender A : receiver B : content X : language L : ontology N : reply-with W : in-reply-to P)

Mỗi một thông điệp KQML tương ứng với một dạng tương tác trong trường performative-name. Có tới 25 dạng tương tác (performative) đã được định nghĩa bao gồm ask-one, advertise, broadcast, insert... Đồng thời, KQML cho phép mở rộng và định nghĩa thêm các dạng tương tác khác khi cần thiết.

Trường content mô tả nội dung của thông điệp. Nội dung này có thể rất phức tạp tuỳ thuộc vào nhu cầu trao đổi thông tin của hai agent trong phiên liên lạc đó. Agent nhận sẽ hiểu được nội dung trong trường content bằng cách tham chiếu vào

trường ontology của thông điệp mà nó nhận được. KQML cũng định nghĩa các giao thức truyền thông bao gồm cả thứ tự các thông điệp, các perormative. Ví dụ một giao thức truyền thông được định nghĩa trong KQML như Hình 2.1:

Hình 2.1: Một giao thức truyền thông trong KQML

FIPA-ACL (Foudation for Intelligent Physical Agent)

FIPA-ACL (Foundation Intelligent Physical Agent) là ngôn ngữ truyền thông agent được phát triển năm 1997. FIPA-ACL cũng dựa trên lý thuyết hành động - lời nói và có cấu trúc tương tự như KQML. FIPA-ACL sử dụng XML theo dạng như sau [10]: <fipa-message act = “ “> <sender> </sender> <receiver> </receiver> <content> </content> <language> </language> <ontology> </ontology> <conversation-id> </conversation-id> </fipa-message>

So với KQML, FIPA-ACL linh động hơn và có thể dễ dàng thêm vào các dạng tương tác mới. Tuy nhiên, FIPA-ACL không định nghĩa các performative theo kiểu sử dụng thành phần trung gian (facilitator) như trong KQML. Đó là các performative như broker hay advertise.

Một phần của tài liệu Đề tài nghiên cứu khoa học lập trình hướng agent (Trang 31)

Tải bản đầy đủ (DOC)

(191 trang)
w