=Paper= {{Paper |id=Vol-66/paper-5 |storemode=property |title=Ontologies for interaction protocols |pdfUrl=https://ceur-ws.org/Vol-66/oas02-16.pdf |volume=Vol-66 |authors=Stephen Cranefield,Martin Purvis,Mariusz Nowostawski and Peter Hwang }} ==Ontologies for interaction protocols== https://ceur-ws.org/Vol-66/oas02-16.pdf
                            Ontologies for Interaction Protocols

                                            Stephen Cranefield, Martin Purvis,
                                          Mariusz Nowostawski and Peter Hwang
                                                 Department of Information Science
                                                        University of Otago
                                                 PO Box 56, Dunedin, New Zealand
                                            scranefield@infoscience.otago.ac.nz

ABSTRACT                                                                be related to the future execution of the protocol, are traditionally
In this paper we propose reducing the degree of human interpre-         either not represented explicitly (e.g. in an Agent UML sequence
tation currently necessary to understand an interaction protocol by     diagram representation [17]) or are represented purely as labelled
describing at an abstract level the required agent actions that must    ‘black boxes’ (e.g. in a Petri net representation [4]).
be ‘plugged into’ the protocol for it to be executed. In particular,
this can be done by designing and publishing ontologies describing      In this paper we argue that the traditional models of interaction pro-
the input and output data that are processed during the protocol’s      tocols are suitable only as specifications to guide human developers
execution together with the actions and decisions that the agents       in their implementation of multi-agent systems, and even then often
must perform. An agent (or agent developer) that has previously         contain a high degree of ambiguity in their intended interpretation.
defined mappings between the internal agent code and the actions        Here we are not referring to the necessity for an interaction proto-
and decisions in an ontology would then be able to interpret any        col to have formal semantics (although that is an important issue).
interaction protocol that is defined with reference to that ontology.   Rather, we see a need for techniques that allow the designers of
The discussion is based on the use of Coloured Petri Nets to repre-     interaction protocols to indicate their intentions unambiguously so
sent interaction protocols and the Unified Modeling Language for        that a) other humans can interpret the protocols without confusion,
ontology modelling.                                                     and b) software agents can interpret protocols for the purposes of
                                                                        generating conversations. Ideally, an agent would be able to down-
                                                                        load an interaction protocol previously unknown to it, work out
1.    INTRODUCTION                                                      where and how to plug in to the protocol its own code for message
Agent communication languages (ACLs) such as the Knowledge              processing and for domain-specific decision making, and begin us-
Query and Manipulation Language (KQML) [7] and the Founda-              ing that protocol to interact with other agents.
tion for Intelligent Physical Agents (FIPA) ACL [8] are based on
the concept of agents interacting with each other by exchanging         We propose reducing the degree of human interpretation currently
messages that specify the desired ‘performative’ (inform, request,      necessary to understand an interaction protocol by describing at an
etc.) and a declarative representation of the content of the mes-       abstract level the required agent actions that must be ‘plugged into’
sage. Societies of agents cooperate to collectively perform tasks       the protocol for it to be executed. In particular, this can be done by
by entering into conversations—sequences of messages that may           designing and publishing ontologies describing the input and out-
be as simple as request/response pairs or may represent complex         put data that are processed during the protocol’s execution together
negotiations. In order to allow agents to enter into these conversa-    with the actions and decisions that the agents must perform. An
tions without having prior knowledge of the implementation details      agent (or agent developer) that has previously defined mappings
of other agents, the concept of interaction protocols (also known       between the internal agent code and the actions and decisions in an
as conversation policies) has emerged [11]. Interaction protocols       ontology would then be able to interpret any interaction protocol
are descriptions of standard patterns of interaction between two or     that is defined with reference to that ontology.
more agents. They constrain the possible sequences of messages
that can be sent amongst a set of agents to form a conversation of a    For example, consider a protocol describing some style of auction.
particular type. An agent initiating a conversation with others can     Inherent in this protocol are the concepts of a bid and response and
indicate the interaction protocol it wishes to follow, and the recip-   the actions of evaluating a bid (with several possible outcomes).
ient (if it knows the protocol) then knows how the conversation is      There are also some generic operations related to any interaction
expected to progress. A number of interaction protocols have been       protocol such as the parsing of a message to check that it has a
defined, in particular as part of the FIPA standardisation process      particular performative and that its content can be understood by
[9].                                                                    the agent in the current conversational context, and the creation of
                                                                        a message.
