250 likes | 647 Views
Agents Communication Languages (ACL) . http://www.engr.uconn.edu/%7Eibrahim/publications/acl.htm Dumitru Roman Digital Enterprise Research Institute dumitru.roman@deri.ie. Outline. Introduction Knowledge Query and Manipulation Language (KQML)
E N D
Agents Communication Languages (ACL) http://www.engr.uconn.edu/%7Eibrahim/publications/acl.htm Dumitru Roman Digital Enterprise Research Institute dumitru.roman@deri.ie
Outline • Introduction • Knowledge Query and Manipulation Language (KQML) • Foundation for Intelligent Physical Agents (FIPA) ACL • Comparing between KQML and FIPA • Relevance to WSMO dumitru.roman@deri.ie
Introduction • Motivation: standard communication between heterogeneous agent communities. • The origin of ACLs: Knowledge Sharing Effort (KSE) - 1990 • software systems are virtual knowledge bases that exchange propositions using a language that expresses various complex attitudes - propositional attitudes - three part relationships between: • An agent, • A content bearing proposition (for example, it is raining), and • A finite set of propositional attitudes an agent might have with respect to the proposition (for example, believing, asserting, fearing, wondering, hoping, and so on). Example: <a,fear,raining(t_now )> dumitru.roman@deri.ie
Requirements of ACLs (1) • Form – an ACL should be: • Declarative, syntactically simple, and readable by people. • Concise, easy to parse and to generate. • Content • A distinction should be made between the communication language, which expresses communicative acts, and the content language, which expresses facts about the domain. • The language should commit to a well-defined set of communicative acts (primitives). • Semantics - should be grounded in theory, and should be unambiguous. dumitru.roman@deri.ie
Requirements of ACLs (2) • Implementation - should be efficient, both for speed, and for bandwidth utilization. • Networking – an ACL should fit well with modern networking technology. • Environment – an ACL must provide tools for coping with heterogeneity and dynamism and support interoperability with other languages and protocols. • Reliability – an ACL must support reliable and secure communication among agents. dumitru.roman@deri.ie
Requirements on agents to support ACL • Agents should send not-understood (or error) if they receive a message that they do not recognize or they are unable to process the content of the message. • An ACL compliant agent may choose to implement any subset of the pre-defined message types and protocols. • An ACL compliant agent which uses the communicative acts whose names are defined in ACL’s specification must implement them correctly with respect to their definition. • Agents may use communicative acts with other names, and are responsible for ensuring that the receiving agent will understand the meaning of the act. • An ACL compliant agent must be able to correctly generate a syntactically well-formed message in the transport form that corresponds to the message it wishes to send. • In general, a content language must be able to express propositions, objects and actions. dumitru.roman@deri.ie
Basic concepts of ACL • An ACL provides agents with a means of exchanging information and knowledge. • The ACL itself defines the types of messages (and their meanings) that agents can exchange. • Agents have conversations—task oriented, shared sequences of messages that they follow, such as a negotiation or an auction. • The message types of ACLs - speech acts. dumitru.roman@deri.ie
Knowledge Query and Manipulation Language (KQML) • A high-level, message-oriented communication language and protocol for information exchange independent of content syntax and applicable ontology. • Three layers in a KQML message: • Content - bears the actual content of the message in the program’s own representation language. • Communication - encodes a set of features to the message that describe the lower-level communication parameters. • Message - identify the network protocol with which to deliver the message and supply a speech act or perfomative that the sender attaches to the content. dumitru.roman@deri.ie
KQML Performatives • A KQML message is called a performative. • Parameters of a performative: dumitru.roman@deri.ie
(tell:sender bookShopAgent123 :receiver ksAgent :in-reply-to id7.34.96.45391 :ontology books :languageProlog :content “price(ISBN3429459,24.95)”) performative parameter value A KQML Message A KQML Dialogue: A to B: (ask-if (> (price bk1) (price bk2))) B to A: (reply true) B to A: (inform (= (price bk1) 25.50)) B to A: (inform (= (price bk2) 19.99)) dumitru.roman@deri.ie
KQML Performatives - Discourse performatives (1) • ask-if - S wants to know if the :content is in R's KB. • ask-all - S wants all of R's instantiations of the :content that are true of R. • ask-one - S wants one of R's instantiations of the :content that is true of R. • stream-all - multiple-response version of ask-all. • eos - the end-of-stream marker to a multiple-response (stream-all). • tell - the sentence is in S's KB. • untell - the sentence is not in S's KB. • deny - the negation of the sentence is in S's KB. • insert - S asks R to add the :content to its KB dumitru.roman@deri.ie
KQML Performatives - Discourse performatives (2) • uninsert - S wants R to reverse the act of a previous insert. • delete-one - S wants R to remove one matching sentence from its KB. • delete-all - S wants R to remove all matching sentences from its KB. • undelete - S wants R to reverse the act of a previous delete. • achieve - S wants R to do make something true of its physical environment. • unachieve - S wants R to reverse the act of a previous achieve. • advertise - S wants R to know that S can and will process a message like the one in :content. • unadvertise - S wants R to know that S cancels a previous advertise and will not process any more messages like the one in the :content. dumitru.roman@deri.ie
KQML Performatives - Intervention and mechanics of conversation performatives • error - S considers R's earlier message to be mal-formed. • sorry - S understands R's message but cannot provide a more informative response. • standby - R will deliver its response to the S as soon as a response is generated. • ready - S is ready to respond to a message previously received from R. • next - S wants R's next response to a message previously sent by S. • rest - S wants R's remaining responses to a message previously sent by S, • discard - S does not want R's remaining responses to a previous (multi-response) message. dumitru.roman@deri.ie
KQML Performatives - Networking and Facilitation performatives (1) • register - S announces to R its presence and symbolic name. • unregister - S wants R to reverse the act of a previous register. • forward - S wants R to forward the message to the :to agent (R might be that agent). • broadcast - S wants R to send a message to all agents that R knows of. • transport-address - S associates its symbolic name with a new transport address. dumitru.roman@deri.ie
KQML Performatives - Networking and Facilitation performatives (2) • broker-one - S wants R to find one response to the :content (some agent other than R is going to provide that response). • broker-all - S wants R to find all responses to the :content (some agent other than R is going to provide that response). • recommend-one - S wants to learn of an agent who may respond to the :content. • recommend-all - S wants to learn of all agents who may respond to the :content. • recruit-one - S wants R to get one suitable agent to respond to the :content. • recruit-all - S wants R to get all suitable agents to respond to the :content. dumitru.roman@deri.ie
Semantics of KQML • Semantics of each performative is defined in terms of: • preconditions - indicate the necessary states for an agent to send a performative and for the receiver to accept it and successfully process it. • postconditions - describe the states of the sender after the successful utterance of a performative, and of the receiver after the receipt and processing of a message. • completion conditions - indicate the final state, after a conversation has taken place and the intention associated with the performative that started the conversation has been fulfilled. dumitru.roman@deri.ie
Foundation for Intelligent Physical Agents (FIPA) ACL • Based on speech act theory: messages are actions or communicative acts. • Consists of a set of message types and the description of their pragmatics—that is, the effects on the mental attitudes of the sender and receiver agents. • Describes every communicative act with both a narrative form and a formal semantics based on modal logic. • Separates the outer language (the intended meaning of the message) from the inner language (content language). • The communication primitives are called communicative acts. dumitru.roman@deri.ie
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 ) ACL Message Note: FIPA uses a different content language from KQML called SL, which is based on modal logic. dumitru.roman@deri.ie
FIPA - Communicative Acts (1) • accept-proposal - The action of accepting a previously submitted proposal to perform an action. • agree - The action of agreeing to perform some action, possibly in the future. • cancel - The action of cancelling some previously request'ed action which has temporal extent (i.e. is not instantaneous). • cfp - The action of calling for proposals to perform a given action. • confirm - The sender informs the receiver that a given proposition is true, where the receiver is known to be uncertain about the proposition. • disconfirm - The sender informs the receiver that a given proposition is false, where the receiver is known to believe, or believe it likely that, the proposition is true. • failure - The action of telling another agent that an action was attempted but the attempt failed. • inform - The sender informs the receiver that a given proposition is true. dumitru.roman@deri.ie
FIPA - Communicative Acts (2) • inform-if - A macro action for the agent of the action to inform the recipient whether or not a proposition is true. • inform-ref - A macro action for sender to inform the receiver that an object corresponds to a definite descriptor (e.g. a name). • not-understood - The sender of the act (e.g. i) informs the receiver (e.g. j) that it perceived that j performed some action, but that i did not understand what j just did. • propose - The action of submitting a proposal to perform a certain action, given certain preconditions. • query-if - The action of asking another agent whether or not a given proposition is true. • query-ref - The action of asking another agent for the object referred to by an expression. • refuse - The action of refusing to perform a given action, and explaining the reason for the refusal. dumitru.roman@deri.ie
FIPA - Communicative Acts (3) • reject-proposal - The action of rejecting a proposal to perform some action during a negotiation. • request - The sender requests the receiver to perform some action. One important class of uses of the request act is to request the receiver to perform another communicative act. • request-when - The sender wants the receiver to perform some action when some given proposition becomes true. • request-whenever - The sender wants the receiver to perform some action as soon as some proposition becomes true and thereafter each time the proposition becomes true again. • request-whomever - The sender wants an action performed by some agent other than itself. The receiving agent should either perform the action or pass it on to some other agent. • subscribe - The act of requesting a persistent intention to notify the sender of the value of a reference, and to notify again whenever the object identified by the reference changes. dumitru.roman@deri.ie
Semantics of FIPA ACL • SL (Semantic Language) – it can represent propositions, objects, and actions. • Semantics of each communicative act is specified as sets of SL formulae that describe the act’s • feasibility pre-conditions - describe the necessary conditions for the sender of the CA. • rational effect - represents the effect that an agent can expect to occur as a result of performing the action; it also typically specifies conditions that should hold true of the recipient. dumitru.roman@deri.ie
Comparing KQML and FIPA ACL (1) • Almost identical with respect to their basic concepts and the principles they observe. • Differ primarily in the details of their semantic frameworks. • KQML and FIPA ACL messages look syntactically identical. • Difference in their treatment of the registration and facilitation primitives. dumitru.roman@deri.ie
Comparing KQML and FIPA ACL (2) • agent management • KQML: register, unregister, recommend, broker, recruit, advertise. • FIPA considers these to be services offered by the basic agents in a system, rather than message types. • communications management • KQML: broadcast, transport-address, forward. • FIPA considers these to be services offered by the basic agents in a system, rather than message types. • multiple solutions • KQML: ask-one, ask-all, stream-all, eos, standby, ready, next, rest, discard. • FIPA does not express these concepts in the ACL, but in the content of the ACL messages. • direct belief manipulation • KQML: insert, uninsert, delete-one, delete-all. • FIPA has no equivalent of these, since agents are not given the power to directly manipulate the beliefs of other agents. • goal definition • KQML: acheive, unacheive. • FIPA does not express these concepts in the ACL, but in the context of the ACL messages. dumitru.roman@deri.ie
Relevance to WSMO • Consider the idea of speech acts for simple MEP in WSMO: • FIPA ACL request • FIPA ACL inform • FIPA ACL failure • Consider WSML as the content language dumitru.roman@deri.ie