<!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>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Commitments:</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Joost de Kruijff</institution>
          ,
          <addr-line>Hans Weigand</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</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>This short paper takes a closer look at the Event Calculus and the formalisms for representing and reasoning about the effects of automated actions and the commitments that result from them. Since the Event Calculus deals with local events and the consideration of time, it enables the uniform representation of basic-, conditional and persistent commitments, including its operations and reasoning rules about them. Due to the similarities between event, action and state processing and reaction rules, we extend KR ReactionRuleML to emphasize syntax and semantics relevant for commitments, called CommitRuleML. CommitRuleML is used to define commitment-based smart contracts (CBSCs) as contracts that logically (through the Event Calculus) define events (on), conditions (if) and actions (do) in an executable language. A simplified running example illustrates how commitments evolve and fulfill over time.</p>
      </abstract>
      <kwd-group>
        <kwd>Event Calculus</kwd>
        <kwd>Smart Contracts</kwd>
        <kwd>KR ReactionRuleML</kwd>
        <kwd>CommitRuleML</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <sec id="sec-1-1">
        <title>Smart contracts are considered to be intelligent as they have the ability to execute logic</title>
        <p>
          by themselves. They act as a computer program that both expresses the contents of a
contractual agreement and operates the implementation of that content using blockchain
technology, using triggers provided by the users or extracted from the environment [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
Smart contracts automatically and always execute pre-defined actions when certain
conditions are met. Therefore, it is pivotal to have a thorough understanding of the
effects of these automated actions. This short paper takes a closer look at the formalisms
for representing and reasoning about the effects of these automated actions and the
commitments that result from them. The longer-term research objective is to develop a
smart contract language that is as transparent as possible about these commitments and
effects.
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>In 1969, [2] provided an elegant way, called the Event Calculus, to logically represent</title>
        <p>
          changes of the world through actions, captured in a protocol. Event calculus enables the
uniform representation of commitments, including its operations and reasoning rules
about them [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Event calculus originates from the Situation Calculus, although the main
difference between the two is conceptual: the Situation Calculus deals with global states,
whereas the Event Calculus deals with local events and the consideration of time periods.
        </p>
      </sec>
      <sec id="sec-1-3">
        <title>The latter is similar with the structure of a blockchain, whereby transactions that change</title>
        <p>
          the state of the ledger (actions) occur sequentially, based on situations (time or condition
constraints) as defined in the smart contract. Event calculus, can be formalized by means
of Horn clauses augmented with negation by failure [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. In search for a logical
representation for smart contracts, we formalize smart contracts using the Event
        </p>
      </sec>
      <sec id="sec-1-4">
        <title>Calculus. Previously we conceptually introduced commitment-based smart contracts</title>
        <p>
          (CBSC) [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] using ReactionRuleML. CBSC are smart contracts that logically (through
the Event Calculus) define events (on), conditions (if) and actions (do). as commitments
in an executable language. In this short paper, we provide an introduction into
        </p>
      </sec>
      <sec id="sec-1-5">
        <title>CommitRuleML through extending KR ReactionRuleML. We present a simplified</title>
        <p>running example operated by CommitRuleML syntax and semantics, illustrating a real
estate sales transaction. Hereby, (1) a seller lists a property, (2) receives offers on that
property and, once accepted by the seller, (3) buyer and seller reach a verbal agreement.</p>
      </sec>
      <sec id="sec-1-6">
        <title>Once the purchase agreement is signed (4), the seller (5) receives the payment in order to (6) transfer ownership of the property to the buyer.</title>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Event Calculus</title>
      <sec id="sec-2-1">
        <title>The interaction between a buyer and a seller is viewed as a multiagent system (MAS).</title>
      </sec>
      <sec id="sec-2-2">
        <title>Commitments between MAS agents are an important basis for organizing their</title>
        <p>
          interactions [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Since humans are opportunistic beings, it is important to look at the
events that create and/or manipulate commitments over time. In alignment with [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], each
of these events is considered to be an update which adds new knowledge (to the ledger),
starting from an initially empty knowledge base. In the context of CBSC, these events
equal commitments between a buyer and seller that change the state of the smart contract.
Updates are additive in that they add but do not delete information about events. That a
relationship no longer holds is represented by adding information which implies the end
of the time period. Knowledge is added to the state (through fluents) by fulfilling a
commitment c over time through transactions. According to [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], three types of
commitments exist:
•
•
•
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Base commitments; a commitment BC(x, y, p) from debtor x to a creditor y to</title>
        <p>satisfy condition p. Condition p does not involve other fluents or commitments.</p>
      </sec>
      <sec id="sec-2-4">
        <title>Conditional commitments; a commitment CC(x, y, p, q) whereby debtor x will</title>
        <p>bring about condition q to creditor y, once condition p is satisfied</p>
      </sec>
      <sec id="sec-2-5">
        <title>Persistent commitments; a commitment PC(x, y, G(p)) from debtor x to creditor y to ensure that condition p holds on all future time points.</title>
      </sec>
      <sec id="sec-2-6">
        <title>We have modified the original notation of commitment C by distinguishing base</title>
        <p>commitments (BC) and persistent commitments (PC), originally only denoted as C.</p>
      </sec>
      <sec id="sec-2-7">
        <title>Variable x represents the debtor agent and y represents the creditor agent. A fluent p</title>
        <p>describes the state the debtor needs to satisfy in order to fulfil a commitment, vice versa
for q for the creditor. G defines the ‘always’ operator as explained in temporal
knowledge. We focus on base- and conditional commitments at first for simplicity
reasons.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Example</title>
      <sec id="sec-3-1">
        <title>The roles, fluents and commitments in our simplified running example can be defined as follows:</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Roles:</title>
      <p>•
•</p>
      <sec id="sec-4-1">
        <title>B represents the buyer</title>
      </sec>
      <sec id="sec-4-2">
        <title>S represents the seller</title>
        <p>Domain-specific fluents:
•
•
•
•
•
list(a): a fluent meaning that the seller has listed property a (asset)
offer(a): a fluent meaning that the buyer has made an offer on property asset a
sign(a): a fluent meaning that both the buyer and seller have signed the purchase
agreement for property a
pay(m): a fluent meaning that the buyer has paid the amount m agreed upon
transfer(a): a fluent meaning that the Notary has transferred the property a
•
•
intentToSell (a, m): an abbreviation for BC(S, B, list(a)), meaning that the seller
is willing to sell a certain property a to the market by listing it for price m.
intentToBuy (a, m): an abbreviation for CC(B, S, offer(a), list(a)), meaning that
the buyer is intended to make an offer on a property, once there are listings
available that meet his/her criteria.
promiseToBuy(a, m): an abbreviation for CC(B, S, sign(a), pay(m)), meaning
that the buyer is willing to pay for the property after signing (if the listing
matches his/her budget).
promiseToSell(a, m): an abbreviation for BC(S, B, sign(a)), meaning that the
seller is willing to sign the purchase agreement the buyer signs the purchase
agreement that includes the requirements of his/her listing
deal(a,m): an abbreviation for promiseToBuy(a, m) ∧ promiseToSell(b, m),
whereafter the seller receives a full payment from the buyer.
exchange(a, m): an abbreviation for BC(S, B, transfer(a)), meaning that change
of ownership from seller to buyer is established.</p>
        <p>The following protocol run can be derived from our simplified running example. Since
this process is regulated and almost immutable, there is only once protocol run
possible. Here e1..e9 are event calculus events that correspond to interface messages of
the smart contract.</p>
        <p>
          e1 List property (listProperty(a))
e2 Make an offer (makeOffer(a, m))
e3 Receive the offer (receiveOffer(a, m))
e4 Accept the offer (acceptOffer(a, m))
e5 Create the purchase agreement (createPurchaseAgreement(a, m))
e6 Sign the purchase agreement contract (SignPurchaseAgreement(a, m))
e7 Make the required payment (makePayment(m))
e8 Receive the payment (receivePayment(m))
e9 Exchange of ownership (exchangeProperty(a))
We focus on events that evolve our defined commitments (in bold) Hereby, Create(e,
x, c) establishes commitment c. The create operation can only be performed by the
debtor of the commitment, in this case the seller of the property. When event e is
performed, the commitment c or a state (fluent) p is initiated. HoldsAt explains which
states (fluents) hold at a given time point, and Happens defines a predicate relation
between events possibly surrounded by conditions and times [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. For the (bold) events,
we first specify the effects in terms of fluents:
A1.
        </p>
        <p>A2.</p>
        <p>A3.</p>
        <p>A4.</p>
      </sec>
      <sec id="sec-4-3">
        <title>Initiates(listProperty(a), list(a), t)</title>
      </sec>
      <sec id="sec-4-4">
        <title>Initiates(makeOffer(a, m), offer(a), t)</title>
      </sec>
      <sec id="sec-4-5">
        <title>Initiates(signPurchaseAgreement(a, m), sign(a), t)</title>
      </sec>
      <sec id="sec-4-6">
        <title>Initiates(exchangeProperty(a), transfer(a))</title>
      </sec>
      <sec id="sec-4-7">
        <title>Then we stipulate the effects in terms of commitments: A5. A6. A7.</title>
        <p>A8.
A9.</p>
      </sec>
      <sec id="sec-4-8">
        <title>Create(listProperty(a), S, intentToSell(a, m))</title>
      </sec>
      <sec id="sec-4-9">
        <title>Create(makeOffer(a, m), S, intentToBuy(a, m))</title>
      </sec>
      <sec id="sec-4-10">
        <title>Create(signPurchaseAgreement(a,m), S, promiseToSell(a, m))</title>
      </sec>
      <sec id="sec-4-11">
        <title>Create(signPurchaseAgreement(a,m), S, promiseToBuy(a, m))</title>
      </sec>
      <sec id="sec-4-12">
        <title>Create(receivePayment(m), S, exchange(a))</title>
      </sec>
      <sec id="sec-4-13">
        <title>Base commitmens are initiated when they are created:</title>
      </sec>
      <sec id="sec-4-14">
        <title>The behavior of conditional commitments is slightly more complex. In line with [3],</title>
        <p>we implement Colombetti’s definitions of conditional commitments, where a new
(base) commitment is created when p is satisfied. This new commitment is created to
satisfy q. So when a CC holds and an event happens that satisfies p, the CC is
terminated and a C is initiated, as by the following axioms:</p>
        <p>Initiates(e, C(x, y, q), t) ← HoldsAt(CC(x, y, p, q), t) ∧ Happens(e, t) ∧
Initiates(e, p, t)
Terminates(e, CC(x, y, p, q), t) ← HoldsAt(CC(x, y, p, q), t) ∧ Happens(e, t) ∧
Initiates(e, p, t)</p>
      </sec>
      <sec id="sec-4-15">
        <title>Discharge(e, x, c) is an operation that resolves the commitment c. The discharge operation can only be performed by the debtor of the commitment to confirm that the commitment has been fulfilled. Discharging a commitment terminates that commitment.</title>
      </sec>
      <sec id="sec-4-16">
        <title>When the seller lists the property on the market (e1), clause A5 is applied, initiating the intentToSell base commitment to a prospective buyer using rule R1:</title>
        <p>Initiates(listPropertyt(a, m), intentToSell(a, m), t2) ← Happens(listProperty(a, m), t1)
∧ Create(listProperty(a, m), S, intentToSell(a, m))</p>
      </sec>
      <sec id="sec-4-17">
        <title>Once a buyer makes a suitable offer on the property (e2), Axioms A6 at t2 creates the intentToBuy conditional commitment. We do not terminate the intentToBuy commitment here, as the purchase agreement is not signed yet (until then we intent to buy), hence we delay termination until p is satisfied at t5. Together with rule R1:</title>
        <p>Initiates(makeOffer(a, m), intentToBuy(a, m), t2) ← Happens(receiveOffer(a, m), t2) ∧
Create(receiveOffer(a, m), S, intentToBuy(a, m))</p>
      </sec>
      <sec id="sec-4-18">
        <title>At e6, the buyer signs the purchase agreement first to satisfy p at t5, thereby creating</title>
        <p>the promiseToSell base commitment to satisfy q at t4. Once the seller has signed, the
promiseToSell is discharged and the intentToBuy and intentToSell commitments are
terminated accordingly at t6 and t7. With rules R2 and R3:
Initiates(signPurchaseAgreement(a), promiseToSell(a, m), t4) ←
HoldsAt(promiseToBuy(a,m), t3) ∧ Happens(signPurchaseAgreement(a), t3) ∧
Initiates(signPurchaseAgreement(a)), promiseToBuy(a,m), t3)
Terminates(intentToBuy(a, m)), t5) ← HoldsAt(promiseToBuy(a)), t5) ∧
Happens(signPurchaseAgreement(a), t5) ∧ Initiates(signPurchaseAgreement(a),
sign(a), t5)
Terminates(promiseToSell(a, m)), t6) ← HoldsAt(promiseToSell(a,m)), t6) ∧
Happens(signPurchaseAgreement(a), t6) ∧ Initiates(signPurchaseAgreement(a),
sign(m), t6)
Discharge(signPurchaseAgreement(a), S, intentToSell(a, m)) ←
HoldsAt(promiseToSell(a, m), t7) ∧ Happens(signPurchaseAgreement(a), t7) ∧
Initiates(signPurchaseAgreement(a), sign(a), t7)
Discharge(signPurchaseAgreement(a), S, promiseToSell(a, m)) ←
HoldsAt(promiseToSell(a, m), t8) ∧ Happens(signPurchaseAgreement(a), t8) ∧
Initiates(signPurchaseAgreement(a), sign(a), t8)</p>
      </sec>
      <sec id="sec-4-19">
        <title>When the seller receives payment for transfer (e9), the deal commitment is initialized as p is satisfied at t9. As a result, the exchange base commitment is created to satisfy q at t10. Once ownership has been transferred from S to B at t11, the exchange base commitment is discharged by the seller.</title>
        <p>Initiates(transferProperty(a), exchange(a), t10) ← HoldsAt(deal(a,m), t9) ∧
