FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS

 

 

FIPA Communicative Act Library Specification

 

Document title

FIPA Communicative Act Library Specification

Document number

XC00037I

Document source

FIPA TC Communication

Document status

Experimental

Date of this status

2002/11/01

Supersedes

FIPA00003, FIPA00038, FIPA00039, FIPA00040, FIPA00041, FIPA00042, FIPA00043, FIPA00044, FIPA00045, FIPA00046, FIPA00047, FIPA00048, FIPA00049, FIPA00050, FIPA00051, FIPA00052, FIPA00053, FIPA00054, FIPA00055, FIPA00056, FIPA00057, FIPA00058, FIPA00059, FIPA00060

Contact

fab@fipa.org

Change history

See Informative Annex B — ChangeLog

 

 

 

 

 

 

 

 

 

© 1996-2002 Foundation for Intelligent Physical Agents
http://www.fipa.org/
Geneva, Switzerland

Notice

Use of the technologies described in this specification may infringe patents, copyrights or other intellectual property rights of FIPA Members and non-members. Nothing in this specification should be construed as granting permission to use any of the technologies described. Anyone planning to make use of technology covered by the intellectual property rights of others should first obtain permission from the holder(s) of the rights. FIPA strongly encourages anyone implementing any part of this specification to determine first whether part(s) sought to be implemented are covered by the intellectual property of others, and, if so, to obtain appropriate licenses or other permission from the holder(s) of such intellectual property prior to implementation. This specification is subject to change without notice. Neither FIPA nor any of its Members accept any responsibility whatsoever for damages or liability, direct or consequential, which may result from the use of this specification.

Foreword

The Foundation for Intelligent Physical Agents (FIPA) is an international organization that is dedicated to promoting the industry of intelligent agents by openly developing specifications supporting interoperability among agents and agent-based applications. This occurs through open collaboration among its member organizations, which are companies and universities that are active in the field of agents. FIPA makes the results of its activities available to all interested parties and intends to contribute its results to the appropriate formal standards bodies where appropriate.

The members of FIPA are individually and collectively committed to open competition in the development of agent-based applications, services and equipment. Membership in FIPA is open to any corporation and individual firm, partnership, governmental body or international organization without restriction. In particular, members are not bound to implement or use specific agent-based standards, recommendations and FIPA specifications by virtue of their participation in FIPA.

The FIPA specifications are developed through direct involvement of the FIPA membership. The status of a specification can be either Preliminary, Experimental, Standard, Deprecated or Obsolete. More detail about the process of specification may be found in the FIPA Document Policy [f-out-00000] and the FIPA Specifications Policy [f-out-00003]. A complete overview of the FIPA specifications and their current status may be found on the FIPA Web site.

FIPA is a non-profit association registered in Geneva, Switzerland. As of June 2002, the 56 members of FIPA represented many countries worldwide. Further information about FIPA as an organization, membership information, FIPA specifications and upcoming meetings may be found on the FIPA Web site at http://www.fipa.org/.

Contents

1     Introduction. 1

2     Overview. 2

2.1      Status of a FIPA-Compliant Communicative Act 2

3     FIPA Communicative Acts. 3

3.1      Accept Proposal 3

3.2      Agree. 4

3.3      Cancel 5

3.4      Call for Proposal 6

3.5      Confirm.. 7

3.6      Disconfirm.. 8

3.7      Failure. 9

3.8      Inform.. 10

3.9      Inform If 11

3.10       Inform Ref 12

3.11       Not Understood. 14

3.12       Propagate. 16

3.13       Propose. 18

3.14       Proxy. 19

3.15       Query If 21

3.16       Query Ref 22

3.17       Refuse. 23

3.18       Reject Proposal 24

3.19       Request 25

3.20       Request When. 26

3.21       Request Whenever 27

3.22       Subscribe. 28

4     References. 29

5     Informative Annex A — Formal Basis of ACL Semantics. 30

5.1      Introduction to the Formal Model 30

5.2      The Semantic Language. 31

5.2.1      Basis of the Semantic Language Formalism.. 31

5.2.2      Abbreviations. 32

5.3      Underlying Semantic Model 33

5.3.1      Property 1. 33

5.3.2      Property 2. 34