The specification of the individual messages comprising an inter-
action protocol is necessarily very loose: usually only the message
performative, sender and receiver are described. This is because        2. EXAMPLE: THE FIPA REQUEST PRO-
an interaction protocol is a generic description of a pattern of in-       TOCOL
teraction. The actual contents of messages will vary from one ex-       Figure 1 shows the FIPA Request Protocol as defined in its current
ecution of the protocol to the next. Furthermore, the local actions     experimental-status specification [10] using Agent UML (AUML)
performed and the decisions made by agents, although they may           [17]. This protocol defines a simple interaction between two agents.
                                                                                            Receive request                       In                Receive
                                                  Initiator, Participant,
                                                                                               answer                                               request
                                                 request, refuse*, not-
                                                                                                                                                     result
                                             understood*, agree, failure*,                                    Agreed          Agreed
                                                inform-done : inform*,                                                      (processed)
    FIPA-Request-Protocol                          inform-ref : inform*               Request
                                                                             Start     sent
                                                                                                                  Process
           Initiator                    Participant                                             Refused         precondition                         Result

                                                                                 Send                                    Failed        Done
                                                                                                                 Not
                                                                                request
                                                                                                              understood
                            request
                                                                                                                                                    Process
                                                                                     Out                       Process                               result
                                                                                                 Process   not understood      Process
                                                                                                 refusal                        failure   Process
                       not-understood                                                                                                      done


                            refuse
                                                                             Figure 2: The Initiator role for the Request protocol as a CPN
                                         x                                   (outline only)

                              agree
                                                                             Furthermore, the underlying intention of this protocol is not explic-
                                                                             itly specified. In order to customise this protocol to a particular do-
                            failure                                          main, a request initiator agent must ‘plug in’ domain-specific pro-
                                                                             cedures at six different points: the handling of     ,
                                                                                      and    messages, analysing an  message to
                                                                             check if a precondition is specified by the participant, and the han-
                       inform-done      x                                    dling of the two different types of final response. Similarly, there
                                             [agreed]
                                                                             are (in one possible decomposition) three pieces of domain-specific
                                                                             functionality that an agent wishing to play the role of participant
                                                                             must supply: the recognition of the type of the request (correspond-
                        inform-ref                                           ing to the two types of response and possibly resulting in a failure
                                                                             to understand the message) and procedures for performing the two
                                                                             different types of action that may be requested. We believe that an
                                                                             interaction protocol is not completely specified until the interface
                                                                             between the domain-specific agent-supplied code and the generic
  Figure 1: The FIPA Request Protocol defined using AUML                     interaction protocol is defined. Clearly interaction protocols should
                                                                             remain as generic as possible, making no commitment to any par-
                                                                             ticular agent platform or implementation language. Thus the spec-
                                                                             ification of this interface should be in terms of a programming-
One agent plays the Initiator role and sends a request for an action         language independent representation. Furthermore, the agent op-
to be performed to another agent which plays the Participant role.           erations related to a particular protocol will be related to the types
The protocol illustrates that there are three alternative responses          of entity involved in the execution of that protocol, e.g. the notion
that the participant can make after receiving the request: it can            of a bid in a ‘call for proposals’ protocol. This model of protocol-
refuse or agree to the request or it may signal that it did not un-          related concepts and the operations that act on them is an ontology
derstand the request message. If it agreed, it subsequently sends            that needs to be supplied along with the interaction protocol to give
a second response: a message indicating that its attempt to fulfil           it a full specification.
the request action failed, a message signalling that the action has
been performed, or a message containing the result of performing
the requested action.
                                                                             3. A COLOURED PETRI NET APPROACH
                                                                             The above discussion was based on an analysis of an interaction
                                                                             protocol expressed as an AUML sequence diagram. However, this
