Khung cơ bản của một thụng điệp đƣợc sử dụng trong quỏ trỡnh trao đổi thụng tin bao gồm cỏc thành phần sau [16]:
Người gửi: Địa chỉ ngƣời nhận.
Người nhận: Địa chỉ ngƣời gửi.
Hành động: Ngƣời gửi muốn ngƣời nhận làm gỡ.
Ngụn ngữ: Từ vựng và cỳ phỏp mà cỏc bờn trao đổi thụng tin cú thể hiểu.
Cỏc hàm mú hoỏ và giải mú.
Một thụng điệp KQML cũng đảm bảo đầy đủ cỏc thành phần này. Mỗi thụng điệp KQML cú thể đƣợc gọi là một thể hiện (performative). Một thể hiện đƣợc biểu diễn bởi một chuỗi cỏc ký tự ASCII tuõn theo cỳ phỏp tựa nhƣ ngụn ngữ lập trỡnh LISP (một ngụn ngữ lập trỡnh hƣớng đối tƣợng). Cỳ phỏp này cỳ rất nhiều ƣu điểm nhƣ: dễ hiểu (vỡ nỳ gần với ngụn ngữ tự nhiờn), dễ lập trỡnh…
Theo cỳ phỏp đú, mỗi cõu lệnh đƣợc biểu diễn bởi một cặp “tham số - giỏ trị”. Tuy vậy, khụng nhƣ cỏc hàm trong LISP, cỏc tham số trong KQML đƣợc xỏc định bởi cỏc từ khoỏ, do đú, chỳng độc lập về thứ tự. Cỏc từ khoỏ này đều đƣợc bắt đầu bởi dấu “:”, theo sau là tờn từ khoỏ [15]. Dƣới đõy là một vớ dụ về một thụng điệp KQML:
(tell : sender SellerAgent : reciver BuyerAgent : in-reply-to id9100.145 : ontology EC.CD : language Prolog
: content “price (moto1234, 20)” )
Cỳ phỏp KQML [15] viết dƣới dạng BNF (Backup Norm Form) (hỡnh 2.3). Dạng chuẩn BNF đƣợc định nghĩa với cỏc nguyờn tử là cỏc ký tự trong bảng mú
ascii(<ascii>), cỏc chữ cỏi (<alphabetic>), cỏc chữ số (<number>), dấu nhỏy kộp (<double-quote>), gạch chộo ngƣợc (<backslash>), dấu cỏch ()…
Hỡnh 2.2: Biểu diễn cỳ phỏp của KQML dƣới dạng BNF
Bảng 2.1 liệt kờ một số tham số cơ bản đƣợc sử dụng trong KQML [15].
Từ khoỏ ớ nghĩa
:sender Tờn ngƣời gửi
:receiver Tờn ngƣời nhận
:from Địa chỉ ngƣời gửi thụng điệp
:to Địa chỉ ngƣời nhận cuối cựng
:in-reply-to Hành động phản hồi cho thụng điệp trƣớc :reply-with Hành động phản hồi cho thụng điệp hiện tại :language Ngụn ngữ sử dụng trong content
:ontology Tờn ontology (tập cỏc thuật ngữ trong :content) :content Nội dung thụng điệp
Bảng 2.1: Một số từ khoỏ của KQML