An Agent communication language defines the syntax and semantics of the messages exchanged between agents. The
syntactical part of an ACL specifies the message format, i.e., which parts a message consists of
and how it must be decoded to retrieve these parts or encoded to allow successful decoding respectively. The
semantical part specifies the meaning of the content of the message, i.e., how it has to be interpreted by the receiver
to infer the intended meaning of the sender.
The Foundation for Intelligent Physical Agents (FIPA) has defined a standard agent communication language (FIPA-ACL, http://www.fipa.org/repository/aclspecs.html) that is very
versatile and can be used in many contexts. A number of multi-agent system platforms support the syntactical structure
of FIPA-ACL out of the box with extension points to define the semantics as well.
Syntax
The message structure in ACLs is often constructed around speech acts. The important point is that a speech act
contains an intent that has to be understandable by the recipient. In FIPA-ACL, this is called a "communiative act",
containing a "performative" (see below). A message thus consists of the performative, the message content, and
additional meta-data, e.g., a conversation ID that identifies the message exchange this message belongs to or the
ontology used to semantically describe the contents of the message.
The message structure has to be clearly defined so that all agents in the system use the same syntax. It is advisable
that the implementation platform implements the serialisation and deserialisation of messages to ensure uniformity
across the system.
Semantics
Two key elements in the semantics of a message have to be defined: the meaning of the performative and the meaning
of the concepts used in the message content.
The performatives used in the system have to carry unambiguous and clearly defined meaning. Examples
for performatives are "Inform", "Request", or "Confirm". FIPA specifies a number of performatives and encourages
developers to adopt these standards (see http://www.fipa.org/specs/fipa00037/index.html).
Performatives are important to distinguish the different steps in a communication protocol and to inform the recipient
about the intentions of the sender.
The message content can contain almost arbitrary data. It can not be assumed that the recipient of a
message can interpret this data readily. Indeed, the knowledge bases of different agents can theoretically contain
concepts with identical name and completely different meaning. Therefore, it is often useful to define a common
ontology that ascribes a certain meaning to the concepts. In complex multi-agent systems, especially those created with
a knowledge-engineering approach, different ontologies can be used at the same time. Therefore, communication languages
such as FIPA-ACL contain fields that identify the ontology used to define the meaning of the content. Agents can then
select the right interpretation scheme for the content or adopt the content to fit their own ontologies.
|