3APL

3APL

:"For the radio station in Bacchus Marsh, Victoria, Australia; see 3APL (FM)."An Abstract Agent Programming Language or Artificial Autonomous Agents Programming Language or 3APL (pronounced triple-A-P-L) is an experimental tool and programming language for the development, implementation and testing of multiple cognitive agents using the Belief-Desire-Intention (BDI) approach. The newest incarnation of 3APL is 2APL (A Practical Agent Programming Language).

Overview

3APL was developed and is maintained by a team at the computer science department of the University of Utrecht in the Netherlands. It facilitates specification of cognitive agent behavior using actions, beliefs, goals, plans, and rules. It also allows inter-agent communication using FIPA-like formal semantics. It has been subject to at least 15 papers and conferences, and at least 4 theses.

Platform

The 3APL platform has a visual interface for the monitoring and debugging of agents being run therein, and a syntax-coloring editor for source code editing. It has been released as a Java-based software, which comes with some specification Java interfaces that can be used to develop Java-based plug-ins and libraries. These can be used to provide a visible representation of a virtual environment, for instance. A 3APL platform can also connect in client or server roles to other 3APL platforms across a network, to allow communication among 3APL agents on each platform. A lightweight version of 3APL for mobile applications, named 3APL-M "Toymaker", has also been released.

Language

The 3APL language is relatively simple. The syntax has basic boolean logical operators AND, OR and NOT, with IF-THEN-ELSE conditional statements, and WHILE-DO control flow loop structures. While temporary variables cannot be created except by calling plug-in methods or belief/goal conditions, iterative counter loops can be constructed using a combination of WHILE-DO loops, beliefs and capabilities.

A 3APL agent contains formal definitions of agent beliefs, capabilities, goals and plans. Specifically, there are six skeletal blocks that must be defined.

PROGRAM "agent"BELIEFBASE {}CAPABILITIES {}GOALBASE {}PLANBASE {}PG-RULES {}PR-RULES {}

The beliefs, defined using Prolog syntax, are used to remember information and to perform logical computations. Beliefs can be read by one another, edited by the capabilities, and read by conditional statements in the plans. The initial beliefs of an agent can be defined in its belief base.

BELIEFBASE { status(standby). at(0,0). location(r1,2,4). location(r5,6,1). dirty(r1). dirty(r5).}

Capabilities define the prerequisites and effects of actions in a STRIPS-like format, reading preexisting beliefs, removing some using the NOT operator, and adding new ones by stating them.

CAPABILITIES { {status(S1)} SetStatus(S2) {NOT status(S1), status(S2)}, {at(X1,Y1)} NowAt(X2,Y2) {NOT at(X1,Y1), at(X2,Y2)}, {dirty(R)} Clean(R) {NOT dirty(R)

Goals are also defined using Prolog syntax, and new goals can be adopted during runtime. Initial goals are defined in the goal base.

GOALBASE { cleanRoom(r1). cleanRoom(r5).}

Each goal ideally has associated goal planing rules, its PG rules, which serve as an abstract plans and are called from the goals as long as their guard conditions are met.

PG-RULES { cleanRoom(R) <- dirty(R) | { SetStatus(cleaning(R)); goTo(R); clean(R); SetStatus(standby);

The PG rules in turn can call plan revision rules, or PR rules, which serve as subroutines, and can be called upon to execute lower level and/or repetitive tasks as long as their guard conditions are met. Initial plans are defined in the plan base, executed at the beginning of the deliberation cycle.

PLANBASE { SetStatus(started); }PR-RULES { goTo(R) <- location(R,X,Y) AND NOT at(X,Y) | { NowAt(X,Y); } clean(R) <- location(R,X,Y) AND at(X,Y) | { Clean(R);

External methods may be called to access the environments modeled in the plug-ins. However, parameters cannot be directly passed to the methods, which means that the known environment must be correspondingly modeled in the agent's beliefs. The call returns a Prolog list, which can then be processed by the agent's own predicate logic.

Java("JanitorWorld", moveNorth(), M);

Agents can also communicate with one another using "Send" commands. When a piece of information X is sent with the performative P from agent A to agent B, the sending action is recorded in A's belief base as "sent(B,P,X)" and is registered in B's belief base as "received(A,P,X)".

Send(Partner,inform,dirty(R));

Download

3APL is available for download at the University of Utrecht's 3APL website, packaged with sample lone and communicative agents, and a discrete multi-agent foreground environment plug-in called BlockWorld.

ee also

* Autonomous agent
* Cognitive architecture
* Agent communication language

Further reading

* [http://www.cs.uu.nl/3apl/download/java/userguide.pdf 3APL User Guide for Java version]
* [http://www.cs.uu.nl/3apl/deliberationcycle.pdf 3APL deliberation cycle]

External links

* [http://www.cs.uu.nl/3apl/ 3APL Homepage]
* [http://www.cs.uu.nl/3apl-m/ 3APL-M Homepage]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Toymaker — Superherobox| character name=Cosmo Krank (comics) publisher=DC Comics debut= The Batman Cash for Toys (ep. 3. (aired February 4 2006) aliases= creators= alliances= powers= None; maker of many dangerous and violent toys|: For the 3APL M… …   Wikipedia

  • Software agent — In 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 (to do): an agreement to act on one s behalf. Such action on behalf of implies the… …   Wikipedia

  • List of radio stations in Australia — List of Australian radio stations. A list of radio stations that broadcast in Australia.The first digit of the callsign represents the state or territory: 1 ACT, 2 NSW ACT, 3 VIC, 4 QLD, 5 SA, 6 WA, 7 TAS, 8 NT. Australian Capital Territory (ACT) …   Wikipedia

  • Belief-Desire-Intention software model — The Belief Desire Intention (BDI) software model (usually referred to simply, but ambiguously, as BDI) is a software model developed for programming intelligent agents. Superficially characterized by the implementation of an agent s beliefs ,… …   Wikipedia

  • Agenten-Programmiersprache — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Agentenorientierte Programmierung ist eine Art der Programmierung,… …   Deutsch Wikipedia

  • Agentenorientierte Programmierung — ist eine Art der Programmierung, die auf der Theorie der agentenorientierten Paradigmen von Yoav Shoham basiert, und hauptsächlich in der deklarativen Programmiersprache PROLOG angewendet wurde. 1993 hat Shoham agentenorientierte Paradigmen… …   Deutsch Wikipedia

  • Liste der Programmiersprachen — A A (Programmiersprache) A# A+ A 0 A 1 A 2 A 3 A9 AACC AADL AAIMS aal AAPL Aardappel AARDVARK Abacus ABACUS 10 ABACUS/X ABAP ActionScript Ada ADbasic AgentSpeak(L) Agilent VEE AHDL Aleph ALGOL (ALGOL 60, ALGOL W, ALGOL 68) Amber …   Deutsch Wikipedia

  • Liste von Programmiersprachen — Inhaltsverzeichnis A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A A# A+ …   Deutsch Wikipedia

  • Программный агент — В компьютерных науках программный агент  это программа, которая вступает в отношение посредничества с пользователем или другой программой. Слово «агент» происходит от латинского agere (делать) и означает соглашение выполнять действия от… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”