There are some aspects of this protocol that are not specified. The
                                                                             form of diagram currently has some shortcomings for further in-
choice of whether the final response should be the message la-
                                                                             vestigation of these ideas. First, AUML is currently underspecified
belled  or the one labelled   depends on
                                                                             and the intended interpretation of an AUML sequence diagram is
the body of the original request (the latter choice only seems to be
                                                                             not always clear. Second, the authors know of no tools that support
valid if the initiator requested an   to be performed).
                                                                             the use of AUML. Finally, AUML sequence diagrams do not have a
It is also not specified that each of the     , 
                                                                             way of explicitly modelling the internal actions of agents1 —which
and         messages should contain the original request in their
                                                                             are exactly the points of the protocol at which we wish to attach an-
content tuple along with an additional proposition (representing re-
                                                                             notations refering to an ontology. We have therefore adopted an al-
spectively an error message, a precondition for the action to be per-
                                                                             ternative modelling language for our research in this area: coloured
formed, and a reason for refusal). To make the specification more
                                                                             Petri nets.
precise there needs to be a way of annotating the protocol with
constraints on the contents of and relationships between the mes-            ½
                                                                               AUML activity diagrams have this capability and can be used on
sages. These constraints would need to be expressed in terms of a            their own or in conjunction with sequence diagrams to specify the
vocabulary relating to the structure of messages—i.e. an ontology            internal agent processing [17]. However there are few examples of
for messages.                                                                their use for modelling agent interaction protocols.
              Guard:
              reply.inReplyTo->notEmpty() and
              reply.inReplyTo = req.replyWith

                               Receive
                               request
                               answer            In : FIPAMessage
                         req             reply
   Request sent :
   FIPAMessage                                   Agreed :
                                                 Pair

             Refused :                    Not understood :
     Pair             Pair
                                                 Reason             >


if reply.oclIsKindOf(FIPARefuseMessage)
then Bag{Pair.create(
           req, Reason.createFromProposition(
                  reply.oclAsType(FIPARefuseMessage).reason))}
else Bag{}
endif


if reply.oclIsKindOf(FIPANotUnderstoodMessage)
then Bag{Pair.create(
           req, Reason.createFromProposition(
                  reply.oclAsType(FIPANotUnderstoodMessage).reason))}
else Bag{}
endif



if reply.oclIsKindOf(FIPAAgreeMessage)
then Bag{Pair.create(
           req, Precondition.createFromProposition(
                  reply.oclAsType(FIPAAgreeMessage).precondition))}
else Bag{}
endif


           Figure 3: Details of the ‘Receive request answer’ transition
                                                                             FIPAMessage
                                                                         replyWith : String [0..1]
                                                                 1       inReplyTo : String [0..1]
                                                                          ...




                           FIPARefuseMessage                FIPANotUnderstoodMessage              FIPAAgreeMessage             ...
                                   0..1     0..1                  0..1        0..1                       0..1          0..1

                                                   action                                        reason
                                                            1                               1
                                      1                              1              1                           1
                                             ActionDescription                            Proposition
                                   action                            action reason                              precondition

                                                                                           1         1
                            0..1
                                   CommunicativeActionDescription

                                                                             0..1                               0..1

                                              Reason                                                            Precondition


                      «create» createFromProposition(p : Proposition)                   «create» createFromProposition(p : Proposition)


                                      Figure 4: A partial ontology for the Request interaction protocol


