<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>An introduction to Commitment Based Smart Contracts using ReactionRuleML</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Joost de Kruijff</string-name>
          <email>j.c.dekruijff@uvt.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hans Weigand</string-name>
          <email>h.weigand@uvt.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Tilburg University</institution>
          ,
          <addr-line>P.O. Box 90153 5000 LE Tilburg</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Smart contracts gain rapid exposure since the inception of blockchain technology. Today's smart contracts are coded in non-mainstream procedural programming languages (e.g. Solidity for Ethereum), which lifts the requirement to draft enterprise ready smart contract to both a legal professional and a programmer instead of only the former. In search for a smart contract language that reduces the threshold to draft one, this conceptual paper elaborates how business logic can be converted to executable code for commitment-based smart contracts. Hereby, a contract is viewed as a set of reciprocal commitments. The smart contract ensures the automated execution of all or most of these commitments. In order to leverage its event processing capabilities, Reaction RuleML has been used to appropriately represent the elements and working of passive and active rules within a commitment based smart</p>
      </abstract>
      <kwd-group>
        <kwd>RuleML</kwd>
        <kwd>Reaction RuleML</kwd>
        <kwd>Blockchain</kwd>
        <kwd>CommitmentBased Smart Contracts</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Smart contracts combine protocols with user interfaces to formalize and
