Programming Languages for Multiagent Systems
Multiagent Systems LM
Sistemi Multiagente LM
Andrea Omicini
andrea.omicini@unibo.it
Ingegneria Due
Alma Mater Studiorum—Università di Bologna a Cesena
Academic Year 2010/2011
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
1 / 49
Outline
1
Spaces for Programming Languages in Software Engineering
Paradigm Shifts
Examples
2
Spaces for Programming Languages in Multiagent Systems
Programming Agents
Programming MAS
3
Spaces for Programming Languages in the A&A Meta-model
Generality
Environment, Coordination, Organisation & Security
4
Remarkable Cases of (Programming) Languages for Multiagent Systems
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
2 / 49
Spaces for PL in SE
Paradigm Shifts
Outline
1
Spaces for Programming Languages in Software Engineering
Paradigm Shifts
Examples
2
Spaces for Programming Languages in Multiagent Systems
Programming Agents
Programming MAS
3
Spaces for Programming Languages in the A&A Meta-model
Generality
Environment, Coordination, Organisation & Security
4
Remarkable Cases of (Programming) Languages for Multiagent Systems
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
3 / 49
Spaces for PL in SE
Paradigm Shifts
Paradigm Shifts in Software Engineering
New classes of programming languages
New classes of programming languages come from paradigm shifts in
Software Engineeringa
new meta-models / new ontologies for artificial systems build up new
spaces
new spaces have to be “filled” by some suitably-shaped new (class of)
programming languages, incorporating a suitable and coherent set of
new abstractions
The typical procedure
first, existing languages are “stretched” far beyond their own limits,
and become cluttered with incoherent abstractions and mechanisms
then, academical languages covering only some of the issues are
proposed
finally, new well-founded languages are defined, which cover new spaces
adequately and coherently
a
SE here is taken in its broadest acceptation as the science of building
software system, rather than the strange “theoretically practical” discipline you
find at ICSE. . . Otherwise, one may easily see the thing the other way round
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
4 / 49
Spaces for PL in SE
Paradigm Shifts
The Problem of PL & SE Today
Things are running too fast
New classes of programming languages emerge too fast from the
needs of real-world software engineering
However, technologies (like programming language frameworks)
require a reasonable amount of time (and resources, in general) to be
suitably developed and stabilised, before they are ready for SE practise
→ Most of the time, SE practitioners have to work with languages (and
frameworks) they know well, but which do not support (or,
incoherently / insufficiently support) required abstractions &
mechanisms
→ This makes methodologies more and more important with respect to
technologies, since they can help covering the “abstraction gap” in
technologies
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
5 / 49
Spaces for PL in SE
Examples
Outline
1
Spaces for Programming Languages in Software Engineering
Paradigm Shifts
Examples
2
Spaces for Programming Languages in Multiagent Systems
Programming Agents
Programming MAS
3
Spaces for Programming Languages in the A&A Meta-model
Generality
Environment, Coordination, Organisation & Security
4
Remarkable Cases of (Programming) Languages for Multiagent Systems
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
6 / 49
Spaces for PL in SE
Examples
An Example: CORBA & Distributed Objects
OOP technologies moving too slow
As soon as OOP moved out of academia to enter SE practises, new
needs had already emerged
Distribution of software applications required new solutions, and
created new spaces for programming languages
Distributed objects were the first answer, and distributed
infrastructures like CORBA were developed
On the one hand, new (classes of) languages like IDL were introduced
On the other hand, the development of a stable & reliable technology
was so slow, that the first “usable” CORBA implementation (3.0)
came too late, and never established itself as the standard reference
technology
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
7 / 49
Spaces for PL in SE
Examples
Another Example: Java & Web Technologies
What is the standard framework for distributed systems today?
Java, for distributed objects
The Web, for most distributed applications
None of them, however, was born for this
Java was born as a programming language
today Java is typically conceived as a platform, or a distributed
framework
The Web was born as a mere concept, implemented via HTML pages,
server & browsers
today the Web is a sort of cluster of related technologies in ultra-fast
growth
Both of them suffer from a lack of conceptual coherence
in Java, syntax and basic language mechanisms are the only glue
in Web technologies, the client / server pattern is the only unifying
model
conceptual integrity is lost in principle
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
8 / 49
Spaces for PL in MAS
Programming Agents
Outline
1
Spaces for Programming Languages in Software Engineering
Paradigm Shifts
Examples
2
Spaces for Programming Languages in Multiagent Systems
Programming Agents
Programming MAS
3
Spaces for Programming Languages in the A&A Meta-model
Generality
Environment, Coordination, Organisation & Security
4
Remarkable Cases of (Programming) Languages for Multiagent Systems
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
9 / 49
Spaces for PL in MAS
Programming Agents
The Agent Abstraction
MAS programming languages have agent as a fundamental abstraction
An agent programming language should support one (or more) agent
definition(s)
so, straightforwardly supporting mobility in case of mobile agents,
intelligence somehow in case of intelligent agents, . . . , by means of
well-defined language constructs
Required agent features play a fundamental role in defining language
constructs
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
10 / 49
Spaces for PL in MAS
Programming Agents
Agent Architectures
MAS programming languages support agent architectures
Agents have (essential) features, but they are built around an agent
architecture, which defines both its internal structure, and its
functioning
An agent programming language should support one (or more) agent
architecture(s)
e.g., the BDI (Belief, Desire, Intention) architecture
[Rao and Georgeff, 1991]
agent architectures will follow soon
Agent architectures influence possible agent features
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
11 / 49
Spaces for PL in MAS
Programming Agents
Agent Observable Behaviour
MAS programming languages support agent model of action
Agents act
through either communication or pragmatical actions
Altogether, these two sorts of action define the admissible space for
agent’s observable behaviour
a communication language defines how agents speak to each other
a “language of pragmatical actions” should define how an agent can
act over its environment
A full-fledged agent language should account for both languages
so little work on languages of pragmatical actions, however
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
12 / 49
Spaces for PL in MAS
Programming Agents
Agent Behaviour
Agent computation vs. agent interaction / coordination
Agents have both an internal behaviour and an observable, external
behaviour
this reproduce the “computation vs. interaction / coordination”
dichotomy of standard programming languages
computation the inner functioning of a computational component
interaction actions determining the observable behaviour of a computational
component
so, what is new here?
Agent autonomy is new
the observable behaviour of an agent as a computational component is
driven / governed by the agent itself
e.g., intelligent agents do practical reasoning—reasoning about
actions—so that computation “computes” over the interaction
space—in short, agent coordination
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
13 / 49
Spaces for PL in MAS
Programming Agents
Agent (Programming) Languages
Intra-agent languages, Inter-agent languages
Agent programming languages should be either / both
intra-agent languages languages to define (agent) computational
behaviour
inter-agent languages languages to define (agent) interactive
behaviour
Example: Agent Communication Languages (ACL)
ACL are the easiest example of inter-agent languages
they just define how agents speak with each other
however, these languages may have some requirements on internal
architecture / functioning of agents
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
14 / 49
Spaces for PL in MAS
Programming Agents
Agents Without Agent Languages
What if we do not have an agent language available?
For either theoretical or practical reasons, it may happen
we may need an essential Prolog feature, or be required to use Java
What we do need to do: (1) define
adopt an agent definition, along with the agent’s required / desired
features
choose agent architecture accordingly, and according to the MAS needs
define a model and the languages for agent actions, both
communicative and pragmatical
What we do need to do: (2) map
map agent features, architecture, and action model / languages upon
the existing abstractions, mechanisms & constructs of the language
chosen
thus building an agent abstraction layer over our non-agent language
foundation
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
15 / 49
Spaces for PL in MAS
Programming MAS
Outline
1
Spaces for Programming Languages in Software Engineering
Paradigm Shifts
Examples
2
Spaces for Programming Languages in Multiagent Systems
Programming Agents
Programming MAS
3
Spaces for Programming Languages in the A&A Meta-model
Generality
Environment, Coordination, Organisation & Security
4
Remarkable Cases of (Programming) Languages for Multiagent Systems
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
16 / 49
Spaces for PL in MAS
Programming MAS
Programming the Interaction Space
The space of MAS interaction
Languages to interact roughly define the space of (admissible) MAS
interaction
Languages to interact should not be merely seen from the viewpoint
of the individual agent (subjective viewpoint)
The overall view on the space of (admissible) MAS interaction is the
MAS engineer’s viewpoint (objective viewpoint)
subjective vs. objective viewpoint over interaction
[Schumacher, 2001, Omicini and Ossowski, 2003]
Enabling / governing / constraining the space of MAS interaction
A number of inter-disciplinary fields of study insist on the space of
(system) interaction
coordination
organisation
security
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
17 / 49
Spaces for PL in MAS
Programming MAS
Coordination
Coordination in short
Many different definitions around
we will talk about this later on in this course—we need to simplify, here
In short, coordination is managing / governing interaction in any
possible way, from any viewpoint
Coordination has a typical “dynamic” acceptation
that is, enabling / governing interaction at execution time
Coordination in MAS is even a more chaotic field
again, a useful definition to harness the many different acceptations in
the field is subjective vs. objective coordination—the agent’s vs. the
engineer’s viewpoint over coordination
[Schumacher, 2001, Omicini and Ossowski, 2003]
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
18 / 49
Spaces for PL in MAS
Programming MAS
Organisation
Organisation in short
Again, a not-so-clear and shared definition
It mainly concerns the structure of a system
it is mostly design-driven
It affects and determines admissible / required interactions
permissions / commitments / policies / violations / fines / rewards /
...
Organisation is still enabling & ruling the space of MAS interaction
but with a more “static”, structural flavour
such that most people mix-up “static” and “organisation” improperly
Organisation in MAS is first of all, a model of responsibilities and
power
typically based on the notion of role
requiring a model of communicative & pragmatical actions
e.g. RBAC-MAS [Omicini et al., 2005]
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
19 / 49
Spaces for PL in MAS
Programming MAS
Security
Security in short
You may not believe it, but also security means managing interaction
you cannot see / do / say this, you can say / do / see that
Typically, security has both “static” and “dynamic” flavours
a design- plus a run-time acceptation
But tends to enforce a “negative” interpretation over interaction
“this is not allowed”
It is then dual to both coordination and organisation
So, in MAS at least, they should to be looked at altogether
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
20 / 49
Spaces for PL in MAS
Programming MAS
Coordination, Organisation & Security
Governing interaction in MAS
Coordination, organisation & security all mean managing (MAS)
interaction
They all are meant to shape the space of admissible MAS interactions
to define its admissible space at design-time (organisation/security
flavour)
to govern its dynamics at run-time (coordination/security flavour)
An overall view is then required
could artifacts, and the A&A meta-model help on this?
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
21 / 49
Spaces for PL in A&A
Generality
Outline
1
Spaces for Programming Languages in Software Engineering
Paradigm Shifts
Examples
2
Spaces for Programming Languages in Multiagent Systems
Programming Agents
Programming MAS
3
Spaces for Programming Languages in the A&A Meta-model
Generality
Environment, Coordination, Organisation & Security
4
Remarkable Cases of (Programming) Languages for Multiagent Systems
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
22 / 49
Spaces for PL in A&A
Generality
MAS Interaction Space in the A&A Meta-model
MAS interaction & A&A
Agents speak with agents
Agents use artifacts
Artifacts link with artifacts
Artifacts manifest to agents
these four sentences completely describe interaction within a MAS in
the A&A meta-model
What about programming languages now?
what about languages to be and languages to interact?
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
23 / 49
Spaces for PL in A&A
Generality
Programming Languages for Artifacts
Artifacts as MAS computational entities
Artifacts are computational entities
with a computational (internal) behaviour
and an interactive (observable) behaviour
Artifact programming languages are required
possibly covering both aspects
to be artifact, and to interact with agents and other artifacts
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
24 / 49
Spaces for PL in A&A
Generality
Programming Languages for Artifacts: Computation
Intra-agent languages for artifacts
Artifact computational behaviour is reactive
artifact languages should essentially be event-driven
Artifacts belong to the agent interaction space within a MAS
artifact languages should be able to compute over MAS interaction
Given the prominence of interaction in computation, artifact
languages are likely to embody both aspects altogether
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
25 / 49
Spaces for PL in A&A
Generality
Programming Languages for Artifacts: Interaction
Inter-agent languages for artifacts
Artifact interactive behaviour deals with agents and artifacts
artifact languages should provide operations for agents to use them
artifact languages should provide links for artifacts to link with them
Artifacts work as mediators between agents and the environment
artifact languages should be able to react to environment events, and
to observe / compute over them
In the overall, artifacts may subsume agent’s pragmatical actions, as
well as environment’s events & change
thus providing the basis for an engineering discipline of MAS interaction
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
26 / 49
Spaces for PL in A&A
Generality
Programming Languages for Artifacts: A&A Features
A&A cognitional artifact features in languages
An artifact language may deal with artifact’s usage interface
An artifact language may deal with artifact’s operating instructions
An artifact language may deal with artifact’s function description
Other artifact features in languages
An artifact language may allow an artifact to be inspectable,
controllable, malleable/forgeable, linkable, . . .
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
27 / 49
Spaces for PL in A&A
Generality
Programming Languages for A&A Agents
A&A agents deal with artifacts
An agent programming language may deal with artifact’s usage
interface for artifact use
An agent programming language may deal with artifact’s operating
instructions for practical reasoning about artifacts
An agent programming language may deal with artifact’s function
description for artifact selection
Other features for agent programming languages
An agent programming language may allow an A&A agent to inspect,
control, forge, compose, . . . , artifacts of a MAS
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
28 / 49
Spaces for PL in A&A
Environment, Coordination, Organisation & Security
Outline
1
Spaces for Programming Languages in Software Engineering
Paradigm Shifts
Examples
2
Spaces for Programming Languages in Multiagent Systems
Programming Agents
Programming MAS
3
Spaces for Programming Languages in the A&A Meta-model
Generality
Environment, Coordination, Organisation & Security
4
Remarkable Cases of (Programming) Languages for Multiagent Systems
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
29 / 49
Spaces for PL in A&A
Environment, Coordination, Organisation & Security
Programming Languages for Artifacts: The Environment
Artifacts & MAS Environment
Artifacts are our conceptual tools to model, articulate and shape
MAS environment
to govern the agent interaction space
to build up the agent workspace
Artifacts for coordination, organisation & security
Governing the interaction space essentially means coordination,
organisation & security
More or less the same holds for building agent workspace
As a result, artifacts are our main places to model & engineer
coordination, organisation & security in MAS
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
30 / 49
Spaces for PL in A&A
Environment, Coordination, Organisation & Security
Layering Agent Workspace
A conceptual experiment
A layered taxonomy
[Molesini et al., 2006]
Individual artifacts
I
E
I
handling a single agent’s
interaction
I
S
Social artifacts
handling interaction among a
number of agents / artifacts
Environment artifacts
E
I
S
I
handling interaction between
MAS and the environment
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
31 / 49
Spaces for PL in A&A
Environment, Coordination, Organisation & Security
Artifacts for MAS Organisation / Security
Individual artifacts
Individual artifacts are the most natural place where to rule individual
agent interaction within a MAS
on the basis of organisational / security concerns
If an individual artifact is the only way by which an agent can interact
within a MAS
organisation there, role, permissions, obligations, policies, etc.,
should be encapsulated
security working as a filter for any perception / action /
communication between the agent, MAS and the
environment
autonomy it could work as the harmoniser between the clashing
needs of agent autonomy and MAS control
boundaries it could be used as a criterion for determining whether
an agent belongs to a MAS
Our example: Agent Coordination Contexts (ACC)
infrastructural abstraction associated to each agent entering a MAS
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
32 / 49
Spaces for PL in A&A
Environment, Coordination, Organisation & Security
Artifact Languages for MAS Organisation / Security
Languages for individual artifacts
Declarative languages (KR-style) for our “quasi static” perception of
organisation
Formal languages (like process algebras) for action / policy denotation
Operational languages for modelling actions
Our example: Agent Coordination Contexts (ACC)
first-order logic (FOL) rules [Ricci et al., 2006a]
process algebra denotation [Omicini et al., 2006]
Declarative does not mean static, actually
organisation structure may change at run-time
agents might reason about (organisation) artifacts, and possibly
adapt their own behaviour, or change organisation structures
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
33 / 49
Spaces for PL in A&A
Environment, Coordination, Organisation & Security
Artifacts for MAS Coordination
Social artifacts
Social artifacts are the most natural place where to rule social
interaction within a MAS
on the basis of (objective) coordination concerns
Coordination policies could be distributed upon social artifacts, and
there encapsulated
inspectability there, coordination policies could be explicitly
represented and made available for inspection
controllability functioning of coordination engine could be
controllable by engineers / agents
malleability coordination policies could be amenable to change by
agents / engineers
Our example: Tuple Centres [Omicini and Denti, 2001]
coordination abstractions for MAS coordination
logic tuple centres for coordinative / awareness artifacts
ReSpecT tuple centres for A&A [Omicini, 2007]
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
34 / 49
Spaces for PL in A&A
Environment, Coordination, Organisation & Security
Artifact Languages for MAS Coordination
Languages for social artifacts
Typically operational, event-driven languages for our “dynamic”
perception of coordination
interaction happens, the artifact has just to capture interaction and to
react appropriately
Our example: ReSpecT
first-order logic (FOL) language
semantics given operationally [Omicini, 2007]
ongoing work on multiset rewriting semantics (with Maude)
Operational does not mean static, too
coordinative behaviour may change at run-time
agents might reason about (coordination) artifacts, and possibly
adapt their own behaviour, or change coordination policies
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
35 / 49
Spaces for PL in A&A
Environment, Coordination, Organisation & Security
Artifacts for MAS Environment
Environment artifacts
Environment artifacts are the most natural place where to rule
interaction between a MAS and its environment
on the basis of artifact reactivity to change
Spatio-temporal fabric as a source of events
time time events for temporal concerns
space spatial events for topological concerns
Resources as sources of events and targets of actions
like a database, or a temperature sensor
Our (limited) example: Situated/Timed Tuple Centres
[Omicini et al., 2007, Casadei and Omicini, 2009]
coordination abstractions reactive to passing of time and external
events
Timed ReSpecT for time-aware coordination policies
Situated ReSpecT for environment-related coordination policies
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
36 / 49
Cases of PL in MAS
Agent Communication Languages (ACL)
Speech acts
Inspired by the work on human communication
Communication based on direct exchange of messages between agents
specifying agent communicative actions
Speaking agent acts to change the world around
in particular, to change the belief of another agent
Every message has three fundamental parts
performative the pragmatics of the communicative action
content the syntax of the communicative action
ontology the semantics of the communicative action
Our examples, working as standard protocols for information
exchange between agents
KQML Knowledge Query Manipulation Language
http://www.cs.umbc.edu/kqml/
[Labrou and Finin, 1997]
FIPA ACL FIPA Agent Communication Language
http://www.fipa.org/repository/aclspecs.html
[FIPA ACL, 2002]
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
37 / 49
Cases of PL in MAS
Agent Oriented Programming Languages (AOP)
Programming languages for cognitive agents
Mentalistic agents
either BDI or other cognitive architectures
Facilities and structures to represent internal knowledge, goals, . . .
Architecture to implement practical reasoning
Our examples
3APL Programming language for cognitive agents
http://www.cs.uu.nl/3apl/
[Dastani et al., 2004, Dastani et al., 2005]
Jason Java-based interpreter for an extended version of
AgentSpeak(L) for programming BDI agents
http://jason.sourceforge.net/
[Rao, 1996, Bordini and Hübner, 2006]
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
38 / 49
Cases of PL in MAS
Artifact Programming Languages: Coordination
Languages to program social / environment artifacts
Our example: ReSpecT
Programming language for cognitive agents
http://respect.alice.unibo.it/
[Omicini, 2007, Omicini and Denti, 2001]
Tuple centres as coordinative artifacts
programmable tuple spaces
encapsulating coordination policies
Logic tuple centres as awareness artifacts
ReSpecT tuple centres as social artifacts
ReSpecT as the event-driven, logic-based language to program tuple
centres behaviour
Timed ReSpecT as an event-driven language to react to environment
change
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
39 / 49
Cases of PL in MAS
Artifact Programming Languages: Organisation / Security
Languages to program individual artifacts
Our example: Agent Coordination Context (ACC)
individual artifact
associated to each individual agent in a MAS
filtering every interaction of its associated agent
RBAC-MAS as the organisational model [Omicini et al., 2006]
Languages for policy specification & enaction
logic-based [Ricci et al., 2006a]
process algebra [Omicini et al., 2005]
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
40 / 49
Cases of PL in MAS
Non-Agent Programming Languages
Building the agent abstraction layer
Our examples
Prolog programming logic agents in Prolog
Java programming simple agents in Java: examples in
TuCSoN
Agents using artifacts
Our examples
tuProlog logic agents using ReSpecT tuple centres: examples in
tuProlog http://tuprolog.apice.unibo.it/
[Denti et al., 2005]
simpA extending Java towards A&A agents & artifacts:
examples in simpA http://simpa.apice.unibo.it/
Java/TuCSoN simple Java agents using TuCSoN tuple centres and
ACC http://tucson.apice.unibo.it/
Jason/CArtAgO Jason agents using CArtAgO artifacts
http://cartago.apice.unibo.it/
[Ricci et al., 2006b, Ricci et al., 2007]
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
41 / 49
Conclusions
1
Spaces for Programming Languages in Software Engineering
Paradigm Shifts
Examples
2
Spaces for Programming Languages in Multiagent Systems
Programming Agents
Programming MAS
3
Spaces for Programming Languages in the A&A Meta-model
Generality
Environment, Coordination, Organisation & Security
4
Remarkable Cases of (Programming) Languages for Multiagent Systems
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
42 / 49
Conclusions
Bibliography I
Bordini, R. H. and Hübner, J. F. (2006).
BDI agent programming in AgentSpeak using Jason (tutorial paper).
In Toni, F. and Torroni, P., editors, Computational Logic in Multi-Agent Systems, volume
3900 of Lecture Notes in Computer Science, pages 143–164. Springer.
6th International Workshop, CLIMA VI, London, UK, June 27-29, 2005. Revised Selected
and Invited Papers.
Casadei, M. and Omicini, A. (2009).
Situated tuple centres in ReSpecT.
In Shin, S. Y., Ossowski, S., Menezes, R., and Viroli, M., editors, 24th Annual ACM
Symposium on Applied Computing (SAC 2009), Honolulu, Hawai’i, USA. ACM.
Dastani, M., van Riemsdijk, B., Dignum, F., and Meyer, J.-J. C. (2004).
A programming language for cognitive agents: Goal directed 3APL.
In Dastani, M., Dix, J., and El Fallah-Seghrouchni, A., editors, Programming Multi-Agent
Systems, volume 3067 of Lecture Notes in Computer Science, pages 111–130. Springer.
1st International Workshop, PROMAS 2003, Melbourne, Australia, July 15, 2003, Selected
Revised and Invited Papers.
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
43 / 49
Conclusions
Bibliography II
Dastani, M., van Riemsdijk, B., and Meyer, J.-J. C. (2005).
Programming multi-agent systems in 3APL.
In Bordini, R. H., Dastani, M., Dix, J., and El Fallah-Seghrouchni, A., editors, Multi-Agent
Programming, volume 15 of Multiagent Systems, Artificial Societies, and Simulated
Organizations, pages 39–67. Springer.
Denti, E., Omicini, A., and Ricci, A. (2005).
Multi-paradigm Java-Prolog integration in tuProlog.
Science of Computer Programming, 57(2):217–250.
FIPA ACL (2002).
Agent Communication Language Specifications.
Foundation for Intelligent Physical Agents (FIPA).
Labrou, Y. and Finin, T. (1997).
Semantics and conversations for an agent communication language.
In Huhns, M. N. and Singh, M. P., editors, Readings in Agents, pages 235–242. Morgan
Kaufmann Publishers Inc., San Francisco, CA, USA.
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
44 / 49
Conclusions
Bibliography III
Molesini, A., Omicini, A., Ricci, A., and Denti, E. (2006).
Zooming multi-agent systems.
In Müller, J. P. and Zambonelli, F., editors, Agent-Oriented Software Engineering VI,
volume 3950 of LNCS, pages 81–93. Springer.
6th International Workshop (AOSE 2005), Utrecht, The Netherlands, 25–26 July 2005.
Revised and Invited Papers.
Omicini, A. (2007).
Formal ReSpecT in the A&A perspective.
Electronic Notes in Theoretical Computer Science, 175(2):97–117.
5th International Workshop on Foundations of Coordination Languages and Software
Architectures (FOCLASA’06), CONCUR’06, Bonn, Germany, 31 August 2006.
Post-proceedings.
Omicini, A. and Denti, E. (2001).
From tuple spaces to tuple centres.
Science of Computer Programming, 41(3):277–294.
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
45 / 49
Conclusions
Bibliography IV
Omicini, A. and Ossowski, S. (2003).
Objective versus subjective coordination in the engineering of agent systems.
In Klusch, M., Bergamaschi, S., Edwards, P., and Petta, P., editors, Intelligent Information
Agents: An AgentLink Perspective, volume 2586 of LNAI: State-of-the-Art Survey, pages
179–202. Springer.
Omicini, A., Ricci, A., and Viroli, M. (2005).
An algebraic approach for modelling organisation, roles and contexts in MAS.
Applicable Algebra in Engineering, Communication and Computing, 16(2-3):151–178.
Special Issue: Process Algebras and Multi-Agent Systems.
Omicini, A., Ricci, A., and Viroli, M. (2006).
Agent Coordination Contexts for the formal specification and enactment of coordination
and security policies.
Science of Computer Programming, 63(1):88–107.
Special Issue on Security Issues in Coordination Models, Languages, and Systems.
Omicini, A., Ricci, A., and Viroli, M. (2007).
Timed environment for Web agents.
Web Intelligence and Agent Systems, 5(2):161–175.
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
46 / 49
Conclusions
Bibliography V
Rao, A. S. (1996).
AgentSpeak(L): BDI agents speak out in a logical computable language.
In Van de Velde, W. and Perram, J. W., editors, Agents Breaking Away, volume 1038 of
LNCS, pages 42–55. Springer.
7th European Workshop on Modelling Autonomous Agents in a Multi-Agent World
(MAAMAW’96), Eindhoven, The Netherlands, 22-25 January 1996, Proceedings.
Rao, A. S. and Georgeff, M. P. (1991).
Modeling rational agents within a BDI architecture.
In Allen, J. F., Fikes, R., and Sandewall, E., editors, 2nd International Conference on
Principles of Knowledge Representation and Reasoning (KR’91), pages 473–484, San
Mateo, CA. Morgan Kaufmann Publishers.
Ricci, A., Viroli, M., and Omicini, A. (2006a).
Agent coordination contexts in a MAS coordination infrastructure.
Applied Artificial Intelligence, 20(2–4):179–202.
Special Issue: Best of “From Agent Theory to Agent Implementation (AT2AI) – 4”.
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
47 / 49
Conclusions
Bibliography VI
Ricci, A., Viroli, M., and Omicini, A. (2006b).
Construenda est CArtAgO: Toward an infrastructure for artifacts in MAS.
In Trappl, R., editor, Cybernetics and Systems 2006, volume 2, pages 569–574, Vienna,
Austria. Austrian Society for Cybernetic Studies.
18th European Meeting on Cybernetics and Systems Research (EMCSR 2006), 5th
International Symposium “From Agent Theory to Theory Implementation” (AT2AI-5).
Proceedings.
Ricci, A., Viroli, M., and Omicini, A. (2007).
CArtAgO: A framework for prototyping artifact-based environments in MAS.
In Weyns, D., Parunak, H. V. D., and Michel, F., editors, Environments for MultiAgent
Systems III, volume 4389 of LNAI, pages 67–86. Springer.
3rd International Workshop (E4MAS 2006), Hakodate, Japan, 8 May 2006. Selected
Revised and Invited Papers.
Schumacher, M. (2001).
Objective Coordination in Multi-Agent System Engineering. Design and Implementation,
volume 2039 of LNCS.
Springer.
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
48 / 49
Conclusions
Programming Languages for Multiagent Systems
Multiagent Systems LM
Sistemi Multiagente LM
Andrea Omicini
andrea.omicini@unibo.it
Ingegneria Due
Alma Mater Studiorum—Università di Bologna a Cesena
Academic Year 2010/2011
Andrea Omicini (Università di Bologna)
Programming Languages for MAS
A.Y. 2010/2011
49 / 49