Petri Nets [14] are a formalism and associated graphical notation                       separate CPN. Figure 2 shows an overview of the net for the Ini-
for modelling dynamic systems. The state of the system is repre-                        tiator role of the FIPA Request protocol (the ‘colours’ of places,
sented by places (denoted by hollow circles) that can contain tokens                    the arc inscriptions and the initial distribution of tokens are not
(denoted by symbols inside the places). The possible ways that the                      shown). In the figure, places are represented by circles and transi-
system can evolve are modelled by defining transitions that have                        tions are represented by squares. No tokens are shown. The places
input and output arcs (denoted by arrows) connected to places. The                      labelled In and Out are fusion places: they are shared between all
system dynamics can be enacted (non-deterministically) by deter-                        nets for the roles the agent can play (in any interaction protocol).
mining which transitions are enabled by the presence of tokens in                       The agent’s messaging system places tokens representing received
the input places, selecting one and firing it, which results in tokens                  messages in the In place and removes tokens from the Out place
being removed from its input places and new tokens being gener-                         (these represent outgoing messages) and sends the corresponding
ated and placed in the output places.                                                   messages.

Coloured Petri nets (CPNs) [12] are an elaboration of ordinary                          The fully detailed version of this Petri net encodes the following
Petri nets. In a coloured Petri net, each place is associated with                      process. The Initiator begins the conversation by sending a request
a ‘colour’, which is a type (although the theory of CPNs is inde-                       with its    parameter set to a particular value. When an
pendent of the actual choice of type system). Places can contain a                      answer with a matching    parameter value is received,
multiset of tokens of their declared type. Each input arc to a transi-                  the Receive request answer transition is enabled and can subse-
tion is annotated with an expression (possibly containing variables)                    quently fire at the agent’s discretion. This transition generates a
that represents a multiset of tokens. For a transition to be enabled,                   single token that is placed in one of the Agreed, Refused or Not
it must be possible to match the expression on each input arc to a                      understood places, depending on the communicative act of the re-
sub-multiset of the tokens in the associated input place. This may                      ply (the remaining two of these output places each receive an empty
involve binding variables. In addition, a Boolean expression asso-                      multiset of tokens). In the case that the other agent agreed to the
ciated with the transition (its guard) must evaluate to true, taking                    request, another message is subsequently expected from that agent
into account the variable bindings. When a transition is fired, the                     containing the result of the requested action. This is handled by the
matching tokens are removed from the input places and multiset                          right hand side of the net in a similar fashion.
expressions annotating the output arcs are evaluated to generate the
new tokens to be placed in the output places. If the expression on                      In this Petri net we have included transitions that correspond to in-
an output arc evaluates to the empty multiset then no tokens are                        ternal actions of the agent, such as those labelled Process refusal
placed in the connected place.                                                          and Process not understood. These are not part of the protocol
                                                                                        when it is viewed in the pure sense of simply being a definition of
The coloured Petri net formalism provides a powerful technique for                      the possible sequences of messages that can be exchanged. How-
defining system dynamics and has previously been proposed for use                       ever, we believe these communicate the underlying intent of the
in modelling interaction protocols [4]. In this paper we take a dif-                    protocol: there are a number of points at which the agent must in-
ferent approach from previous work (including our own [16, 15,                          voke particular types of computation to internalise and/or react to
18]) in the application of CPNs to interaction protocol modelling.                      the different states that can occur. In the example shown, most
We choose to model each side of the conversation (a role) using a                       of these ‘extra’ transitions occur after the final states of the pro-
tocol. However, this is not necessarily the case, e.g. the Process               Refused : Pair
the precondition that may be specified by the other agent when it            p
agrees to the request. This precondition must become true before
the other agent will fulfil the request (in the simple case it can just          Process refusal
be the expression  ). Although the Request protocol does not                    Guard: true
allow for any extra communication between the two agents regard-                 Operation: processRefusal(request: FIPARequestMessage,
ing this precondition, an agent might wish to do something out-                                                   reason: Reason)
side the scope of the conversation to help satisfy the precondition              Inputs: { request = p.get(1), reason = p.get(2) }
(e.g. perform an action). Therefore, the initiator needs an opportu-             Outputs: { }
nity to notice the precondition.
                                                                            Figure 5: Details of the ‘process request refusal’ transition
