AFAPL Development Kit

From Agent Factory

Jump to: navigation, search

AFAPL is the original agent programming language that was developed to support the creation of agents in Agent Factory. Its syntax and semantics have been derived from a logic of commitment, details of which can be found here.

Currently, the AFAPL-DK contains the following components:

  • AFAPL Compiler: This component is used to compile AFAPL source code (written in a .afapl file) into a more machine friendly format (called a .agt file). In addition, it performs a number of checks to identify syntactic and semantic errors in the source code.
  • AFAPL Interpreter: This component implements the core interpreter for the AFAPL language.
  • AFAPL Inspector: This component provides support for debugging AFAPL agents. It is itself a plugin for the AF Debugger.

These components will be packaged as part of the next release of the Netbeans Plugin.

Contents

The AFAPL Language

AFAPL is an example of an Agent-Oriented Programming (AOP) language. Such languages adopt a view of programs as consisting of a collection of distributed components, known as agents, that interact with one another via a message passing infrastructure whose design is motivated by speech act theory. Traditionally, AOP languages require that these agents be modeled as components whose internal state is defined in terms of mental notions, such as beliefs, desires, intentions, and commitments. The actual design and implementation of such agents is inspired by earlier work that modeled multi-agent systems using first-order temporal modal logics.

While the core constructs of AFAPL are derived from such a logic, we adopt the view that mentalistic approaches are most effective as a high-level decision making mechanism. As such, we view an agent to be a two-tier entity that combines a mental state with a set of lower level constructs for interacting with and modeling the environment that the agents inhabit. The result is a hybrid and modular approach to implementing agents that combines Java-based components with higher-level mental components.

Figure 1: Overview of key AFAPL programming constructs
Figure 1: Overview of key AFAPL programming constructs

Mental State Constructs

The mental state of an AFAPL agent consists of two basic mental attitudes: Beliefs, which represent the state of the environment that the agent inhabits; and Commitments, which represent the chosen activities of the agent.

Commitment Rules

TBC

Activities

TBC

Embodiment Configuration

TBC