Happens(receivePayment(m), t9) ∧ Initiates(receivePayment(m), pay(m), t9)
Terminates(deal(a, m)), t9) ∧ HoldsAt(deal(a,m)), t9) ∧ Happens(receivePayment(m),
9t) ∧ Initiates(receivePayment(m), pay(m), t9)
Discharge(transferProperty(a), S, exchange(a), t11) ← HoldsAt(exchange(a), t11) ∧
Happens(transferProperty(a), t11) ∧ Initiates(transferProperty(a), transfer(a), t11)</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>CommitRuleML for CBSCs</title>
      <p>
        Reaction rules are concerned with the invocation of actions in response to (complex)
events and actionable situations. Reaction RuleML is the quasi-standard for representing
reaction rules since its introduction in 2006, as it is regarded as a user-friendly
XMLserialized sublanguage of RuleML. It acts as an interchange format for reactive rules and
rule-based event-processing languages [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. 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) or ON/IF/DO
(EventCondition-Action or ECA) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In order to determine the best conceptual and semantic
model for CBSC, various meta-model requirements have been formulated; (1) Since we
consider commitments as social economic events that contain other events (e.g. to pay),
the rules themselves should be event oriented. (2) The events should be detectable, which
allows IF conditions to be specific for detected events only. (3) 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. (4) It should be possible to
predefine variables that apply to the entire smart contract. Finally, (5) In adherence to [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
the algorithms for logic approaches like have been made efficient and ‘cheap’ as
measured within the environment where they are deployed and according to its economic
rules.
      </p>
      <p>
        Reaction rules include distributed Complex Event Process-ing (CEP), Knowledge
Representation (KR) calculi, as well as Event- Condition-Action (ECA) rules,
Production (CA) rules, and Trigger (EA) rules [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Since the event calculus reasons about
effects of automated actions (on the blockchain) and the commitments that result from
them, we leverage KR Reaction RuleML for CBSC. KR ReactionRuleML focus on
inferences that are made from happened or planned events/actions (increment or
decrement), they thereby describe inferences about the effects of these events/actions on
changeable properties of the world (fluents/states) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>CommitRuleML has been designed in the same vein as RuleML extensions like
PolicyRuleML and LegalRuleML. It converts the event calculus axioms into the various
properties that have been defined on top of KR Reaction RuleML. For example, if we
would moderately extend KR Reaction RuleML, the metadata would semantically look
like:
&lt;!ELEMENT Head (Commitment)&gt;
&lt;!ELEMENT Interface (on, if, do)&gt;
&lt;!ELEMENT on | do (Event)&gt;
&lt;!ELEMENT if (Condition)&gt;
&lt;!ELEMENT do (Event)&gt;
&lt;!ELEMENT BC| CC | PC (Event)&gt;</p>
      <sec id="sec-5-1">
        <title>The CommitRuleML syntax for a base commitment as presented in our running example implements the metadata for shorter notation:</title>
        <p>Initiates(receiveOffer(a, m), intentToBuy(a, m), t2) ← Happens(receiveOffer(a, m), t2)
∧ Create(receiveOffer(a, m), S, intentToBuy(a, m)) can be written in CommitRuleML
as
&lt;on&gt;&lt;Happens&gt;&lt;Event key="receiveOffer"/&gt;&lt;at&gt;&lt;Time&gt;t2&lt;/Time&gt;&lt;/at&gt;&lt;/Happens&gt;&lt;/on&gt;
&lt;do&gt;
&lt;/do&gt;</p>
        <p>&lt;/BC&gt;
&lt;/Event&gt;
&lt;/Initiate&gt;
&lt;Initiate&gt;
&lt;Event key="receiveOffer"/&gt;
&lt;BC key=”intentToBuy”&gt;</p>
        <p>&lt;at&gt;&lt;Time&gt;t2&lt;/Time&gt;&lt;/at&gt;</p>
      </sec>
      <sec id="sec-5-2">
        <title>Conditional commitments can be written as follows:</title>
        <p>Initiates(transferProperty(a), exchange(a), t10) ← HoldsAt(deal(a,m), t9) ∧
Happens(receivePayment(m), t9) ∧ Initiates(receivePayment(m), pay(m), t9)
&lt;on&gt;
&lt;And&gt;</p>
        <p>&lt;Happens&gt;&lt;Event
key="receivePayment"/&gt;&lt;at&gt;&lt;Time&gt;t9&lt;/Time&gt;&lt;/at&gt;&lt;/Event&gt;&lt;/Happens&gt;
&lt;Initiate&gt;&lt;Situation&gt;&lt;fluent key=”pay”&gt;&lt;/fluent&gt;&lt;/Situation&lt;/Initiate&gt;
&lt;/And&gt;
&lt;/on&gt;
&lt;if&gt;&lt;Holds&gt;&lt;Event key="deal"/&gt;&lt;at&gt;&lt;Time&gt;t9&lt;/Time&gt;&lt;/at&gt;&lt;/Event&gt;&lt;/Holds&gt;&lt;/if&gt;
&lt;do&gt;
&lt;Initiate&gt;
&lt;Event key="transferProperty"/&gt;</p>
        <p>&lt;BC key=”exchange”&gt;&lt;at&gt;&lt;Time&gt;t10&lt;/Time&gt;&lt;/at&gt;&lt;/BC&gt;
&lt;/Event&gt;
&lt;/Initiate&gt;
&lt;/do&gt;</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <sec id="sec-6-1">
        <title>This short paper aimed to present a way to provide an introduction into the formal syntax and</title>
        <p>
          semantics for CommitRuleML. The formalization process follows a similar pattern as defined by
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], leveraging Event Calculus and KR ReactionRuleML in order to define commitments for
CBSCs. We have illustrated throughout a brief running example how base-, conditional and
persistent commitments can be defined in an eCommerce transaction, and how these transactions
evolve and fulfill over time. Future research could extend the running example by more complex
use cases that include persistent commitments, partial fulfillments (e.g. payments) and discourse
resolution. We think that the combination of CommitRuleML and blockchain’s autonomous
execution capability with immutable and agreed upon logic, has the potential to be a very
powerful instrument to manage contracts in the future.
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Idelberger</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Governatori</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riveret</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sartor</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Evaluation of Logic-Based Smart Contracts for Blockchain Systems, Evaluation of Logic-Based Smart Contracts for Blockchain Systems</article-title>
          , Rule Technologies. Research, Tools, and Applications: 10th International Symposium, RuleML
          <year>2016</year>
          ,
          <string-name>
            <surname>Stony</surname>
            <given-names>Brook</given-names>
          </string-name>
          ,
          <string-name>
            <surname>NY</surname>
          </string-name>
          , USA, July 6-
          <issue>9</issue>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>McCarthy</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hayes</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>Some Philosophical problems with the standpoint of artificial intelligence</article-title>
          ,
          <source>Readings in Artificial Intelligence</source>
          ,
          <year>1981</year>
          , Pages
          <fpage>431</fpage>
          -
          <lpage>450</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Yolum</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Singh</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Reasoning About Commitments in the Event Calculus: An Approach for Specifying and Executing Protocols</article-title>
          ,
          <source>Annals of Mathematics and Artificial Intelligence</source>
          ,
          <year>September 2004</year>
          , Volume
          <volume>42</volume>
          ,
          <string-name>
            <surname>Issue</surname>
          </string-name>
          1-
          <issue>3</issue>
          , pp
          <fpage>227</fpage>
          -
          <lpage>253</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Kowalski</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sergot</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A Logic-based Calculus of Events, Foundations of Knowledge Base Management (pp</article-title>
          .
          <fpage>23</fpage>
          -
          <lpage>55</lpage>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>De Kruijff</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weigand</surname>
          </string-name>
          , H.:
          <article-title>Ontologies for Commitment Based Smart Contracts, On the Move to Meaningful Internet Systems</article-title>
          . OTM 2017 Conferences: Confederated International Conferences: CoopIS,
          <string-name>
            <surname>C</surname>
          </string-name>
          &amp;TC, and
          <article-title>ODBASE 2017, Rhodes</article-title>
          , Greece,
          <source>October 23-27</source>
          ,
          <year>2017</year>
          , Proceedings,
          <string-name>
            <surname>Part II</surname>
          </string-name>
          (pp.
          <fpage>383</fpage>
          -
          <lpage>398</lpage>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Paschke</surname>
            , Athan,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
          </string-name>
          , H.:
          <article-title>Glossary of Reaction RuleML 1</article-title>
          .
          <fpage>02</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <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>The RuleML Perspective on Deliberation-Reaction Standards</article-title>
          ,
          <source>Ontolog Rules Reasoning LP: Series Session</source>
          <volume>5</volume>
          , 9 January 2014
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <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>Zhao</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Teymourian</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <source>Reaction RuleML 1</source>
          .0:
          <string-name>
            <given-names>Standardized</given-names>
            <surname>Semantic Reaction Rules</surname>
          </string-name>
          ,
          <article-title>Complex Reactivity with Preferences in Rule-Based Agents</article-title>
          (pp.
          <fpage>100</fpage>
          -
          <lpage>119</lpage>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>