Multi-agent environment frameworks have been connected to Agent Programming Languages (APLs) before. These connections are created to combine the computational and graphical power offered by environment frameworks with the reasoning power of agents in APLs. However, only limited reasearch has been done to determine how the interface presented to the agents needs to be structured. This thesis aims to expand the knowledge in this area by providing guidelines for designing agent-facing interfaces.
The thesis is motivated by the desire to connect GOAL (an APL) to a multi-agent environment framework. This allows us to make efficient use of the power of GOAL to represent knowledge, while at the same time useing the environment modeling capabilities of an existing environment framework. We compare three environment frameworks and find Repast most suitable for our purposes.
We create the connection between GOAL and Repast using the Environment Interface Standard (EIS). EIS offers a language, called Interface Immediate Language (IIL), which allows two-way communication between the environment and the APL. Objects written in the IIL contain percepts and actions which agents use to do their work.
To make implementing EIS more manageable we add our own extension, called EIS2Java. EIS2Java reduces the overhead of translating between Java and the IIL. The EIS2Java framework also enables programmers to quickly make changes to the agent interface, and ensures that the code is maintainable and portable to other projects. The connection between GOAL and Repast is used to create two simulation environments, in which we build and evaluate agent-facing interfaces.
By evaluating the design and implementation of both environments, we construct the following three guidelines for building agent-facing interfaces. First, create the interface such that agents are able to spend their reasoning cycles on accomplishing important tasks that are best suited for the explicit knowledge representation of APLs. Second, introduce unique names for objects and agents, since APLs have no notion of pointers like most other programming languages. Finally, keep computationally expensive functionality in the environment, as APLs are usually less efficient at math-like computations than languages in which the environment is written.
Finally, we also conclude that EIS2Java is a helpful framework and we aim for it to be included in the EIS distribution by default.