Figure 3 shows the details of the Receive request answer tran-
sition. This is where we make the connection with ontologies: the                                              «role»
types used as place colours and within arc expressions are concepts                                           Initiator
in an associated ontology (a portion of which is shown in Figure 4).      createPendingRequest() : FIPARequestMessage
                                                                          processRefusal(req : FIPARequestMessage, rsn : Reason)
We use the object-oriented Unified Modeling Language (UML) [3]            processRequestNotUnderstood(req : FIPARequestMessage, rsn : Reason)
to represent the ontology and UML’s associated Object Constraint          processAgreementPrecondition(req : FIPARequestMessage, pre : Precondition)
Language (OCL) [19] as our expression language. For brevity, we           processRequestedActionFailure(req : FIPARequestMessage, rsn : Reason)
                                                                          processRequestDone(req : FIPARequestMessage)
adopt the convention that a variable  appearing on an input arc          processRequestResult(result : GroundTerm)
represents the singleton multiset   (  is the OCL type cor-
responding to a multiset).
                                                                          Figure 6: Specification of the Initiator role for the Request pro-
                                                                          tocol
In the case of the Request protocol, the concepts that need to be
defined in the associated ontology are message types. Figure 4
therefore defines an inheritance hierarchy of FIPA ACL message            agent are outside the scope of the Request protocol, in order for the
types2 (generalisation relationships are represented by arrows with       protocol model to act as a stand-alone specification (without rely-
triangular heads, while associations are represented by arrows with       ing on implicit assumptions about the meaning of certain places)
open heads). In addition, we have chosen to explicitly model the          it should define the way in which the agent transfers information
concepts of a reason and a precondition that are associated with the      from the Petri net to its own internal processes. To support this,
Request protocol. Within a FIPA ACL message these are both rep-           we optionally associate an operation with each transition, specify-
resented as propositions, but here the       and             ing the inputs to the operation as OCL expressions and providing a
classes can be used (via their constructors) to achieve an additional     list of variables to which the outputs should be assigned (note that
level of interpretation of a proposition. Note that although the on-      UML allows multiple output parameters in an operation). Figure 5
tology is shown here as being a monolithic model, in practice some        illustrates this for the Process request refusal transition.
of the classes shown would be imported from a separate UML pack-
age.                                                                      The operations required to interface an agent with the CPN for a
                                                                          given role constitute part of the ontology for the protocol. In this
In addition to the classes shown, the ontology is assumed to include      section we describe two approaches for using UML to model the
a UML class template called  . A class template is a class             operations required for particular roles: a simple “static” approach
that is defined in terms of one or more other classes, which are          and a more flexible but complex “dynamic” approach.
specified only as parameter names. When it is used (as in Figure 3)
specific types must be supplied to instantiate the parameters.         4.1 The Static Approach
represents a pair of elements with the type of each argument being
                                                                          Figure 6 illustrates the static approach to including a role’s opera-
the corresponding supplied parameter.
                                                                          tions in a UML ontology. This figure shows a class (annotated with
                                                                          the role stereotype) representing the role and containing all re-
The arc expressions in Figure 3 use the operations  
                                                                          quired operations. Although this looks like the specification of an
and   . These are predefined OCL operations used for
                                                                          application programmer interface rather than an ontology, it is not
run-time type checking and type casting respectively.
                                                                          intended that an agent must implement operations with the same
                                                                          signatures as shown here. Instead an agent may be able to map
4.    MODELLING INTERNAL AGENT OP-                                        these operations into those it does possess. To do this, the role’s re-
                                                                          quired operations would need to have some information about their
      ERATIONS                                                            semantics specified, possibly using OCL pre- and postcondition ex-
In Figure 3, all processing represented by the transition is per-
                                                                          pressions. This is a subject for future research.
formed by the guard and the output arc expressions. This is not
always the case. Consider the Process request refusal transition
                                                                          The representation in Figure 6 does not model the operations re-
