Như chúng ta đã biết, cách đơn giản để truyền thông tin giữa các agent là sử dụng thông điệp ACL với nội dụng là các chuỗi hoặc có kiểu chuỗi byte. Tuy nhiên, trong thực tế, các agent cần phải giao tiếp những thông tin phức tạp hơn. Ví dụ, để phân biệt các cuốn sách với nhau, ít nhất chúng ta cũng phải đưa ra các đặc điểm như tên sách, tên tác giả và nhà sản xuất. Khi mô tả những chuỗi thông tin như vậy, ta cần phải điều chỉnh sao cho đúng cú pháp để bên nhận có thể hiểu được nội dung thông điệp sau khi tách ra từng gói tin cụ thể (tên sách, tên tác giả, nhà sản xuất) theo các thuật ngữ của FIPA. Những cú pháp đó được gọi là ngôn ngữ nội dung. FIPA đã định nghĩa ngôn ngữ SL dùng để giao tiếp giữa hai agent đặc biệt của JADE là AMS và DF. Ví dụ sau đây mã hóa thông tin liên quan tới sách theo ngôn ngữ SL:
(Book :title “Programming Multi Agent System with JADE” :authors (sequence “ F.Bellifemine” “G.Caire” “D.Greenwood”) :editor Wiley)
Ý nghĩa của biểu thức này là miêu tả các đặc điểm của một cuốn sách có: • Tên sách: Programming Multi Agent System with JADE
• Các tác giả: F.Bellifemine, G.Caire và D.Greenwood • Nhà sản xuất: Wiley
Để hiểu được biểu thức này, agent bên nhận phải có những hiểu biết chung với agent bên gửi về các khái niệm: book, title, authors, editor. Tập các khái niệm đó được định nghĩa trong một tài liệu gọi là Ontology. Ontology có tính chất phụ thuộc vào miền ứng dụng. Mỗi miền ứng dụng khác nhau có tập Ontology khác nhau. Ví dụ, Ontology trong miền mua bán chứng khoán khác với Ontology trong miền mua bán sách.
Tuy nhiên, cách trao đổi thông tin theo kiểu chuỗi chỉ phù hợp cho việc đưa trực tiếp thông tin đó vào trong một thông điệp ACL. Điều này gây bất tiện cho agent khi xử lý thông điệp vì tại mỗi thời điểm có thông điệp được trao đổi, agent phải thực hiện một số bước:
• Bên gửi cần chuyển đổi mô tả bên trong thành biểu thức nội dung ACL và bên nhận phải thực hiện chuyển đổi ngược lại.
• Bên nhận cần phải thực hiện một số thao tác kiểm tra ngữ nghĩa để xác minh rằng các thông tin nhận được tuân theo các quy tắc của Ontology chung.
Với sự hỗ trợ của JADE trong việc cung cấp Ontology và ngôn ngữ nội dung, các bước này được thực hiện một cách tự động.
Hình 4.1: Hỗ trợ của Ontology và ngôn ngữ nội dung trong JADE
Có một số công nghệ khác có thể sử dụng như Serialization trong Java, hay XML…để miêu tả thông tin phức tạp. Tuy nhiên, chúng nằm ngoài phạm vi của bài viết này. Bạn đọc có thể tự tìm hiểu về ưu nhược điểm của từng công nghệ để có những lựa chọn phù hợp.