3APL
   HOME

TheInfoList



OR:

An Abstract Agent Programming Language or Artificial Autonomous Agents Programming Language or 3APL (pronounced triple-A-P-L) is an experimental
tool A tool is an Physical object, object that can extend an individual's ability to modify features of the surrounding environment or help them accomplish a particular task. Although many Tool use by animals, animals use simple tools, only human bei ...
and
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
for the development, implementation and testing of multiple
cognitive Cognition is the "mental action or process of acquiring knowledge and understanding through thought, experience, and the senses". It encompasses all aspects of intellectual functions and processes such as: perception, attention, thought, ...
agent Agent may refer to: Espionage, investigation, and law *, spies or intelligence officers * Law of agency, laws involving a person authorized to act on behalf of another ** Agent of record, a person with a contractual agreement with an insuran ...
s using the Belief-Desire-Intention (BDI) approach.


Overview

3APL was developed and is maintained by a team at the
computer science Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
department of
Utrecht University Utrecht University (UU; , formerly ''Rijksuniversiteit Utrecht'') is a public university, public research university in Utrecht, Netherlands. Established , it is one of the oldest universities in the Netherlands. In 2023, it had an enrollment of ...
in the
Netherlands , Terminology of the Low Countries, informally Holland, is a country in Northwestern Europe, with Caribbean Netherlands, overseas territories in the Caribbean. It is the largest of the four constituent countries of the Kingdom of the Nether ...
. It facilitates specification of cognitive agent behavior using actions, beliefs, goals, plans, and rules. It has been subject to at least 15
paper Paper is a thin sheet material produced by mechanically or chemically processing cellulose fibres derived from wood, Textile, rags, poaceae, grasses, Feces#Other uses, herbivore dung, or other vegetable sources in water. Once the water is dra ...
s and
conference A conference is a meeting, often lasting a few days, which is organized on a particular subject, or to bring together people who have a common interest. Conferences can be used as a form of group decision-making, although discussion, not always d ...
s, and at least 4
theses A thesis (: theses), or dissertation (abbreviated diss.), is a document submitted in support of candidature for an academic degree or professional qualification presenting the author's research and findings.International Standard ISO 7144: D ...
.


Platform