from Figure 2 (shown in detail in Figure 5). This represents the
                                                                          quired for a given role as first class objects in UML, but as features
computation that an agent must do to react to the participant’s re-
                                                                          of a class representing the role. Although this is a simple represen-
fusal of the request. Although any future actions of the initiator
                                                                          tation, it has a number of shortcomings. Essentially it treats a role
¾                                                                         as an interface that an agent must implement if it wants to act in that
  A more complex UML model for FIPA messages has been pre-
sented elsewhere [5], but that serves a different purpose. The model      role. We call this the static approach because it doesn’t accommo-
in this paper is not intended as an update of that previous work, but     date in a straightforward way the possibility of agents dynamically
instead provides a different view of FIPA message types.                  changing the roles they support. The UML object model does not
                Agent                             Binding                       «powertype»   ing a collection of     objects, each being an instance
               r: RoleType                                                        OpType      of some class that implements an operation. These objects are in-
                                                 name: String
               o: OpType
                                                                                              dexed by role and operation (this is shown using UML’s qualified
                      1                                       *
                                                                                              association notation). Roles and operations are both modelled as
                      1                                      0..1               «powertype»   classes, so the types for these association qualifiers must be ‘pow-
                                                                                 RoleType
         OpExecutor                                Object                                     ertypes’ of    and  . A powertype is a class whose
                                                                                              instances are all the subclasses of another class [13, Chapter 23].
execute(b : Binding) : Binding
                                                                                              To invoke an operation, an agent calls         on an    
                                                                                              object. The arguments to this method must be completely generic,
                                                         *                   1
                                                                                    before    so a binding structure is provided as an argument. This maps the
                                          «operation»
                                                                                              operation’s argument names to objects. The operation returns an-
    Role                                                                          Context
                                                                                              other binding list specifying values for the “result” parameter and
                       *            *      Operation
                                                                                    after
                                                                                              any output parameters.
                                                         *                  1

        : RoleType                                : OpType
                                                                                              5. CONCLUSION
                                                                                              In this paper we have identified two weaknesses in traditional mech-
   Initiator
                                          «operation»                                         anisms for specifying agent interaction protocols: a lack of preci-
                       *            *   ProcessRefusal                                        sion in defining the form of messages that are exchanged during the
                                             0..1 0..1                                        protocol and the relationships between them, and the lack of any
                           { in } req                             { in } reason
                                         1               1
                                                                                              explicit indication of where and how the protocol interfaces with
                                                                                              an agent’s internal computation. We have proposed the use of an
                     FIPARequestMessage                      Reason
                                                                                              ontology associated with a protocol to define the relevant concepts
                                                                                              and the internal operations that an agent needs in order to partake
      Figure 7: Specifying operations as first-class objects                                  in a conversation using that protocol.

                                                                                              We note that some uses of interaction protocols are not concerned
allow classes (or agent types in this scenario) to change their set                           with the internal actions of agents, e.g. external monitoring of con-
of implemented interfaces at run time. Also, the notation does not                            versations for the purpose of compliance testing. For this type of
show graphically the relationships between the operations and the                             application it may be beneficial to provide a simpler view of proto-
ontological concepts on which they are dependent.                                             cols that abstracts away the transitions representing internal actions
                                                                                              and we plan to investigate techniques for this.

4.2 The Dynamic Approach                                                                      The discussion in this paper was based on a particular way of using
Figure 7 shows an alternative approach that addresses the concerns                            coloured Petri nets to model conversations. However, the princi-
raised above. The majority of the figure represents a base ontology                           ple applies to other approaches to specifying interaction protocols.
containing classes to which a specific role ontology would make                               In particular, we propose that AUML sequence and/or activity dia-
reference. Only the four classes at the bottom of the figure repre-                           grams should be extended to include the types of ontology-related
sent a specific ontology: a portion of the ontology for the Request                           annotation we have discussed.
protocol.
                                                                                              Two techniques were proposed for modelling the agent internal ac-
