KQML

Knowledge Query and Manipulation Language (KQML)

One of the requirements for software agents to interact and interoperate effectively is a common communication language (social ability property).

KQML is an agent communication language and a protocol developed by the Knowledge Sharing Effort (KSE) Consortium. It has been developed both as a message format and a message-handling protocol to support run-time knowledge sharing among agents which may have different content languages.


It is a communication language that expresses communicative acts and it is different from the
the content language which expresses facts about the domain.

The aim of KQML is to support computer programs in identifying, connecting with, and exchanging information with other programs.

KQML language consists of three main layers:

  1. Content layer,
  2. Message layer, and
  3. Communication layer.
All KQML Layer with their short description (Communication Layer – Blue, Message Layer – Red, Content Layer – Yellow
  1. The communication layer encodes a set of lower-level communication parameters to the message like the identity of the sender and recipient and a unique identifier associated with the communication.
  2. The message layer is the core of KQML and determines the kinds of interactions one can have with a KQML-speaking agent. It identifies the protocol to be used to deliver the message and supplies a performative which the sender attaches to the content (such as that it is an assertion, a query, a command, or any set of known performatives).
  3. The content layer contains the actual content of the message in the program’s own representation language. This layer enables KQML to carry any message written in any representation language.

The performatives comprise a substrate on which to develop higher-level models of inter-agent interaction such as contract nets and negotiation.

See this Example

In the following KQML example message, Ankit asks the score-server about her score.


(ask-one:
:sender john
:receiver score-server
:content (SCORE Ankit?score)
:reply-with c-score
:language LPROLOG)


In this message the KQML performative is ask-one, the content is (score Ankit ? score), the receiver of the message is a server identified as score-server and the query is written in LPROLOG(λProlog – Lambda PROLOG) language. The value of the :content keyword is the content level, the values of :reply-with, :sender, :receiver keywords form the communication layer, and the performative name (ask-one) with the :language from the message layer.

In due time, the score-server might send Ankit the following message:


(tell
: sender score-server
: content (SCORE John 74 )
: receiver john
:in-reply-to c-score
: language LPROLOG)


The set of performatives defined by KSE(Knowledge Sharing Effort) is extensible. A group of agents may agree to use additional performatives if they agree on their interpretation and the protocol associated with each.


The message layer also includes optional features which describe the content language, the ontology, and some type of description of the content. These features make it possible for KQML implementations to analyze, route, and properly deliver messages even though their content is inaccessible.

Following are the main advantages of KQML as an agent communication language:

  • KQML messages are declarative, simple, readable, and extensible,
  • Since KQML has a layered structure and since KQML messages are unaware of the content of the message they carry, KQML can easily be integrated with other system components,
  • KQML imposes no restrictions on the transport protocol and the content language.


In addition to these, Knowledge Query Manipulation Language has the potential to enhance the capabilities and functionality of large-scale integration and interoperability efforts in communication and information technology such as OMG’s CORBA, as well as in application areas like electronic commerce.

I hope you understand this Article, Please comment so we can make this easier for you! I would recommend to follow Our Video tutorials for more knowledge.

Read More:

Loading