Interagent Communication Language
Used by Agents to:
- Declare Capabilities
- Request Services of Community
- Respond to Requests from Other Agents
- Manage and Exchange Information
Conversation & Content Layers
Advice/Constraints Can Accompany Requests
Platform- and Language-Independence
Notes:
ICL is the interface, communication, and task coordination language shared by all agents, regardless of what platform they run on or what computer language they are programmed in. ICL is used by an agent to task itself or some subset of the agent community, either using explicit control or, more frequently, in an unspecified, loosely constrained manner. OAA agents employ ICL to perform queries, execute actions, exchange information, set triggers, and manipulate data in the agent community.
One of the most important program elements expressed in ICL is the event. The activities of every agent, as well as communications between agents, are structured around the transmission and handling of events. In communications, events serve as messages between agents; in regulating the activities of individual agents, they may be thought of as goals to be satisfied. Each event has a type, a set of parameters, and content.
ICL includes a layer of conversational protocol (defined by the event types, together with the parameter lists), and a content layer (consisting of the specific goals, triggers, and data elements that may be embedded within various events).
ICL has been designed as an extension of Prolog, in order to take advantage of unification and other useful features of Prolog. OAA's agent libraries provide support for constructing, parsing and manipulating ICL expressions.