ACL & Protocols

by Alan Mehlenbacher  Oct/2001

Parameters

 

Parameter

Meaning

1.     

:sender

identity of the sender of the message

2.     

:receiver

identity of the intended recipient of the message.

3.     

:reply-with

expression which will be used by the agent responding to this message to identify the original message. Can be used to follow a conversation thread in a situation where multiple dialogues occur simultaneously.

4.     

:in-reply-to

expression that references an earlier action to which this message is a reply.

5.     

:envelope

expression that provides useful information about the message as seen by the message transport service -- may include time sent, time received, route, etc.

6.     

:language

encoding scheme of the content of the action.

7.     

:ontology

ontology which is used to give a meaning to the symbols in the content expression.

8.     

:reply-by

time and/or date expression which indicates a guideline on the latest time by which the sending agent would like a reply.

9.     

:protocol

identifier which denotes the protocol which the sending agent is employing. The protocol serves to give additional context for the interpretation of the message.

10.             

:conversation-id

expression which is used to identify an ongoing sequence of communicative acts which together form a conversation.

11.             

:content

content of the message; equivalently denotes the object of the action.

 

ACL Communicative Acts

 

ACL

Meaning

12.   

accept-proposal

The action of accepting a previously submitted proposal to perform an action.

13.   

agree

The action of agreeing to perform some action, possibly in the future.

14.   

cancel

The action of cancelling some previously requested action which has temporal extent (i.e. is not instantaneous).

15.   

cfp

The action of calling for proposals to perform a given action.

16.   

confirm

The sender informs the receiver that a given proposition is true, where the receiver is known to be uncertain about the proposition.

17.   

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.

18.   

failure

The action of telling another agent that an action was attempted but the attempt failed.

19.   

inform

The sender informs the receiver that a given proposition is true.

20.   

inform-if (macro act)

A macro action for the agent of the action to inform the recipient whether or not a proposition is true.

21.   

inform-ref (macro act)

A macro action for sender to inform the receiver the object which corresponds to a definite descriptor.

22.   

not-understood

The sender of the act A informs the receiver B that it perceived that B performed some action, but that A did not understand what B just did. A common case is that A tells B that A did not understand the message that B has just sent to A.

23.   

propose

The action of submitting a proposal to perform a certain action, given certain preconditions.

24.   

query-if

The action of asking another agent whether or not a given proposition is true.

25.   

query-ref

The action of asking another agent for the object referred to by an expression.

26.   

refuse

The action of refusing to perform a given action, and explaining the reason for the refusal.

27.   

reject-proposal

The action of rejecting a proposal to perform some action during a negotiation.

28.   

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.

29.   

request-when

The sender wants the receiver to perform some action when some given proposition becomes true.

30.   

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.

31.   

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.

 

Learning ACL by Example

query-if, confirm, disconfirm

query-if

The action of asking another agent whether or not a given proposition is true.

Example

(query-if
:sender A:receiver B

:content

<marketplace><product>plums</product>

<date>today</date></marketplace>

:language XML

:ontology  mp.xsd) 

confirm

The sender informs the receiver that a given proposition is true.

Example

(confirm

:sender B :receiver A

:content

<marketplace><product>plums</product>

<date>today</date></marketplace>

:language XML

:ontology  mp.xsd) 

disconfirm

The sender informs the receiver that a given proposition is false.

Example

(disconfirm
:sender B:receiver A

:content

<marketplace><product>plums</product>

<date>today</date></marketplace>

:language XML

:ontology  mp.xsd) 

inform

The sender informs the receiver that a given proposition is true.

Example

(inform
:sender B
:receiver A
:content

<marketplace><product>peaches</product>

<date>today</date></marketplace>
:language XML

:ontology  mp.xsd) 

 

request/failure

request

The sender requests the receiver to perform some action.

Example

Agent A requests B to open a file:

(request

:sender A
:receiver B
:content <task><action>open</action><object>\foo.txt\<object>

<purpose>input</purpose></task>

:reply-with of01
:language XML

:ontology  task.xsd) 

 agree

The action of agreeing to perform some action.

Example

Agent B answers that it agrees to the request.

(agree
:sender B
:receiver A
:content

<task><action>open</action><object>\foo.txt\<object>

<purpose>input</purpose></task>

:in-reply-to of01
:language XML

:ontology  task.xsd) 

failure

The action of telling another agent that an action was attempted but the attempt failed.

Example

Agent B informs A that it has failed to open a file:

(failure
:sender B
:receiver A
:content

<task><action>open</action><object>\foo.txt\<object>

<purpose>input</purpose> <status>error</status>

<feedback>No such file: foo.txt</feedback></task>

:in-reply-to of01
:language XML

:ontology  task.xsd) 

 

cfp/propose/accept-proposal/reject-proposal

cfp

The action of calling for proposals to perform a given action.

Example

Agent A asks B to submit its proposal to sell 50 boxes of plums:

(cfp
:sender A
:receiver B

:content

<proposal><product>plum</product>

<transaction>sell</transaction>

<unit>box</unit><quantity>50</quantity></proposal>

:conversation-id 2000-06-10-384

:language XML

:ontology  bid.xsd) 

propose

The action of submitting a proposal to perform a certain action, given certain preconditions.

Example

Agent B informs A that it will sell 50 boxes of plums for 200:

(propose

:sender B

:receiver A

:content

<proposal><product>plum</product>

<transaction>sell</transaction>

<unit>box</unit><quantity>50</quantity>

<price>200</price></proposal>

:conversation-id 2000-06-10-384
:language XML

:ontology  bid.xsd) 

 accept-proposal

