<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">The semantic core of multi-agent interactions: an operational model 1</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Sergio</forename><surname>Saugar</surname></persName>
							<email>sergio.saugar@urjc.es</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computing</orgName>
								<orgName type="institution">University Rey Juan Carlos C</orgName>
								<address>
									<addrLine>Tulipán s/n</addrLine>
									<postCode>28937</postCode>
									<settlement>Móstoles (Madrid)</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Juan</forename><forename type="middle">Manuel</forename><surname>Serrano</surname></persName>
							<email>juanmanuel.serrano@urjc.es</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computing</orgName>
								<orgName type="institution">University Rey Juan Carlos C</orgName>
								<address>
									<addrLine>Tulipán s/n</addrLine>
									<postCode>28937</postCode>
									<settlement>Móstoles (Madrid)</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">The semantic core of multi-agent interactions: an operational model 1</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">D7A9D0A2439BCA6CD93DDDBF11297A0E</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T14:53+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The suitability of agent-based computing to manage the complex patterns of interactions naturally occurring in the development of large scale, open systems, has become one of its major assets over the last few years <ref type="bibr" target="#b26">[27,</ref><ref type="bibr" target="#b27">28]</ref>. Particularly, the organizational or social stance advocated in various degrees by most multi-agent system (MAS) methodologies, provides an excellent basis to deal with the complexity and dynamism of the interactions among system components <ref type="bibr" target="#b27">[28]</ref>. This approach has resulted in a wide spectrum of organizational and communicative abstractions, such as institutions, organizations, groups, communicative interactions, etc., to effectively model the interaction space of MAS <ref type="bibr" target="#b10">[11,</ref><ref type="bibr" target="#b12">13,</ref><ref type="bibr" target="#b25">26,</ref><ref type="bibr" target="#b27">28]</ref>.</p><p>Still, software engineering has witnessed an increasing attention to component interactions from different research fields: coordination models and languages <ref type="bibr" target="#b6">[7]</ref>, and software architectures <ref type="bibr" target="#b0">[1]</ref>, amongst others, offer alternative analysis at different levels of abstractions. From an architectural perspective, for instance, component interactions are explicated in terms of software connectors: explicit semantic entities characterized in terms of the participant roles and protocol regulating the interaction. Component &amp; Connector architectural styles, such as Pipe&amp; Filter, Peer-to-Peer, or Client-Server, define different types of connectors and computational models in general.</p><p>The main hypothesis motivating this work is that the variety of organizational and communicative abstractions found in the current literature share a common semantic core. This paper attempts to elucidate this common core from an architectural point of view. Particularly, a connector-based semantics of social interactions among autonomous and situated agents is put forward, which attempts to identify the essential structure and dynamics underlying multi-agent interactions.</p><p>The paper is structured as follows: first, the major entities and relationships which constitute the structure of social interactions is introduced. Next, the dynamics of social interactions will show how these entities and relationships evolve. The model will be formalised using Structural Operational Semantics <ref type="bibr" target="#b22">[23]</ref>. Then, the third section attempts to test the productivity of the proposed semantics by analyzing common organizational and communicative abstractions of MAS. Last, relevant work in the literature is discussed with respect to the proposal, limitations are addressed, and current and future work is described.</p><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 <ref type="bibr" target="#b0">[1]</ref>. 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 l 1 : T 1 , . . . l n : T n , 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 = v 1 , . . . , v n : 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 Enum v 1 , . . . , v n represents an enumeration type whose values are v 1 , . . . , v n . Given some value v : T , the term v l refers to the value of the field l of a record type T . Given some labels l 1 , l 2 , . . . , the expression v l1,l2,... is syntactic sugar for ((v l1 ) l2 ) . . .. The special term nil will be used to represent the absence of proper value for an optional field, so that v l = 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Social Interactions</head><p>Social interactions shall be considered as composite connectors <ref type="bibr" target="#b19">[20]</ref>, 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 interaction <ref type="foot" target="#foot_1">2</ref> .</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: 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><formula xml:id="formula_0">I state : SI, ini : A, mem : Set[A], env : Set[R], sub : Set[I], prot : P, ch : CH def . : (1) i context = i1 ⇔ i ∈ i sub 1 inv. : (2) i ini = nil ⇔ i context = nil</formula><p>The type S I Enum open, closing , closed 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Agents</head><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 context<ref type="foot" target="#foot_2">3</ref> . 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: 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><formula xml:id="formula_1">A state : SA, player : A, purp : F, att : Queue[ACT ], ev : Queue[E ], obl : Set[O] def . : (3) a context = i ⇔ a ∈ i mem (4) i ∈ a partIn ⇔ a1 ∈ i mem ∧ a player</formula><p>The type S A Enum playing , leaving, succ, unsuc 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) <ref type="foot" target="#foot_3">4</ref> . The derived partIn feature represents the interactions in which the agent is playing some member role (def. 4) <ref type="foot" target="#foot_4">5</ref> . 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 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Resources</head><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><formula xml:id="formula_2">R cr : A, owners : Set[A], op : Set[OP] def . : (6) r context = i ⇔ r ∈ i env act. : take, share, give, invoke</formula><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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.4">Protocols</head><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 follows <ref type="foot" target="#foot_5">6</ref> :</p><formula xml:id="formula_3">P emp : A × ACT → Boolean, perm : A × ACT → Boolean, vis : A × E → Boolean, obl : A → Set[O] × Set[E ], over : A → Boolean, f inish : → Boolean def . : (7) p context = i ⇔ p = i prot inv. : (8) p f inish () ∧ s ∈ p context,sub ⇒ s prot,f inish () (9) p f inish () ∧ a ∈ p context,mem ⇒ p over (a) (10) p over (a) ∧ a player i = a ⇒ a context,prot,over i (ai)</formula><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 interaction <ref type="foot" target="#foot_6">7</ref> . 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 stage <ref type="foot" target="#foot_7">8</ref> .</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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Social interaction dynamics</head><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 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Attempt processing</head><p>An attempt is defined by the structure AT T perf : A, act : ACT , 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:</p><p>ACT state : SACT , target : I, ev : E , add :</p><formula xml:id="formula_4">Set[A] def . : (11) α perf = a ⇔ α ∈ a att</formula><p>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 S ACT Enum emp, perm, exec, disp : empowerment checking, permission checking, action execution and addressee dispatching, described in the sequel.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.1">Empowerment checking</head><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. ǫ = a, α : AT T ∧ α target,prot,emp (a, α) a = playing , , , q ACT , ,</p><formula xml:id="formula_5">ǫ −→ playing , , , q ′ ACT , ,<label>(1)</label></formula><p>W here : (α ′ ) state = perm (q ′ ACT ) = push(α ′ , q ACT )</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.2">Permissions checking</head><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><formula xml:id="formula_6">α state = perm ∧ a context,ch,in = ∅ ∧ α target,prot,perm (a, α) a = playing , , , [α| ], , −→ playing , , , [α ′ | ], ,<label>(2)</label></formula><p>W here : (α ′ ) state = exec</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.3">Action execution</head><p>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 follows 9 :</p><formula xml:id="formula_7">SetUp ACT new : I inv. : (12) α new,mem = α new,res = α new,sub = ∅ (13) α new,state = open</formula><p>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.</p><formula xml:id="formula_8">α state = exec ∧ α : SetUp ∧ α sub = i playing , , , [α| ], , −→ playing , , , [α ′ | ], , α target = open , , , , , s I , c −→ open, , , , , s I ∪ i ′ , c ′ (3) W here : (α ′ ) state = disp (α ′ ) ev = sub(α target , i) (i ′ ) ini = α perf (c ′ ) out = insert(sub(α target , i), c out )</formula><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 afterwards <ref type="foot" target="#foot_8">10</ref> . Accordingly, we may specify this type of action as follows:</p><formula xml:id="formula_9">Close ACT upd : (→ Bool) → (→ Bool) inv. : (14) α target,state = open (15) α target,context = nil (16) α upd (α target,prot,f inish )()</formula><p>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. <ref type="figure">, , , , p, c −→ open, , , , , p ′ , c</ref> ′ (4) 9 The resulting type consists of the fields of the labelled record ACT extended plus an additional field new.</p><formula xml:id="formula_10">α state = exec ∧ α : Close playing , , , [α| ], , −→ playing , , , [α ′ | ], , α target = open,</formula><formula xml:id="formula_11">(p ′ ) f inish = α upd (p f inish ) (c ′ ) out = insert(f inish(α target ), c out )</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.4">Addressee dispatching</head><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><formula xml:id="formula_12">α state = disp ∧ a ∈ α add playing , , , [α| ], , −→ playing , , , [α ′ | ], , a = playing , , , , q E , −→ playing , , , , q ′ E ,<label>(5)</label></formula><p>W here</p><formula xml:id="formula_13">: (α ′ ) add = α add \ {a} q ′ E = insert(α ev , q E )</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Event Processing</head><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 updates <ref type="foot" target="#foot_9">11</ref> . 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><formula xml:id="formula_14">CH out : Queue[E ], disp : E → Set[I], int : Set[I], in : Queue[E ], agents : Set[A] inv. : (17) c context ∈ c disp (f inish(c context )) (18) c context ∈ c disp (over(a)) (19) c context,sub ⊆ c disp (closing(c context )) (20) a partsIn ⊆ c disp (leaving(a)) (21) c context ⊆ c disp (closed(i)) (22) {c context , a player,context } ⊆ c disp (lef t(a))</formula><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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.1">Interaction dispatching</head><p>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 event <ref type="foot" target="#foot_10">12</ref> . 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.</p><formula xml:id="formula_15">c context,state s = i state d = open ∧ i d ∈ s I c s = [e| ], , s I , , −→ [e| ], , s I \ {i d }, , i ch d = , , , q i , −→ , , , insert(e, q i ),<label>(6)</label></formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.2">Interaction state update</head><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. </p><formula xml:id="formula_16">c in = ∅ ∧ c agents = nil ∧ i ∈ s I ∧ p f inish () i = , ,</formula><p>W here : (c ′ ) out = insert(closed(i), c out )</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><formula xml:id="formula_18">c in = ∅ ∧ c agents = nil ∧ p f inish () ∧ (s A = ∅ ∨ s I = ∅) i = open, , s A , , s I , p, c −→ closing , , s A , , s I , p, c ′<label>(8)</label></formula><p>W here : (c ′ ) out = insert(closing(i), c out ) (c ′ ) agents = s A 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.3">Members update</head><p>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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Discussion</head><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 <ref type="bibr" target="#b11">[12]</ref>. Large-scale interactions, modelling complex aggregates of agent interactions such as those represented by e-institutions or virtual organizations <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b27">28]</ref>, 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 <ref type="bibr" target="#b14">[15]</ref>, dialogue games <ref type="bibr" target="#b18">[19]</ref>, or scenes <ref type="bibr" target="#b1">[2]</ref>. 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 <ref type="bibr" target="#b23">[24]</ref>, 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 <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b13">14,</ref><ref type="bibr" target="#b27">28]</ref> and the normative perspective on multi-agent protocols <ref type="bibr" target="#b15">[16,</ref><ref type="bibr" target="#b24">25]</ref>. These proposals as well as others focusing in relevant abstractions such as power relationships <ref type="bibr" target="#b3">[4]</ref>, trust and reputation mechanisms in organizational settings <ref type="bibr" target="#b16">[17]</ref>, 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 <ref type="bibr" target="#b2">[3]</ref>. Last, the abstract model of protocols may be refined taking into account existing operational models of normativity <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b15">16]</ref>. 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 <ref type="bibr" target="#b4">[5]</ref>. 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 <ref type="bibr" target="#b8">[9,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b27">28]</ref>) are mostly implemented through development platforms and infrastructures that must be programmed in a low-level language such as Java <ref type="bibr" target="#b17">[18]</ref> or in terms of visual modelling <ref type="bibr" target="#b9">[10,</ref><ref type="bibr" target="#b20">21]</ref>. We argue that the current field of multi-agent system programming may greatly benefit from multi-agent 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 <ref type="bibr" target="#b5">[6]</ref> 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 <ref type="bibr" target="#b21">[22]</ref> 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></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>act. : setU p, join, leave, create, destroy, close</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>1 =</head><label>1</label><figDesc>a inv. : (5) a player = nil ⇔ a context,context = nil act. : see</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head></head><label></label><figDesc>∅, , ∅, p, c −→ closed , ,, , , , , , , , s I , , c −→ , , , , s I \ {i}, , c ′</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">Research sponsored by the Spanish Ministry of Science and Education (MEC), project TIN2006-15455-C03-03</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">In 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.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">Thus, it may or may not correspond to actual internal "goals" or "intentions" of the component.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">The player of a top-level agent role is actually its software component.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4">Free variables in the antecedents/consequents of implications shall be understood as universally/existentially quantified.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">Additional social actions, such as permit, forbid, empower, etc., to update the rules of protocols are yet to be identified in future work.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_6">Protocol's functions may check the current and past state of different interactions to compute their results.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_7">The 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.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="10" xml:id="foot_8">This 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.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="11" xml:id="foot_9">Alternatively, 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.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="12" xml:id="foot_10">This 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.</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A Formal Basis for Architectural Connection</title>
		<author>
			<persName><forename type="first">R</forename><surname>Allen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Garlan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Software Engineering and Methodology</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="213" to="249" />
			<date type="published" when="1997-06">June 1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Engineering open environments with electronic institutions</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">L</forename><surname>Arcos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Esteva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Noriega</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Rodríguez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Sierra</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal on Engineering Applications of Artificial Intelligence</title>
		<imprint>
			<biblScope unit="volume">18</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="191" to="204" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Role-based semantics for agent communication: embedding of the &apos;mental attitudes&apos; and &apos;social commitments&apos; semantics</title>
		<author>
			<persName><forename type="first">G</forename><surname>Boella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Damiano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hulstijn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">W N</forename><surname>Van Der Torre</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">AAMAS</title>
				<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="688" to="690" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Delegation of power in normative multiagent systems</title>
		<author>
			<persName><forename type="first">G</forename><surname>Boella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">W N</forename><surname>Van Der Torre</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">DEON</title>
				<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="36" to="52" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A survey of programming languages and platforms for multi-agent systems</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">H</forename><surname>Bordini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Braubach</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dastani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">E F</forename><surname>Seghrouchni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J G</forename><surname>Sanz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Leite</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>O'hare</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pokahr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ricci</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Informatica</title>
		<imprint>
			<biblScope unit="volume">30</biblScope>
			<biblScope unit="page" from="33" to="44" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Jason and the golden fleece of agent-oriented programming</title>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">H</forename><surname>Bordini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">F</forename><surname>Hübner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Vieira</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Multi-Agent Programming: Languages, Platforms and Applications, chapter 1</title>
				<editor>
			<persName><forename type="first">R</forename><forename type="middle">H</forename><surname>Bordini</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><forename type="middle">M</forename></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Dix</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><forename type="middle">El</forename><surname>Fallah</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Seghrouchni</forename></persName>
		</editor>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Coordination models and languages as software integrators</title>
		<author>
			<persName><forename type="first">P</forename><surname>Ciancarini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Computing Surveys</title>
		<imprint>
			<biblScope unit="volume">28</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="300" to="302" />
			<date type="published" when="1996-06">June 1996</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Specifying and analysing agent-based social institutions using answer set programming</title>
		<author>
			<persName><forename type="first">O</forename><surname>Cliffe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">D</forename><surname>Vos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Padget</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">EUMAS</title>
				<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="476" to="477" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Omni: Introducing social structure, norms and ontologies into agent organizations</title>
		<author>
			<persName><forename type="first">V</forename><surname>Dignum</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Vázquez-Salceda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Dignum</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Programming Multi-Agent Systems Second International Workshop ProMAS 2004</title>
				<editor>
			<persName><forename type="first">R</forename><surname>Bordini</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Dastani</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Dix</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Seghrouchni</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">3346</biblScope>
			<biblScope unit="page" from="181" to="198" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">ISLANDER: an electronic institutions editor</title>
		<author>
			<persName><forename type="first">M</forename><surname>Esteva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Cruz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Sierra</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the First International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS&apos;02)</title>
				<editor>
			<persName><forename type="first">M</forename><surname>Gini</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">T</forename><surname>Ishida</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Castelfranchi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">W</forename><forename type="middle">L</forename><surname>Johnson</surname></persName>
		</editor>
		<meeting>the First International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS&apos;02)</meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="2002-07">July 2002</date>
			<biblScope unit="page" from="1045" to="1052" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">On the formal specifications of electronic institutions</title>
		<author>
			<persName><forename type="first">M</forename><surname>Esteva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Rodriguez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Sierra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Garcia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">L</forename><surname>Arcos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Agent-mediated Electronic Commerce (The European AgentLink Perspective)</title>
				<editor>
			<persName><forename type="first">F</forename><surname>Dignum</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Sierra</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="volume">1191</biblScope>
			<biblScope unit="page" from="126" to="147" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">W</forename></persName>
		</author>
		<ptr target="http://x-opennet.net" />
		<title level="m">Agentcities / opennet testbed</title>
				<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">A meta-model for the analysis of organizations in multi-agent systems</title>
		<author>
			<persName><forename type="first">J</forename><surname>Ferber</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Gutknecht</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Third International Conference on Multi-Agent Systems (ICMAS&apos;98)</title>
				<editor>
			<persName><forename type="first">Y</forename><surname>Demazeau</surname></persName>
		</editor>
		<meeting>the Third International Conference on Multi-Agent Systems (ICMAS&apos;98)<address><addrLine>Paris, France</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Press</publisher>
			<date type="published" when="1998-07">July 1998</date>
			<biblScope unit="page" from="128" to="135" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">From agents to organizations: An organizational view of multi-agent systems</title>
		<author>
			<persName><forename type="first">J</forename><surname>Ferber</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Gutknecht</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Michel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">AOSE</title>
		<imprint>
			<biblScope unit="page" from="214" to="230" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<ptr target="http://www.fipa.org/repository/ips.html" />
		<title level="m">FIPA Interaction Protocol Library Specification</title>
				<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
	<note>Foundation for Intelligent Physical Agents</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Norm-oriented programming of electronic institutions</title>
		<author>
			<persName><forename type="first">A</forename><surname>García-Camino</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">A</forename><surname>Rodríguez-Aguilar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Sierra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Vasconcelos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">AAMAS</title>
				<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="670" to="672" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Integrating trust in virtual organisations</title>
		<author>
			<persName><forename type="first">R</forename><surname>Hermoso</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Billhardt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ossowski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Workshop in Coordination, Organisation, Institutions and Norms in MultiAgent Systems</title>
				<imprint>
			<date type="published" when="2006-05">May 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<author>
			<persName><surname>Jade</surname></persName>
		</author>
		<ptr target="http://jade.cselt.it" />
		<title level="m">The JADE project home page</title>
				<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">A formal framework for inter-agent dialogues</title>
		<author>
			<persName><forename type="first">P</forename><surname>Mcburney</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Parsons</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Fifth International Conference on Autonomous Agents</title>
				<editor>
			<persName><forename type="first">J</forename><forename type="middle">P</forename><surname>Müller</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">E</forename><surname>Andre</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Sen</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">C</forename><surname>Frasson</surname></persName>
		</editor>
		<meeting>the Fifth International Conference on Autonomous Agents<address><addrLine>Montreal, Canada</addrLine></address></meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="2001-05">May 2001</date>
			<biblScope unit="page" from="178" to="179" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Towards a taxonomy of software connectors</title>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">R</forename><surname>Mehta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Medvidovic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Phadke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 22nd International Conference on Software Engineering</title>
				<meeting>the 22nd International Conference on Software Engineering</meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="2000-06">June 2000</date>
			<biblScope unit="page" from="178" to="187" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">Agent oriented software engineering with ingenias</title>
		<author>
			<persName><forename type="first">J</forename><surname>Pavón</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Gómez-Sanz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 3rd International Central and Eastern European Conference on Multi-Agent Systems</title>
				<editor>
			<persName><forename type="first">V</forename><surname>Marik</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Muller</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Pechoucek</surname></persName>
		</editor>
		<meeting>the 3rd International Central and Eastern European Conference on Multi-Agent Systems</meeting>
		<imprint>
			<publisher>Springer Verlag</publisher>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<title level="m" type="main">Types and Programming Languages</title>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">C</forename><surname>Pierce</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>The MIT Press</publisher>
			<pubPlace>Cambridge, MA</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<monogr>
		<title level="m" type="main">A structural approach to operational semantics</title>
		<author>
			<persName><forename type="first">G</forename><surname>Plotkin</surname></persName>
		</author>
		<idno>FN-19</idno>
		<imprint>
			<date type="published" when="1981-09">Sept. 1981</date>
		</imprint>
		<respStmt>
			<orgName>Aarhus University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical Report DAIMI</note>