5.3.3      Property 3. 34

5.3.4      Property 4. 34

5.3.5      Property 5. 34

5.3.6      Notation. 34

5.3.7      Note on the Use of Symbols in Formulae. 35

5.3.8      Supporting Definitions. 35

5.4      Primitive Communicative Acts. 35

5.4.1      The Assertive Inform.. 35

5.4.2      The Directive Request 36

5.4.3      Confirming an Uncertain Proposition: Confirm.. 36

5.4.4      Contradicting Knowledge: Disconfirm.. 36

5.5      Composite Communicative Acts. 37

5.5.1      The Closed Question Case. 37

5.5.2      The Query If Act 38

5.5.3      The Confirm/Disconfirm Question Act 38

5.5.4      The Open Question Case. 39

5.6      Inter-Agent Communication Plans. 40

6     Informative Annex B — ChangeLog. 41

6.1      2002/11/01 - version I by TC X2S. 41


1         Introduction

This document contains deals with structuring the FIPA Communicative Act Library (CAL). It contains specifications for:

 

·         Defining the structure of the CAL.

 

·         Defines the formal basis of FIPA ACL semantics for the semantic characterization of each FIPA communicative act.

 


2         Overview

This document specifies the FIPA CAL. The objectives of standardizing and defining a library of FIPA compliant communicative acts are:

 

·         To help ensure interoperability by providing a standard set of composite and macro communicative acts, derived from the FIPA primitive communicative acts,

 

·         To facilitate the reuse of composite and macro communicative acts, and,

 

·         To provide a well-defined process for maintaining a set of communicative acts and act labels for use in the FIPA ACL.

 

2.1        Status of a FIPA-Compliant Communicative Act

The definition of a communicative act belonging to the CAL is normative. That is, if a given agent implements one of the acts in the CAL, then it must implement that act in accordance with the semantic definition in the CAL. However, FIPA-compliant agents are not required to implement any of the CAL languages, except the not-understood composite act.

                                                                                                      

By collecting communicative act definitions in a single, publicly accessible registry, the CAL facilitates the use of standardized communicative acts by agents developed in different contexts. It also provides a greater incentive to developers to make any privately developed communicative acts generally available.

 

The name assigned to a proposed communicative act must uniquely identify which communicative act is used within a FIPA ACL message. It must not conflict with any names currently in the library, and must be an English word or abbreviation that is suggestive of the semantics.

 

FIPA is responsible for maintaining a consistent list of approved and proposed communicative act names and for making this list publicly available to FIPA members and non-members. This list is derived from the FIPA CAL.

 

In addition to the semantic characterization and descriptive information that is required, each communicative act in the CAL may specify additional information, such as stability information, versioning, contact information, different support levels, etc.

 


3         FIPA Communicative Acts

3.1        Accept Proposal

Summary

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

Message Content

A tuple consisting of an action expression denoting the action to be done, and a proposition giving the conditions of the agreement.

Description

accept-proposal is a general-purpose acceptance of a proposal that was previously submitted (typically through a propose act). The agent sending the acceptance informs the receiver that it intends that (at some point in the future) the receiving agent will perform the action, once the given precondition is, or becomes, true.

 

The proposition given as part of the acceptance indicates the preconditions that the agent is attaching to the acceptance. A typical use of this is to finalize the details of a deal in some protocol. For example, a previous offer to “hold a meeting anytime on Tuesday” might be accepted with an additional condition that the time of the meeting is 11.00.

 

Note for future extension: an agent may intend that an action become done without necessarily intending the precondition. For example, during negotiation about a given task, the negotiating parties may not unequivocally intend their opening bids: agent a may bid a price p as a precondition, but be prepared to accept price p'.

Formal Model

<i, accept-proposal (j, <j, act>, f))> º

  <i, inform (j, Ii Done (<j, act>, f))>

    FP: Bi a Ù ØBi (Bifj a Ú Uifj a)

    RE: Bj a

           

Where:

 

a = Ii Done (<j, act>, f)

Example

Agent i informs j that it accepts an offer from j to stream a given multimedia title to channel 19 when the customer is ready. Agent i will inform j of this fact when appropriate.

           

