Title: FIPA Agents and Platform
1FIPA Agents and Platform
2Paradigm shift in programming
agent
Abstraction level
object
procedural
assembler
time
3How agent technology will progress over time
according to Agentlink II
Source Agentlink II Roadmap
4Past and future
Source Agentlink II Roadmap
5Past and future
Source Agentlink II Roadmap
6Agent-related concepts
- Platform
- Communication
- Ontology
- Not specifically agent concepts
- services
- applications
7Where can you find agents today
- distributed artificial intelligence,
- robotics,
- artificial life (also in video game),
- distributed object computing,
- human-computer interaction,
- intelligent and adaptive interfaces,
- intelligent search and filtering,
- information retrieval,
- etc.
8Different kind of agents
- An example of categorization
- Autonomous agents
- Biological agents
- Computational agents
- Software agents
- Task specific agents
- Entertainment agents
- Viruses
- Artificial life agents
- Robotic agents
- others to come
9Different kinds of agents
- Another categorization
- Mobile agents
- Interface agents
- Collaborative agents
- Information agents
- Reactive agents
- Hybrid agents
- Heterogeneous agents
10What is an agent
- Perhaps the most general way in which the term
agent is used is to denote a hardware or (more
usually) software-based computer system that
enjoys the following properties - autonomy agents operate without the direct
intervention of humans or others, and have some
kind of control over their actions and internal
state - social ability agents interact with other agents
(and possibly humans) via some kind of
agent-communication language Genesereth and
Ketchpel, 1994 - reactivity agents perceive their environment,
(which may be the physical world, a user via a
graphical user interface, a collection of other
agents, the INTERNET, or perhaps all of these
combined), and respond in a timely fashion to
changes that occur in it - pro-activeness agents do not simply act in
response to their environment, they are able to
exhibit goal-directed behaviour by taking the
initiative. - From Intelligent Agents Theory and Practice of
M. Wooldridge and N. Jennings (http//www.csc.liv.
ac.uk/mjw/pubs/ker95/ker95-html.html)
11BDI Agents
- ALL agents (except for purely reactive agents)
maintain an internal representation of their
world. - There is an explicit mental state
- Can be modified by some form of symbolic
reasoning. - An example BDI agents (BDI Belief, Desire,
Intention) - a set of beliefs about the world
- a set of goals that the agent is currently trying
to achieve (Desires) - a library of plans describing how to achieve
goals and how to react to changes in beliefs - an intention structure describing how the agent
is currently achieving its goals and reacting to
changes in beliefs.
12What is FIPA
- FIPA (Foundation for Intelligent Physical Agents)
is a non-profit organization aimed at producing
standards for the interoperation of heterogeneous
software agents - www.fipa.org
13Agent FIPA definition
- An agent is a computational process that
implements the autonomous, communicating
functionality of an application. Typically,
agents communicate using an Agent Communication
Language.
14FIPA Agents
- Agents communicate by exchanging messages which
represent speech acts, and which are encoded in
an agent-communication-language. - Services provide support services for agents. In
addition to a number of standard services
including agent-directory-services and
message-transport-services the FIPA Abstract
Architecture defines a general service model that
includes a service-directory-service.
15FIPA Agent Relationships to Other Elements
- Agent has an agent-name
- Agent may have agent-attributes
- Agent has an agent-locator, which lists the
transport-descriptions for that agent - Agent may be sent messages via a
transport-description, using the transport
corresponding to the transport-description - Agent may send a transport-message to one or more
agents - Agent may register with one or more
agent-directory-services - Agent may have an agent-directory-entry, which is
registered with an agent-directory-service - Agent may modify its agent-directory-entry as
registered by an agent-directory-service - Agent may deregister its agent-directory-entry
from an agent-directory-service.
16Concrete implementation of the FIPA Agent
- an agent may be realized in a variety of ways,
for example as a Java component, a COM object, a
self-contained Lisp program, or a TCL script. - It may execute as a native process on some
physical computer under an operating system, or
be supported by an interpreter such as a Java
Virtual Machine or a TCL system. - The relationship between the agent and its
computational context is specified by the agent
lifecycle.
17Agents
- (FIPA) State-machine agent
18Agents a software engineering point of view
- An agent is a subsystem
- High decoupling with other subsystems (agents)
- High coherence of internal classes (behaviors of
the same agent) - It offers services to other agents
- FIPA agents are communication oriented
- High Standardization in communications provide
interoperability - Ontology
- Agent Interaction Protocols (and communicative
acts) - Content language
19PASSI Agent
In playing a role the agent uses one or more of
its tasks.
Each task is composed of several elementary
behaviors
- An agent may occupy several functional roles to
achieve its goals
The instance of an agent class It is the
software implementation of an autonomous entity
capable of pursuing an objective through its
autonomous decisions, actions and social
relationships.
Elementary behavior
A series of elementary pieces of behavior
(actions) necessary for a specific purpose. Each
task carries out one of the agents decisions/
actions/ social relationships
The function temporarily assumed by the agent in
the society while pursuing a sub-goal
20Platform
21Platforms
- What is a platform
- A place where agents live
- not always needed
- Platform responsibilities
- Agent management
- creation termination
- security
- Agent communication services
- Agent directory services
22Communications (conversations)
23Agents interactions (FIPA point of view)
- Agents communicate by exchanging messages which
represent speech acts2, and which are encoded in
an agent-communication-language. - The simplest for of speech act (we can refer to
it as a message) is - lti, act (j, C)gt
- Where
- i is the originator of the speech act (we can
refer to it as a message), - act is the name of the act (it communicates the
speakers intention to the hearer) - j is the target
- C the semantic content
- Examples of communicative acts1 (also called
performatives) - Query, Inform, Request, Agree, Refuse
- 1FIPA Communicative Act Library Specification.
Foundation for Intelligent Physical Agents,
Document FIPA00037 (2000). http//www.fipa.org/spe
cs/fipa00037/. - 2Searle, J.R., Speech Acts. Cambridge University
Press, 1969.
24Messages and performatives
- Is the door open?
- Open the door (for me)
- OK! Ill open the door
- The door is open
- I am unable to open the door
- I will not open the door
- Say when the door becomes open
- Anyone wants to open the door?
- I can open the door for you..at a price
- Door? Whats that? Dont understand...
- query
- request
- agree
- inform
- failure
- refuse
- Subscribe
- cfp
- Propose
- Not-understood
25A layered model
One conversation can be composed of several
messages, each one addressing one different
performative (or communicative act)
26Conversations
- Conversations are composed by one or more
messages - They are ruled by agent interaction protocols
(AIP, discussed later) - Given a message (and its specific performative),
the AIP defines which is the set of performatives
that could be associated to the following
messages - If a message does not comply to this rule, the
agent could not understand it
27Message elements
28Components of a message
Parameter Category of Parameters
performative Type of communicative acts
sender Participant in communication
receiver Participant in communication
reply-to Participant in communication
content Content of message
language Description of Content
encoding Description of Content
ontology Description of Content
protocol Control of conversation
conversation-id Control of conversation
reply-with Control of conversation
in-reply-to Control of conversation
reply-by Control of conversation
29A layered model
30Content and Content language
- The content denotes the content of the message
equivalently denotes the object of the action. - The content language denotes the language in
which the content is expressed. - FIPA content languages
- SL, CCL, KIF, RDF
31A layered model
32Agent communication Language
- The structure of a message is a key-value-tuple
and is written in an agent-communication-language,
such as FIPA ACL. - The content of the message is expressed in a
content-language, such as KIF, SL or RDF.
- The content-language may reference an ontology,
which grounds the concepts being discussed in the
content.
33ACL message example
34A layered model
35Transport Message
- When a message is sent it is transformed into a
payload, and included in a transport-message. - The payload is encoded using the
encoding-representation appropriate for the
transport.
36A layered model
37Message Transport Protocol
- Each agent has an agent-name. This agent-name is
unique and unchangeable. - Each agent has one or more transport-descriptions,
which are used by other agents to send a
transport-message. - Each transport-description correlates to a
particular form of message transport, such as
IIOP, SMTP, or HTTP. - A transport-message is a message expressed in a
format (or encoding) that is appropriate to the
transport being used. - A set of transport-descriptions can be held in a
locator.
38Example of transport description
- Directory entry for agent ABC
- Agent-name ABC
- Locator
Transport-type Transport-specific-address Transport-specific-property
HTTP http//www.whiz.net/abc (none)
SMTP Abc_at_lowcal.whiz.net (none)
39A layered model
Out of our scope
40Ontology
41Ontology
- Concepts
- (categories, entities of the domain)
- Predicates
- (assertions on properties of concepts)
- Actions
- (that agents can perform in the domain).
Book_in_stock
Searched_book
42(No Transcript)
43Agents Interaction Protocols(AIP)
44(No Transcript)
45(No Transcript)
46(No Transcript)
47Message Content Languages
48A proposition in RDF
- Proposition
- "The statement 'W. Richard Stevens is the author
of TCP/IP Illustrated' is true". -
- lt?xml version"1.0"?gt
- ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/22-r
df-syntax-ns" - xmlnsfipahttp//www.fipa.org/schemas/fi
pa-rdf0"gt -
- ltfipaPropositiongt
- ltrdfsubjectgtTCP/IP Illustratedlt/rdfsubjectgt
- ltrdfpredicate rdfresource"http//descript
ion.org/schemaauthor"/gt - ltrdfobjectgtW. Richard Stevenslt/rdfobject/gt
- ltfipabeliefgttruelt/fipabeliefgt
- lt/fipaPropositiongt
- lt/rdfRDFgt
author
W. Richard Stevens
TCP/IP Illustrated
49A communication (ACLRDFRequest AIP)
- Scenario
- Mary requests John to open door 1 and door 2 and
then wants John to inform her if he performed the
action and what the result is. -
- Message 1 Request from Mary to John containing
the description of the action, - Message 2 Inform from John to Mary, referring to
the action and stating the completion of the
action. -
- (request
- sender Mary
- receiver John
- content (
- lt?xml version"1.0"?gt
- ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/
22-rdf-syntax-ns - xmlnsfipa"http//www.fipa.org/schem
as"gt - ltfipaAction rdfID"JohnAction1"gt
- ltfipaactorgtJohnlt/rdfactorgt
- ltfipaactgtopenlt/rdfactgt
- ltfipaargumentgt
- ltrdfbaggt
- ltrdfligtdoor1lt/rdfligt
50A communication (ACLRDFRequest AIP)
- (inform
- sender John
- receiver Mary
- content (
- lt?xml version"1.0"?gt
- ltrdfRDF xmlnsrdf"http//www.w3.org/1999/02/
22-rdf-syntax-ns" - xmlnsfipa"http//www.fipa.org/schem
as"gt -
- ltrdfDescription about"JohnAction1"gt
- ltfipadonegttruelt/fipadonegt
- ltfiparesultgtdoors closedlt/fiparesultgt
- lt/rdfDescriptiongt
- lt/rdfRDFgt )
- language fipa-rdf0)
-
51The FIPA Platform
52The FIPA platform
- Agent Management System (AMS)
- The AMS provides white-page and life-cycle
service, maintaining a directory of agent
identifiers (AID) and agent state. - Each agent must register with an AMS in order to
get a valid AID. - Directory Facilitator (DF)
- the agent who provides the default yellow page
service in the platform. - Message Transport System (MTS)
- the software component controlling all the
exchange of messages within the platform,
including messages to/from remote platforms. - also called Agent Communication Channel (ACC)
53Agents interactions
- Agent Communication Channel All agents have
access to at least one ACC. The ACC is the
default communication method that connects all
agents within an AP and between APs.
54Other topics
- Agents
- Services
- Directory services
- Starting/ finding an agent
- See FIPA-presentation.doc
55(No Transcript)
56The FIPA platform implementation
The operating shell
57Jade Behaviors
58An Example
- Sender agent
- Receiver agent
59(Performative, ontology, content language,
content) This is not common in PASSI PASSI
syntax (AIP, Performative, Ontology)
60Agent Sender
- public class AgentSender extends Agent
- class SendBehaviour extends SimpleBehaviour
- private boolean finished false
- public SendBehaviour (Agent a)
- super(a)
- public void action()
- try
- System.out.println("\nEnter responder
agent name (e.g. da0_at_myhost1099/JADE) ") - BufferedReader buff new
BufferedReader - (new InputStreamReader(System.in))
- String responder buff.readLine()
- AID r new AID()
- r.setName(responder)
-
- ACLMessage msg new ACLMessage(ACLMessag
e.INFORM) - msg.setSender(getAID())
- msg.addReceiver(r)
- msg.setContent("FirstInform")
- send(msg)
- doWait(1000)
- msg.setOntology("ReceiveTest")
- msg.setContent("FourthInform")
- send(msg)
- System.out.println("\nFourth INFORM
sent") -
- finished true
- myAgent.doDelete()
- catch (IOException ioe)ioe.printStackTrace(
) -
- public boolean done()
- return finished
-
- protected void setup()
- SendBehaviour mysendbehaviour new
SendBehaviour(this) - addBehaviour(mysendbehaviour)
-
61Agent Receiver 1/2
- public class AgentReceiver extends Agent
- class my3StepBehaviour extends SimpleBehaviour
- final int FIRST 1
- final int SECOND 2
- final int THIRD 3
- private int state FIRST
- private boolean finished false
-
- public my3StepBehaviour (Agent a)
- super(a)
-
- public void action()
- switch (state)
- case FIRST if (op1()) state SECOND
- else state FIRST break
- case SECONDop2() state THIRD break
- case THIRDop3() state FIRST finished
true - break
-
- private boolean op1()
- MessageTemplate m1
- MessageTemplate.MatchPerformative(ACLMessage.INFOR
M) - MessageTemplate m2
- MessageTemplate.MatchLanguage("PlainText")
- MessageTemplate m3
- MessageTemplate.MatchOntology("ReceiveTest")
- MessageTemplate m1andm2 MessageTemplate.and
(m1,m2) - MessageTemplate notm3 MessageTemplate.not(m
3) - MessageTemplate m1andm2_and_notm3
- MessageTemplate.and(m1andm2, notm3)
- System.out.println( "\nAgent
"getLocalName()" in state - FIRST.op1 is waiting for a message matching the
- template ")
- //The agent waits for a specific message. If
it doesn't arrive the behaviour is suspended
until a new message arrives. - ACLMessage msg receive(m1andm2_and_notm3)
- if (msg! null)
- System.out.println("\nAgent " getLocalName() "
- received the following message in state
62Agent Receiver 2/2
- private void op2()
- System.out.println("\nAgent " getLocalName() "
in state - SECOND.op2 is waiting for any message in next
5000 - msec")
-
- //Using a blocking receive causes the block
of all the - //behaviours
- ACLMessage msg blockingReceive(5000)
- if(msg ! null)
- System.out.println("\nAgent "
getLocalName() " - received the following message in state
- SECOND.op2 ")
- System.out.println(msg.toString())
-
- else
- System.out.println("\nNo message received in
- state SECOND.op2")
-
- // End of op2
- private void op3()
- MessageTemplate m1
- MessageTemplate.MatchPerformative(ACLMessage.INFOR
M) - MessageTemplate m2
- MessageTemplate.MatchLanguage("PlainText")
- MessageTemplate m3
- MessageTemplate.MatchOntology("ReceiveTest")
- MessageTemplate m1andm2 MessageTemplate.and
(m1,m2) - MessageTemplate m1andm2_and_m3
- MessageTemplate.and(m1andm2, m3)
- System.out.println("\nAgent
"getLocalName()" in state - THIRD.op3 is blocked waiting for a message
matching the - template")
- //blockingReceive and template
- ACLMessage msg blockingReceive(m1andm2_and_
m3) -
- if (msg! null)
- System.out.println("\nAgent "
getLocalName() " - received the following message in state
THIRD.op3
63MAS References
- Agentlink Roadmap www.agentlink.org
- Intelligent Agents Theory and Practice. M.
Wooldridge, N. Jennings (http//www.csc.liv.ac.uk/
mjw/pubs/ker95/ ker95-html.html) - Objects and Agents Compared. J. Odell.
(http//www.jot.fm/issues/issue_2002_05/column4) - Searle, J.R., Speech Acts. Cambridge University
Press, 1969.
64Ontology References
- What are ontologies and why do we need them. B.
Chandrasekaran et al. (http//portal.acm.org/citat
ion.cfm?id630436dlACMcollportal) - Ontologies from AI Topics library of AAAI.
http//www.aaai.org/AITopics/html/ontol.html - Ontology Development 101 A Guide to Creating
Your First Ontology. Natalya F. Noy and Deborah
L. McGuinness. (http//www.ksl.stanford.edu/people
/dlm/papers/ontology101/ontology101-noy-mcguinness
.html) - Designing Ontology with RDF in PASSI. M.
Cossentino - Modeling XML Vocabularies with UML. D. Carlson.
(http//www.xml.com/pub/a/2001/08/22/uml.html) - RDF (Resource Description Framework). W3C
Consortium. (http//www.w3.org/RDF/)
65FIPA References
- FIPA website www.fipa.org
- FIPA Abstract Architecture (http//www.fipa.org/re
pository/architecturespecs.html) - Agent Interaction Protocols (http//www.fipa.org/r
epository/ips.php3) - Communication Content Languages
(http//www.fipa.org/repository/cls.php3) - (Design) Methodology Technical Committee
(http//www.fipa.org/activities/methodology.html) - Communicative Act Library Specification
(http//www.fipa.org/specs/fipa00037/)
66JADE References
- JADE (Java Agent DEvelopment Framework)
(http//sharon.cselt.it/projects/jade/) - Jade Tutorial http//www.iro.umontreal.ca/vauche
r/Agents/Jade/ JadePrimer.html - AgentFactory http// mozart.csai.unipa.it/af