Agents
Agents
The Communication
The Communication
Aspects
Aspects
NZDIS Team
November 2000
University of Otago
Outline
Outline
Introduction to Agent Communication
Agent Messaging
Agent Communication Language (ACL)
Ontologies
Conversations
Standards bodies
Comparison to other technologies
Introduction
Introduction
Agents and Objects
What is messaging?
What is Communication Language
(ACL)?
Why not to use API instead of ACL?
Agents and Objects
Agents and Objects
Better and more tight encapsulation
of the behaviour and control
More goal/task oriented design and
modelling approach
More process and behaviour-centric
programming model
Independence from the underlying
implementation machinery
Agent Messaging
Agent Messaging
The concept of a message
Message delivery
– push vs. pull models
– peer-to-peer
– tuple spaces
– content based addressing
The message structure
– outer layer (routing, encoding, type)
– inner layer (content, ontology)
Pull vs. Push models
Pull vs. Push models
Push
Pull
sender
receiver
Delivery notification
Delivery failure recovery
Participant crash recovery
Peer-to-peer messaging
Peer-to-peer messaging
Drawbacks
– Explicit addressing schema
– The need for facilitators
– Not fully decoupled participants
Solutions
– Tuple spaces
– Content based addressing
Tuple Space
Tuple Space
Fully decoupled senders and receivers
No bootstrapping problem
Easy backup and recovery
But single point of failure
Space
receiver
senders
Content-based addressing
Content-based addressing
Combines some of the elements from pure peer-to-peer and tuple space
models
No need for explicit addressing
More flexible routing than in peer-to-peer model
The need for facilitators
sender
receivers
Routing
Agent
Agent
Communication
Communication
Language
Language
Language Elements
– Communicative Acts
– Actions and Propositions
– Logical Operators an predicate logic
Communicative acts
– denote the actions related to communication;
this is based on the speech act theory
(Searle, et al) and related utterance theories
Example of
Example of
Communicative Acts
Communicative Acts
Inform
– informs the recipient about a proposition
which the senders believes is true
Query-if
– asks the recipient if a given proposition
is true or not
Request
– requests the recipient to execute a given
action
Message Example
Message Example
text-based format for:
– human readability
– cross-process compatibility (the
participant implementation language is
irrelevant)
ongoing work on binary formats
and specific API for a given
programming language
Example Inform Message
Example Inform Message
(inform
:sender AgentA
:receiver AgentB
:content (and
(is_a AgentCommunication presentation)
(is_in_progress AgentCommunication))
:ontology PresentationOntology
)
The need to agree on meaning of
objects: presentation,
and predicates: is_a, is_in_progress
Ontology
Ontology
Conceptualization of the domain of
discourse
Defines the meaning and relations
between all the concepts (objects,
actions, predicates, relations,
associations, etc) in the domain of
discourse
Example Ontology
Example Ontology
presentation
– class of objects which denote the
presentation. Subclass of a class: action.
Can contain associations to concepts:
venue, date, time, subject.
is_a
– relationship between an object and its
class
is_in_progress
– state of the object of class action, which
denotes that the action is in progress
Ontology (cont.)
Ontology (cont.)
The need for:
– formal ontology specification
– formal ontology language
– ontology interchange
– reasoning and inference capabilities
– easy management and human readability
Solution:
– Unified Modelling Language and Object
Constraint Language (UML+OCL)
Protocols and
Protocols and
Conversations
Conversations
Protocol
– Complex and dynamic interaction schemas
– Interoperability issues for the standard
interactions schemas
– Reducing the complexity of the full ACL by
constraining the possible interactions
Conversation
– ongoing sequence of communicative acts,
conforming to one or several protocols
Modelling Conversations
Modelling Conversations
Terminated
Process request
Preprocess request
Terminated
Refuse
Agree
Done
Prepare request
Sender (initiator)
Receiver
Modelling Conversations
Modelling Conversations
Robust and easy modelling formalism
Graphical representation of static and
dynamic structures
complex and concurrent structures
support
direct mapping to the implementation
possibility of reusing the structures as
building blocks of complex conversations
easy monitoring of the progress of a
conversation
Standards Organizations
Standards Organizations
ACL standards:
– Foundation of Intelligent Physical Agents
(FIPA-ACL)
– Knowledge Query and Manipulation Language
(KQML)
Ontology
– FIPA
– Open Knowledge Base Connectivity (OKBC) and
Ontolingua (Stanford University)
– Knowledge Interchange Format (KIF)
FOR MORE INFO...
FIPA - http://www.fipa.org
FIPA - architecture
FIPA - architecture
Peer-to-peer messaging model
Specified delivery model
Specified standard services: ACC, DF,
AMS,
Semantic Language (SL) as a content
language
Work in progress on formal ontology
specifications
Messaging technologies
Messaging technologies
Peer-to-peer
– Java Messaging Service, CORBA
Messaging Services
– Remote Procedure Calls (RPC), Simple
Object Access Protocol (SOAP)
Tuple spaces
– TSpaces from IBM
– JavaSpaces from Sun Microsystems
ACL vs. API
ACL vs. API
Full featured language
– high flexibility, robustness
– expressive power
– encapsulation of domain specific
concepts inside ontology
– implementation/efficiency
considerations
Mapping the language to the API