(accept-proposal

  :sender (agent-identifier :name i)

  :receiver (set (agent-identifier :name j))

  :in-reply-to bid089

  :content

    "((action (agent-identifier :name j)

      (stream-content movie1234 19))

     (B (agent-identifier :name j)

      (ready customer78)))"

  :language fipa-sl)

 


3.2        Agree

Summary

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

Message Content

A tuple, consisting of an action expression denoting the action to be done, and a proposition giving the conditions of the agreement.

Description

agree is a general-purpose agreement to a previously submitted request to perform some action. The agent sending the agreement informs the receiver that it does intend to perform the action, but not until the given precondition is true.

 

The proposition given as part of the agree act indicates the qualifiers, if any, that the agent is attaching to the agreement. This might be used, for example, to inform the receiver when the agent will execute the action which it is agreeing to perform.

 

Pragmatic note: The precondition on the action being agreed to can include the perlocutionary effect of some other CA, such as an inform act. When the recipient of the agreement (for example, a contract manager) wants the agreed action to be performed, it should then bring about the precondition by performing the necessary CA. This mechanism can be used to ensure that the contractor defers performing the action until the manager is ready for the action to be done.

Formal Model

<i, agree (j, <i, act>, f))> º

  <i, inform (j, Ii Done (<i, act>, f))>

    FP: Bi a Ù ØBi (Bifj a Ú Uifj a)

    RE: Bj a

 

Where:

a = Ii Done(<i, act>, f)

 

Note that the formal difference between the semantics of agree and the semantics of accept-proposal rests on which agent is performing the action.

Example

Agent i requests j to deliver a box to a certain location; j answers that it agrees to the request but it has low priority.

 

(request

  :sender (agent-identifier :name i)

  :receiver (set (agent-identifier :name j))

  :content

    "((action (agent-identifier :name j)

     (deliver box017 (loc 12 19))))"

  :protocol fipa-request

  :language fipa-sl

  :reply-with order567)

 

(agree

  :sender (agent-identifier :name j)

  :receiver (set (agent-identifier :name i))

  :content

    "((action (agent-identifier :name j)

      (deliver box017 (loc 12 19)))

     (priority order567 low))"

  :in-reply-to order567

  :protocol fipa-request

  :language fipa-sl)


3.3        Cancel

Summary

The action of one agent informing another agent that the first agent no longer has the intention that the second agent perform some action.

Message Content

An action expression denoting the action that is no longer intended.

Description

cancel allows an agent i to inform another agent j that i no longer intends that j perform a previously requested action. This is not the same as i informing j that i intends that j not perform the action or stop performing an action. cancel is simply used to let an agent know that another agent no longer has a particular intention. (In order for i to stop j from performing an action, i should request that j stop that action. Of course, nothing in the ACL semantics guarantees that j will actually stop performing the action; j is free to ignore I’s request.) Finally, note that the action that is the object of the act of cancellation should be believed by the sender to be ongoing or to be planned but not yet executed.

Formal Model

<i, cancel (j, a)> º[1]

  <i, disconfirm (j, Ii Done (a))>

    FP: ØIi Done (a) Ù Bi (Bj Ii Done (a) Ú Uj Ii Done (a))

    RE: Bj ØIi Done (a

 

cancel applies to any form of request action. Suppose an agent i has requested an agent j to perform some action a, possibly if some condition holds. This request has the effect of i informing j that i has an intention that j perform the action a. When i comes to drop its intention, it can inform j that it no longer has this intention with a disconfirm.

Example

Agent j asks i to cancel a previous request-whenever act by quoting the action.

 

(cancel

  :sender (agent-identifier :name j)

  :receiver (set (agent-identifier :name i))

  :content

    "((action (agent-identifier :name j)

     (request-whenever

       :sender (agent-identifier :name j)

       :receiver (set(agent-identifier :name i))

       :content[2]

         \"((action (agent-identifier :name i)

           (inform-ref

             :sender (agent-identifier :name i)

             :receiver (set (agent-identifier :name j))

             :content[3]

               \"((iota ?x

                   (=(price widget) ?x))\")

                   (> (price widget) 50))"

                   …)))"

  :langage fipa-sl

  …)

 


3.4        Call for Proposal