A Practical Agent Programming Language

2APL (pronounced as double-a-p-l) is an agent-oriented programming language that facilitates the implementation of multi-agent systems. At the multi-agent level, it provides programming constructs to specify a multi-agent system in terms of a set of individual agents, a set of environments in which they can perform actions, and the access relation between the individual agents and the environments. At the individual agent level, it provides programming constructs to implement cognitive agents based on the BDI architecture. In particular, it provides programming constructs to implement an agent’s beliefs, goals, plans, actions (such as belief updates, external actions, or communication actions), events, and a set of rules through which the agent can decide which actions to perform. 2APL supports the implementation of both reactive and pro-active agents with adjustable autonomy and decision process.

The 2APL multi-agent programs can be developed on the 2APL platform which provides a set of tools that are designed to support the implementation, execution, and testing of multi-agent systems. In particular, the 2APL platform provides a graphical interface through which a user can load, edit, execute, and debug 2APL multi-agent programs using a syntax-colored editor, different execution modes, and several debugging/observation tools. The platform is built on top of the JADE platform allowing it to be run on several machines connected in a network. Agents hosted on 2APL platforms can communicate with each other using the JADE's communication facilities. Building on the JADE platform allows 2APL agents to communicate with other agents running on the JADE platforms.