Title: Lecture 6 Agent Communication Languages ACLs
1Lecture 6 Agent Communication Languages (ACLs)
- Amund Tveit
- Department of Computer and Information Science
- Norwegian University of Science and Technology
- amund.tveit_at_idi.ntnu.no
- http//www.idi.ntnu.no/amundt/
- 47 4 162-6572
2Lecture Outline
- Motivation for Agent Communication
- Terminology of Agent Communication
- Requirements for ACLs
- Speech-act
- Examples of speech-act
- KQML
- FIPA ACL
- Facilitators
- Fipa ACCs (Agent Communication Channels)
- Fipa Interaction Protocol ( figure 3)
- Syntactic representation (XML, proprietary
lisp-like and efficient binary encoded) - Negotiation example in KQML
- Negotiation example in FIPA
- Transport mechanisms (Corba, HTTP)
- FIPA General Architecture Overview
- Ontologies
- KIF language overview and brief examples
- Semantic Web
3Motivation for Agent Communication
- Language is a very difficult thing to put into
words Voltaire - Communication is required for cooperation between
agents - Societies can perform tasks no individual agent
can - Autonomy encourages disregard for other agents
internal structure - Communicating agents need only know a common
language - Supports heterogenous agents
4Terminology of Agent Communication
- Speech Act Formal subset of natural language
representing actions - ACL Agent Communication Language
- FIPA - Foundation for Intelligent Physical Agents
- KQML Knowledge Query and Manipulation Language
- Ontology World Model, formal description of
agent domain - Encoding syntactic representation of ACL
messages - ACC Agent Communication Channel (FIPA)
- KSE Knowledge Sharing Effort
- KIF Knowledge Interchange Format
- Router entity that sends incoming messages in
correct direction - Facilitator An agent that includes a Router
5Features of ACLs - I
- Efficient
- Few bytes but much meaning, rich semantics for
each message - Easy-to-use for both machines and humans
- Based on Open Standards
- Allow agent and agent systems by different
vendors to communicate - Flexible
- Easy to extend without changing the language,
using ontologies - Support several syntactic representations
- Expressive
6Features of ACLs - II
- Be independent of Communication Carrier and
protocol - Support standard Carriers (Wired and Wireless)
- Support standard (Internet) Communication
Protocols - High-level
- Be inspired by natural language
- Have clear non-ambigious semantics and syntax
- logic features
- Avoid contradictions
- Procedural or Declarative
- Procedural
- Declarative
7Pros/Cons of Procedural ACLs
- Pros
- Allows transmission of entire programs
- Directly and efficiently executable
- Cons
- Unidirectional
- Difficult to merge
-
8Pros/Cons of Declarative ACLs
- Pros
- Highly expressive
- Bidirectional
- Cons
- Indirectly executable
- Possibly complex semantics
-
9Speech acts - I
- How to communicate when having a common language?
- Speech act contains three distinct acts
- Locution
- The physical utterance with context and reference
to other utterances - Illocution
- Communication of the speakers intention with the
speech act - Perlocution
- Further acts resulting from the speech acts
10Speech acts II - Illocution
- Illocution communication of the speakers
intention - An illocutionary act is composed from
- Propositional content P
- Describes state of affairs (claim)
- Context
- Speaker, hearer, time, location, ..
- Illocutionary Force F
- 5 categories assertives, directives, commisives,
expressives, declaratives - Sincerety condititions (psychological state)
- Example speech act The lecturer of SIF8072 is a
geek
11Speech acts III Illocutionary Force
12Speech acts III Illocutionary Force
13Speech acts III Illocutionary Force
14Speech acts III Illocutionary Force
15Speech acts III Illocutionary Force
16Illuctionary Force
- .. In addition
- Permissives
- Example you may shot the door
- Prohibitives
- Example you may not shot the door
17KQML - I
- Knowledge Query and Manipulation Language
- Basis work by the Knowledge Sharing Effort
group - Basic features of KQML
- Communicates attitude about sentences
- Language primitives are performatives defining
actions allowed in communication - Environment may contain facilitators to make
communication protocol transparent
18KQML - II
- Idea of KQML represent illocutionary acts
- Illocution communication of the speakers
intention - Performatives core of language, they
- Determine types of interactions with
KQML-speaking agent - Identify protocol to be used and speech act
attached to the content - Specify that content is an assertion, query,
command or another speech act - Describe how sender would like any reply
delivered
19Primitives (Performatives)
20Initiators
21Reactors
22Completers
23Categories of KQML performatives
- Basic Query performatives
- Multi-response query performatives
- Response performatives
- Generic Informational performatives
- Generator performatives
- Capability performatives
- Networking performatives
24KQML Examples
- A?B - (tell (gt 3 2))
- A?B - (perform (print hello t))
- B?A (reply done)
- A?B - (ask-if (gt (size chip1) (size chip2) ))
- B?A (reply true)
- A?B - (subscribe (position ?x ?r ?c))
- B?A (tell (position chip1 8 10))
- B?A (tell (position chip2 8 46))
- B?A (tell (position chip3 3 64))
- A?B - (unsubscribe (position ?x ?r ?c))
25KQML Statement Structure
- KQML Statements consists of
- A performative
- Parameters and context information
- General syntax
- (KQML-performative
- sender word
- receiver word
- language word
- ontology word
- content expression
- ...)
26KQML full example
- (ask-one content (geoloc TRD (?long ?lat))
- ontology geo-model3)
- (ask-all
- content price(IBM, ?price, ?time)
- receiver stock-server
- language standard-prolog
- ontology NYSE-TICS)
27KQML Agent naming
- System for mapping agents into names is important
in most ACLs - KQML assumes that names are local
- A can register with B under the name Alice
- A can register with C under the name Albert
- Doesnt preclude the use of a central Agent Name
Server, an architecture used by most systems - What gets registered under a name? Contact
information like - name(amundbot, tcpip, cavenan.idi.ntnu.no,80).
- name(amundbot,smtp,amundbot_at_jfipa.org)
- name(amundbot,http,www.jfipa.org80/)
28Facilitators - I
- Agents performing various (useful) communication
services - Maintain registry of service names
- Forward messages to named services
- Route messages based on content
- Provide matchmaking
- Provide mediation and translation services
29Facilitators - I
30Facilitators - II
31Facilitators - III
32Facilitators IV
33Facilitators - V
34Routers
- Content-independent message routers
- Each KQML-agent is associated with its own
separate router process - Router handles all outgoing/incoming ACL messages
- Outgoing messages can specify a particular agent
address (to agent or router) - Message can specify a description of context
- Delivery of messages is not guaranteed
35Other ACLs
- Telescript supports mobile computing
- FIPA ACL competing/extending KQML
- FIPA vs KQML
- Both are based on speech act
- Different set of performatives
- FIPA has a more formal basis
- FIPA can describe interaction protocols
- FIPA is probably becoming the standard ACL
36What is FIPA?
- The Foundation for Intelligent Physical Agents
(FIPA) is a non-profit association. - FIPAs purpose is to promote the success of
emerging agent-based applications, services and
equipment. - FIPAs goal is pursued by making available in a
timely manner, internationally agreed
specifications that maximise interoperability
across agent-based applications, services and
equipment. - URL http//www.fipa.org/
37Who is FIPA?
- FIPA operates through the open international
collaboration of member organisations, which are
companies and universities active in the agent
field. - Companies Alcatel, Boeing, British Telecom,
Deutsche Telekom, France Telecom, Fujitsu,
Hitatchi, HP, IBM, Fujitsu, Hewlett Packard,
IBM, Intel, Lucent, NEC, NHK, NTT, Nortel,
Siemens, SUN, Telia, Toshiba, etc. - Universities and Research Institutes GMD, EPFL,
Imperial, IRST, etc. - Government Agencies DARPA
38FIPA Encodings and package
- Fipa supports three main types of syntax
encoding - Extensible Markup Language XML
- Proprietary Binary format
- Lisp-like format
- Separates between Envelopes and Messages
39Example - XML-encoded FIPA ACL
- lt?xml version"1.0"?gt
- ltenvelopegt
- Â ltparams index"1"gt
- Â Â Â lttogt
- Â Â Â Â Â ltagent-identifiergt
- Â Â Â Â Â Â Â ltnamegtreceiver_at_foo.comlt/namegt
- Â Â Â Â Â Â Â ltaddressesgt
- Â Â Â Â Â Â Â Â Â lturlgthttp//foo.com/acclt/urlgt
- Â Â Â Â Â Â Â lt/addressesgt
- Â Â Â Â Â lt/agent-identifiergt
- Â Â Â lt/togt
- Â Â Â ltfromgt
- Â Â Â Â Â ltagent-identifiergt
- Â Â Â Â Â Â Â ltnamegtsender_at_bar.comlt/namegt
- Â Â Â Â Â Â Â ltaddressesgt
- Â Â Â Â Â Â Â Â Â lturlgthttp//bar.com/acclt/urlgt
- Â Â Â Â Â Â Â lt/addressesgt
- Â Â Â Â Â lt/agent-identifiergt
- Â Â Â lt/fromgt
40 Binary encoded FIPA XML
- 0xfe 0x00 0x97 0x12 0x20 0x31 0x11 0x06 0x19 0x15
0x37 0x62 0x59 0x20 0x02 0x03 0x02 - r e c e i v e r _at_ fÂ
o o . c o m 0x00 - 0x02 h t t p  / / f oÂ
o . c o m / a - c c 0x00 0x01 0x01 0x02 s e n dÂ
e r _at_ b a r . - c o m 0x00 0x02 h t t p Â
/ / b a r . c - o m / a c c 0x00 0x01 0x01 0x08
n o  e n c r - y p t i o n 0x00 0x0a h tÂ
t p  / / b a - r . c o m / a c c 0x00
0x20 0x31 0x11 0x06 0x19 0x15 0x37 - 0x62 0x59 0x20 0x03 1Â 2Â 3Â 4Â 5Â 6Â
7Â 8Â 9Â 0x00 0x01 - Â
41Shortcomings of current ACLs
- Intentional level description which mental
attitudes, what definitions? - Problems with mental attitudes from theory to
practice - Can all desirable communication primitives be
modeled after speech acts? Should they? - Flexible description of agents capabilities and
advertising of such capabilities. - How can we test an agents compliance with the
ACL? - Ease of extending an ACL
42Conclusions of Lecture
- Agent Communication Languages have a common basis
speech act - Syntax is well specified, but current research is
on describing semantics