Modelling both entities and the operations that act on them as first                          tions necessary to use an interaction protocol: a static model and
class objects is difficult to do in a straightforward way without de-                         a dynamic model. We believe the dynamic model, although more
parting from a “strict metamodelling architecture” where there is                             complex, is more flexible and has more scope for adding seman-
a firm distinction between instances and classes [1]. In this case,                           tic annotations to define the operations—an extension necessary to
in order to define the types of operation arguments using associa-                            enable agents to deduce how to use their existing operations to im-
tions, each operation must be defined as a class. The abstract class                          plement those required by an interaction protocol.
   represents the concept of an operation as being associ-
ated with a role and relating two contexts: the relevant local states                         The type of ontology discussed in this paper combines descriptions
of the world before and after the operation is performed. Particular                          of concepts and operations that act on them in a single model. To
operations are modelled as subclasses of    with their in-                              date, there has been little work on the inclusion of actions in ontolo-
put and output arguments represented by associations labelled with                            gies, although methodologies for agent-oriented software engineer-
the ‘tagged values’  or  (the stereotype operation special-                              ing typically include diagrams describing agent capabilities [2].
izes the notion of a class by allowing the use of these tagged val-                           In the knowledge acquisition research community there has been
ues).                                                                                         considerable study of techniques for building libraries of reusable
                                                                                              problem-solving methods, and work has been done on combining
If operations are classes, we need to consider what their instances                           such libraries and ontologies in a single system [6]. This research
are. The answer is that the instances represent snapshots of the                              may provide some insights into the problems of integrating action
operation’s execution in different contexts and with different argu-                          descriptions into ontologies.
ments, in the same way that a mathematical function can be re-
garded as the set of all the points on its graph. However, the oper-                          The aim of the work described in this paper is to reduce the degree
ation class only serves as a description of the operation: it will not                        of human interpretation required to understand an interaction proto-
be instantiated by an agent. Instead we model an agent as contain-                            col. The solution proposed here achieves this by including more de-
tailed information about the actions that participating agents must      [11] M. Greaves, H. Holmback, and J. Bradshaw. What is a
perform. The use of an associated ontology provides terminology               conversation policy? In F. Dignum and M. Greaves, editors,
for describing how the messages received and sent by agents are re-           Issues in Agent Communication, volume 1916 of Lecture
lated to each other, and also allows signatures to be defined for the         Notes in Artificial Intelligence, pages 118–131. Springer,
operations that agents must be able to perform to use the protocol            2000.
for its intended purpose. These signatures provide a syntactic spec-
ification for the points in the protocol at which the agents must pro-   [12] K. Jensen. Coloured Petri Nets: Basic Concepts, Analysis
vide their own decision-making and information-processing code,               Methods and Practical Use, Volume 1: Basic Concepts.
and agent developers could use this to bind internal agent code to            Monographs in Theoretical Computer Science. Springer,
these points in the protocol. There is further work to be done to             1992.
find ways of defining the meaning of these operations so that this       [13] J. Martin and J. J. Odell. Object-Oriented Methods: A
binding can be performed on a semantic rather than syntactic ba-              Foundation. Prentice Hall, Englewood Cliffs, NJ, UML
sis. This will provide the ability for agents to engage in previously         edition, 1998.
unknown interaction protocols by interpreting the specifications of
the protocol and its associated ontologies.                              [14] T. Murata. Petri nets: Properties, analysis and applications.
                                                                              Proceedings of the IEEE, 77(4), 1989.