secure relationships over computer networks. Objectives and principles
for the design of these systems are derived from legal principles,
economic theory and theories of reliable and secure protocols [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The
concept of smart contracts emerged in the 1990s, but only gained
exposure since the inception of blockchain technology. Today's smart
contracts are coded using imperative programming languages, in
mainstream programming languages (e.g. Javascript and Go for
Tendermint) and non-mainstream procedural languages (e.g. Solidity for
Ethereum) or. Representing contractual terms in code rather than natural
language, could bring clarity and predictability to agreements, as a smart
contract could then be tested against a set of material facts, allowing legal
professionals on either side to know precisely how the contract would
execute in every computationally-possible outcome [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        In order to make smart contracts more familiar to ordinary internet
users, it is important to minimize the threshold to read and write them, in
particular for users from the legal practice who draft paper-based or
electronic legal contracts (from now: conventional contracts). In this
context, [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] has built an argument for logic-based smart contracts. In
contrast to procedural languages, declarative languages, and logic-based
languages in particular, strive for the ideal of programming by wish: a
legal professional states what he or she wants, and the computer figures
out how to achieve it [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Declarative programming therefore splits into
two separate parts: methods for humans on how to write wishes, and
algorithms for computers that fulfil them [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The consideration to use
declarative languages for smart contracts has several objectives. (1)
Current implementations of smart contracts unintentionally add a third
party to the process; the requirement for a programmer or programming
knowledge to write a smart contract, which is in sharp contrast to the
promise of smart contracts to remove intermediaries [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and lower or
nullify transaction costs altogether [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. (2) In common legal practice,
procedural and regulatory rules are written in natural language. Legal
professionals are not expected to become programmers or vice versa. (3)
It is unlikely that a legal professional can verify the legal validity of a
smart contract coded by a programmer in a procedural language and it is
therefore unlikely that large businesses will adopt smart contracts under
these circumstances. Based on these objectives, we believe that there is
need for a logical format that smart contract verification interpreters, that
are immutable and live on the blockchain, can actually understand [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
Several languages such as LKIF (knowledge interchange), SBVR
(knowledge discovery), PENELOPE, ConDec (temporal knowledge),
ContractLog, OWL-S2, eSML [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and RuleML, have been proposed to
facilitate this process for various useful purposes, but mostly from a
generic knowledge engineering context and none for smart contracts in
specific.
      </p>
      <p>
        Our research objective is to make a theoretical contribution to the
science of contract languages for (logic-based) smart contracts. Chopra's
concept of business contracts as a bundle of commitments is applied using
RuleML as a markup language for drafting smart contracts. We evaluate
existing approaches using declarative rules [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and introduce an
alternative using reaction rules via the RuleML sublanguage Reaction
RuleML, whereby a commitment is evaluated as an (economic) event.
The practical goal of this paper is to set a future direction for
commitmentbased smart contracts by exploring to what extent business rules in natural
language can be translated to code that is applicable to any blockchain
platform.
      </p>
      <p>This paper is structured as follows. First, we explore the elements of
commitment-based smart contract and possible execution styles, followed
by an introduction to Reaction RuleML, code examples per execution
style and a conclusion.</p>
      <p>
        Elements of a Commitment-Based Smart Contract
A contract is a legally binding or valid agreement between two or more
parties. The main objective of a contract is to fulfill a certain goal and to
safeguard against undesirable outcomes, together referred to as contract
robustness [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Contracts that are not robust may lead to transaction costs,
expensive conflict resolution, or even a collapse of a transaction as a
whole.
      </p>
      <p>
        It might be objected that commitments represent the positive actions to
be performed by the actors only. What about prohibitions? For instance,
a music customer is not allowed to copy the music he can download. In
some cases, like the music copying, there may be technical means to make
the prohibited action impossible, but there are also actions of agents that
are not under control. In these cases, what the parties should commit to,
is to take the consequences (e.g. paying a penalty). The prohibition – don’t
do A – is reformulated as a contingency commitment – IF &lt;A&gt; THEN
&lt;consequence&gt;, where a transformation is described between deontic
logic and dynamic logic [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. In the example, the customer commits
himself to be a penalty when he has made an illegal copy. Our claim is
that all contract clauses can be similarly represented as commitments
(validation of this claim is out of the scope of this paper).
      </p>
      <p>
        In the context of blockchain, a commitment is equal to a future
transaction, the robustness of their smart contract depends on how its
commitments relate to the goals of the contract parties [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. This definition
implies that a commitment-based smart contract should at least contain
goals, commitments, conditions to execute and timing constraints.
      </p>
      <p>
        As each contract goal consists of reciprocal commitments. In line with
the economic exchange pattern [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], the duality between parties consists
of rights and obligations. For every obligation that A owes to B, there is
a balancing right from B to A. Commitments can both be financial (e.g.
payment) or non-financial (e.g. promise to deliver a good) and may or
may not happen under certain circumstances and a specified time.
      </p>
      <p>
        Since there is no formal way to schedule transaction events via the
blockchain protocol itself [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], smart contracts should be coded in such a
way that they are schedulable, based on timing or other conditions. In
order to mitigate this limitation, various solutions are presented in the
smart contract community with regard to smart contracts execution
method.
      </p>
      <p>Method Explanation
Lazy Execution Transactions are
(Must call to initiated by an
execute paradigm) actor, either
manually or
scheduled
Eager Execution The smart
contract polls for
events in order to
trigger reciprocal
transactions</p>
      <p>Advantage
Low compute costs
Lower complexity
due to lack of nesting
inside contract code
Fully automated
Transactions provide
security that they
happen. Humans may
forget to initialize a
transaction when they
should.</p>
      <p>Disadvantage
Less automation and
leverage of the power
smart contracts
Full automation
results in higher
compute complexity,
which equals
transaction costs.
In this paper, we provide code examples of business rules within
commitment based smart contracts using Reaction RuleML, for both
execution methods, as they are both relevant in practice today. Besides
the execution method, we have made other considerations that can be
summarized as follows:</p>
      <p>Transaction events are atomic, meaning that they happen in total
(‘execute’ in the technical sense) or not happen at all.</p>
      <p>The business logic (or rules of engagement) for economic
settlement, is preferred to executed on-chain
Each commitment that has time constraints consists of at least
two smart contracts, since a second smart contract is created that
takes care of the scheduled call of business logic in the ‘main’
smart contract
Smart contract transactions for settlement are initialized by the
smart contract itself, not by the parties involved, since the smart
contracts protects the interests of all actors.</p>
      <p>
        RuleML
RuleML is as markup language with the ability to express business rules
as modular, stand-alone units. It can be extended and possesses the ability
to resolve conflicts using priorities and override predicates [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. RuleML
adopts Java's class versus method naming convention by distinguishing
upper-case type tags from lower-case role tags, and uses the Datalog
sublanguage of Horn logic as its kernel foundation.
      </p>
      <p>
        Commitments can be simulated by both branches of the RuleML
family of rules; transformative (declarative) rules and reactive rules.
Derivation rules are believed to provide the most accurate conceptual
representation of a contract. The main goal of a declarative rule is
knowledge generation [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], whereby the validation of a premise will
induce or justify a conclusion. Multiple rules can hereby be related to a
single conclusion. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] used declarative rules convert natural language
contracts (in its existing form) into executable code using RuleML. Their
approach aimed to mitigate RuleML's limitative support for reasoning on
deontic concepts and its lack of ability to identify the behavior of roles in
the contract and contract violations. According to this view, monitoring
on contract performance deals with normative concepts like obligation,
permission, prohibition (violation) and behavior. Since commitments do
not follow traditional contract logic, we broadened our search for other
rule structures within the RuleML family that provide better fit for the
event driven nature of commitment based smart contracts.
      </p>
      <p>Reaction rules are concerned with the invocation of actions in response
to (complex) events and actionable situations [13]. Reaction RuleML is
the quasi-standard for representing reaction rules. It is regarded as a
userfriendly XML- serialized sublanguage of RuleML and acts as an
interchange format for reactive rules and rule based event-processing
languages. Reaction rules using Reaction RuleML typically implement
forward-chaining operational semantics for Condition-Action rules where
changing conditions trigger update actions, like IF/THEN/ELSE
(derivative reasoning), IF/DO (production rules), ON/DO (trigger rules),
ON/IF/DO (Event-Condition-Action or ECA) or a variation of ON/IF/DO
and IF/THEN (Knowledge Representation or KR) [14].</p>
      <p>Blockchain is considered to be a distributed database to transfer
value or value derivatives (tokens). The introduction of smart contract
functionality brought along functionality from the active database
domain, like inserting and triggering. Nevertheless, blockchain is not
limited to be an active distributed database either, since it has the
capability to interact with (complex) events that consider time- and other
constraints. Other (non-exhaustive) meta-model considerations for
commitment based smart contract rules are summarized below:
•
•
•
•
•</p>
      <p>Since we consider commitments as social economic events that
may contain other events (e.g. to pay) [15], the rules themselves
should be event oriented.</p>
      <p>These events should be callable or detectable, which allows IF
conditions to be specific for detected events only.</p>
      <p>The meta-model should allow multiple event definitions to be
part of the same rule procedure, in order to process a contract
goal as a bundle of reciprocal commitments.</p>
      <p>It is preferred to support smart contract wide states (e.g. deposit
percentage) that apply to the entire smart contract, instead of
defining them on run-time. This will maximize re-usability and
consistency when contracts grow in complexity.</p>
      <p>Prohibitions or violations are not similarly handled compared to
conventional contracts [16]. The prohibition – don’t do A – is
reformulated as a contingency commitment – IF A THEN
&lt;consequence&gt; or ON A DO &lt;consequence&gt; in order to
eliminate the need for complex and hard-to-maintain ELSE
statements.</p>
      <p>The remainder of this paper shows how lazy and eager rules
within the commitment based contract can be defined. RuleML inhibits
three execution styles for rules: passive, active and reasoning. Figure x
shows how passive and active rules align with the smart contract
execution styles.</p>
      <p>Method Blockchain
Lazy</p>
      <p>Method Reaction RuleML</p>
      <p>Passive
Eager</p>
      <p>Active</p>
      <p>Explanation
The smart contract
'passively' waits for
incoming events
The smart contract 'actively'
polls/detects occurred
events
Smart contract transactions are in essence text messages that are mined
by network nodes. As a result, we depict transactions as &lt;Messages&gt; in
Reaction RuleMl. The code examples provided fully adhere to the design
considerations as presented in the previous section</p>
    </sec>
    <sec id="sec-2">
      <title>Lazy execution</title>
      <p>Passive reaction rules wait for incoming events in order to trigger an
action. In this example, we assume an &lt;event&gt; that contains a &lt;Message&gt;
that is sent to the smart contract. This message may (transaction) or may
not (query) change the state of the smart contract (e.g. balance), a
condition that can be used in the &lt;body&gt;. For example, it could be verified
is there is a change to the state or if there is an outstanding obligation
between the sender and the receiver. Once the condition is fulfilled, the
smart contract triggers an automatic response message &lt;action&gt;, which
sends a &lt;Message&gt; to the blockchain network to settle the balance.
&lt;Reaction style=”passive”&gt;
&lt;event&gt;
&lt;Message mode=”inbound”&gt;
&lt;oid&gt;&lt;Var&gt;PaymentID&lt;/Var&gt;&lt;/oid&gt;
&lt;protocol&gt;Protocol&lt;/protocol&gt;
&lt;sender&gt;SenderPublicKey&lt;/sender&gt;
&lt;receiver&gt;ContractPublicKey&lt;/receiver&gt;
&lt;content&gt;</p>
      <p>&lt;Var&gt;Amount&lt;/Var&gt;
&lt;/content&gt;
&lt;/Message&gt;
&lt;/event&gt;
&lt;body&gt;
&lt;Naf&gt;
The same workflow holds for rights as well. The fact that a party has the
ability to call (or schedule) execution when they want, gives a sense of
control to stakeholders with regards to when actions are executed and
transaction costs are incurred. Due to the lower compute costs involved
with lazy execution, it is a popular way of designing smart contract rules.</p>
    </sec>
    <sec id="sec-3">
      <title>Eager execution</title>
      <p>Active reaction rules poll in order to verify whether or not an event has
taken place by checking the changes to the state of the smart contract. This
method does not require an additional smart contract that serves as the
scheduler. All code can be part of one smart contract. In this example, we
verify every hour through an &lt;event&gt;, whether or not a payment has been
made that changed the state or settled an obligation from the sender to the
receiver. Similar to lazy execution, once the condition is fulfilled, the
smart contract triggers an automatic response message &lt;action&gt;, which
sends a &lt;Message&gt; to the blockchain network to settle the balance.
&lt;Reaction style=”active”&gt;
&lt;event&gt;
&lt;Reaction&gt;
&lt;event&gt;
This conceptual paper examines rule definition for commitment-based
smart contracts using Reaction RuleML as the declarative smart contract
language. We have distinguished two execution modes for smart
contracts: lazy execution and eager execution. A commitment based smart
contract code example is provided for each execution mode in order to
illustrate how rules can be coded. These code examples comply to
nonexhaustive design considerations with regards to reliability and
accountability. Since both methods are used in parallel in practice, the
paper aimed to provide a sufficient introduction to these modes and its
semantics.</p>
      <p>The Reaction RuleML examples in this paper are a first step. An
important next step for the development of commitment based smart
contracts as a concept is to apply it in distinctive use-cases and
implementation options, as well as the verification of input events, in
particular when these events are outside the blockchain. In addition, the
code examples could be simplified by extending Reaction RuleML with
dedicated properties for commitment based smart contracts.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Szabo</surname>
          </string-name>
          , N.:
          <article-title>Formalizing and securing relationships on public networks</article-title>
          .
          <source>First Monday</source>
          <volume>2</volume>
          , no.
          <issue>9</issue>
          , 1997
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Chopra</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Singh</surname>
            <given-names>M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oren</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miles</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luck</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Modgil</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Desai</surname>
          </string-name>
          , N.:
          <article-title>Analyzing Contract Robustness through a Model of Commitments, AgentOriented Software Engineering XI</article-title>
          , LNCS 6788 pp
          <fpage>17</fpage>
          -
          <lpage>36</lpage>
          ,
          <year>2011</year>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Umeda</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolf</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bartenstein</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Geske</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seipel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Takata</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Declarative Programming for Knowledge Management, 16th Int Conf. on Applications of Declarative Programming and Knowledge Management</article-title>
          ,
          <string-name>
            <surname>INAP</surname>
          </string-name>
          <year>2005</year>
          , Fukuoka, Japan, Oct 22-
          <issue>24</issue>
          ,
          <year>2005</year>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Cheng, L.,
          <string-name>
            <surname>Saw</surname>
            ,
            <given-names>T.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sargeant</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Smart Contracts: Bridging the Gap Between Expectation and Reality</article-title>
          , Oxford Law Opinion,
          <volume>11</volume>
          <fpage>July</fpage>
          <lpage>2016</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Levy</surname>
            ,
            <given-names>K.E.C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Book-Smart</surname>
          </string-name>
          , Not Street-Smart:
          <article-title>Blockchain-Based Smart Contracts and The Social Workings of Law, Engaging Science</article-title>
          ,
          <source>Technology, and Society 3</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
          ,
          <year>2017</year>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Lam</surname>
            ,
            <given-names>H.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hashmi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scofield</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Enabling Reasoning with LegalRuleML, International Symposium on Rules and Rule Markup Languages for the Semantic Web</article-title>
          ,
          <string-name>
            <surname>RuleML</surname>
          </string-name>
          <year>2016</year>
          :
          <article-title>Rule Technologies</article-title>
          . Research, Tools, and Applications pp
          <fpage>241</fpage>
          -
          <lpage>257</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Norta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Designing a Smart-Contract Application Layer for Transacting Decentralized Autonomous Organizations</article-title>
          ,
          <source>International Conference on Advances in Computing and Data Science</source>
          ,
          <volume>11</volume>
          -
          <fpage>12</fpage>
          November,
          <year>2016</year>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Governatori</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rotolo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Modelling Contracts Using RuleML, Legal Knowledge and Information Systems</article-title>
          .
          <source>The Seventeenth Annual Conference</source>
          , pp.
          <fpage>141</fpage>
          -
          <lpage>150</lpage>
          ,
          <year>2004</year>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Wieringa</surname>
            , R. Meyer, J.-J, Weigand,
            <given-names>H.</given-names>
          </string-name>
          <article-title>Specifying dynamic and deontic integrity constraints</article-title>
          ,
          <source>Data &amp; Knowledge Engineering</source>
          , Volume
          <volume>4</volume>
          ,
          <string-name>
            <surname>Issue</surname>
            <given-names>2</given-names>
          </string-name>
          ,
          <year>1989</year>
          , Pages
          <fpage>157</fpage>
          -
          <lpage>189</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Blums</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weigand</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <article-title>Towards a Reference Ontology of Complex Economic Exchanges for Accounting Information Systems</article-title>
          .
          <source>EDOC</source>
          <year>2016</year>
          :
          <fpage>119</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. StackOverflow,
          <year>Januari 2016</year>
          : https://ethereum.stackexchange.com/questions/42/how-can
          <article-title>-a-contract-runitself-at-a-later-time#87</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Teymourian</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Athan</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Loosely-Coupled and Event-Messaged Interactions with Reaction RuleML 1.0 in Rule Responder</article-title>
          ,
          <source>CEUR Workshop Proceedings</source>
          , Vol.
          <volume>874</volume>
          ,
          <string-name>
            <surname>Article</surname>
            <given-names>13</given-names>
          </string-name>
          ,
          <year>2012</year>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>