<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>The semantic core of multi-agent interactions: an operational model1</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sergio Saugar</string-name>
          <email>sergio.saugar@urjc.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juan Manuel Serrano</string-name>
          <email>juanmanuel.serrano@urjc.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computing, University Rey Juan Carlos C/Tulip ́</institution>
          <addr-line>an s/n, 28937, M ́ostoles (Madrid)</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The social stance advocated by institutional frameworks and most multi-agent system (MAS) methodologies has resulted in a wide catalogue of software abstractions to encapsulate multiagent interactions. This paper attempts to expose a possible semantic core underlying the wide spectrum of interaction types between autonomous, social and situated software components. In the realm of software architectures, this core has been formalised as an operational model of social connectors describing both the structure and dynamics of multi-agent interactions. This formal model is aimed as the first steps towards the abstract machine of a language to program multi-agent interactions.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>Social interaction structure</title>
      <p>
        From an architectural point of view, interactions between software components are represented
by means of connectors: first-class entities defined on the basis of the different roles displayed by
software components and the protocols that regulate the behaviour of these participating
components [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The analysis of social interactions introduced in this section refines this generic model in
several respects, attending to the common features of software agents. Firstly, in accordance with
the autonomy and sociality of agents, the specification of social interaction protocols will rely in
normative concepts such as permissions, obligations and empowerments. Secondly, by considering
situatedness, social interactions will take place in an environment consisting of resources which
the participants create and manipulate. Unlike agents, resources are software components lacking
autonomy, so that their state may be externally controlled by agents or other resources. Besides
interactions, resources, agents and protocols, two other kinds of entities are of major relevance in
our analysis: social actions, which represent the way in which agents alter the environmental and
social state of the interaction; and events, which represent the changes in the social interaction
resulting from the performance of social actions or the activity of the environmental resources.
      </p>
      <p>In the following, we describe the basic entities involved in social interactions. Each kind of
entity T will be specified as a labeled record T , hl1 : T1, . . . ln : Tni, possibly followed by a number
of invariants, definitions, and the social actions affecting their state. Instances or values v of a
record type T will be represented as v = hv1, . . . , vni : T . The type Set[T ] represents a collection
of values drawn from type T . The type Queue[T ] represent a queue of values v : T waiting to be
processed. The value v in the expression [v| ] : Queue[T ] represents the head of the queue. The
type Enumhv1, . . . , vni represents an enumeration type whose values are v1, . . . , vn. Given some
value v : T , the term vl refers to the value of the field l of a record type T . Given some labels l1,
l2, . . . , the expression vl1,l2,... is syntactic sugar for ((vl1 )l2 ) . . .. The special term nil will be used
to represent the absence of proper value for an optional field, so that vl = nil will be true in those
cases and false otherwise. The formal model will be illustrated with several examples drawn from
the design of a virtual organization to aid in the management of university courses.
2.1</p>
      <sec id="sec-2-1">
        <title>Social Interactions</title>
        <p>
          Social interactions shall be considered as composite connectors [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], structured in terms of a tree of
nested sub-interactions. Let’s consider an interaction representing a university course (e.g. on data
structures). On the one hand, this interaction is actually a complex one, made up of lower-level
interactions. For instance, within the scope of the course agents will participate in programming
assignment groups, lectures, tutoring meetings, examinations and so on. Assignment groups, in
turn, may hold a number of assignment submissions and test requests interactions. A test request
may also be regarded as a complex interaction, ultimately decomposed in the atomic, or
bottomlevel interactions represented by communicative actions (CAs) (e.g. request, agree, refuse, . . . ). On
the other hand, courses are run within the scope of a particular degree (e.g. computer science), a
higher-level interaction. Traversing upwards from a degree to its ancestors, we find its faculty, the
university and, finally, the multi-agent community or agent society. The community is thus the
top-level interaction which subsumes any other kind of multi-agent interaction2.
        </p>
        <p>The organizational and communicative interaction types identified above clearly differ in many
ways. However, we may identify four major components in all of them: the participating agents,
the resources that agents manipulate, the social protocol regulating the agent activities and the
sub-interaction space. Accordingly, we may specify the type I of social interactions, ranged over
by the meta-variable i, as follows:</p>
        <p>I
,
hstate : SI, ini : A, mem : Set[A], env : Set[R],
sub : Set[I], prot : P, ch : CHi
def . : (1) icontext = i1 ⇔ i ∈ is1ub
inv. : (2) iini = nil ⇔ icontext = nil
act. : setU p, join, leave, create, destroy, close
2In the context of this application, a one-to-one mapping between human users and software components attached
to the community as agents would be a right choice.</p>
        <p>where the member and environment fields represents the agents (A) and local resources (R)
participating in the interaction; the sub-interaction field, its set of inner interactions; and the
protocol field the rules that govern the interaction (P ). The event channel, to be described in the
next section, allows the dispatching of local events to external interactions. The context of some
interaction is defined as its super-interaction (def. 1), so that the context of the top-level interaction
is nil .</p>
        <p>The type SI , Enumhopen, closing , closed i represents the possible execution states of the
interaction. Any interaction, but the top-level one, is set up within the context of another interaction
by an initiator agent. The initiator is thus a mandatory feature for any interaction different to the
community (inv. 2). The life-cycle of the interaction begins in the open state. Its sets of agent and
resource participants, initially empty, varies as agents join and leave the interaction, and as they
create and destroy resources from its local environment. Eventually, the interaction may come to
an end (according to the protocol’s rules), or be explicitly closed by some agent, thus prematurely
disabling the activity of its participants. The transient closing state will be described in the next
section.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Agents</title>
        <p>Components engage as agents in social interactions with the purpose of achieving something. The
purpose declared by some agent when it joins an interaction shall be regarded as the institutional
goal that it purports to satisfy within that context3. The types of agents participating in a given
interaction are primarily identified from their purposes. For instance, students are those agents
participating in a course who purport to obtain a certificate in the course’s subject. Other members
of the course include lecturers and teaching assistants.</p>
        <p>The type A of agents, ranged over by meta-variable a, is defined as follows:
A
, hstate : SA, player : A, purp : F, att : Queue[ACT ],</p>
        <p>ev : Queue[E ], obl : Set[O]i
def . : (3) acontext = i ⇔ a ∈ imem</p>
        <p>(4) i ∈ apartIn ⇔ a1 ∈ imem ∧ a1player = a
inv. : (5) aplayer = nil ⇔ acontext,context = nil
act. : see
where the purpose is represented as a well-formed boolean formula, of a generic type F , which
evaluates to true if the purpose is satisfied and false otherwise. The context of some agent is defined
as the interaction in which it participates (def. 3).</p>
        <p>The type SA , Enumhplaying , leaving , succ, unsuci represents the execution state of the agent.
Its life-cycle begins in the playing state when its player agent joins the interaction. Any agent who
is not a member of the top-level interaction is played by another one (inv. 5)4. The derived partIn
feature represents the interactions in which the agent is playing some member role (def. 4)5. An
agent may play roles at interactions within or outside the scope of its context. For instance, students
of a course are played by student agents belonging to the (undergraduate) degree, whereas lecturers
may be played by teachers of a given department and the assistant role may be played by students
of a Ph.D degree (both, the department and the Ph.D. degrees, are modelled as sub-interactions of
the faculty).</p>
        <p>Components will normally attempt to perform different social actions (e.g. to set up
subinteractions) in order to satisfy their purposes within some interaction. Moreover, components needs
to be aware of the current state of the interaction, so that they will also be capable of observing
certain events from the interaction. Both, the visibility of the interaction and the attempts of
members, are subject to the rules governing the interaction. The attempts and events fields of the
agent structure represents the queues of attempts to execute some social actions (ACT ), and the
events (E ) received by the agent which has not been observed yet. An agent may update its event
3Thus, it may or may not correspond to actual internal “goals” or “intentions” of the component.
4The player of a top-level agent role is actually its software component.</p>
        <p>5Free variables in the antecedents/consequents of implications shall be understood as universally/existentially
quantified.
queue by seeing the state of some entity of the community. The last field of the structure represents
the obligations (O) of agents, to be described later.</p>
        <p>Eventually, the participation of some agent in the interaction will be over. This may either
happen when certain conditions are met (specified by the protocol rules), or when the agent takes
the explicit “decision” of leaving the interaction. In either case, the final state of the agent will be
successful if its purpose was satisfied; unsuccessful otherwise. The transient leaving state will be
described in the next section.
2.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Resources</title>
        <p>Resources are software components which may represent different types of non-autonomous
informational or computational entities. For instance, objectives, topics, assignments, grades and exams
are different kinds of informational resources created by lecturers and assistants in the context
of the course interaction. Students may also create programs to satisfy the requirements of some
assignment. Other types of computational resources put at the disposal of students by teachers
include compilers and interpreters.</p>
        <p>The type R of resources, ranged over by meta-variable r, can be specified by the following
labeled record:</p>
        <p>R
, hcr : A, owners : Set[A], op : Set[OP]i
def . : (6) rcontext = i ⇔ r ∈ ienv
act. : take, share, give, invoke</p>
        <p>Essentially, resources can be regarded as objects deployed in a social setting. At least, this means
that resources are created, accessed and manipulated by agents in a social interaction context (def.
7), according to the rules specified by its protocol. The mandatory feature creator represents the
agent who created this resource. Moreover, resources may have owners. The ownership relationship
between members and resources is considered as a normative device aimed at the simplification of
the protocol’s rules that govern the interaction of agents and the environment. Members may gain
ownership of some resource by taking it, and grant ownership to other agents by giving or sharing
their own properties. For instance, the ownership of programs may be shared by several students
if the assignment can be performed by groups of two or more students.</p>
        <p>The last operations feature represents the interface of the resource, consisting of a set of
operations. A resource is structured around several public operations that participants may invoke, in
accordance to the rules specified by the interaction’s protocol. The set of operations of a resource
makes up its interface. Resources that own a thread of control are called active.
2.4</p>
      </sec>
      <sec id="sec-2-4">
        <title>Protocols</title>
        <p>The protocol of some interaction is made up of the rules which govern its overall state. The present
specification abstracts away the particular formalism used to specify these rules, and focuses instead
in several requirements concerning the structure and interface of protocols. Accordingly, the type
P of protocols, ranged over by meta-variable p, is defined as follows6:</p>
        <p>P
, hemp : A × ACT → Boolean,
perm : A × ACT → Boolean,
vis : A × E → Boolean,
obl : A → Set[O] × Set[E ],
over : A → Boolean,
f inish : → Booleani
def . : (7) pcontext = i ⇔ p = iprot
inv. : (8) pfinish() ∧ s ∈ pcontext,sub ⇒ sprot,finish()
(9) pfinish() ∧ a ∈ pcontext,mem ⇒ pover(a)
(10) pover(a) ∧ aplayer = a ⇒ aicontext,prot,over(ai)</p>
        <p>i
6Additional social actions, such as permit, forbid, empower, etc., to update the rules of protocols are yet to be
identified in future work.</p>
        <p>We demand from protocols four major kinds of functions. Firstly, protocols shall include rules
to identify the empowerments and permissions of any agent attempting to alter the state of the
interaction (e.g. its members, the environment, etc.) through the execution of some social action
(e.g. join, create, etc.). Empowerments shall be regarded as the institutional capabilities which
some agent possesses in order to satisfy its purpose. Corresponding rules, encapsulated by the
empowered function field, shall allow to determine whether some agent is capable to perform a given
action over the interaction7. Empowerments may only be exercised under certain circumstances
– that permissions specify. Permission rules shall allow to determine whether the attempt of
an empowered agent to perform some particular action is satisfied or not (cf. permitted field).
For instance, the course’s protocol specifies that the agents empowered to join the interaction
as students are those students of the degree who have payed the fee established for the course’s
subject, and own the certificates corresponding to its prerequisite subjects. Permission rules, in
turn, specifies that those students may only join the course in its admission stage. Hence, even if
some student has paid the fee, the attempt to join the course will fail if the course has not entered
the corresponding stage8.</p>
        <p>Secondly, the protocol shall allow to specify monitoring rules which establishes the visibility of
incoming events for each of its members. Corresponding rules shall establish whether some event
must be notified to a specified agent. For instance, this functionality is exploited by teachers in
order to monitor the enrollment of students to the course.</p>
        <p>Thirdly, protocols shall allow to determine the obligations of its members. Obligations represent
a normative device of social enforcement, fully compatible with the autonomy of agents, used to
bias their behaviour in a certain direction. These kinds of rules shall allow to determine whether
some agent must perform an action of a given type, as well as if some obligation was fulfilled,
violated or needs to be revoked. The function obligations of the protocol structure thus updates
the set of obligations of the specified member agent. Moreover, it returns a collection of events
representing the changes in the obligation set. For instance, the course’s protocol establishes that
teachers must create the course’s objectives and topics in the preparation stage.</p>
        <p>Last, the protocol shall allow to control the state of the interaction as well as the states of
its members. Corresponding rules identify the conditions under which some interaction will be
automatically finished, and whether the participation of some agent in the interaction will be
automatically over. Thus, the function field finish returns true if the regulated interaction must finish its
execution. If so happens, a well-defined set of protocols must ensure that its sub-interactions and
members are finished as well (inv. 8,9). Similarly, the function over returns true if the participation
of the specified member must be over. Well-formed protocols must ensure the consistency between
these functions across playing roles (inv. 10). For instance, the course’s protocol establishes that
the participation of students is over when they gain ownership of the course’s certificate or the
chances to get it are exhausted. It also establishes that the course must be finished when the
admission stage has passed and all the students finished their participation.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Social interaction dynamics</title>
      <p>The dynamics of the multi-agent community is influenced by the external actions executed by
software components and the rules governing their interactions. This section focuses on the dynamics
resulting from a particular kind of external action: the attempt of some component to execute
a given (internal) social action, qua agent attached to the community. The description of other
external actions concerning agents (e.g. observe the events from its event queue, enter or exit from
the community) and resources (e.g. a timer resource may signal the pass of time) will be skipped.</p>
      <p>The processing of some attempt may give raise to changes in the scope of the target
interaction, such as the instantiation of new participants (agents or resources) or the setting up of new
sub-interactions. These resulting events may cause further changes in the state of other
interactions (the target one included), namely, in its execution state as well as in the execution state,
obligations and visibility of their members. This section will also describe the way in which these
7Protocol’s functions may check the current and past state of different interactions to compute their results.
8The hasPaidFee relationship between (degree) students and subject resources is represented by an additional,
application-dependent field of the agent structure for this kind of roles. Similarly, the course’s stage is an additional
field of the structure for course interactions. The generic types I, A, R and P are thus extendable.
events are processed. The resulting dynamics described bellow allows for social actions and events
corresponding to different agents and interactions to be processed simultaneously. Due to lack of
space, we only include some of the operational rules that formalise their execution semantics.
An attempt is defined by the structure AT T , hperf : A, act : ACT i, where the performer
represents the agent in charge of executing the specified action. This action is intended to alter the
state of some target interaction (possibly, the performer’s context itself), and notify a collection
of addressees of the changes resulting from a successful execution. Accordingly, the type ACT of
(internal) social actions, ranged over by meta-variable α, is specified as follows:
where: the performer is formally defined as the agent who stores the action in its queue of
attempts; the event field represents the changes caused by a successful or unsuccessful execution of
the action; and the stage field represents the current phase of processing. This process goes through
four major phases, as specified by the enumeration type SACT , Enumhemp, perm, exec, dispi :
empowerment checking, permission checking, action execution and addressee dispatching, described
in the sequel.
3.1.1</p>
      <sec id="sec-3-1">
        <title>Empowerment checking</title>
        <p>The post-condition of an attempt consists of inserting the action in the queue of attempts of the
specified performer. As rule 1 specifies, this will only be possible if the performer is empowered to
execute that action according to the rules that govern the state of the target interaction. If this
condition is not met, the attempt will simply be ignored. Moreover, the performer agent must be
in the playing state (this pre-condition is also required for any rule concerning the processing of
attempts). If these pre-conditions are satisfied the rule is fired and the processing of the action
continues in the permission checking stage.</p>
        <p>ǫ = ha, αi : AT T ∧ αtarget,prot,emp(a, α)
a = hplaying , , , qACT , , i −→ǫ hplaying , , , qA′CT , , i</p>
        <p>W here : (α′)state = perm</p>
        <p>(qA′CT ) = push(α′, qACT )
3.1.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Permissions checking</title>
        <p>The processing of the action resumes when the possible preceding actions in the performer’s queue
of attempts are fully processed and removed from the queue. Moreover, there should be no pending
events to be processed in the interaction, for these events may cause the member or the interaction
to be finished (as will be shortly explained in the next sub-section). If these conditions are met the
permissions to execute the given action (and notify the specified addressees) are checked. If the
protocol of the target interaction grants permission, the processing of the attempt moves to the
action execution stage (rule 2). Otherwise, the action is discharged and removed from the queue.
Unlike unempowered attempts, a forbidden one will cause an event to be generated and transfered
to the event channel for further processing.</p>
        <p>αstate = perm ∧ acontext,ch,in = ∅ ∧ αtarget,prot,perm(a, α)
a = hplaying , , , [α| ], , i −→ hplaying , , , [α′| ], , i</p>
        <p>W here : (α′)state
= exec
(1)
(2)
The transitions fired in this stage are classified according to the different types of actions to be
executed. The intended effects of some actions may directly be achieved in a single step, while
others will required an indirect approach and possibly several execution steps. Actions of the first
kind are “constructive” ones such as set up and join. The second group of actions include those,
such as close and leave, whose effects are indirectly achieved by updating the interaction protocol.</p>
        <p>As an example of constructive action, let’s consider the execution of a set up action, whose type
is defined as follows9:</p>
        <p>,
inv. : (12) αnew,mem = αnew,res = αnew,sub = ∅</p>
        <p>(13) αnew,state = open
where the new field represents the new interaction to be initiated. Its sets of participants (agents
and resources) and sub-interactions must be empty (inv. 12) and its state must be open (inv. 13).
The setting up of the new interaction may thus affect its protocol and possible application-dependent
fields (e.g. the subject of a course interaction). According to rule 3, the outcome of the execution
is threefold: firstly, the performer’s attempt queue is updated so that the executing action moves
to the next addressee dispatching stage and an event is placed in its corresponding auxiliary field;
secondly, the new interaction is added to the target’s set of sub-interactions (moreover, its initiator
field is set to the performer agent); last, the event representing this change is inserted in the output
port of the target’s event channel.
(3)
(4)
Close
,</p>
        <p>ACT hupd : (→ Bool) → (→ Bool)i
inv. : (14) αtarget,state = open
(15) αtarget,context 6= nil
(16) αupd(αtarget,prot,finish)()
where the inherited target field represents the interaction to be closed (which must be open
and different to the top-interaction, according to invariants 14 and 15) and the new update field
represents a proper higher-order function to update the target’s protocol (inv. 16). The transition
which models the execution of this action, specified by rule 4, defines two effects in the target
interaction: its protocol is updated and the event representing this change is inserted in its input
channel. This event will actually trigger the closing process of the interaction as described in the
next sub-section.</p>
        <p>αstate = exec ∧ α : Close
hplaying , , , [α| ], , i −→ hplaying , , , [α′| ], , i
αtarget = hopen , , , , , p, ci −→ hopen , , , , , p′, c′i
9The resulting type consists of the fields of the labelled record ACT extended plus an additional field new.
10This strategy is also followed in the definition of leave and may also be used in the definition of other types of
actions such as fire, permit, forbid, etc.</p>
        <p>αstate = exec ∧ α : SetUp ∧ αsub = i
hplaying , , , [α| ], , i −→ hplaying , , , [α′| ], , i
αtarget = hopen , , , , , sI , ci −→ hopen , , , , , sI ∪ i′, c′i</p>
        <p>Let’s consider now the case of a close action. This action represents an attempt by the performer
to force some interaction to finish, thus bypassing its current protocol rules (those concerning the
finish function). The way to achieve this effect is to cause an update on the protocol so that the
finish function returns true afterwards10. Accordingly, we may specify this type of action as follows:
disp
f inish(αtarget)
αupd(pfinish)
insert(f inish(αtarget), cout)
3.1.4</p>
      </sec>
      <sec id="sec-3-3">
        <title>Addressee dispatching</title>
        <p>In this last stage the specified addressees are notified of the changes caused by the action executed
in the last phase (stored in the action’s ev field). Transition 5 simply iterate over the addressees
field until no agent is left. Once the set is empty the action is removed from the queue and the
processing of the attempt is finished.</p>
        <p>αstate = disp ∧ a ∈ αadd
hplaying , , , [α| ], , i −→ hplaying , , , [α′| ], , i
a = hplaying , , , , qE , i −→ hplaying , , , , qE′ , i</p>
        <p>W here : (α′)add
qE′
=
=
αadd \ {a}
insert(αev , qE )
(5)
3.2</p>
        <sec id="sec-3-3-1">
          <title>Event Processing</title>
          <p>Events generated in the scope of some interaction (e.g. due to the successful execution of a social
action or a forbidden attempt) must first be dispatched to those interactions whose state may be
affected by those changes in order to trigger the corresponding updates11. Then, each potentially
affected interaction have to process the external events to check its execution state and members
for possible updates. These activities are encapsulated in the event channels of interactions.
Channels, ranged over by meta-variable c, are defined by two input and output ports, according to the
following definition:</p>
          <p>CH
, hout : Queue[E ], disp : E → Set[I], int : Set[I],</p>
          <p>in : Queue[E ], agents : Set[A]i
inv. : (17) ccontext ∈ cdisp(f inish(ccontext))
(18) ccontext ∈ cdisp(over(a))
(19) ccontext,sub ⊆ cdisp(closing(ccontext))
(20) apartsIn ⊆ cdisp(leaving(a))
(21) ccontext ⊆ cdisp(closed(i))
(22) {ccontext, aplayer,context} ⊆ cdisp(lef t(a))</p>
          <p>The output port of the channel is defined by the out, disp and int fields. This port stores
the set of events originated within the interaction, and defines the function which determines the
interactions to which these events will be dispatched. The constraints on the dispatching function
will be explained bellow. The int auxiliary field represents those interactions identified by the
dispatching function which have not being notified yet. The input port consists of the two last
fields. It stores the incoming events dispatched to the interaction which has not been processed
yet. The agents auxiliary field represents those agents whose state still needs to be checked for
updates, given the current event been processed.</p>
          <p>Accordingly, the processing of some event goes through three major stages: interaction
dispatching, interaction state update and members update. The first one takes place in the interaction in
which the event originated, whereas the second and third ones execute in separate control threads
of the interactions to which the event was dispatched.</p>
          <p>11Alternatively, we may have assumed that interactions are fully aware of any change in the multi-agent community.
In this scenario, interactions would trigger themselves without requiring any explicit notification. On the contrary,
we adhere to the more realistic assumption of limited awareness.</p>
          <p>ccontext,state = isdtate = open ∧ id ∈ sI
s
cs = h[e| ], , sI , , i −→ h[e| ], , sI \ {id}, , i
icdh = h , , , qi, i −→ h , , , insert(e, qi), i
3.2.2</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>Interaction state update</title>
        <p>Input port activity is triggered when a new event is received. Irrespective of the kind of incoming
event, the first processing action is to check whether the channel’s interaction must be finished.
Thus, the dispatching of the finish event resulting from a close action (inv. 17) serves as a trigger
of the closing procedure. The kind of closing events to be described bellow is similarly used as a
coordination device.</p>
        <p>If the interaction has not to be finished, the part field is initialised to its members and the
process enters the members update stage. Otherwise, we can consider two possible scenarios. In the
first one, the interaction has no members and no sub-interactions. In this case, the interaction can
be inmediately closed down. As rule 7 shows, the interaction is closed, removed from the context’s
set of sub-interactions and a closed event is inserted in its output channel. According to invariant
21, this event is inserted in its input channel to allow for further treatment.
The processing of some event stored in the output port is triggered when all its preceding events
have been dispatched. As a first step, the auxiliary int field is initialised with the returned value
of the dispatching function. This function shall identify the set of interactions (possibly, empty)
whose state may be affected by the event12. This set may include the channel’s interaction itself.
Then, additional rules simply iterate over this collection (rule 6) and re-set its value to nil when
all interactions have been notified.
(6)
(7)
(8)
cin 6= ∅ ∧ cagents = nil ∧ i ∈ sI ∧ pfinish()
i = h , , ∅, , ∅, p, ci −→ hclosed , , , , , , i
h , , , , sI , , ci −→ h , , , , sI \ {i}, , c′i
W here : (c′)out
=</p>
        <p>insert(closed(i), cout)</p>
        <p>Eventually, every member will leave the interaction and every sub-interaction will be closed.
Corresponding events will be received by the interaction (according to invariants 22 and 21) so that
the conditions of the first scenario will hold.</p>
        <p>12This is essentially determined by the protocol rules of these interactions. The way in which the dispatching
function is initialised and updated is out of the scope of this paper.</p>
        <p>In the second scenario, the interaction has some member or sub-interaction. In this case,
cleanup is required prior to the disposal of the interaction. As rule 8 shows, the interaction is moved
to the transient closing state and a corresponding event is inserted in the output port. According
to invariant 19, the closing event will be dispatched to every sub-interaction in order to activate
its closing procedure (guaranteed by invariant 8). Moreover, the agents field is initialised so that
the process goes on in the next members update stage. This stage will further initiate the leaving
process of the members (according to invariant 9).</p>
        <p>cin 6= ∅ ∧ cagents = nil ∧ pfinish() ∧ (sA 6= ∅ ∨ sI 6= ∅)
i = hopen , , sA, , sI , p, ci −→ hclosing , , sA, , sI , p, c′i</p>
        <p>W here : (c′)out
(c′)agents
=
=
sA
insert(closing(i), cout)
The possible consequences in the overall state of members are three-fold: firstly, it may happen
that the agent have to finished its participation in the interaction; secondly, the event may affect
its normative state, causing the creation of some obligations or the satisfaction/violation/revoking
of existing ones; last, the member may be one of those who must be notified of the given change
(even if the event was the result of some action and the member was not part of the addressees).</p>
        <p>If the member has to finish its participation in the interaction and it is not playing any role,
it will be inmediately abandoned (successfully or unsuccessfully, according to the satisfaction of its
purpose). The corresponding event will be forwarded to its interaction and to the interaction of its
player role to account for further changes (inv. 22). Otherwise, the member enters the transient
leaving state, thus preventing any action performance. Then, it waits for the completion of the
leaving procedures of its played roles, triggered by proper dispatching of the leaving event (inv.
20).</p>
        <p>If the conditions to finish its participation does not hold, the obligations and events queue will
be updated accordingly. The member is removed from the agents auxiliary field and the event
processing goes on with the next participant. When the agents set gets empty, the field is re-set to
the nil value.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Discussion</title>
      <p>
        This paper has attempted to expose a possible semantic core underlying the wide spectrum of
interaction types between autonomous, social and situated software components. In the realm of
software architectures, this core has been formalised as an operational model of social connectors,
intended to describe both the basic structure and dynamics of multi-agent interactions, from the
largest (the agent society itself) down to the smallest ones (communicative actions). Thus,
toplevel interactions may represent the kind of agent-web pursued by large-scale initiatives such as
the Agentcities/openNet one [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Large-scale interactions, modelling complex aggregates of agent
interactions such as those represented by e-institutions or virtual organizations [
        <xref ref-type="bibr" rid="ref2 ref28">2, 28</xref>
        ], are also
amenable to be conceptualised as particular kinds of first-levels inner social interactions. The
last levels of the interaction tree may represent small-scale multi-agent interactions such as those
represented by interaction protocols [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], dialogue games [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], or scenes [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Finally, bottom-level
interactions may represent communicative actions. From this perspective, the member types of a
CA include the speaker and possibly many listeners. The purpose of the speaker coincides with
the illocutionary purpose of the CA [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], whereas the purpose of any listener is to declare that it
(actually, the software component) successfully processed the meaning of the CA.
      </p>
      <p>
        The analysis of social interactions put forward in this paper draws upon current proposals of
the literature in several general respects, such as the institutional and organizational character of
multi-agent systems [
        <xref ref-type="bibr" rid="ref11 ref14 ref28 ref9">9, 11, 14, 28</xref>
        ] and the normative perspective on multi-agent protocols [
        <xref ref-type="bibr" rid="ref16 ref25">16, 25</xref>
        ].
These proposals as well as others focusing in relevant abstractions such as power relationships [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
trust and reputation mechanisms in organizational settings [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], etc., could be further exploited in
order to characterize more accurately the organizational character of some multi-agent interactions.
Similarly, the informal and preliminary analysis of communicative actions introduced in the last
section may similarly benefit from public semantics of communicative actions such as the one
introduced in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Last, the abstract model of protocols may be refined taking into account existing
operational models of normativity [
        <xref ref-type="bibr" rid="ref16 ref8">8, 16</xref>
        ]. These analyses shall result in new organizational and
communicative abstractions obtained through a refinement and/or extension of the general model
of social interactions.
      </p>
      <p>
        Besides the conceptual objective of analysing the structure and dynamics of multi-agent
interactions, the formal model of social interactions presented here is also aimed as a contribution
to the field of multi-agent system programming [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Unlike the development of individual agents,
which has greatly benefited from the design of several agent programming languages, non-individual
features of multi-agent systems (i.e. those conforming the multi-agent organization or institution
[
        <xref ref-type="bibr" rid="ref11 ref28 ref9">9, 11, 28</xref>
        ]) are mostly implemented through development platforms and infrastructures that must
be programmed in a low-level language such as Java [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] or in terms of visual modelling [
        <xref ref-type="bibr" rid="ref10 ref21">10, 21</xref>
        ].
We argue that the current field of multi-agent system programming may greatly benefit from
multiagent programming languages that incorporate as programming constructs the abstractions that
have found currency in current organizational methodologies. The model of social interactions put
forward in this paper is intended as the execution semantics or the abstract machine of a language
of this type. This abstract machine would be independent of particular agent architectures and
languages (i.e. the software components may be programmed in a BDI language such as Jason [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
or in a non-agent oriented language). On top of this execution semantics, current and future work
aims at the specification of the type system [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] which allows to program the abstract machine, the
specification of the corresponding surface syntaxes (both textual and visual) and the design and
implementation of a virtual machine over existing middleware technologies such as FIPA platforms
and Web services. We also plan to study particular refinements and limitations to the proposed
model, particularly with respect to the dispatching of events, the dynamic updates of protocols and
rule formalism. In this later aspect, we plan to investigate the use of Answer Set Programming
to specify the rules of protocols, attending to the role that incompleteness (rules may only specify
either necessary or sufficient conditions, for instance), explicit negation (e.g. on prohibitions) and
defaults play in this application domain.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R.</given-names>
            <surname>Allen</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Garlan</surname>
          </string-name>
          .
          <article-title>A Formal Basis for Architectural Connection</article-title>
          .
          <source>ACM Transactions on Software Engineering and Methodology</source>
          ,
          <volume>6</volume>
          (
          <issue>3</issue>
          ):
          <fpage>213</fpage>
          -
          <lpage>249</lpage>
          ,
          <year>June 1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Arcos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Esteva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Noriega</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Rodr</surname>
          </string-name>
          <article-title>´ıguez</article-title>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Sierra</surname>
          </string-name>
          .
          <article-title>Engineering open environments with electronic institutions</article-title>
          .
          <source>Journal on Engineering Applications of Artificial Intelligence</source>
          ,
          <volume>18</volume>
          (
          <issue>2</issue>
          ):
          <fpage>191</fpage>
          -
          <lpage>204</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Boella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Damiano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hulstijn</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L. W. N. van der</given-names>
            <surname>Torre</surname>
          </string-name>
          .
          <article-title>Role-based semantics for agent communication: embedding of the 'mental attitudes' and 'social commitments' semantics</article-title>
          .
          <source>In AAMAS</source>
          , pages
          <fpage>688</fpage>
          -
          <lpage>690</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G.</given-names>
            <surname>Boella</surname>
          </string-name>
          and
          <string-name>
            <surname>L. W. N. van der Torre.</surname>
          </string-name>
          <article-title>Delegation of power in normative multiagent systems</article-title>
          .
          <source>In DEON</source>
          , pages
          <fpage>36</fpage>
          -
          <lpage>52</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Braubach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dastani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. E. F.</given-names>
            <surname>Seghrouchni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. J. G.</given-names>
            <surname>Sanz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Leite</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. O</given-names>
            <surname>'Hare</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pokahr</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          .
          <article-title>A survey of programming languages and platforms for multi-agent systems</article-title>
          .
          <source>Informatica</source>
          ,
          <volume>30</volume>
          :
          <fpage>33</fpage>
          -
          <lpage>44</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R. H.</given-names>
            <surname>Bordini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Hu</surname>
          </string-name>
          <article-title>¨bner, , and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Vieira</surname>
          </string-name>
          .
          <article-title>Jason and the golden fleece of agent-oriented programming</article-title>
          . In R. H.
          <string-name>
            <surname>Bordini</surname>
            ,
            <given-names>D. M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dix</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>El Fallah</surname>
          </string-name>
          Seghrouchni, editors,
          <source>MultiAgent Programming: Languages, Platforms and Applications</source>
          , chapter 1. Springer-Verlag,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ciancarini</surname>
          </string-name>
          .
          <article-title>Coordination models and languages as software integrators</article-title>
          .
          <source>ACM Computing Surveys</source>
          ,
          <volume>28</volume>
          (
          <issue>2</issue>
          ):
          <fpage>300</fpage>
          -
          <lpage>302</lpage>
          ,
          <year>June 1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>O.</given-names>
            <surname>Cliffe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. D.</given-names>
            <surname>Vos</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Padget</surname>
          </string-name>
          .
          <article-title>Specifying and analysing agent-based social institutions using answer set programming</article-title>
          .
          <source>In EUMAS</source>
          , pages
          <fpage>476</fpage>
          -
          <lpage>477</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>V.</given-names>
            <surname>Dignum</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.</surname>
          </string-name>
          <article-title>Va´zquez-</article-title>
          <string-name>
            <surname>Salceda</surname>
            , and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Dignum</surname>
          </string-name>
          . Omni:
          <article-title>Introducing social structure, norms and ontologies into agent organizations</article-title>
          . In R. Bordini,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dastani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dix</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Seghrouchni, editors,
          <source>Programming Multi-Agent Systems Second International Workshop ProMAS</source>
          <year>2004</year>
          , volume
          <volume>3346</volume>
          <source>of LNAI</source>
          , pages
          <fpage>181</fpage>
          -
          <lpage>198</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Esteva</surname>
          </string-name>
          , D. de la Cruz, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Sierra</surname>
          </string-name>
          .
          <article-title>ISLANDER: an electronic institutions editor</article-title>
          . In M. Gini,
          <string-name>
            <given-names>T.</given-names>
            <surname>Ishida</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Castelfranchi</surname>
          </string-name>
          , and W. L. Johnson, editors,
          <source>Proceedings of the First International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS'02)</source>
          , pages
          <fpage>1045</fpage>
          -
          <lpage>1052</lpage>
          . ACM Press,
          <year>July 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Esteva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Rodriguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sierra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Garcia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Arcos</surname>
          </string-name>
          .
          <article-title>On the formal specifications of electronic institutions</article-title>
          . In F. Dignum and C. Sierra, editors,
          <source>Agent-mediated Electronic Commerce (The European AgentLink Perspective)</source>
          , volume
          <volume>1191</volume>
          <source>of LNAI</source>
          , pages
          <fpage>126</fpage>
          -
          <lpage>147</lpage>
          , Berlin,
          <year>2001</year>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>S. W.</surname>
          </string-name>
          et al. Agentcities / opennet testbed. http://x-opennet.net,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ferber</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Gutknecht</surname>
          </string-name>
          .
          <article-title>A meta-model for the analysis of organizations in multi-agent systems</article-title>
          . In Y. Demazeau, editor,
          <source>Proceedings of the Third International Conference on MultiAgent Systems (ICMAS'98)</source>
          , pages
          <fpage>128</fpage>
          -
          <lpage>135</lpage>
          , Paris, France,
          <year>July 1998</year>
          . IEEE Press.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ferber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Gutknecht</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Michel</surname>
          </string-name>
          .
          <article-title>From agents to organizations: An organizational view of multi-agent systems</article-title>
          .
          <source>In AOSE</source>
          , pages
          <fpage>214</fpage>
          -
          <lpage>230</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <article-title>Foundation for Intelligent Physical Agents. FIPA Interaction Protocol Library Specification</article-title>
          . http://www.fipa.org/repository/ips.html,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Garc</surname>
          </string-name>
          <article-title>´ıa-</article-title>
          <string-name>
            <surname>Camino</surname>
            ,
            <given-names>J. A.</given-names>
          </string-name>
          <string-name>
            <surname>Rodr</surname>
          </string-name>
          <article-title>´ıguez-</article-title>
          <string-name>
            <surname>Aguilar</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Sierra</surname>
            , and
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Vasconcelos</surname>
          </string-name>
          .
          <article-title>Norm-oriented programming of electronic institutions</article-title>
          .
          <source>In AAMAS</source>
          , pages
          <fpage>670</fpage>
          -
          <lpage>672</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>R.</given-names>
            <surname>Hermoso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Billhardt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Ossowski</surname>
          </string-name>
          .
          <article-title>Integrating trust in virtual organisations</article-title>
          . In Workshop in Coordination, Organisation, Institutions and Norms in MultiAgent Systems, May
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>JADE</surname>
          </string-name>
          .
          <article-title>The JADE project home page</article-title>
          . http://jade.cselt.it,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>P.</given-names>
            <surname>McBurney</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Parsons</surname>
          </string-name>
          .
          <article-title>A formal framework for inter-agent dialogues</article-title>
          . In J. P. Mu¨ller, E. Andre,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sen</surname>
          </string-name>
          , and C. Frasson, editors,
          <source>Proceedings of the Fifth International Conference on Autonomous Agents</source>
          , pages
          <fpage>178</fpage>
          -
          <lpage>179</lpage>
          , Montreal, Canada, May
          <year>2001</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Mehta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Phadke</surname>
          </string-name>
          .
          <article-title>Towards a taxonomy of software connectors</article-title>
          .
          <source>In Proceedings of the 22nd International Conference on Software Engineering</source>
          , pages
          <fpage>178</fpage>
          -
          <lpage>187</lpage>
          . ACM Press,
          <year>June 2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J.</given-names>
            <surname>Pav</surname>
          </string-name>
          <article-title>´on and</article-title>
          <string-name>
            <surname>J. G</surname>
          </string-name>
          <article-title>´omez-Sanz. Agent oriented software engineering with ingenias</article-title>
          . In V. Marik,
          <string-name>
            <given-names>J.</given-names>
            <surname>Muller</surname>
          </string-name>
          , and M. Pechoucek, editors,
          <source>Proceedings of the 3rd International Central and Eastern European Conference on Multi-Agent Systems</source>
          . Springer Verlag,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>B. C.</given-names>
            <surname>Pierce</surname>
          </string-name>
          . Types and
          <string-name>
            <given-names>Programming</given-names>
            <surname>Languages</surname>
          </string-name>
          . The MIT Press, Cambridge, MA,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>G.</given-names>
            <surname>Plotkin</surname>
          </string-name>
          .
          <article-title>A structural approach to operational semantics</article-title>
          .
          <source>Technical Report DAIMI FN-19</source>
          , Aarhus University, Sept.
          <year>1981</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>J. Searle. Speech</given-names>
            <surname>Acts</surname>
          </string-name>
          . Cambridge University Press,
          <year>1969</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>M.</given-names>
            <surname>Sergot</surname>
          </string-name>
          .
          <article-title>A computational theory of normative positions</article-title>
          .
          <source>ACM Transactions on Computational Logic</source>
          ,
          <volume>2</volume>
          (
          <issue>4</issue>
          ):
          <fpage>581</fpage>
          -
          <lpage>622</lpage>
          , Oct.
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>J. M. Serrano</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Ossowski</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferna</surname>
          </string-name>
          <article-title>´ndez. The pragmatics of software agents - analysis and design of agent communication languages</article-title>
          .
          <source>Intelligent Information Agents - An AgentLink Perspective (Klusch</source>
          , Bergamaschi, Edwards &amp; Petta, ed.),
          <source>Lecture Notes in Computer Science</source>
          ,
          <volume>2586</volume>
          :
          <fpage>234</fpage>
          -
          <lpage>274</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Singh</surname>
          </string-name>
          .
          <article-title>Agent-based abstractions for software development</article-title>
          . In F. Bergenti,
          <string-name>
            <given-names>M.-P.</given-names>
            <surname>Gleizes</surname>
          </string-name>
          , and F. Zambonelli, editors,
          <source>Methodologies and Software Engineering for Agent Systems, chapter 1</source>
          , pages
          <fpage>5</fpage>
          -
          <lpage>18</lpage>
          . Kluwer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>F.</given-names>
            <surname>Zambonelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. R.</given-names>
            <surname>Jennings</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wooldridge</surname>
          </string-name>
          .
          <article-title>Developing multiagent systems: The Gaia methodology</article-title>
          .
          <source>ACM Transactions on Software Engineering and Methodology</source>
          ,
          <volume>12</volume>
          (
          <issue>3</issue>
          ):
          <fpage>317</fpage>
          -
          <lpage>370</lpage>
          ,
          <year>July 2003</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>