<?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">Normative Monitoring: Semantics and Implementation</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Sergio</forename><surname>Alvarez-Napagao</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Universitat Politècnica de Catalunya</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Huib</forename><surname>Aldewereld</surname></persName>
							<affiliation key="aff1">
								<orgName type="institution">Universiteit Utrecht</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Javier</forename><surname>Vázquez-Salceda</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Universitat Politècnica de Catalunya</orgName>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Frank</forename><surname>Dignum</surname></persName>
							<email>dignum@cs.uu.nl</email>
							<affiliation key="aff1">
								<orgName type="institution">Universiteit Utrecht</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Normative Monitoring: Semantics and Implementation</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">C6C59ED4BDC230A39091988041E54CA5</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T07:17+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 concept of Normative Systems can be used in the scope of Multi-Agent Systems to provide reliable contexts of interactions between agents where acceptable behaviour is specified in terms of norms. Literature on the topic is growing rapidly, and there is a considerable amount of theoretical frameworks for normative environments, some in the form of Electronic Institutions. Most of these approaches focus on regulative norms rather than on substantive norms, and lack a proper implementation of the ontological connection between brute events and institutional facts. In this paper we present a formalism for the monitoring of both regulative (deontic) and substantive (constitutive) norms based on Structural Operational Semantics, its reduction to Production Systems semantics and our current implementation compliant to these semantics.</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>In recent years, several researchers have argued that the design of multi-agent systems (MAS) in complex, open environments can benefit from social abstractions in order to cope with problems in coordination, cooperation and trust among agents, problems which are also present in human societies. One of such abstractions is Normative Systems. Research in Normative Systems focuses on the concepts of norms and normative environment (which some authors refer to as institutions) in order to provide normative frameworks to restrict or guide the behaviour of (software) agents. The main idea is that the interactions among a group of (software) agents are ruled by a set of explicit norms expressed in a computational language representation that agents can interpret. Although some authors only see norms as inflexible restrictions to agent behaviour, others see norms not as a negative, constraining factor but as an aid that guides the agents' choices and reduces the complexity of the environment, making the behaviour of other agents more predictable.</p><p>Until recently, most of the work on normative environments works with norm specifications that are static and stable, and which will not change over time. Although this may be good enough from the social (institutional) perspective, it is not appropriate from the agent perspective. During their lifetime, agents may enter and leave several interaction contexts, each with its own normative framework. Furthermore they may be operating in contexts where more than one normative specification applies. So we need mechanisms where normative specifications can be added to the agents' knowledge base at run-time and be practically used in their reasoning, both to be able to interpret institutional facts from brute ones (by using constitutive norms to, e.g. decide if killing a person counts as murder in the current context) and to decide what ought to be done (by using regulative norms to, e.g. prosecute the murderer). In this paper we propose to use production systems to build a norm monitoring mechanism that can be used both by agents to perceive the current normative state of their environment, and for these environments to detect norm violations and enforce sanctions. Our basic idea is that an agent can configure, at a practical level, the production system at run-time by adding abstract organisational specifications and sets of counts-as rules.</p><p>In our approach, the detection of normative states is a passive procedure consisting in monitoring past events and checking them against a set of active norms. This type of reasoning is already covered by the declarative aspect of production systems, so no additional implementation in an imperative language is needed. Using a forwardchaining rule engine, events will automatically trigger the normative state -based on the operational semantics -without requiring a design on how to do it.</p><p>Having 1) a direct syntactic translation from norms to rules and 2) a logic implemented in an engine consistent with the process we want to accomplish, allows us to decouple normative state monitoring from the agent reasoning. The initial set of rules we have defined is the same for each type of agent and each type of organisation, and the agent will be able to transparently query the current normative state at any moment and reason upon it. Also this decoupling helps building third party/facilitator agents capable of observing, monitoring and reporting normative state change or even enforcing behaviour in the organisation.</p><p>In this paper we present a formalism for the monitoring of both regulative (deontic) and substantive (constitutive) norms based on Structural Operational Semantics (Section 2), its reduction to Production Systems semantics (Section 3) and our current implementation compliant to these semantics (Section 4). In Section 5 we compare with other related work and provide some conclusions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Formal Semantics</head><p>In this section we discuss the formal semantics of our framework. First, in section 2.1, we give the semantics of institutions as the environment specifying the regulative and constitutive norms. Then, in section 2.2, we describe the details of how this institution evolves over time based on events, and how this impacts the monitoring process. This formalisation will be used in section 3 as basis of our implementation.</p><p>Through this paper, we will use as an example the following simplified traffic scenario:</p><p>1. A person driving on a street is not allowed to break a traffic convention. 2. In case (1) is violated, the driver must pay a fine. 3. In a city, to exceed 50kmh counts as breaking a traffic convention.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Preliminary definitions</head><p>Before giving a formal definition of institutions (see definition 4), we first define the semantics of the regulative and constitutive norms part of that institution (in definitions 1 and 3, respectively).</p><p>We assume the use of a predicate based propositional logic language L O with predicates and constants taken from an ontology O, and the logical connectives {¬, ∨, ∧}. The set of all possible well-formed formulas of L O is denoted as wf f (L O ) and we assume that each formula from wf f (L O ) is normalised in Disjunctive Normal Form (DNF). Formulas in wf f (L O ) can be partially grounded, if they use at least one free variable, or fully grounded if they use no free variables.</p><p>In this paper we intensively use the concept of variable substitution. We define a substitution instance Θ = {x 1 ← t 1 , x 2 ← t 2 , ..., x i ← t i } as the substitution of the terms t 1 , t 2 , ..., t i for variables x 1 , x 2 , ..., x i in a formula f ∈ wf f (L O ).</p><p>We denote the set of roles in a normative system as the set of constants R, where R ⊂ O, and the set of participants as P , where each participant enacts at least one role according to the ontology O.</p><p>As our aim is to build a normative monitoring mechanism that can work at real time, special care has been made to choose a norm language which, without loss of expresiveness, has operational semantics that can then be mapped into production systems. Based in our previous work and experience, our definition of norm in an extension of the norm language presented in <ref type="bibr" target="#b11">[12]</ref>:</p><formula xml:id="formula_0">Definition 1. A norm n is a tuple n = �f A , f M , f δ , f D , f w , w�, where -f A , f M , f δ , f D , f w ∈ wf f (L O ), w ∈ R, -f A , f M ,</formula><p>f D respectively represent the activation, maintenance, and deactivation conditions of the norm, f δ , f w are the explicit representation of the deadline and target of the norm, and -w is the subject of the norm.</p><p>In order to create an optimal norm monitor it is important to know which norms are active at each point in time, as only those are the ones that have to be traced (inactive norms can be discarded from the monitoring process until they become active again). The activation condition f A specifies when a norm becomes active. It is also the main element in the norm instantiation process: when the conditions in the activating condition hold, the variables are instantiated, creating a new norm instance <ref type="foot" target="#foot_0">3</ref> The target condition f w describes the state that fulfills the norm (e.g. if one is obliged to pay, the payment being made fulfills the obligation). The deactivating condition f D defines when the norm becomes inactive. Typically it corresponds to the target condition (e.g., fulfilling the norm instance deactivates that instance of the norm), but in some cases it also adds conditions to express other deactivating scenarios (e.g., when the norm becomes deprecated). The maintenance condition f M defines the conditions that, when no longer hold, lead to a violation of the norm. Finally the deadline condition f δ respresents one or several deadlines for the norm to be fulfilled.</p><p>An example of a norm for the traffic scenario ("A person driving on a street is not allowed to break a traffic convention") would be formalised as follows n1 :=�enacts(X, Driver) ∧ is driving(X), ¬traf f ic violation(X), ⊥ , ¬is driving(X), is driving(X) ∧ ¬traf f ic violation(X), Driver�,</p><p>The activating condition states that each time an event appears where an individual enacting the Driver role drives ('is driving), then a new instance of the norm becomes active; the maintenance condition states that the norm will not be violated while no traffic convention is violated; this norm has no deadline, it is to apply at all times an individual is driving; the norm instance deactivates when the individual stops driving <ref type="foot" target="#foot_1">4</ref> ; the target of this norm is that we want drivers not breaking traffic conventions; finally the subject of the norm is someone enacting the Driver role.</p><p>It is important to note here that, although our norm representation does not explicitly include deontic operators, the combination of the activation, deactivation and maintenance conditions is as expressive as conditional deontic statements with deadlines as the ones in <ref type="bibr" target="#b2">[3]</ref>. It is also able to express unconditional norms and maintenance obligations (i.e. the obligation to keep some conditions holding for a period of time). To show that our representation can be mapped to conditional deontic representations, let us express the semantics of the norm in definition 1 in terms of conditional deontic statements. Given relations between the deadline and maintenance condition (that is, f δ → ¬f M , since the maintenance condition expresses more than the deadline alone) and between the target and the deactivation condition (i.e., f w → f D , since the deactivation condition specifies that either the norm is fulfilled or something special has happened), we can formalise the norms of definition 1 as the equivalent deontic expression (using the formalism of <ref type="bibr" target="#b2">[3]</ref>):</p><formula xml:id="formula_1">f A → [O w (E w f w ≤ ¬f M ) U f D ]</formula><p>, where E a p means that agent a sees to it that (stit) p becomes true and U is the CTL * until operator. Intuitively, the expression states that after the norm activation, the subject is obliged to see to it that the target becomes true before the maintenance condition is negated (either the deadline is reached or some other condition is broken) until the norm is deactivated (which is either when the norm is fulfilled or has otherwise expired).</p><p>Since we are not reasoning about the (effects of) combinations of norms, we will not go into further semantical details here. The semantics presented in this deontic reduction are enough for understanding the monitoring process that is detailed in the remainder of the paper.</p><p>A set of norms is denoted as N . We define as violation handling norms those norms that are activated automatically by the violation of another norm:</p><formula xml:id="formula_2">Definition 2. A norm n � = �f � A , f � M , f � δ , f � D , f � w , w � � is a violation handling norm of n = �f A , f M , f δ , f D , f w , w�, denoted as n � n � iff f A ∧ ¬f M ∧ ¬f D ≡ f � A</formula><p>Violation handling norms are special in the sense that they are only activated when another norm is violated. They are used as sanctioning norms, if they are to be fulfilled by the norm violating actor (e.g., the obligation to pay a fine if the driver broke a traffic sign), or as reparation norms, if they are to be fulfilled by an institutional actor (e.g. the obligation of the authorities to fix the broken traffic sign).</p><p>A norm is defined in an abstract manner, affecting all possible participants enacting a given role. Whenever a norm is active, we will say that there is a norm instance ni = �n, θ� for a particular norm n and a substitution instance Θ.</p><p>We define the state of the world s t at a specific point of time t as the set of predicates holding at that specific moment, where s t ⊆ O, and we will denote S as the set of all possible states of the world, where S = P(O). We will call expansion F (s) of a state of the world s as the minimal subset of wf f (L O ) that uses the predicates in s in combination of the logical connectives {¬, ∨, ∧}.</p><p>One common problem for the monitoring of normative states is the need for an interpretation of brute events as institutional facts, also called constitution of social reality <ref type="bibr" target="#b7">[8]</ref>. The use of counts-as rules helps solving this problem. Counts-as rules are multi-modal statements of the form [c](γ 1 → γ 2 ), read as "in context c, γ 1 counts-as γ 2 ". In this paper, we will consider a context as a set of predicates, that is, as a possible subset of a state of the world: Definition 3. A counts-as rule is a tuple c = �γ 1 , γ 2 , s�, where γ 1 , γ 2 ∈ wf f (L O ), and s ⊆ O.</p><p>A set of counts-as rules is denoted as C. Although the definition of counts-as in <ref type="bibr" target="#b7">[8]</ref> assumes that both γ 1 and γ 2 can be any possible formula, in our work we limit γ 2 to a conjunction of predicates for practical purposes. Definition 4. Following the definitions above, we define an institution as a tuple of norms, roles, participants, counts-as rules, and an ontology: I = �N, R, P, C, O� An example of I for the traffic scenario would be formalised as follows: N :={�enacts(X, Driver) ∧ is driving(X), ¬traf f ic violation(X), ⊥, ¬is driving(X), is driving(X) ∧ ¬traf f ic violation(X), Driver�, �enacts(X, Driver) ∧ is driving(X) ∧ traf f ic violation(X), �, paid f ine(X), Driver�} R :={Driver}, P :={P erson 1 } C :={�exceeds(D, 50), traf f ic violation(D), is in city(D)�} O :={role, enacts, is driving, is in city, exceeds, traf f ic violation, is driving, paid f ine, P erson 1 , role(Driver), enacts(P erson 1 , Driver)}</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Normative Monitor</head><p>In this section we present a formalisation of normative monitoring based on Structural Operational Semantics.</p><p>From the definitions introduced in section 2.1, a Normative Monitor will be composed of the institutional specification, including norms, the current state of the world, and the current normative state.</p><p>In order to track the normative state of an institution at any given point of time, we will define three sets: an instantiation set IS, a fulfillment set F S, and a violation set V S, each of them containing norm instances {�n i , Θ j �, �n i � , Θ j � �, ..., �n i �� , Θ j �� �}. We adapt the semantics for normative states from <ref type="bibr" target="#b10">[11]</ref>: Definition 5. Norm Lifecycle: Let ni = �n, Θ� be a norm instance, where n = �f A , f M , f D , w�, and a state of the world s with an expansion F (s). The lifecycle for norm instance ni is defined by the following normative state predicates:</p><formula xml:id="formula_3">activated(ni) ⇔ ∃f ∈ F (s), Θ(f A ) ≡ f maintained(ni) ⇔ ∃Θ � , ∃f ∈ F (s), Θ � (f M ) ≡ f ∧ Θ � ⊆ Θ deactivated(ni) ⇔ ∃Θ � , ∃f ∈ F (s), Θ � (f D ) ≡ f ∧ Θ � ⊆ Θ instantiated(ni) ⇔ ni ∈ IS violated(ni) ⇔ ni ∈ V S f ulf illed(ni) ⇔ ni ∈ F S</formula><p>where IS is the instantiation set, F S is the fulfillment set, and V S is the violation set, as defined above.</p><p>For instance, for norm n1, the lifecycle is represented in Figure <ref type="figure" target="#fig_0">1</ref>. The maintained state is not represented as it holds in both the activated and fulfilled states. The deactivated state is also not depicted because it corresponds in this case to the Fulfilled state. The set Γ of possible configurations of a Normative Monitor M I is Γ = I × S × IS × V S × F S.</p><p>However, the definition above does not take into account the dynamic aspects of incoming events affecting the state of the world through time. To extend our model we will assume that there is a continuous, sequential stream of events received by the monitor: Definition 7. An event e is a tuple e = �α, p�, where -α ∈ P<ref type="foot" target="#foot_2">5</ref> , and -p ∈ F and is fully grounded.</p><p>We define E as the set of all possible events, E = P(P × F ) Definition 8. The Labelled Transition System for a Normative Monitor M I is defined by �Γ, E, �� where -E is the set of all possible events e = �α, p�</p><formula xml:id="formula_4">-� is a transition relation such that � ⊆ Γ × E × Γ</formula><p>The inference rules for the transition relation � are depicted in Figure <ref type="figure" target="#fig_1">2</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Monitoring with production systems</head><p>In our approach, practical normative reasoning is based on a production system with an initial set of rules implementing the operational semantics described in Section 2.2. Production systems are composed of a set of rules, a working memory, and a rule interpreter or engine <ref type="bibr" target="#b1">[2]</ref>. Rules are simple conditional statements, usually of the form IF a THEN b, where a is usually called left-hand side (LHS) and b is usually called right-hand side (RHS).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Semantics of production systems</head><p>In this paper we use a simplified version of the semantics for production systems introduced in <ref type="bibr" target="#b0">[1]</ref>.</p><p>Considering a set P of predicate symbols, and an infinite set of variables X , where a fact is a ground term, f ∈ T (P), and WM is the working memory, a set of facts, a production rule is denoted if p, c remove r add a, or Event processed: ei = �α, p� ���i, s, is, vs, f s�, ei�, ei+1� � ��i, s ∪ {p}, is, vs, f s�, ei+1�</p><p>Counts-as rule activation:</p><p>∃Θ, ∃f ∈ F (s), ∃�γ1, γ2, si� ∈ C, si ⊆ s ∧ Θ(γ1) ≡ f ∧ Θ(γ2) / ∈ s ���N, R, P, C, O�, s, is, vs, f s�, e� � ���N, R, P, C, O�, s ∪ {Θ(γ2)}, is, vs, f s�, e�</p><p>Counts-as rule deactivation:</p><formula xml:id="formula_7">∃Θ, ∃f ∈ F (s), ∃�γ1, γ2, si� ∈ C, si � ⊆ s ∧ Θ(γ1) ≡ f ∧ Θ(γ2) ∈ s ���N, R, P, C, O�, s, is, vs, f s�, e� � ���N, R, P, C, O�, s − {Θ(γ2)}, is, vs, f s�, e�<label>(3)</label></formula><p>Norm instantiation: ∃n = �fA, fM , fD, w� ∈ N ∧ ¬∃n � ∈ N, n � � n ∧ �n, Θ� / ∈ is ∧ ∃Θ, ∃f � ∈ F (s), f � ≡ Θ(fA) ���N, R, P, C, O�, s, is, vs, f s�, e� � ���N, R, P, C, O�, s, is ∪ {�n, Θ�}, vs, f s�, e� (4) Norm instance violation:</p><formula xml:id="formula_8">∃n = �fA, fM , fD, w� ∈ N ∧ �n, Θ � � ∈ is ∧ �n, Θ � � / ∈ vs∧ ¬(∃Θ, ∃f � ∈ F (s), f � ≡ Θ(fM ) ∧ Θ ⊆ Θ � ) ∧ N R = � n�n � �n � , Θ � � ���N, R, P, C, O�, s, is, vs, f s�, e� � ���N, R, P, C, O�, s, (is − {�n, T heta � �}) ∪ N R, vs ∪ {�n, Θ � �}, f s�, e�<label>(5)</label></formula><p>Norm instance fulfilled:</p><formula xml:id="formula_9">∃n = �fA, fM , fD, w� ∈ N ∧ �n, Θ � � ∈ is ∧ ∃Θ, ∃f � ∈ F (s), f � ≡ Θ(fD) ∧ Θ ⊆ Θ � ���N, R, P, C, O�, s, is, vs, f s�, e� � ���N, R, P, C, O�, s, is − {�n, Θ � �}, vs, f s ∪ �n, Θ � ��, e�<label>(6)</label></formula><p>Norm instance violation repaired: ∃n, n � ∈ N ∧ n � n � ∧ �n, Θ� ∈ vs ∧ n � n � ∧ �n � , Θ� ∈ f s ���N, R, P, C, O�, s, is, vs, f s�, e� � ���N, R, P, C, O�, s, is, vs − {�n, Θ�}, f s�, e� -A set of positive or negative patterns p = p + ∪ p − where a pattern is a term p i ∈ T (F, X ) and a negated pattern is denoted ¬p i . p − is the set of all negated patterns and p + is the set of the remaining patterns -A proposition c whose set of free variables is a subset of the pattern variables:</p><p>V ar(c) ⊆ V ar(p). -A set r of terms whose instances could be intuitively considered as intended to be removed from the working memory when the rule is fired, r = {r i } i∈Ir , where V ar(r) ⊆ V ar(p + ).</p><p>-A set a of terms whose instances could be intuitively considered as intended to be added to the working memory when the rule is fired, a = {a i } i∈Ia , where V ar(a) ⊆ V ar(p). Definition 9. A set of positive patterns p + matches to a set of facts S and a substitution σ iff ∀p ∈ p + , ∃t ∈ S, σ(p) = t. Similarly, a set of negative patterns p − dismatches a set of facts S iff ∀¬p ∈ p − , ∀t ∈ S, ∀σ, σ(p) � = t. A production rule p ⇒ r, a is (σ, WM � )-fireable on a working memory WM when p + matches with WM � and p − dismatches with WM, where WM � is a minimal subset of WM, and T |= σ(c).</p><p>Definition 10. The application of a (σ, WM � )-fireable rule on a working memory WM leads to the new working memory WM �� = (WM − σ(r)) ∪ σ(a). Definition 11. A general production system PS is defined as PS = �P, WM 0 , R�, where R is a set of production rules over H = �P, X �.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Reduction</head><p>In order to formalise our Normative Monitor as a production system, we will need to define several predicates to bind norms to their conditions: activation, maintenance, deactivation, and to represent normative state over norm instances: violated, instantiated, and fulfilled. We will also use a predicate for the arrival of events: event, and a predicate to represent the fact that a norm instance is a violation handling norm instance of a violated instance: repair. For the handling of the DNF clauses, we will use the predicates holds and has clause. Definition 12. The set of predicates for our production system, for an institution I = �N, R, P, C, O�, is: P I := O ∪ {activated, maintained, deactivated, violated, instantiated, f ulf illed, event, repair, holds, has clause, countsas}</p><p>The initial working memory WM 0 should include the institutional specification in the form of the formulas included in the counts-as rules and the norms in order to represent the possible instantiations of the predicate holds, through the use of the predicate has clause.</p><p>First of all, we need to have the bindings between the norms and their formulas available in the working memory. For each norm n = �f A , f M , f D , w�, these bindings will be:</p><p>WM n := {activation(n, f A ), maintenance(n, f M ), deactivation(n, f D )} As we assume the formulas from wf f (L O ) to be in DNF form: Definition 13. We can interpret a formula as a set of conjunctive clauses f = {f 1 , f 2 , ..., f N }, of which only one of these clauses f i holding true is necessary for f holding true as well:</p><formula xml:id="formula_11">r h := has clause(f, f � ) ∧ holds(f � , Θ) ⇒ ∅, {holds(f, Θ)}</formula><p>For example, if f = (p 1 (x) ∧ p 2 (y) ∧ ... ∧ p i (z)) ∨ ... ∨ (q 1 (w) ∧ q 2 (x) ∧ ... ∧ q j (y)), then the initial facts to be in WM 0 will be:</p><p>WM 0 := � f � ∈f has clause(f, f � ) = {has clause(f, f 1 ), ..., has clause(f, f 2 )} Also, we have to include the set of repair norms by the use of the predicate repair, and the counts-as definitions by the use of the predicate countsas. Definition 14. The initial working memory WM I for an institution I = �N, R, P, C, O� is:</p><formula xml:id="formula_12">WM I := � n∈N n�n � repair(n, n � ) ∪ � n=�f A ,f M ,f D ,w�∈N (WM n ∪ WM f A ∪ WM f M ∪ WM f D ) ∪ � c=�γ1,γ2,s�∈C ({countsas(γ 1 , γ 2 , s)} ∪ WM γ1 ∪ WM s )</formula><p>The rule for the detection of a holding formula is defined as r hc f = �f � ⇒ ∅, {holds(f, σ)}, where we denote as �f � the propositional content of a formula f ∈ wf f (L O ) which only uses predicates from O and the logical connectives ¬ and ∧, and σ as the substitution set of the activation of the rule. Following the previous example: r hc f1 = p 1 (x) ∧ p 2 (y) ∧ ... ∧ p i (z) ⇒ ∅, {holds(f 1 , {x, y, z})} r hc f2 = q 1 (w) ∧ q 2 (x) ∧ ... ∧ q i (y) ⇒ ∅, {holds(f 2 , {w, x, y})} Similarly as in Definition 14: Definition 15. The set of rules R hc I for detection of holding formulas for an institution I = �N, R, P, C, O� is:</p><formula xml:id="formula_13">R hc I := � n=�f A ,f M ,f D ,w�∈N ( � f ∈{f A ,f M ,f D } r hc f ) ∪ � c=�γ1,γ2,s�∈C ( � f ∈γ1 r hc f )</formula><p>By using the predicate holds as defined above, we can translate the inference rules from Section 2.2. Please note that the rules are of the form p, c ⇒ r, a as shown in Section 3.1. However, as we only need the c part to create a constraint proposition in the rules for norm instance violation and fulfillment, c is omitted except for these two particular cases. Definition 16. Translated rules (see Figure <ref type="figure" target="#fig_1">2</ref>)</p><p>Rule for event processing (1): r e = event(α, p) ⇒ ∅, {�p�} Rule for counts-as rule activation (2):</p><formula xml:id="formula_14">r ca = countsas(γ 1 , γ 2 , c) ∧ holds(γ 1 , Θ) ∧ holds(c, Θ � ) ∧ ¬holds(γ 2 , Θ) ⇒ ∅, {Θ(�γ 2 �)}</formula><p>Rule for counts-as rule deactivation (3):</p><formula xml:id="formula_15">r cd = countsas(γ 1 , γ 2 , c) ∧ holds(γ 1 , Θ) ∧ ¬holds(c, Θ � ) ∧ holds(γ 2 , Θ) ⇒ {Θ(�γ 2 �)}, ∅</formula><p>Rule for norm instantiation (4):</p><formula xml:id="formula_16">r ni = activation(n, f ) ∧ holds(f, Θ) ∧ ¬instantiated(n, Θ) ∧ ¬repair(n � , n) ⇒ ∅, {instantiated(n, Θ)}</formula><p>Rule for norm instance violation (5):</p><formula xml:id="formula_17">r nv = instantiated(n, Θ)∧maintenance(n, f )∧¬holds(f, Θ � )∧repair(n, n � ), ∀Θ � , Θ � ⊆ Θ Fig. 3: Architecture of the DROOLS implementation ⇒ {instantiated(n, Θ)}, {violated(n, Θ), instantiated(n � , Θ)}</formula><p>Rule for norm instance fulfillment (6):</p><formula xml:id="formula_18">r nf = deactivation(n, f )∧instantiated(n, Θ)∧subseteq(Θ � , Θ)∧holds(f, Θ � ), Θ � ⊆ Θ ⇒ {instantiated(n, Θ)}, {f ulf illed(n, Θ)}</formula><p>Rule for norm instance violation repaired <ref type="bibr" target="#b6">(7)</ref>:</p><formula xml:id="formula_19">r nr = violated(n, Θ) ∧ repair(n, n � ) ∧ f ulf illed(n � , Θ � ) ⇒ {violated(n, Θ)}, ∅</formula><p>Definition 17. Following Definitions 13, 15 and 16, the set of rules for an institution I = �N, R, P, C, O� are: R I := R hc I ∪ {r h , r e , r ca , r cd , r ni , r nv , r nf , r nr } Definition 18. The production system PS I for an institution I will be, from Definitions 12, 14 and 17: PS I := �P I , WM I , R I �</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Implementation</head><p>A prototype of our normative reasoner has been implemented as a DROOLS program.</p><p>DROOLS is an open-source Object-Oriented rule engine for declarative reasoning in Java <ref type="bibr" target="#b13">[14]</ref>. Its rule engine is an implementation of the forward chaining inference Rete algorithm <ref type="bibr" target="#b3">[4]</ref>. The use of Java objects inside the rule engine allows for portability and an easier communication of concepts with the reasoning of agents coded in Java.</p><p>In DROOLS we can represent facts by adding them to the knowledge base as objects of the class Predicate. Predicates are dynamically imported from standardised Description Logic OWL-DL ontologies into Java objects using the tool OWL2Java <ref type="bibr" target="#b16">[17]</ref>, as subclasses of a specifically designed Predicate class. The following shows an example of the insertion of enacts role(p, Driver) into the knowledge base to express that p (represented as object p of the domain and instantiating a participant) is in fact enacting the role driver: DROOLS programs can be initialised with a rule definition file. However, its working memory and rule base can be modified at run-time by the Java process that is running the rule engine. We take advantage of this by keeping a fixed base, which is a file with fixed contents implementing the rules from Definition 13 and 16, which are independent of the institution, and having a parser for institutional definitions that will feed the rules from Definition 15, which are dependent on the institution (see Figure <ref type="figure">3</ref>). The institutional definitions we currently use are based on an extension of the XML language presented in <ref type="bibr" target="#b11">[12]</ref>.</p><p>The base rules (see Definitions The rest of the rules (see Definitions 15) are automatically generated from the institutional specifications and inserted into the DROOLS rule engine. An example of two generated rules for the traffic scenario is shown in Figure <ref type="figure" target="#fig_5">5</ref>.</p><p>rule "N1_activation_1" when n : Norm(id == "N1") Activation(norm == n, f : formula) Enacts(X : p0, p1 == "Driver") IsDriving(p0 == X) then Set&lt;Value&gt; theta = new Set&lt;Value&gt;(); theta.add(new Value("X", X)); insert(new Holds(f.getClause(0), theta)); end  The initial working memory is also automatically generated by inserting objects (facts) into the DROOLS knowledge base following Definition 14. An example for the traffic scenario is also shown in Figure <ref type="figure" target="#fig_6">6</ref>. Please note that this is not an output of the parser, but a representation of what it would execute at run-time.  The implementation of rule-based norm operationalisation has already been explored in previous research. Some approaches <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b14">15]</ref> directly define the operationalisation of the norms as rules of a specific language, not allowing enough abstraction to define norms at a high level to be operationalised in different rule engine specifications. <ref type="bibr" target="#b4">[5]</ref> introduces a translation scheme, but it is bound to Jess by using specific constructs of this language and it does not support constitutive norms.</p><p>Other recent approaches like <ref type="bibr" target="#b5">[6]</ref> define rule-based languages with expressive constructs to model norms, but they are bound to a proper interpreter and have no grounding on a general production system, requiring the use of an intentionally crafted or modified rule engine. For example, in <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b8">9]</ref>, obligations, permissions and prohibitions are asserted as facts by the execution of the rules, but the actual monitoring is out of the base rule engine used.</p><p>[16] introduces a language for defining an organisation in terms of roles, norms, and sanctions. This language is presented along with an operational semantics based on transition rules, thus making its adoption by a general production system straightforward. Although a combination of counts-as rules and sanctions is used in this language, it is not expressive enough to support regulative norms with conditional deontic statements.</p><p>We solve these issues by combining a normative language <ref type="bibr" target="#b11">[12]</ref> with a reduction to a representation with clear operational semantics based on the framework in <ref type="bibr" target="#b10">[11]</ref> for deontic norms and the use of counts-as rules for constitutive norms. The formalism presented in this paper uses logic conditions that determine the state of a norm (active, fulfilled, violated). These conditions can be expressed in propositional logic and can be directly translated into LHS parts of rules, with no special adaptation needed. The implementation of the operational semantics in a production system to get a practical normative reasoner is thus straightforward. This allows agents for dynamically changing its institutional context at any moment, by feeding the production system with a new abstract institutional specification.</p><p>Our intention is not to design a general purpose reasoner for normative agents, but a practical reasoner for detecting event-driven normative states. This practical reasoner can then be used as a component not only by normative agents, but also by monitors or managers. Normative agents should deal with issues such as planning and future possibilities, but monitors are focused on past events. For such a practical reasoner, the expressivity of actions languages like C+ is not needed, and a simple yet efficient solution is to use production systems, as opposed to approaches more directly related to offline verification or model checking, such as <ref type="bibr" target="#b9">[10]</ref>.</p><p>Mere syntactical translations are usually misleading in the sense that rule language specific constructs are commonly used, constraining reusability <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b4">5,</ref><ref type="bibr" target="#b6">7]</ref>. However, as we have presented in this paper a reduction to a general version of production system semantics, any rule engine could fit our purposes. There are several production system implementations available, some widely used by the industry, such as JESS, DROOLS, SOAR or PROVA. In most of these systems rules are syntactically and semantically similar, so switching from one to the other would be quite simple. As production systems dynamically compile rules to efficient structures, they can be used as well to validate and verify the consistency of the norms. As opposed to <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b8">9]</ref>, our reduction ensures that the whole monitoring process is carried out entirely by a general production system, thus effectively decoupling normative state detection and agent reasoning.</p><p>DROOLS is an open-source powerful suite supported by JBoss, the community, and the industry, and at the same time it is lightweight enough while including key features that we are or will be using in future work, As an advantage over other alternatives, it includes features relevant to our topic, e.g. event processing, workflow integration. Its OO approach makes it easy to be integrated with imperative code (Java), and OWL-DL native support is expected in a short time.</p><p>Our implementation is already being used in several use cases with large amounts of events and it is available at http://ict-alive.svn.sf.net/viewvc/ict-alive/ OrganisationLevel/trunk/Monitoring/ under a GPL license. As future work we expect to extend the semantics in order to support first-order logic norm conditions, and to perform an analysis on the algorithmic complexity of our implementation.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 :</head><label>1</label><figDesc>Fig. 1: Lifecycle for norm n1 in the traffic scenario: (I)nactive, (A)ctivated, (V)iolated, (F)ulfilled</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 :</head><label>2</label><figDesc>Fig. 2: Inference rules for the transition relation �</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head></head><label></label><figDesc>ksession.insert(new Enacts(p, Driver.class));</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head></head><label></label><figDesc>13 and 16) has been quite straightforward and the translation is almost literal. The contents of the reusable DROOLS file is shown in Figure 4. The last rule of the Figure is the declarative implementation of the predicate SubsetEQ to represent the comparison of substitutions instances Θ ⊆ Θ � , needed for the cases of norm instance violation and fulfillment. In our implementation in Drools, substitution instances are implemented as Set&lt;Value&gt; objects, where Value is a tuple �String, Object�.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head></head><label></label><figDesc>rule "C1_1" when c : CountsAs(g1 : gamma1) Exceeds(D : p0, 50 : p1) then Set&lt;Value&gt; theta = new Set&lt;Value&gt;(); theta.add(new Value("D", D)); insert(new Holds(g1.getClause(0), theta)); end</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 5 :</head><label>5</label><figDesc>Fig. 5: Rules for the traffic scenario</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Fig. 6 :</head><label>6</label><figDesc>Fig. 6: Facts for the traffic scenario</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">One main differentiating aspect of our formalisation is that we include variables in the norm representation and we can handle multiple instantiations of the same norm and track them separately.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_1">Although the norm is to apply at all times an individual is driving, it is better to deactivate the norm each time the individual stops driving, instead to keep it active, to minimize the number of norm instances the monitor needs to keep track at all times.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_2">α is considered to be the asserter of the event. Although we are not going to use this element in this paper, its use may be of importance when extending or updating this model.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgements</head><p>This work has been partially supported by the FP7-215890 ALIVE project. J. Vázquez-Salceda's work has been also partially funded by the Ramón y Cajal program of the Spanish Ministry of Education and Science.</p></div>
			</div>

			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0" />			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Production Systems and Rete Algorithm Formalisation</title>
		<author>
			<persName><forename type="first">H</forename><surname>Cirstea</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Kirchner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Moossen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">E</forename><surname>Moreau</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
			<pubPlace>Manifico</pubPlace>
		</imprint>
		<respStmt>
			<orgName>INRIA Lorraine, INRIA Rocquencourt</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Tech. Rep. ILOG</note>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">An overview of production systems</title>
		<author>
			<persName><forename type="first">R</forename><surname>Davis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>King</surname></persName>
		</author>
		<idno>STAN-CS-75-524</idno>
		<imprint>
			<date type="published" when="1975">1975</date>
		</imprint>
		<respStmt>
			<orgName>Stanford Artificial Intelligence Laboratory</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Report No.</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Meeting the Deadline: Why, When and How</title>
		<author>
			<persName><forename type="first">F</forename><surname>Dignum</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Broersen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Dignum</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J</forename><surname>Meyer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Formal Approaches to Agent-Based Systems</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting><address><addrLine>Berlin / Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">3228</biblScope>
			<biblScope unit="page" from="30" to="40" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Rete: A fast algorithm for the many pattern/many object pattern match problem</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">L</forename><surname>Forgy</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Artificial Intelligence</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="17" to="37" />
			<date type="published" when="1982">1982</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Implementing norms in electronic institutions</title>
		<author>
			<persName><forename type="first">A</forename><surname>García-Camino</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-Aguilar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the fourth international joint conference on Autonomous agents and multiagent systems</title>
				<meeting>the fourth international joint conference on Autonomous agents and multiagent systems<address><addrLine>Utrecht, Netherlands</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="667" to="673" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Constraint rulebased programming of norms for 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="j">Autonomous Agents and Multi-Agent Systems</title>
		<imprint>
			<biblScope unit="volume">18</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="186" to="217" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Representing business contracts in RuleML</title>
		<author>
			<persName><forename type="first">G</forename><surname>Governatori</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal of Cooperative Information Systems</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="issue">2-3</biblScope>
			<biblScope unit="page" from="181" to="216" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">Designing invisible handcuffs: Formal investigations in institutions and organizations for multi-agent systems</title>
		<author>
			<persName><forename type="first">D</forename><surname>Grossi</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
		<respStmt>
			<orgName>Universiteit Utrecht</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Thesis</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Normative programming for organisation management infrastructures</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">F</forename><surname>Hübner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Boissier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">H</forename><surname>Bordini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Workshop on Coordination, Organization, Institutions and Norms in Agent Systems in Online Communities (COIN@MALLOW</title>
				<imprint>
			<date type="published" when="2009">2009. 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Run-time monitoring of electronic contracts</title>
		<author>
			<persName><forename type="first">M</forename><surname>Kyas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Prisacariu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Schneider</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of 6th International Symposium on Automated Technology for Verification and Analysis</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting>6th International Symposium on Automated Technology for Verification and Analysis</meeting>
		<imprint>
			<publisher>Springer Berlin / Heidelberg</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">5311</biblScope>
			<biblScope unit="page" from="397" to="407" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Towards a formalisation of electronic contracting environments</title>
		<author>
			<persName><forename type="first">N</forename><surname>Oren</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Panagiotidi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Vázquez-Salceda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Modgil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Luck</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Miles</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Coordination, Organizations, Institutions and Norms in Agent Systems IV</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting><address><addrLine>Berlin / Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">5428</biblScope>
			<biblScope unit="page" from="156" to="171" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Intelligent Contracting Agents Language</title>
		<author>
			<persName><forename type="first">S</forename><surname>Panagiotidi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Vázquez-Salceda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Alvarez-Napagao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ortega-Martorell</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Willmott</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Confalonieri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Storms</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Symposium on Behaviour Regulation in Multi-Agent Systems (BRMAS 2008) at AISB 2008</title>
				<meeting>the Symposium on Behaviour Regulation in Multi-Agent Systems (BRMAS 2008) at AISB 2008<address><addrLine>Aberdeen, Scotland</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">1</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">A Logic Based SLA Management Framework</title>
		<author>
			<persName><forename type="first">A</forename><surname>Paschke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Dietrich</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Kuhla</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 4th Semantic Web Conference (ISWC 2005)</title>
				<meeting>the 4th Semantic Web Conference (ISWC 2005)<address><addrLine>Galway, Ireland</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="68" to="83" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">Drools documentation</title>
		<author>
			<persName><forename type="first">M</forename><surname>Proctor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Neale</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Frandsen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">G</forename><surname>Jr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Tirelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Meyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Verlaenen</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
			<publisher>JBoss</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">A rule-based notation to specify executable electronic contracts</title>
		<author>
			<persName><forename type="first">M</forename><surname>Strano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Molina-Jimenez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Shrivastava</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Symposium on Rule Representation, Interchange and Reasoning on the Web (RuleML2008)</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting>the International Symposium on Rule Representation, Interchange and Reasoning on the Web (RuleML2008)<address><addrLine>Berlin / Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">5321</biblScope>
			<biblScope unit="page" from="81" to="88" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Roles and norms for programming agent organizations</title>
		<author>
			<persName><forename type="first">N</forename><surname>Tinnemeier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Dastani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">J</forename><surname>Meyer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of 8th Int. Conf. on Autonomous Agents and Multiagent Systems (AAMAS 2009)</title>
				<meeting>of 8th Int. Conf. on Autonomous Agents and Multiagent Systems (AAMAS 2009)<address><addrLine>Budapest, Hungary</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="page" from="121" to="128" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title/>
		<author>
			<persName><forename type="first">M</forename><surname>Zimmermann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">OWL2Java</title>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

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