Concept: Agend Communication Language (ACL)
A standardised language enables agent communication.
Relationships
Related Elements
Main Description

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.