8. Design and Pre-Implementation Studies
8.1. The Virtual World Platform
8.2.1. Practical Intelligent Agent Platforms
With the selection target for a practical intelligent agent platform, several ones are considered. 3APL, JACK, JADE, Agent Factory, and GOAL are found to be candidates for selection to posses potential properties sought. For each platform, interesting characteristics are summarized below.
3APL
3APL is a tool and a specific programming language for the development of intelligent cognitive agents based on the BDI approach. 3APL is an academic experimentation environment that is developed and maintained in the University
1 Several paragraphs of this section are adopted from Soliman and Guetl (2011a, b).
of Utrecht, Netherlands1. 3APL creates agent behavior based on actions, beliefs, goals, plans, and rules. Those incorporated in the 3APL language are logic oriented. 3APL is used for programming autonomous robots in dynamic and unpredictable environments. This autonomous behavior of agents is a desirable characteristic of pedagogical agents (Dastani, Dignum, & Meyer, 2003). 3APL follows a standard for agent communication among different platforms, named FIPA2.
JACK
JACK (JACK, 2013; Winikoff, 2005) is a commercial multi-agent framework based on Java with development history that dates back to 1997. JACK is equipped with a graphical JACK Development Environment (JDE) that is viewed to facilitate the design by visualizing components, their dependencies, and interactions. JACK is relatively a strong framework supporting BDI (Cheong, 2003). JACK is characterized by a high performance-bounded execution time supported by benchmarks. That makes it suitable for mission critical systems.
Agents in JACK post events in which other agents can respond to, by executing an agent plan. An agent plan, in JACK is a sequence of actions the agent will take in responding to an event. JACK agents possess beliefs representation; with changes to those beliefs BDI events are triggered. An agent can have different plans to respond to, depending on their relevance or context. Figure 45 shows the agent design tool in JACK with an agent having two plan types to respond to an event depending on the event relevance. In JACK, capabilities are functionalities that can be “plugged in” to the agent which gives rise to the extension abilities of the JACK framework. Based on JACK, CoJACK is a BDI cognitive architecture for modeling human behavior thus allowing humanoids or virtual actor development. The JACK Teams product extends JACK to provide a team oriented modeling framework.
1http://www.cs.uu.nl/3apl/
2 http://www.fipa.org/
Figure 45: Graphical representation of a JACK robot agent with two plan types responding to the same event. Image is based on JACK tutorials.
JADE
The Java Agent DEvelopment Framework (JADE) (JADE, n.a.) is an open source Java-based framework. JADE is popular for following the Foundation for Intelligent Physical Agents (FIPA) specifications including the FIPA Agent Communication Language (ACL) standard (FIPA-ACL, 2001). Standardization was regularly regarded as a method to enhance conversation among different distributed and heterogeneous agent based systems leading for better interoperability and integration. This means that a FIPA compliant agent such as a JADE agent can communicate with any other FIPA compliant agent even if it belongs to another framework.
JADE includes a set of graphical tools for agent-based design and development. The JADE platform has a distributed characteristic to reside on different machines that can give better performance upon high loads. While JADE has a wide range of implementations and research projects, the BDI function is not directly implemented in JADE. It is possibly due to stress on providing a reference implementation that is focused on the distributed and standard nature. BDI is extended to JADE through the Jadex framework (Pokahr, Braubach, & Lamersdorf, 2003) or the BDI4JADE extension layer (Nunes, Lucena, & Luck, 2011). Blair and Lin (2011) reported integration of JADE with Open Wonderland to support learning functions development.
AgentSpeak/Jason
AgentSpeak is a logic-based agent programming language that started in 1996 based on BDI (Rao, 1996). AgentSpeak specifies a set of beliefs, plans, and goals.
A plan is a unit of code which can be triggered by an environment event. The agent can have two types of goals; test goals or achievement goals. An achievement goal is a state of the environment that the agent wants to reach while the test goal is to check a predicate of whether the goal is reachable by checking if a logic formula evaluates to true or false. Alechina, Bordini, Hubner, Jago, and Logan (2006) reported deficiencies that require enhancement to AgentSpeak. They indicated the need for communication enhancement, ontological support, and belief knowledge update abilities to AgentSpeak. Those abilities are implemented in a new platform extension named Jason. Jason is an open source interpreter extension to AgentSpeak to allow the programming of cognitive agents (Alechina et al.). Figure 46 shows a sample project and an associated agent in Jason.
Although, as indicated by Alechina et al. (2006) that Jason is Java based, the agent syntax as shown in Figure 46 is logic oriented following the AgentSpeak syntax (.asl extension) that makes it not 100% Java oriented.
Figure 46: Jason IDE showing a BlocksWorld example project and an agent code. The agent is formed of belief rules, goals, and plans.
Agent Factory/Agent Speak Extension
Another extension to AgentSpeak is Agent Factory (AF-AgentSpeak) which is a collection of platforms, and tools for agent development and deployment (The Agent Factory, 2013, March). Agent Factory is a Java based open source platform that is also FIPA compliant with several common features to Jason1.
1 http://www.agentfactory.com/index.php/AFAS::Overview
With AF-AgentSpeak, relevant projects are found: NEXUS1, MiRA, and AF-EISOpenSim. NEXUS is a project to build virtual characters for mixed reality.
MiRA is Mixed Reality Agents. AF-EIS-OpenSim is a project in the University College of Dublin (UCD) to integrate AF-agents with OpenSim2, which is the technology that underpins Second Life. Figure 47 shows agent controlled avatars to autonomously act in the OpenSim environment (OpenSimulator, 2013).
Figure 47: Autonomous AF-agents controlling OpenSim avatars. Snapshots are taken from presentation video (The Agent Factory, 2013, March).
GOAL
GOAL is a programming language and platform for developing intelligent agents (GOAL, n.a.) that is maintained in Delft University, Netherlands. Agent actions in GOAL are derived from beliefs and goals. GOAL allows knowledge representation of goals and beliefs with Prolog. It is reported that GOAL is advantageous to other frameworks as it offers a declarative only goal and belief definition methods separating goal declaration from the way to achieve it. Figure 48 shows the IDE for GOAL displaying an agent specification. Its declarative nature shows knowledge, beliefs, goals, and action specifications.
1 NEXUS supports multi character agents and an augmented reality environment while utilizing the BDI model (intentional agents), please see http://nexus.ucd.ie/
2 This integration is useful to Second Life in considering implementing agents, since the approach is through an interface standard that allows integration to interface-compliant agent platforms, http://www.agentfactory.com/index.php/AF-EIS-OpenSim.
Figure 48: The IDE of GOAL intelligent agent framework.