6.    REFERENCES                                                         [15] M. Nowostawski, M. Purvis, and S. Cranefield. A layered
 [1] C. Atkinson and T. Kühne. Processes and products in a
                                                                              approach for modelling agent conversations. In Proceedings
     multi-level metamodelling architecture. International
                                                                              of the 2nd International Workshop on Infrastructure for
     Journal of Software Engineering and Knowledge
                                                                              Agents, MAS, and Scalable MAS, 5th International
     Engineering, 11(6):761–783, 2001.
                                                                              Conference on Autonomous Agents, 2001.
 [2] F. Bergenti and A. Poggi. Exploiting UML in the design of                http://www.cs.cf.ac.uk/User/O.F.Rana/agents2001/papers/
     multi-agent systems. In A. Omicini, R. Tolksdorf, and                    06 nowostawski et al.pdf.
     F. Zambonelli, editors, Engineering Societies in the Agents
                                                                         [16] M. Nowostawski, M. Purvis, and S. Cranefield. Modelling
     World, Lecture Notes in Computer Science 1972, pages
                                                                              and visualizing agent conversations. In J. P. Müller,
     106–113. Springer, 2000. (an earlier version is available at
                                                                              E. Andre, S. Sen, and C. Frasson, editors, Proceedings of the
     http://lia.deis.unibo.it/confs/ESAW00/pdf/ESAW13.pdf).
                                                                              Fifth International Conference on Autonomous Agents, pages
 [3] G. Booch, I. Jacobson, and J. Rumbaugh. The Unified                      234–235. ACM Press, 2001.
     Modeling Language User Guide. Addison-Wesley, 1998.
                                                                         [17] J. J. Odell, H. Van Dyke Parunak, and B. Bauer. Representing
 [4] R. Cost, Y. Chen, T. Finin, Y. Labrou, and Y. Peng. Using                agent interaction protocols in UML. In P. Ciancarini and
     colored Petri nets for conversation modeling. In F. Dignum               M. Wooldridge, editors, Agent-Oriented Software
     and M. Greaves, editors, Issues in Agent Communication,                  Engineering, volume 1957 of Lecture Notes in Computer
     volume 1916 of Lecture Notes in Artificial Intelligence,                 Science, pages 121–140. Springer, 2001. (Draft version at
     pages 178–192. Springer, 2000.                                           http://www.auml.org/auml/working/Odell-AOSE2000.pdf).

 [5] S. Cranefield and M. Purvis. A UML profile and mapping for          [18] M. Purvis, S. Cranefield, M. Nowostawski, and D. Carter.
     the generation of ontology-specific content languages.                   Opal: A multi-level infrastructure for agent-oriented
     Knowledge Engineering Review, Special Issue on Ontologies                software development. Discussion Paper 2002/01,
     in Agent Systems, 2002. To appear.                                       Department of Information Science, University of Otago,
                                                                              PO Box 56, Dunedin, New Zealand, 2002.
 [6] D. Fensel, M. Crubezy, F. van Harmelen, and M. I. Horrocks.              http://www.otago.ac.nz/informationscience/publctns/
     OIL & UPML: A unifying framework for the knowledge                       complete/papers/dp2002-01.pdf.gz.
     web. In Proceedings of the Workshop on Applications of
     Ontologies and Problem-Solving Methods, 14th European               [19] J. B. Warmer and A. G. Kleppe. The Object Constraint
     Conference on Artificial Intelligence (ECAI 2000), 2000.                 Language: Precise Modeling With UML. Addison-Wesley,
     http://delicias.dia.fi.upm.es/WORKSHOP/ECAI00/14.pdf.                    1998.

 [7] T. Finin, Y. Labrou, and J. Mayfield. KQML as an agent
     communication language. In J. M. Bradshaw, editor,
     Software Agents. MIT Press, 1997. Also available at
     http://www.cs.umbc.edu/kqml/papers/kqmlacl.pdf.
 [8] Foundation for Intelligent Physical Agents. FIPA ACL
     message representation in string specification.
     http://www.fipa.org/specs/fipa00070/, 2000.
 [9] Foundation for Intelligent Physical Agents. FIPA interaction
     protocol library. http://www.fipa.org/repository/ips.html,
     2001.
[10] Foundation for Intelligent Physical Agents. FIPA request
     interaction protocol specification, version F.
     http://www.fipa.org/specs/fipa00026/, 2001.