View
222
Download
3
Tags:
Embed Size (px)
Citation preview
www.monash.edu.au
Agent Communication Languages
CSE5610- Intelligent Software SystemsAgent Communication Languages
www.monash.edu.au
2
Lecture Outline
• Agent Communication – Overview
• Ontologies
• KQML
• FIPA ACL
www.monash.edu.au
3
Agent Communication
• Communication is a requirement for agent co-operation
• A collection of agents can achieve more than a single agent
www.monash.edu.au
4
Agent Communication
• Agent to agent communication is the key to realizing the potential of the agent paradigm
• Analogy – Development of natural languages was the key to the development of human society and intelligence
• Agent Communication Language (ACL) - Language for agents to communicate and exchange information / knowledge
www.monash.edu.au
5
ACL’s Vs the Rest
• ACL’s provide agents with a means for exchanging information and knowledge
• Other means of “seamless” exchange of information between processes..
• RPC
• RMI
• CORBA
• The goal has always been the same…
www.monash.edu.au
6
ACL’s Vs the Rest
• ACL’s handle • Propositions• Rules• Actions
• Instead of simple objects with no semantics associated with them
• ACL messages describe a desired state in a declarative language
• Rather than a procedure or method
www.monash.edu.au
7
The Ideal
• Agents exchange and share:
• Plans
• Goals
• Long-term strategies
• Experiences
www.monash.edu.au
8
Technical Perspective
• Agents transport messages over a network using protocols such as SMTP, TCP/IP or HTTP
• An ACL defines the types of messages - the syntax and semantics – that agents can exchange
• Not mere exchange of single messages• Conversations
• Task-oriented shared sequence of messages for negotiations, auctions etc
www.monash.edu.au
9
Speech Act Theory
• Messages in ACL’s are usually modeled after speech acts
• Speech Act Theory - Languages as Action (Austin)• A high level framework• Account for human communication• Speech is not just about uttering• Speakers perform speech acts:
• Assertions, Commands, Requests, Promises, Threats….
www.monash.edu.au
10
Speech Act Theory
• Example: Shut the door• Locution: physical utterance with context.
• Who is the speaker ? • Which door ?• Who is the hearer ?
• Illocution: act of conveying intentions• Speaker wants hearer to shut the door
• Perlocutions: actions that occur as a result of the illocution• Hearer closes the door
www.monash.edu.au
11
Agent Communication Languages
• ARPA Knowledge Sharing Effort (KSE)• ARPA – Advanced Research Projects Agency
• Other agencies – National Science Foundation, Air Force Office of Scientific Research, National Research Initiative, Industry and Academic Partners
• KQML – Knowledge Query Manipulation Language
• De facto ACL standard
• FIPL ACL• FIPA – Foundation for Intelligent Physical Agents
www.monash.edu.au
12
Ontologies
• A common vocabulary and agreed upon meanings to describe a subject domain
• Systems which communicate and work together must share an ontology
• Implicit Ontotlogies – represented by procedures – unstated
• Explicit Ontologies • Declarative representation using a KR language
www.monash.edu.au
13
Ontologies
• Conceptualisation• Underlying model of the domain in terms of
objects, attributes, relations• Vocabulary
• Assigning symbols/terms to refer to the attributes, objects and relations
• Axiomitisation • Encoding rules and constraints which capture
significant aspects of the domain
www.monash.edu.au
14
Ontologies
• Two ontologies may• Be based on different conceptualizations• Be based on the same conceptualizations but use
different vocabularies• Differ in how much they attempt to axiomitize the
ontologies
• Example: • FRUIT: apple, lemon, orange• FRUIT: mango, banana• FRUIT: tropical, temperate
www.monash.edu.au
15
Ontologies
• Several large ontologies
• Free
• Cyc – Original General Purpose Ontology
• WordNet – on-line lexical reference system
• World Fact Book – 5MB of KIF sentences
• UMLS – Unified Medical Language System
www.monash.edu.au
16
Ontologies
• Ontology building tools• Ontolingua – language for building, publishing and sharing
ontologies• Web based interface to a server• Stanford university• Ontologies can be translated into a number of KR languages – KIF,
CLIPS, Prolog, Lisp
• BOTTOMLINE: • Shared ontologies are important for agent communication and
knowledge sharing • provides a context to the communication
www.monash.edu.au
17
Knowledge Query Manipulation Language (KQML)
• Designed to support interactions among intelligent software agents
• Work by Yannis and Labrou (UMBC)• Message format definition• Message-handling protocol• Extensible• Specification of permitted “speech acts” for agents• Basis for higher levels of agent interactions – such as
negotiation, auctions etc.
www.monash.edu.au
18
Knowledge Query Manipulation Language (KQML)
• Designed to support interactions among intelligent software agents
• Lots of work by Yannis and Labrou (UMBC)• Message format definition• Message-handling protocol• Extensible• Specification of permitted “speech acts” for agents• Basis for higher levels of agent interactions – such as
negotiation, auctions etc.
www.monash.edu.au
19
Knowledge Query Manipulation Language (KQML)
• Allows computer processes to talk• Basic issues…• Knowing who to talk with• How to find them• How to initiate an exchange• How to maintain an exchange• What is the syntax• What are the semantics• KQML = Language + Set of Protocols
www.monash.edu.au
20
Agent Communication Protocols
• Variety of inter-process information exchange protocols
• Exchange 1 (Simplest)
• Agent A acts as client
• Sends a query to agent B (server)
• A waits for reply
• B’s reply might consist of a single answer or a set of answers
• Synchronous model
www.monash.edu.au
21
Agent Communication Protocols
• Exchange 2
• Server’s reply is not the complete answer
• Leads to more exchanges
• Example – querying from a relational database
• Synchronous model - but server should maintain state information
www.monash.edu.au
22
Agent Communication Protocols
• Exchange 3 • Client subscribes to a server’s output• An indefinite number of replies arrive at different
times• Client does not know when replies arrive• Maybe busy doing other things
• VARIATION: Broadcast to several servers. Replies have to be collated and associated with the query
• Asynchronous Model
www.monash.edu.au
23
Architecture for Knowledge Sharing
• Facilitators• Special agents• Coordinate the interactions of other agents• Performs communication services• Maintain registry of service names• Forward messages to named services• Route messages based on content• Matchmake between information providers and clients• Provide mediation and translations
www.monash.edu.au
24
Scenario 1
• Agent A wants to the value of X
• Agent B has X in its knowledge base
• Facilitator F is available
• A is aware that B has X
• Then A can query it directly – simple point-to-point protocol
www.monash.edu.au
25
Scenario 2
• A is not aware what agents are available and what is in their knowledge bases
• A subscribes to the facilitator to request that F for the value of X
• B subsequently informs F of the value of X
• F in turn informs A
• NOTE: ask, tell, subscribe – KQML constructs/primitives.
• In KQML primitives are called performatives
www.monash.edu.au
26
Scenario 3
• A asks F to find an agent that can process ask(X)
• B independently informs F that it is willing to accept performative ask(X)
• F has both messages – sends B the query, gets response and forwards to A
• Performatives: broker, advertise
www.monash.edu.au
27
Scenario 4
• A asks F to find an agent that can process ask(X) and tell it to send the results to A
• Performative used: recruit
www.monash.edu.au
28
Scenario 5
• A asks F for the name of an agent that can process ask(X)
• Performative used: recommend
www.monash.edu.au
29
Performatives’ Summary
• ask – request for information
• tell – reply, give information
• subscribe – let the facilitator know that you want some info. If it comes across it, it will forward it to you
• broker – ask facilitator to find another agent to process a request, receive a reply and forward it to initiating agent
www.monash.edu.au
30
Performatives’ Summary
• recruit – find an agent to satisfy a request and tell it to send the results to the requesting agent
• recommend – ask facilitator for the name of an agent and then talk to that agent directly
• advertise – just inform that you have some info. Without being asked for it
www.monash.edu.au
31
Facilitator
• Helps agents find appropriate clients and servers• How do agents find facilitators ?• Not an issue for KQML• PACT – all agents use a central common facilitator
• Fixed location• Initialised as a parameter during agent creating
• ARPI – On agent start up, connect to a local facilitator
www.monash.edu.au
32
KQML Syntax
• Can carry any representation language
• Message structure is independent of the message content
• KQML implementation ignores the content portion of the message
• Messages are the core of KQML
• Performative + Arguments within parentheses
• Arguments: keyword / value pairs
www.monash.edu.au
33
KQML – Argument Keywords
• :sender - sender of the performative• :receiver – recipient of the message• :from – the origin of the performative when forward
is used in :content• :to – the final destination when forward is used
in :content• :in-reply-to – label when responding to a previous
message• :reply-with – label when responding to a current
message
www.monash.edu.au
34
KQML – Argument Keywords
• :language – the name of the representation language in the :content
• :ontology – the name of the ontology assumed in the :content
• :content – actual content for which the performative was issued and the message was sent
www.monash.edu.au
35
Examples
(ask-all
:sender A
:receiver B
:in-reply-to ID0
:reply-with ID1
:language Prolog
:ontology foo
:content “bar(X,Y)” )
www.monash.edu.au
36
Examples
(tell
:sender B
:receiver A
:in-reply-to ID1
:reply-with ID2
:language Prolog
:ontology foo
:content “[bar(a,b),bar(c,d)]” )
www.monash.edu.au
37
Performative Summary
• BASIC QUERY – ask-if, evaluate, ask-about, ask-one, ask-all
• MULTI-RESPONSE – stream-about, stream-all, eos
• RESPONSE – reply, sorry
• GENERIC INFORMATIONAL – tell, achieve, cancel, untell, unachieve
• GENERATOR – standby, ready, next, rest, discard, generator
• CAPABILITY-DEFINITION – advertise, subsrcibe, monitor, import, export
• NETWORKING – register, unregister, forward, broadcast, route
www.monash.edu.au
38
KQML Evaluation
• Form – declarative, easy to read messages, easy to convert to other formats, easy to parse, simple syntax
• Content - Message is content independent• Semantics – Open ended issue. Very little formal
semantics available as yet. Performatives are generally described in natural languages
• Reliability – Security and authentication issues are still open.
www.monash.edu.au
39
KQML Evaluation
• Networking – communicate directly with other agents using their symbolic name or thru facilitators. Supports both synchronous and asynchronous messaging.
• Implementation – Many implementations available – UNISYS KQML API, Lockheed KQML API, JKQML etc.
• Environment – Any transport protocol TCP/IP, HTTP etc. No restrictions on content language
www.monash.edu.au
40
KQML Applications
• Several prototype and demonstration systems
• Integration of design and engineering tools
• Military transportation and logistics
• Translation of relational data into knowledge structures
• Agent Based Software Integration – Integrating software systems – Stanford Univ.
www.monash.edu.au
41
FIPA ACL
• Foundation for Intelligent Physical Agents
• Agent standards body
• Non-profit association
• Promote success of agent-based applications and services
• Members – academic institutions and commercial organisations
• Alcatel, British Telecom, Hitachi, HP, IBM, Intel, Lucent, NEC..etc. etc.
www.monash.edu.au
42
FIPA ACL
• Syntax is similar to KQML
• Based on speech act theory
• Communication through messages
• Facilitation and Management primitives are not part of the ACL
• Compose primitives from existing/core primitives
• Powerful Language “SL” for describing agent states
www.monash.edu.au
43
(inform :sender agent1 :receiver hpl-auction-server :content (price (bid good02) 150) :in-reply-to round-4 :reply-with bid04 :language sl :ontology hpl-auction)
Message Structure
www.monash.edu.au
44
FIPA ACL – Message Types
accept-proposal
agreecancelconfirmdisconfirmfailureinforminform-ifinform-refnot-understoodproposequery-ifquery-refrefusereject-proposalrequestrequest-whenrequest-wheneversubscribe
www.monash.edu.au
45
References
• KQML Draft Specification – Yannis, Finnin Labrou, Mayfield
• Papers and presentations by Yannis
• http://www.cs.umbc.edu/kqml