The action of accepting a proposal to perform an action.

Example

(accept-proposal

:sender A

:receiver B

:content

<proposal><product>plum</product>

<transaction>sell</transaction>

<unit>box</unit><quantity>50</quantity>

<price>200</price></proposal>

:conversation-id 2000-06-10-384

:language XML

:ontology  bid.xsd) 

 reject-proposal

The action of rejecting a proposal to perform some action during a negotiation.

Example

(reject-proposal

:sender A

:receiver B
:content

<proposal><product>plum</product>

<transaction>sell</transaction>

<unit>box</unit><quantity>50</quantity>

<price>200</price></proposal>

:conversation-id 2000-06-10-384

:language XML

:ontology  bid.xsd) 

  The Rest of the Communicative Acts

not-understood

The sender received a communicative act which it did not understand.  This would be due to lack of recognition of the content language, the protocol, or the ontology.

Example

Agent A did not understand a query-if message because it did not recognise the ontology:

(not-understood
:sender A

:receiver B

:content

<reason>ontology</reason>

:language xml

:conversation-id 200006101030)

refuse

The refuse act is an abbreviation for denying that an act is possible for the agent to perform, and stating the reason why that is so.

Example

Agent B refuses to sell plums to A, since there are insufficient funds in A's account:

(refuse

:sender B

:receiver A

:content

      <reason>insufficient-funds</reason>

:language xml

:conversation-id 2000-06-10-384)

cancel

The action of cancelling some previously request'ed action which has temporal extent (i.e. is not instantaneous) such as an electronic commerce agreement.

Example

Agent A asks B to cancel an action by cross-referencing the previous conversation in which the request was made:

(cancel

:sender A

:receiver B

:conversation-id 2000-06-10-384)

inform-if

The inform-if is used like a macro within a request.  The agent which enacts an inform-if macro-act will actually perform a standard inform act.

Examples

Agent A requests B to inform whether plums are for sale:

(request

:sender A

:receiver B

:content

      (inform-if :sender B

             :receiver A

             :content 

<product>plums</product>

     <status>forsale</status>

:language xml)

:reply-with query1

:language sl)

Agent B replies that they are not:

(inform :sender B
    :receiver A
    :content

<product>plums</product>

<status>notforsale</status>      

    :language xml

    :in-reply-to query1 )

inform-ref

This is similar to inform-if except it wants information about ("in reference to") some object, e.g. product.

Example

Agent A requests B to tell it what is the product for sale:

(request

:sender A

:receiver B

:content

    (inform-ref

   :sender B

   :receiver A

   :content

<product> /product>

:language xml)

:reply-with query2

:language sl)

 

Agent B replies:

(inform

:sender B 

:receiver A

:content

<product>peaches</product>

:language xml

:in-reply-to query2)

query-ref

Query-ref is the act of asking another agent to inform the requestor about the object identified by a definite descriptor. The sending agent is requesting the receiver to perform an inform act, containing the object that corresponds to the definite descriptor (see also subscribe).

Example

Agent A asks agent B for its products:

(query-ref

:sender A

:receiver B

:content

       <products></products>)

 

B replies that it can sell plums & peaches:

(inform

:sender B

:receiver A

:content

       <products>

           <product>plums</product>

           <product>peaches</product>

        </products> )

subscribe

The subscribe act is a persistent version of query-ref, such that the agent receiving the subscribe will inform the sender of the value of the reference, and will continue to send further informs if the object denoted by the definite description changes.

A subscription set up by a subscribe act is terminated by a cancel act.

Example

Agent A asks agent B to inform A each time it has products for sale:

(subscribe

:sender A

:receiver B

:content

       <products></products>

:language xml

:conversation-id 2000-06-11-908)

 

B replies that it can sell plums::

(inform

:sender B

:receiver A

:content

       <products>

           <product>plums</product>

       </products>

:language xml

:conversation-id 2000-06-11-908 )

 

B subsequently replies that it can sell peaches and apples:

(inform

:sender B

:receiver A

:content

       <products>

           <product>peaches</product>

           <product>apples</product>

       </products>

:language xml

:conversation-id 2000-06-11-908 )

 

Agent A asks B to cancel the subscribe:

(cancel

:sender A

:receiver B

:language xml

:conversation-id 2000-06-11-908)

request-when:

Request-when allows an agent A to inform another agent B that a certain action should be performed as soon as a given condition becomes true.

Agent B could refuse to do this, or Agent A can cancel it.

Example

Agent A tells agent B to notify it as soon as an auction starts.

(request-when

:sender A

:receiver B

:content

         <message>

(inform

:sender B

:receiver A

:content

<auction-state>starting</auction-state>)

         </message>

         <condition>

<auction-state>starting</auction-state>

         </condition>

:language xml

:conversation-id 2000-06-12-908)

request-whenever

Request-whenever allows an agent to inform another agent that a certain action should be performed as soon as a given condition becomes true, and that, furthermore, if the condition should subsequently become false, the action will be repeated as soon as it once again becomes true.

Example

Agent A tells agent B to notify it whenever the price of plums goes under 50.

(request-whenever

:sender A

:receiver B

:content

        <message>

(inform

:sender B

:receiver A

:content <product>plums</product>

                <price></price>)

         </message>

         <condition>

  <price>50</price>

         </condition>

:language xml

:conversation-id 2000-06-12-768)

 

query-Protocol

request-Protocol

contract-net Protocol