</biblStruct>

<biblStruct xml:id="b23">
	<monogr>
		<title level="m" type="main">Speech Acts</title>
		<author>
			<persName><forename type="first">J</forename><surname>Searle</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1969">1969</date>
			<publisher>Cambridge University Press</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">A computational theory of normative positions</title>
		<author>
			<persName><forename type="first">M</forename><surname>Sergot</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Computational Logic</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="581" to="622" />
			<date type="published" when="2001-10">Oct. 2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">The pragmatics of software agents -analysis and design of agent communication languages. Intelligent Information Agents -An AgentLink Perspective</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Serrano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ossowski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Fernández</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Lecture Notes in Computer Science</title>
		<editor>Klusch, Bergamaschi, Edwards &amp; Petta</editor>
		<imprint>
			<biblScope unit="volume">2586</biblScope>
			<biblScope unit="page" from="234" to="274" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">Agent-based abstractions for software development</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">P</forename><surname>Singh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Methodologies and Software Engineering for Agent Systems</title>
				<editor>
			<persName><forename type="first">F</forename><surname>Bergenti</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M.-P</forename><surname>Gleizes</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">F</forename><surname>Zambonelli</surname></persName>
		</editor>
		<imprint>
			<publisher>Kluwer</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="5" to="18" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">Developing multiagent systems: The Gaia methodology</title>
		<author>
			<persName><forename type="first">F</forename><surname>Zambonelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">R</forename><surname>Jennings</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wooldridge</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions on Software Engineering and Methodology</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="317" to="370" />
			<date type="published" when="2003-07">July 2003</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
