JACK Intelligent Agents
Encyclopedia
JACK Intelligent Agents or JACK is a framework in Java
for multi-agent system development. JACK Intelligent Agents was built by Agent Oriented Software Pty. Ltd. (AOS) and is a third generation agent platform building on the experiences of the Procedural Reasoning System
(PRS) and Distributed Multi-Agent Reasoning System
(dMARS). JACK is one of the few multi-agent systems that uses the BDI software model and provides its own Java-based plan language and graphical planning tools.
(AAII or A2I2) who were involved in the design, implementation, and application of PRS
at SRI International
and/or dMARS
at the AAII. The JACK platform was written for commercial application of the multi-agent paradigm (a COTS
product) to complex problem solving and was the basis for starting the company Agent Oriented Software (AOS) where it remains the flagship product.
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
for multi-agent system development. JACK Intelligent Agents was built by Agent Oriented Software Pty. Ltd. (AOS) and is a third generation agent platform building on the experiences of the Procedural Reasoning System
Procedural Reasoning System
In Artificial Intelligence, the Procedural Reasoning System is a framework for constructing real-time reasoning systems that can perform complex tasks in dynamic environments...
(PRS) and Distributed Multi-Agent Reasoning System
Distributed Multi-Agent Reasoning System
In artificial intelligence, the Distributed Multi-Agent Reasoning System is a platform for intelligent software agents developed at the AAII that makes uses of the BDI software model. The design for dMARS is an extension of the intelligent agent cognitive architecture developed at SRI...
(dMARS). JACK is one of the few multi-agent systems that uses the BDI software model and provides its own Java-based plan language and graphical planning tools.
History
JACK Intelligent Agents was initially developed in 1997 by ex-members of the Australian Artificial Intelligence InstituteAustralian Artificial Intelligence Institute
In Australia, the Australian Artificial Intelligence Institute was a government funded research and development laboratory for investigating and commercializing Artificial Intelligence, specifically Intelligent Software Agents.- History :The AAII was started in 1988 as an initiative by the Hawke...
(AAII or A2I2) who were involved in the design, implementation, and application of PRS
Procedural Reasoning System
In Artificial Intelligence, the Procedural Reasoning System is a framework for constructing real-time reasoning systems that can perform complex tasks in dynamic environments...
at SRI International
SRI International
SRI International , founded as Stanford Research Institute, is one of the world's largest contract research institutes. Based in Menlo Park, California, the trustees of Stanford University established it in 1946 as a center of innovation to support economic development in the region. It was later...
and/or dMARS
Distributed Multi-Agent Reasoning System
In artificial intelligence, the Distributed Multi-Agent Reasoning System is a platform for intelligent software agents developed at the AAII that makes uses of the BDI software model. The design for dMARS is an extension of the intelligent agent cognitive architecture developed at SRI...
at the AAII. The JACK platform was written for commercial application of the multi-agent paradigm (a COTS
Commercial off-the-shelf
In the United States, Commercially available Off-The-Shelf is a Federal Acquisition Regulation term defining a nondevelopmental item of supply that is both commercial and sold in substantial quantities in the commercial marketplace, and that can be procured or utilized under government contract...
product) to complex problem solving and was the basis for starting the company Agent Oriented Software (AOS) where it remains the flagship product.
Features
JACK Intelligent Agents is a mature commercial multi-agent platform that has been under active research, development, and domain-specific application for more than 10 years. The following provides a listing of the platforms key differentiating features.- Agent Run-time: The core of the platform is an extensible multi-agent run-time. Once domain specific agents, plans, events, capabilities, etc. are specified the JACK kernel manages the execution the system including message passing, reasoning, and meta-reasoning.
- JACK Plan Language (JPL): JACK provides an agent-specific plan language for writing JACK plans (the discrete reasoning executed by agents). The plan language is an extension to the JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
and offers commands such as @send and @post for inter-agent messaging, as well the management of actions, sub-tasks and maintenance of conditions. Plans are compiled into Java classes for execution in the JACK run-time offering speed and correctness of execution. - Belief-Desire-Intention Model: In addition to a classical (non-BDI) agent model, the platform realizes the BDI software model, where beliefs are managed by beliefsets encapsulated within agents, desires are the goal states an agent is aspiring to achieve, and intentions are the meta-reasoning and plan-based reasoning the JACK agents use to achieve the current goal.
- Capabilities: The platform provides capabilities which are abstractions of common behaviors manifest as a complex of plans and events. Capabilities provide a way of conceptually bundling common behaviors and actions and re-using them between agents.
- JACK Development Environment (JDE): Multi-agent systems can be written in Java code and the JACK plan language in a standard IDEIntegrated development environmentAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
, although the platform provides an agent-centric IDEIntegrated development environmentAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
called the JACK Development Environment or JDE. The JDE provides graphical tools for writing plans, connecting plans to agents, managing inter-agent communication, as well as compiling and running. The JDE also provides graphical tools for debugging and tracing the execution of plans and inter-agent message passing http://www.aosgrp.com/documentation/jack/JDE_Manual_WEB. - Graphical Plans: A key feature of the JDE is the facility to write and manage Graphical Plans. These are the discrete reasoning performed by an agent represented graphically as a flow chart, allowing a programmer to manage the code performed in each step of the reasoning graph, and the subject matter expert to manage the logical flow of the reasoning based on the human-readable documentation on each node http://www.aosgrp.com/documentation/jack/Plan_Editor_Guide_WEB.
- JACK Object Modeller (JACOB): An object serialization technology used by the JACK run-time for object initialization and inter-process communication. Java objects are serialized to human-readable ASCIIASCIIThe American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
text, not too dissimilar to YAMLYAMLYAML is a human-readable data serialization format that takes concepts from programming languages such as C, Perl, and Python, and ideas from XML and the data format of electronic mail . YAML was first proposed by Clark Evans in 2001, who designed it together with Ingy döt Net and Oren Ben-Kiki...
and XMLXMLExtensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
http://www.aosgrp.com/documentation/jack/JACOB_Manual_WEB. - Platform Independence: The JACK platform is written in JavaJava (programming language)Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
, allowing the deployment of JACK multi-agent systems onto the wide array of platforms that support the Java Virtual MachineJava Virtual MachineA Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...
.
Extensions
The JACK platform has been extended a number of times since its inception. Most of the extensions, such as JACK Teams and CoJACK were developed by or in collaboration with AOS.- JACK Teams: An extension to the BDI software model that facilitates agents collaborating together in teams toward achieving a goal. Like JACK, JACK Teams supports its own plan language in what AOS refers to as Team-oriented programming. JACK Teams is integrated into and available as a part of the JACK Intelligent Agents platform http://www.aosgrp.com/documentation/jack/JACK_Teams_Manual_WEB.
- CoJACK: An extension to the JACK platform that adds a cognitive architecture to the agents for eliciting more realistic (human-like) behaviors in virtual environments.
- FIPA JACK: An extension to the JACK platform to support the FIPAFIPAThe Foundation for Intelligent Physical Agents is a body for developing and setting computer software standards for heterogeneous and interacting agents and agent-based systems....
Agent Communications LanguageAgent Communications LanguageAgent Communication Language , proposed by the Foundation for Intelligent Physical Agents , is a proposed standard language for agent communications...
. - Prometheus: An agent-centric software engineering methodology for managing the SDLCSystems Development Life CycleThe systems development life cycle , or software development life cycle in systems engineering, information systems and software engineering, is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems.In software engineering...
of a multi-agent based system. JACK was used as the basis for investigation, comparison, and testing the methodology. The Prometheus involved the development of the Prometheus Design Tool (PDT) which was a GUIGuiGui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
based tool for managing design concerns in the process. - JACK Eclipse Plug-in: A plug-in that facilitates the development of JACK-based systems in the EclipseEclipse (software)Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...
IDEIntegrated development environmentAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
. Specifically, the plug-in adds capabilities to Eclipse to support the JACK file types (such as .plan, .agent, etc) as well support for JACK plan language. - JACK WebBot: An extension that embeds the JACK kernel in the Apache TomcatApache TomcatApache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation...
web server allowing intelligent agents to be interacted with and formulate responses HTTP requests (via the Java ServletJava ServletA servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...
API) http://www.aosgrp.com/documentation/jack/WebBot_Manual_WEB.
See also
- Agent-based model
- Agent Communications LanguageAgent Communications LanguageAgent Communication Language , proposed by the Foundation for Intelligent Physical Agents , is a proposed standard language for agent communications...
- Autonomous agentAutonomous agentAn autonomous agent is an intelligent agent operating on an owner's behalf but without any interference of that ownership entity. An intelligent agent, however appears according to a multiply cited statement in a no longer accessible IBM white paper as follows:Intelligent agents are software...
- Belief-Desire-Intention software model
- Cognitive architectureCognitive architectureA cognitive architecture is a blueprint for intelligent agents. It proposes computational processes that act like certain cognitive systems, most often, like a person, or acts intelligent under some definition. Cognitive architectures form a subset of general agent architectures...
- Distributed Multi-Agent Reasoning SystemDistributed Multi-Agent Reasoning SystemIn artificial intelligence, the Distributed Multi-Agent Reasoning System is a platform for intelligent software agents developed at the AAII that makes uses of the BDI software model. The design for dMARS is an extension of the intelligent agent cognitive architecture developed at SRI...
- Intelligent agentIntelligent agentIn artificial intelligence, an intelligent agent is an autonomous entity which observes through sensors and acts upon an environment using actuators and directs its activity towards achieving goals . Intelligent agents may also learn or use knowledge to achieve their goals...
- Java Agent Development FrameworkJava Agent Development FrameworkJava Agent DEvelopment Framework, or JADE, is a software framework for multi-agent systems, in Java that has been in development since at least 2001...
- Multi-agent systemMulti-agent systemA multi-agent system is a system composed of multiple interacting intelligent agents. Multi-agent systems can be used to solve problems that are difficult or impossible for an individual agent or a monolithic system to solve...
- Procedural Reasoning SystemProcedural Reasoning SystemIn Artificial Intelligence, the Procedural Reasoning System is a framework for constructing real-time reasoning systems that can perform complex tasks in dynamic environments...
- Software agentSoftware agentIn computer science, a software agent is a piece of software that acts for a user or other program in a relationship of agency, which derives from the Latin agere : an agreement to act on one's behalf...
External links
- Agent Oriented Software Pty. Ltd. homepage (AOS)
- JACK Product webpage
- Official JACK Documentation - including user manuals and tutorials
- Australian JSF History of supply for AOS