2. Outline
1 AOP: Agent Oriented Programming
About AOP
Shortfalls
Trends
Jason
Introduction to Jason
Reasoning Cycle
Main Language Constructs: Beliefs, Goals, and Plans
Other Language Features
Comparison With Other Paradigms
The Jason Platform
Perspectives: Some Past and Future Projects
Conclusions
4. AOP About AOP Jason
Agent Oriented Programming
Use of mentalistic notions and a societal view of
computation [Shoham, 1993]
Heavily influence by the BDI architecture and reactive
planning systems
Various language constructs for the sophisticated
abstractions used in AOSE
Agent: Belief, Goal, Intention, Plan
Organisation: Group, Role, Norm, Interactions
Environment: Artifacts, Percepts, Actions
4 / 68
5. AOP About AOP Jason
Agent Oriented Programming
Features
Reacting to events × long-term goals
Course of actions depends on circumstance
Plan failure (dynamic environments)
Rational behaviour
Social ability
Combination of theoretical and practical reasoning
5 / 68
6. AOP About AOP Jason
Literature
Books: [Bordini et al., 2005a], [Bordini et al., 2009]
Proceedings: ProMAS, DALT, LADS, ... [Baldoni et al., 2010,
Dastani et al., 2010, Hindriks et al., 2009, Baldoni et al., 2009,
Dastani et al., 2008b, Baldoni et al., 2008, Dastani et al., 2008a,
Bordini et al., 2007a, Baldoni and Endriss, 2006,
Bordini et al., 2006b, Baldoni et al., 2006, Bordini et al., 2005b,
Leite et al., 2005, Dastani et al., 2004, Leite et al., 2004]
Surveys: [Bordini et al., 2006a], [Fisher et al., 2007] ...
Languages of historical importance: Agent0 [Shoham, 1993],
AgentSpeak(L) [Rao, 1996],
MetateM [Fisher, 2005],
3APL [Hindriks et al., 1997],
Golog [Giacomo et al., 2000]
Other prominent languages: Jason [Bordini et al., 2007b],
Jadex [Pokahr et al., 2005], 2APL [Dastani, 2008],
GOAL [Hindriks, 2009], JACK [Winikoff, 2005]
But many others languages and platforms... 6 / 68
7. AOP About AOP Jason
Some Languages and Platforms
Jason (H¨bner, Bordini, ...); 3APL and 2APL (Dastani, van
u
Riemsdijk, Meyer, Hindriks, ...); Jadex (Braubach, Pokahr);
MetateM (Fisher, Guidini, Hirsch, ...); ConGoLog (Lesperance,
Levesque, ... / Boutilier – DTGolog); Teamcore/ MTDP (Milind
Tambe, ...); IMPACT (Subrahmanian, Kraus, Dix, Eiter); CLAIM
(Amal El Fallah-Seghrouchni, ...); GOAL (Hindriks); BRAHMS
(Sierhuis, ...); SemantiCore (Blois, ...); STAPLE (Kumar, Cohen,
Huber); Go! (Clark, McCabe); Bach (John Lloyd, ...); MINERVA
(Leite, ...); SOCS (Torroni, Stathis, Toni, ...); FLUX
(Thielscher); JIAC (Hirsch, ...); JADE (Agostino Poggi, ...);
JACK (AOS); Agentis (Agentis Software); Jackdaw (Calico
Jack); ...
7 / 68
8. AOP About AOP Jason
The State of Multi-Agent Programming
Already the right way to implement MAS is to use an AOSE
Methodology (Prometheus, Gaia, Tropos, ...) and an MAS
Programming Language!
Many agent languages have efficient and stable interpreters
— used extensively in teaching
All have some programming tools (IDE, tracing of agents’
mental attitudes, tracing of messages exchanged, etc.)
Finally integrating with social aspects of MAS
Growing user base
8 / 68
9. AOP About AOP Jason
Some Shortfalls
IDEs and programming tools are still not anywhere near the
level of OO languages
Debugging is a serious issue — much more than “mind
tracing” is needed
Combination with organisational models is very recent —
much work still needed
Principles for using declarative goals in practical
programming problems still not “textbook”
Large applications and real-world experience much needed!
9 / 68
10. AOP About AOP Jason
Some Trends I
Modularity and encapsulation
Debugging MAS is hard: problems of concurrency, simulated
environments, emergent behaviour, mental attitudes
Logics for Agent Programming languages
Further work on combining with interaction, environments,
and organisations
We need to put everything together: rational agents,
environments, organisations, normative systems, reputation
systems, economically inspired techniques, etc.
Multi-Agent Programming
10 / 68
11. AOP About AOP Jason
Research on Multi-Agent Systems...
—
Whatever you do in MAS, make it available in a
programming language/platform for MAS!!!
—
11 / 68
13. AOP About AOP Jason
AgentSpeak
The foundational language for Jason
Originally proposed by Rao [Rao, 1996]
Programming language for BDI agents
Elegant notation, based on logic programming
Inspired by PRS (Georgeff Lansky), dMARS (Kinny), and
BDI Logics (Rao Georgeff)
Abstract programming language aimed at theoretical results
13 / 68
14. AOP About AOP Jason
Jason
A practical implementation of a variant of AgentSpeak
Jason implements the operational semantics of a variant of
AgentSpeak
Has various extensions aimed at a more practical
programming language (e.g. definition of the MAS,
communication, ...)
Highly customised to simplify extension and
experimentation
Developed by Jomi F. Hbner and Rafael H. Bordini
14 / 68
15. AOP About AOP Jason
Main Language Constructs and Runtime Structures
Beliefs: represent the information available to an agent (e.g.
about the environment or other agents)
Goals: represent states of affairs the agent wants to bring
about
Plans: are recipes for action, representing the agent’s
know-how
Events: happen as consequence to changes in the agent’s
beliefs or goals
Intentions: plans instantiated to achieve some goal
15 / 68
16. AOP About AOP Jason
Main Architectural Components
Belief base: where beliefs are stored
Set of events: to keep track of events the agent will have to
handle
Plan library: stores all the plans currently known by the agent
Set of Intentions: each intention keeps track of the goals the
agent is committed to and the courses of action it
chose in order to achieve the goals for one of
various foci of attention the agent might have
16 / 68
17. AOP About AOP Jason
Jason Interpreter
Basic Reasoning cycle
perceive the environment and update belief base
process new messages
select event
select relevant plans
select applicable plans
create/update intention
select intention to execute
17 / 68
18. AOP About AOP Jason
Jason Rreasoning Cycle
Belief Agent
Beliefs Base
5
1 2 Events
Percepts Percepts SE Plan
perceive BUF BRF
Library
External External Selected
Events Events Events Beliefs Event
4 7 Relevant 6
Beliefs to Internal
Check Plans Unify
SocAcc Add and Events Plans
Delete Context Event
Applicable Beliefs
Plans
3
Messages Messages 8 9 Selected 10
checkMail SM Intended Intention Execute Action Actions
SO SI act
Means Intention
.send
Intentions
Push New Messages
Suspended Intentions Intentions Intention sendMsg
(Actions and Msgs) New Plan
... New
New
... Updated
Intention
18 / 68
19. AOP About AOP Jason
Beliefs — Representation
Syntax
Beliefs are represented by annotated literals of first order logic
functor(term1 , ..., termn )[annot1 , ..., annotm ]
Example (belief base of agent Tom)
red(box1)[source(percept)].
friend(bob,alice)[source(bob)].
lier(alice)[source(self),source(bob)].
˜lier(bob)[source(self)].
19 / 68
20. AOP About AOP Jason
Beliefs — Dynamics I
by perception
beliefs annotated with source(percept) are automatically updated
accordingly to the perception of the agent
by intention
the plan operators + and - can be used to add and remove
beliefs annotated with source(self) (mental notes)
+lier(alice); // adds lier(alice)[source(self)]
-lier(john); // removes lier(john)[source(self)]
20 / 68
21. AOP About AOP Jason
Beliefs — Dynamics II
by communication
when an agent receives a tell message, the content is a new belief
annotated with the sender of the message
.send(tom,tell,lier(alice)); // sent by bob
// adds lier(alice)[source(bob)] in Tom’s BB
...
.send(tom,untell,lier(alice)); // sent by bob
// removes lier(alice)[source(bob)] from Tom’s BB
21 / 68
22. AOP About AOP Jason
Goals — Representation
Types of goals
Achievement goal: goal to do
Test goal: goal to know
Syntax
Goals have the same syntax as beliefs, but are prefixed by
! (achievement goal) or
? (test goal)
Example (Initial goal of agent Tom)
!write(book).
22 / 68
23. AOP About AOP Jason
Goals — Dynamics I
by intention
the plan operators ! and ? can be used to add a new goal
annotated with source(self)
...
// adds new achievement goal !write(book)[source(self)]
!write(book);
// adds new test goal ?publisher(P)[source(self)]
?publisher(P);
...
23 / 68
24. AOP About AOP Jason
Goals — Dynamics II
by communication – achievement goal
when an agent receives an achieve message, the content is a new
achievement goal annotated with the sender of the message
.send(tom,achieve,write(book)); // sent by Bob
// adds new goal write(book)[source(bob)] for Tom
...
.send(tom,unachieve,write(book)); // sent by Bob
// removes goal write(book)[source(bob)] for Tom
24 / 68
25. AOP About AOP Jason
Goals — Dynamics III
by communication – test goal
when an agent receives an askOne or askAll message, the
content is a new test goal annotated with the sender of the
message
.send(tom,askOne,published(P),Answer); // sent by Bob
// adds new goal ?publisher(P)[source(bob)] for Tom
// the response of Tom will unify with Answer
25 / 68
26. AOP About AOP Jason
Triggering Events — Representation
Events happen as consequence to changes in the agent’s
beliefs or goals
An agent reacts to events by executing plans
Types of plan triggering events
+b (belief addition)
-b (belief deletion)
+!g (achievement-goal addition)
-!g (achievement-goal deletion)
+?g (test-goal addition)
-?g (test-goal deletion)
26 / 68
27. AOP About AOP Jason
Plans — Representation
An AgentSpeak plan has the following general structure:
triggering event : context ¡- body.
where:
the triggering event denotes the events that the plan is
meant to handle
the context represent the circumstances in which the plan
can be used
the body is the course of action to be used to handle the
event if the context is believed true at the time a plan is
being chosen to handle the event
27 / 68
28. AOP About AOP Jason
Plans — Operators for Plan Context
Boolean operators Arithmetic operators
(and) + (sum)
| (or) - (subtraction)
not (not) * (multiply)
= (unification) / (divide)
, = (relational) div (divide – integer)
, = (relational) mod (remainder)
== (equals) ** (power)
== (different)
28 / 68
29. AOP About AOP Jason
Plans — Operators for Plan Body
A plan body may contain:
Belief operators (+, -, -+)
Goal operators (!, ?, !!)
Actions (internal/external) and Constraints
Example (plan body)
+rain : time to leave(T) clock.now(H) H ¿= T
¡- !g1; // new sub-goal
!!g2; // new goal
?b(X); // new test goal
+b1(T-H); // add mental note
-b2(T-H); // remove mental note
-+b3(T*H); // update mental note
jia.get(X); // internal action
X ¿ 10; // constraint to carry on
close(door).// external action
29 / 68
30. AOP About AOP Jason
Plans — Example
+green patch(Rock)[source(percept)]
: not battery charge(low)
¡- ?location(Rock,Coordinates);
!at(Coordinates);
!examine(Rock).
+!at(Coords)
: not at(Coords) safe path(Coords)
¡- move towards(Coords);
!at(Coords).
+!at(Coords)
: not at(Coords) not safe path(Coords)
¡- ...
+!at(Coords) : at(Coords).
30 / 68
31. AOP About AOP Jason
Plans — Dynamics
The plans that form the plan library of the agent come from
initial plans defined by the programmer
plans added dynamically and intentionally by
.add plan
.remove plan
plans received from
tellHow messages
untellHow
31 / 68
32. AOP About AOP Jason
Strong Negation
Example
+!leave(home)
: ˜raining
¡- open(curtains); ...
+!leave(home)
: not raining not ˜raining
¡- .send(mum,askOne,raining,Answer,3000); ...
32 / 68
33. AOP About AOP Jason
Prolog-like Rules in the Belief Base
Example
likely color(Obj,C) :-
colour(Obj,C)[degOfCert(D1)]
not (colour(Obj, )[degOfCert(D2)] D2 ¿ D1)
not ˜colour(C,B).
33 / 68
34. AOP About AOP Jason
Plan Annotations
Like beliefs, plans can also have annotations, which go in
the plan label
Annotations contain meta-level information for the plan,
which selection functions can take into consideration
The annotations in an intended plan instance can be changed
dynamically (e.g. to change intention priorities)
There are some pre-defined plan annotations, e.g. to force a
breakpoint at that plan or to make the whole plan execute
atomically
Example (an annotated plan)
@myPlan[chance of success(0.3), usual payoff(0.9),
any other property]
+!g(X) : c(t) ¡- a(X).
34 / 68
35. AOP About AOP Jason
Failure Handling: Contingency Plans
Example (an agent blindly committed to g)
+!g : g.
+!g : ... ¡- ... ?g.
-!g : true ¡- !g.
35 / 68
36. AOP About AOP Jason
“Higher-Order” Variables
Example (an agent that asks for plans on demand)
-!G[error(no relevant)] : teacher(T)
¡- .send(T, askHow, { +!G }, Plans);
.add plan(Plans);
!G.
in the event of a failure to achieve any goal G due to no
relevant plan, asks a teacher for plans to achieve G and
then try G again
The failure event is annotated with the error type, line,
source, ... error(no relevant) means no plan in the agent’s
plan library to achieve G
{ +!G } is the syntax to enclose triggers/plans as terms
36 / 68
37. AOP About AOP Jason
Internal Actions
Unlike actions, internal actions do not change the
environment
Code to be executed as part of the agent reasoning cycle
AgentSpeak is meant as a high-level language for the agent’s
practical reasoning and internal actions can be used for
invoking legacy code elegantly
Internal actions can be defined by the user in Java
libname.action name(. . .)
37 / 68
38. AOP About AOP Jason
Standard Internal Actions
Standard (pre-defined) internal actions have an empty library
name
.print(term1 , term2 , . . .)
.union(list1 , list2 , list3 )
.my name(var )
.send(ag,perf ,literal)
.intend(literal)
.drop intention(literal)
Many others available for: printing, sorting, list/string
operations, manipulating the beliefs/annotations/plan library,
creating agents, waiting/generating events, etc.
38 / 68
39. AOP About AOP Jason
Jason × Java I
Consider a very simple robot with two goals:
when a piece of gold is seen, go to it
when battery is low, go charge it
39 / 68
40. AOP About AOP Jason
Jason × Java II
Example (Java code – go to gold)
public class Robot extends Thread {
boolean seeGold, lowBattery;
public void run() {
while (true) {
while (! seeGold) {
}
while (seeGold) {
a = selectDirection();
doAction(go(a));
} } } }
(how to code the charge battery behaviour?)
40 / 68
41. AOP About AOP Jason
Jason × Java III
Example (Java code – charge battery)
public class Robot extends Thread {
boolean seeGold, lowBattery;
public void run() {
while (true) {
while (! seeGold)
if (lowBattery) charge();
while (seeGold) {
a = selectDirection ();
if (lowBattery) charge();
doAction(go(a));
if (lowBattery) charge();
} } } }
(note where the tests for low battery have to be done)
41 / 68
42. AOP About AOP Jason
Jason × Java IV
Example (Jason code)
+see(gold)
¡- !goto(gold).
+!goto(gold) :see(gold) // long term goal
¡- !select direction(A);
go(A);
!goto(gold).
+battery(low) // reactivity
¡- !charge.
ˆ!charge[state(started)] // goal meta-events
¡- .suspend(goto(gold)).
ˆ!charge[state(finished)]
¡- .resume(goto(gold)).
42 / 68
43. AOP About AOP Jason
Jason × Prolog
With the Jason extensions, nice separation of theoretical and
practical reasoning
BDI architecture allows
long-term goals (goal-based behaviour)
reacting to changes in a dynamic environment
handling multiple foci of attention (concurrency)
Acting on an environment and a higher-level conception of a
distributed system
43 / 68
44. AOP About AOP Jason
Communication Infrastructure
Various communication and execution management
infrastructures can be used with Jason:
Centralised: all agents in the same machine,
one thread by agent, very fast
Centralised (pool): all agents in the same machine,
fixed number of thread,
allows thousands of agents
Jade: distributed agents, FIPA-ACL
Saci: distributed agents, KQML
... others defined by the user (e.g. AgentScape)
44 / 68
45. AOP About AOP Jason
Definition of a Simulated Environment
There will normally be an environment where the agents are
situated
The agent architecture needs to be customised to get
perceptions and act on such environment
We often want a simulated environment (e.g. to test an
MAS application)
This is done in Java by extending Jason’s Environment class
45 / 68
46. AOP About AOP Jason
Interaction with the Environment Simulator
Environment Agent Reasoner
Simulator Architecture
perceive
getPercepts
act
executeAction
change
percepts
46 / 68
47. AOP About AOP Jason
Example of an Environment Class
1 import jason.*;
2 import ...;
3 public class robotEnv extends Environment {
4 ...
5 public robotEnv() {
6 Literal gp =
7 Literal.parseLiteral(”green˙patch(souffle)”);
8 addPercept(gp);
9 }
10
11 public boolean executeAction(String ag, Structure action) {
12 if (action.equals(...)) {
13 addPercept(ag,
14 Literal.parseLiteral(”location(souffle,c(3,4))”);
15 }
16 ...
17 return true;
18 } }
47 / 68
48. AOP About AOP Jason
MAS Configuration Language I
Simple way of defining a multi-agent system
Example (MAS that uses JADE as infrastructure)
MAS my˙system –
infrastructure: Jade
environment: robotEnv
agents:
c3po;
r2d2 at jason.sourceforge.net;
bob #10; // 10 instances of bob
classpath: ”../lib/graph.jar”;
˝
48 / 68
49. AOP About AOP Jason
MAS Configuration Language II
Configuration of event handling, frequency of perception,
user-defined settings, customisations, etc.
Example (MAS with customised agent)
MAS custom –
agents: bob [verbose=2,paramters=”sys.properties”]
agentClass MyAg
agentArchClass MyAgArch
beliefBaseClass jason.bb.JDBCPersistentBB(
”org.hsqldb.jdbcDriver”,
”jdbc:hsqldb:bookstore”,
...
˝
49 / 68
50. AOP About AOP Jason
MAS Configuration Language III
Example (CArtAgO Environment)
MAS grid˙world –
environment: alice.c4jason.CEnv
agents:
cleanerAg
agentArchClass alice.c4jason.CogAgentArch
#3;
˝
50 / 68
51. AOP About AOP Jason
Jason Customisations
Agent class customisation:
selectMessage, selectEvent, selectOption, selectIntetion, buf,
brf, ...
Agent architecture customisation:
perceive, act, sendMsg, checkMail, ...
Belief base customisation:
add, remove, contains, ...
Example available with Jason: persistent belief base (in text
files, in data bases, ...)
51 / 68
55. AOP About AOP Jason
Some Related Projects I
Speech-act based communication
´
Joint work with Renata Vieira, Alvaro Moreira, and Mike
Wooldridge
Cooperative plan exchange
Joint work with Viviana Mascardi, Davide Ancona
Plan Patterns for Declarative Goals
Joint work with M.Wooldridge
Planning (Felipe Meneguzzi and Colleagues)
Web and Mobile Applications (Alessandro Ricci and
Colleagues)
Belief Revision
Joint work with Natasha Alechina, Brian Logan, Mark Jago
55 / 68
56. AOP About AOP Jason
Some Related Projects II
Ontological Reasoning
´
Joint work with Renata Vieira, Alvaro Moreira
JASDL: joint work with Tom Klapiscak
Goal-Plan Tree Problem (Thangarajah et al.)
Joint work with Tricia Shaw
Trust reasoning (ForTrust project)
Agent verification and model checking
Joint project with M.Fisher, M.Wooldridge, W.Visser,
L.Dennis, B.Farwer
56 / 68
57. AOP About AOP Jason
Some Related Projects III
Environments, Organisation and Norms
Normative environments
Join work with A.C.Rocha Costa and F.Okuyama
MADeM integration (Francisco Grimaldo Moreno)
Normative integration (Felipe Meneguzzi)
CArtAgO integration
Moise integration
More on jason.sourceforge.net, related projects
57 / 68
58. AOP About AOP Jason
Some Trends for Jason I
Modularity and encapsulation
Capabilities (JACK, Jadex, ...)
Roles (Dastani et al.)
Mini-agents (?)
Recently done: meta-events
To appear soon: annotations for declarative goals,
improvement in plan failure handling, etc.
Debugging is hard, despite mind inspector, etc.
Further work on combining with environments and
organisations
58 / 68
59. AOP About AOP Jason
Summary
AgentSpeak
Logic + BDI
Agent programming language
Jason
AgentSpeak interpreter
Implements the operational semantics of AgentSpeak
Speech-act based communicaiton
Highly customisable
Useful tools
Open source
Open issues
59 / 68
60. AOP About AOP Jason
Acknowledgements
Many thanks to the
Various colleagues acknowledged/referenced throughout
these slides
Jason users for helpful feedback
CNPq for supporting some of our current researh
60 / 68
61. AOP About AOP Jason
Further Resources
http://jason.sourceforge.net
R.H. Bordini, J.F. H¨bner, and
u
M. Wooldrige
Programming Multi-Agent Systems
in AgentSpeak using Jason
John Wiley Sons, 2007.
61 / 68
62. AOP About AOP Jason
Bibliography I
Baldoni, M., Bentahar, J., van Riemsdijk, M. B., and Lloyd, J., editors (2010).
Declarative Agent Languages and Technologies VII, 7th International
Workshop, DALT 2009, Budapest, Hungary, May 11, 2009. Revised Selected
and Invited Papers, volume 5948 of Lecture Notes in Computer Science.
Springer.
Baldoni, M. and Endriss, U., editors (2006).
Declarative Agent Languages and Technologies IV, 4th International Workshop,
DALT 2006, Hakodate, Japan, May 8, 2006, Selected, Revised and Invited
Papers, volume 4327 of Lecture Notes in Computer Science. Springer.
Baldoni, M., Endriss, U., Omicini, A., and Torroni, P., editors (2006).
Declarative Agent Languages and Technologies III, Third International
Workshop, DALT 2005, Utrecht, The Netherlands, July 25, 2005, Selected and
Revised Papers, volume 3904 of Lecture Notes in Computer Science. Springer.
Baldoni, M., Son, T. C., van Riemsdijk, M. B., and Winikoff, M., editors
(2008).
Declarative Agent Languages and Technologies V, 5th International Workshop,
DALT 2007, Honolulu, HI, USA, May 14, 2007, Revised Selected and Invited
Papers, volume 4897 of Lecture Notes in Computer Science. Springer.
62 / 68
63. AOP About AOP Jason
Bibliography II
Baldoni, M., Son, T. C., van Riemsdijk, M. B., and Winikoff, M., editors
(2009).
Declarative Agent Languages and Technologies VI, 6th International Workshop,
DALT 2008, Estoril, Portugal, May 12, 2008, Revised Selected and Invited
Papers, volume 5397 of Lecture Notes in Computer Science. Springer.
Bordini, R. H., Braubach, L., Dastani, M., Fallah-Seghrouchni, A. E.,
G´mez-Sanz, J. J., Leite, J., O’Hare, G. M. P., Pokahr, A., and Ricci, A.
o
(2006a).
A survey of programming languages and platforms for multi-agent systems.
Informatica (Slovenia), 30(1):33–44.
Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors
(2005a).
Multi-Agent Programming: Languages, Platforms and Applications, volume 15
of Multiagent Systems, Artificial Societies, and Simulated Organizations.
Springer.
63 / 68
64. AOP About AOP Jason
Bibliography III
Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors
(2005b).
Programming Multi-Agent Systems, Second International Workshop ProMAS
2004, New York, NY, USA, July 20, 2004 Selected Revised and Invited Papers,
volume 3346 of Lecture Notes in Computer Science. Springer.
Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors
(2006b).
Programming Multi-Agent Systems, Third International Workshop, ProMAS
2005, Utrecht, The Netherlands, July 26, 2005, Revised and Invited Papers,
volume 3862 of Lecture Notes in Computer Science. Springer.
Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors
(2007a).
Programming Multi-Agent Systems, 4th International Workshop, ProMAS
2006, Hakodate, Japan, May 9, 2006, Revised and Invited Papers, volume 4411
of Lecture Notes in Computer Science. Springer.
Bordini, R. H., Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors
(2009).
Multi-Agent Programming: Languages, Tools and Applications.
Springer.
64 / 68
65. AOP About AOP Jason
Bibliography IV
Bordini, R. H., H¨bner, J. F., and Wooldridge, M. (2007b).
u
Programming Multi-Agent Systems in AgentSpeak Using Jason.
Wiley Series in Agent Technology. John Wiley Sons.
Dastani, M. (2008).
2apl: a practical agent programming language.
Autonomous Agents and Multi-Agent Systems, 16(3):214–248.
Dastani, M., Dix, J., and Fallah-Seghrouchni, A. E., editors (2004).
Programming Multi-Agent Systems, First International Workshop, PROMAS
2003, Melbourne, Australia, July 15, 2003, Selected Revised and Invited
Papers, volume 3067 of Lecture Notes in Computer Science. Springer.
Dastani, M., Fallah-Seghrouchni, A. E., Leite, J., and Torroni, P., editors
(2008a).
Languages, Methodologies and Development Tools for Multi-Agent Systems,
First International Workshop, LADS 2007, Durham, UK, September 4-6, 2007.
Revised Selected Papers, volume 5118 of Lecture Notes in Computer Science.
Springer.
65 / 68
66. AOP About AOP Jason
Bibliography V
Dastani, M., Fallah-Seghrouchni, A. E., Leite, J., and Torroni, P., editors
(2010).
Languages, Methodologies, and Development Tools for Multi-Agent Systems,
Second International Workshop, LADS 2009, Torino, Italy, September 7-9,
2009, Revised Selected Papers, volume 6039 of Lecture Notes in Computer
Science. Springer.
Dastani, M., Fallah-Seghrouchni, A. E., Ricci, A., and Winikoff, M., editors
(2008b).
Programming Multi-Agent Systems, 5th International Workshop, ProMAS
2007, Honolulu, HI, USA, May 15, 2007, Revised and Invited Papers, volume
4908 of Lecture Notes in Computer Science. Springer.
Fisher, M. (2005).
Metatem: The story so far.
In [Bordini et al., 2006b], pages 3–22.
Fisher, M., Bordini, R. H., Hirsch, B., and Torroni, P. (2007).
Computational logics and agents: A road map of current technologies and
future trends.
Computational Intelligence, 23(1):61–91.
66 / 68
67. AOP About AOP Jason
Bibliography VI
Giacomo, G. D., Lesp´rance, Y., and Levesque, H. J. (2000).
e
Congolog, a concurrent programming language based on the situation calculus.
Artif. Intell., 121(1-2):109–169.
Hindriks, K. V. (2009).
Programming rational agents in GOAL.
In [Bordini et al., 2009], pages 119–157.
Hindriks, K. V., de Boer, F. S., van der Hoek, W., and Meyer, J.-J. C. (1997).
Formal semantics for an abstract agent programming language.
In Singh, M. P., Rao, A. S., and Wooldridge, M., editors, ATAL, volume 1365
of Lecture Notes in Computer Science, pages 215–229. Springer.
Hindriks, K. V., Pokahr, A., and Sardi˜a, S., editors (2009).
n
Programming Multi-Agent Systems, 6th International Workshop, ProMAS
2008, Estoril, Portugal, May 13, 2008. Revised Invited and Selected Papers,
volume 5442 of Lecture Notes in Computer Science. Springer.
Leite, J. A., Omicini, A., Sterling, L., and Torroni, P., editors (2004).
Declarative Agent Languages and Technologies, First International Workshop,
DALT 2003, Melbourne, Australia, July 15, 2003, Revised Selected and Invited
Papers, volume 2990 of Lecture Notes in Computer Science. Springer.
67 / 68
68. AOP About AOP Jason
Bibliography VII
Leite, J. A., Omicini, A., Torroni, P., and Yolum, P., editors (2005).
Declarative Agent Languages and Technologies II, Second International
Workshop, DALT 2004, New York, NY, USA, July 19, 2004, Revised Selected
Papers, volume 3476 of Lecture Notes in Computer Science. Springer.
Pokahr, A., Braubach, L., and Lamersdorf, W. (2005).
Jadex: A bdi reasoning engine.
In [Bordini et al., 2005a], pages 149–174.
Rao, A. S. (1996).
Agentspeak(l): Bdi agents speak out in a logical computable language.
In de Velde, W. V. and Perram, J. W., editors, MAAMAW, volume 1038 of
Lecture Notes in Computer Science, pages 42–55. Springer.
Shoham, Y. (1993).
Agent-oriented programming.
Artif. Intell., 60(1):51–92.
Winikoff, M. (2005).
Jack intelligent agents: An industrial strength platform.
In [Bordini et al., 2005a], pages 175–193.
68 / 68
69. Overview Other APLs
Architectural Considerations
Koen Hindriks, João Leite PL-MAS Tutorial – EASSS12
70. Overview
• Overview of APL landscape
• Some Architectural Considerations
• Research Themes
• References
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
72. A Brief History of AOP
• 1990: AGENT-0 (Shoham)
• 1993: PLACA (Thomas; AGENT-0 extension with plans)
• 1996: AgentSpeak(L) (Rao; inspired by PRS)
• 1996: Golog (Reiter, Levesque, Lesperance)
• 1997: 3APL (Hindriks et al.)
• 1998: ConGolog (Giacomo, Levesque, Lesperance)
• 2000: JACK (Busetta, Howden, Ronnquist, Hodgson)
• 2000: GOAL (Hindriks et al.)
• 2000: CLAIM (Amal El FallahSeghrouchni)
• 2002: Jason (Bordini, Hubner; implementation of AgentSpeak)
• 2003: Jadex (Braubach, Pokahr, Lamersdorf)
• 2008: 2APL (successor of 3APL)
This overview is far from complete!
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
73. A Brief History of AOP
• AGENT-0 Speech acts
• PLACA Plans
• AgentSpeak(L) Events/Intentions
• Golog Action theories, logical specification
• 3APL Practical reasoning rules
• JACK Capabilities, Java-based
• GOAL Declarative goals
• CLAIM Mobile agents (within agent community)
• Jason AgentSpeak + Communication
• Jadex JADE + BDI
• 2APL Modules, PG-rules, …
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
74. A Brief History of AOP
Agent Programming Languages and Agent Logics have not (yet)
converged to a uniform conception of (rational) agents.
Agent Programming Agent Logics
Architectures BDI, Intention Logic, KARO
PRS (Planning) , InterRap
Agent-Oriented Programming Multi-Agent Logics, Norms,
Agent0, AgentSpeak, ConGolog,
Collective Intentionality
3APL/2APL, Jason, Jadex, JACK, …
Conceptual extension
CASL, Games and Knowledge
“Declarative Goals”
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
75. Part 1: BDI Agents and AOP
Agent Features
Many diverse and different features have been proposed, but the
unifying theme still is the BDI view of agents.
Agent Programming Agent Logics
• “Simple” beliefs and belief • “Complex” beliefs and belief
revision revision
• Planning and Plan revision • Commitment Strategies
e.g. Plan failure • Goal Dynamics
• Declarative Goals • Look ahead features
• Triggers, Events e.g. beliefs about the future,
e.g. maintenance goals strong commitment
• Control Structures preconditions
• … • Norms
• …
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
76. How are these APLs related?
A comparison from a high-level, conceptual point, not taking into account
any practical aspects (IDE, available docs, speed, applications, etc)
Family of Languages Multi-Agent Systems
Basic concepts: beliefs, action, plans, goals-to-do): All of these languages
(except AGENT-0,
AgentSpeak(L), Jason1 PLACA, JACK) have
AGENT-01 versions implemented
(PLACA ) “on top of” JADE.
Golog 3APL2
Main addition: Declarative goals
2APL 3APL + GOAL
Java-based BDI Languages Mobile Agents
Jack (commercial), Jadex CLAIM3
1 mainly interesting from a historical point of view
2 from a conceptual point of view, we identify AgentSpeak(L) and Jason
3 without practical reasoning rules
4 another example not discussed here is AgentScape (Brazier et al.)
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
78. GOAL Architecture
Agent
Beliefs
percept Process Action action
percepts Rules
Goals
Environment
Real or simulated
world of events
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
79. Interpreters: GOAL
Process
percepts
(= apply percept rules)
Also called
deliberation cycles.
Select action
(= apply action rules)
GOAL’s cycle is a classic
sense-plan-act cycle.
Perform action
(= send to environment)
Update
mental state
(= apply action specs +
commitment strategy)
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
80. Interpreter: 2APL
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
81. Under the Hood: Implementing AOP
Example: GOAL Architecture
Plugins
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
82. 2APL IDE: Introspector
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
83. 2APL IDE: State Tracer
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
84. Research Themes
A Personal Point of View
Koen Hindriks, João Leite PL-MAS Tutorial – EASSS12
85. Part 3: Short-term Future
A Research Agenda
Fundamental research questions:
• What kind of expressiveness* do we need in AOP? Or, what needs
to be improved from your point of view? We need your feedback!
• Verification: Use e.g. temporal logic combined with belief and goal
operators to prove agents “correct”. Model-checking agents, mas(!)
Short-term important research questions:
• Planning: Combining reactive, autonomous agents and planning.
• Learning: How can we effectively integrate e.g. reinforcement
learning into AOP to optimize action selection?
• Debugging: Develop tools to effectively debug agents, mas(!).
Raises surprising issues: Do we need agents that revise their plans?
• Organizing MAS: What are effective mas structures to organize
communication, coordination, cooperation?
• Last but not least, (your?) applications!
* e.g. maintenance goals, preferences, norms, teams, ...
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
86. Combining AOP and Planning
Combining the benefits of reactive, autonomous agents and planning algorithms
GOAL Planning
• Knowledge • Axioms
• Beliefs • (Initial) state
• Goals • Goal description
• Program Section • x
• Action Specification • Plan operators
Alternative KRT Plugin:
Restricted FOL, ADL, Plan Constraints (PDDL)
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
87. Part 3: Short-term Future
Applications
Need to apply the AOP to find out what works and what doesn’t
• Use APLs for Programming Robotics Platform
• Many other possible applications:
• (Serious) Gaming (e.g. RPG, crisis management, …)
• Agent-Based Simulation
• The Web
• add your own example here
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12
88. References
• 2APL: http://www.cs.uu.nl/2apl/
• ConGolog: http://www.cs.toronto.edu/cogrobo/main/systems/index.html
• GOAL: http://mmi.tudelft.nl/~koen/goal
• JACK: http://en.wikipedia.org/wiki/JACK_Intelligent_Agents
• Jadex: http://jadex.informatik.uni-hamburg.de/bin/view/About/Overview
• Jason: http://jason.sourceforge.net/JasonWebSite/Jason Home.php
• Multi-Agent Programming Languages, Platforms and Applications,
Bordini, R.H.; Dastani, M.; Dix, J.; El Fallah Seghrouchni, A. (Eds.),
2005
introduces 2APL, CLAIM, Jadex, Jason
• Multi-Agent Programming: Languages, Tools and Applications
Bordini, R.H.; Dastani, M.; Dix, J.; El Fallah Seghrouchni, A. (Eds.),
2009
introduces a.o.: Brahms, CArtAgO, GOAL, JIAC Agent Platform
Koen Hindriks, João Leite
K. Hindriks, J. PL-MAS Tutorial – EASSS09
EASSS12