The 3APL
platform Platform may refer to: Arts * Platform, an arts centre at The Bridge, Easterhouse, Glasgow * ''Platform'' (1993 film), a 1993 Bollywood action film * ''Platform'' (2000 film), a 2000 film by Jia Zhangke * '' The Platform'' (2019 film) * Pla ...
has a visual interface for the monitoring and
debug In engineering, debugging is the process of finding the root cause, workarounds, and possible fixes for bugs. For software, debugging tactics can involve interactive debugging, control flow analysis, log file analysis, monitoring at the ap ...
ging of agents being run therein, and a
syntax In linguistics, syntax ( ) is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure (constituenc ...
-coloring
editor Editing is the process of selecting and preparing written, visual, audible, or cinematic material used by a person or an entity to convey a message or information. The editing process can involve correction, condensation, organization, a ...
for
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
editing. It has been released as a
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
-based
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
, which comes with some specification Java
interface Interface or interfacing may refer to: Academic journals * ''Interface'' (journal), by the Electrochemical Society * '' Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics'' * '' Inter ...
s that can be used to develop Java-based
plug-in Plug-in, plug in or plugin may refer to: * Plug-in (computing), a software component that adds a specific feature to an existing computer program ** Audio plug-in, adds audio signal processing features ** Photoshop plugin, a piece of software that ...
s and
libraries A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
. These can be used to provide a visible representation of a virtual environment, for instance. A 3APL platform can also connect in
client Client(s) or The Client may refer to: * Client (business) * Client (computing), hardware or software that accesses a remote service on another computer * Customer or client, a recipient of goods or services in return for monetary or other valuable ...
or
server Server may refer to: Computing *Server (computing), a computer program or a device that provides requested information for other programs or devices, called clients. Role * Waiting staff, those who work at a restaurant or a bar attending custome ...
roles to other 3APL platforms across a
network Network, networking and networked may refer to: Science and technology * Network theory, the study of graphs as a representation of relations between discrete objects * Network science, an academic field that studies complex networks Mathematics ...
, to allow
communication Communication is commonly defined as the transmission of information. Its precise definition is disputed and there are disagreements about whether Intention, unintentional or failed transmissions are included and whether communication not onl ...
among 3APL agents on each platform. A lightweight version of 3APL for
mobile application A mobile application or app is a computer program or software application designed to run on a mobile device such as a phone, tablet, or watch. Mobile applications often stand in contrast to desktop applications which are designed to run on d ...
s, named 3APL-M " Toymaker", has also been released.


Language

The 3APL language is relatively simple. The syntax has basic
boolean Any kind of logic, function, expression, or theory based on the work of George Boole is considered Boolean. Related to this, "Boolean" may refer to: * Boolean data type, a form of data with only two possible values (usually "true" and "false" ...
logical operator In logic, a logical connective (also called a logical operator, sentential connective, or sentential operator) is a logical constant. Connectives can be used to connect logical formulas. For instance in the syntax of propositional logic, the ...
s
AND And or AND may refer to: Logic, grammar and computing * Conjunction, connecting two words, phrases, or clauses * Logical conjunction in mathematical logic, notated as "∧", "⋅", "&", or simple juxtaposition * Bitwise AND, a Boolean oper ...
, OR and NOT, with IF-THEN-ELSE conditional statements, and WHILE-DO
control flow In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an '' ...
loop structures. While temporary
variables Variable may refer to: Computer science * Variable (computer science), a symbolic name associated with a value and whose associated value may be changed Mathematics * Variable (mathematics), a symbol that represents a quantity in a mathemat ...
cannot be created except by calling plug-in methods or belief/goal conditions,
iterative Iteration is the repetition of a process in order to generate a (possibly unbounded) sequence of outcomes. Each repetition of the process is a single iteration, and the outcome of each iteration is then the starting point of the next iteration. ...
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 Prolog is a logic programming language that has its origins in artificial intelligence, automated theorem proving, and computational linguistics. Prolog has its roots in first-order logic, a formal logic. Unlike many other programming language ...
syntax, are used to remember information and to perform logical
computation A computation is any type of arithmetic or non-arithmetic calculation that is well-defined. Common examples of computation are mathematical equation solving and the execution of computer algorithms. Mechanical or electronic devices (or, hist ...
s. 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 
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 
Goals are also defined using Prolog syntax, and new goals can be adopted during runtime. Initial goals are defined in the goal base.
GOALBASE 
Each goal ideally has associated goal planning 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 
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 Deliberation is a process of thoughtfully weighing options, for example prior to voting. Deliberation emphasizes the use of logic and reason as opposed to power-struggle, creativity, or dialogue. Group decision-making, Group decisions are general ...
cycle.
PLANBASE 
PR-RULES 
External methods may be called to access the environments modeled in the plug-ins. However,
parameter A parameter (), generally, is any characteristic that can help in defining or classifying a particular system (meaning an event, project, object, situation, etc.). That is, a parameter is an element of a system that is useful, or critical, when ...
s 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 First-order logic, also called predicate logic, predicate calculus, or quantificational logic, is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quantified variables ove ...
.
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 In computer networks, download means to ''receive'' data from a remote system, typically a server such as a web server, an FTP server, an email server, or other similar systems. This contrasts with uploading, where data is ''sent to'' a remote ...
at the University of Utrecht's 3APL website, packaged with sample lone and communicative agents, and a
discrete Discrete may refer to: *Discrete particle or quantum in physics, for example in quantum theory * Discrete device, an electronic component with just one circuit element, either passive or active, other than an integrated circuit * Discrete group, ...
multi-agent foreground environment plug-in called BlockWorld.


See also

*
Autonomous agent An autonomous agent is an artificial intelligence (AI) system that can perform complex tasks independently. Definitions There are various definitions of autonomous agent. According to Brustoloni (1991): According to Maes (1995): Franklin ...
*
Cognitive architecture A cognitive architecture is both a theory about the structure of the human mind and to a computational instantiation of such a theory used in the fields of artificial intelligence (AI) and computational cognitive science. These formalized models ...
*
Agent communication language Agent Communication Language (ACL), are computer communication protocols that are intended for AI Agents to communication with each other. During the 2007, protocols of this nature were proposed which include: * FIPA-ACL (by the Foundation for In ...


Further reading


3APL User Guide for Java version

3APL deliberation cycle
{{Webarchive, url=https://web.archive.org/web/20130619054513/http://www.cs.uu.nl/3apl/deliberationcycle.pdf, date=2013-06-19


External links


3APL Homepage
Agent-based programming languages