<!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>Loosely-Coupled and Event-Messaged Interactions with Reaction RuleML 1.0 in Rule Responder</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Zhili Zhao</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kia Teymourian</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adrian Paschke</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Harold Boley</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tara Athan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Athan Services</institution>
          ,
          <addr-line>W Lafayette, IN, USA taraathan AT gmail.com</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Freie Universitat Berlin</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Information and Communications Technologies, National Research Council Canada Fredericton, NB, Canada harold.boley AT nrc.gc.ca</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Reaction RuleML is one of the two major subfamilies of RuleML and acts as an interchange format for reactive rules and rulebased event-processing languages. Exempli ed with a recent instantiation of Rule Responder, a rule-based inference agent middleware, we demonstrate the event messaging features of Reaction RuleML, which supports loosely-coupled interface-based interaction using rule signatures and decoupled communication via event messages.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>1. Reaction RuleML Metamodel, Semantic Types and Data Queries. Reaction
RuleML is based on a metamodel and 'pluggable' ontologies and de nes
general concepts such as space, time, event, action situation, process, and
agent in a modularized ontological top-level structure, with a left to right
vertical order in the top-level ontologies. Therefore, it is possible for Reaction
RuleML to support distributed and modularized knowledge bases through
direct coupling via key references within a KB, iri pointers, and support
for query languages.
2. Rule Interface Descriptions with Semantic Pro les and Signatures. Reaction
RuleML separates the interface of a rule from its implementation. The
interface describes the functional and non-functional (semantic) properties of
a rule. The implementation, on the other hand, requires more exibility and
can be modi ed without any change of its interface.
3. Reaction RuleML Messaging. The interface description language of Reaction
RuleML allows for loosely-coupled interaction with distributed inference
services and agent KBs. Based on event messaging, Reaction RuleML also
supports decoupled communication via event messages that are produced and
published as Reaction RuleML serializations, e.g. on event streams or event
clouds.</p>
      <p>
        In this paper, exempli ed with a recent instantiation of Rule Responder3 [
        <xref ref-type="bibr" rid="ref15 ref16 ref2">16,
15, 2</xref>
        ], we demonstrate the distributed event-messaging interactions of Reaction
RuleML 1.0 in loosely-coupled and de-coupled distributed rule-based agents.
Reaction RuleML acts as a standardized interface description language and
interchange format between these semantic agents which run their own platform
speci c rule engines and rule-based knowledge base (KB) at their core. The rest
of the paper is organized as follows: Section 2 introduces Reaction RuleML and
its reference application Rule Responder. In Section 3 we present the
semantic interpretation and translation between Reaction RuleML as a standardized
rule interchange language and several platform speci c rule languages as well
as the platform independent controlled English ACE. Section 4 presents how
distributed event messaging supports loosely-coupled interaction with inference
services/agents. Section 5 deals with decoupled communication via event
messages. Finally, we conclude the paper with a summary in Section 6.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Reaction RuleML 1.0</title>
      <p>
        Reaction rules are concerned with the invocation of actions in response to events
and actionable situations [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. They state the conditions under which actions
must be taken and describe the e ects of action executions. In the last decades
various reaction rule languages and rule-based event processing approaches have
been developed, which for the most part have been advanced separately. The
Reaction RuleML standard4 addresses four major reaction rule types:
Produc
      </p>
      <sec id="sec-2-1">
        <title>3 http://responder.ruleml.org</title>
      </sec>
      <sec id="sec-2-2">
        <title>4 http://reaction.ruleml.org/</title>
        <p>tion Rules (Condition-Action rules), Event-Condition-Action (ECA) rules,
Rulebased Complex Event Processing (CEP) (CEP reaction rules, (distributed) event
messaging reaction rules, query reaction rules etc.), Knowledge Representation
(KR) Event/Action/Situation Transition/Process Logics and Calculi</p>
        <p>Reaction rules are de ned by a general Rule element which can be specialized
in the di erent Reaction RuleML branches to the four major types of reaction
rules (and variants of these types). The following example shows the most
general rule syntax of RuleML with of focus on Reaction RuleML. We use 1- or
2-letter indicators for syntax from Deliberation (D), Reaction (R), or
Deliberation+Reaction (DR) RuleML.
&lt;!-- rule info and life cycle management, modularization --&gt;
&lt;meta&gt; &lt;!-- DR: (semantic) metadata of the rule --&gt;
&lt;scope&gt; &lt;!-- R: scope of the rule e.g. a rule module --&gt;
&lt;!-- rule interface description --&gt;
&lt;evaluation&gt; &lt;!-- R: intended semantic profiles --&gt;
&lt;signature&gt; &lt;!-- R: rule interface signature and modes --&gt;
&lt;!-- rule implementation --&gt;
&lt;qualification&gt; &lt;!-- R: e.g. qualifying rule declarations, e.g.</p>
        <p>priorities, validity, strategy --&gt;
&lt;quantification&gt; &lt;!-- DR: quantifying rule declarations,</p>
        <p>e.g. variable bindings --&gt;
&lt;on&gt; &lt;!-- R: event part --&gt;
&lt;if&gt; &lt;!-- DR: condition part --&gt;
&lt;then&gt; &lt;!-- D: (logical) conclusion part --&gt;
&lt;do&gt; &lt;!-- R: action part --&gt;
&lt;after&gt; &lt;!-- R: postcondition part after action,</p>
        <p>e.g. to check effects of execution --&gt;
&lt;else&gt; &lt;!-- DR: (logical) else conclusion --&gt;
&lt;elsedo&gt; &lt;!-- R: alternative/else action,</p>
        <p>e.g. for default, exception handling --&gt;
&lt;/Rule&gt;
&lt;/meta&gt;
&lt;/scope&gt;
&lt;/evaluation&gt;
&lt;/signature&gt;
&lt;/qualification&gt;
&lt;/quantification&gt;
&lt;/on&gt;
&lt;/if&gt;
&lt;/then&gt;
&lt;/do&gt;
&lt;/after&gt;
&lt;/else&gt;
&lt;/elsedo&gt;</p>
        <p>
          Rule Responder5 [
          <xref ref-type="bibr" rid="ref15 ref16 ref2">16, 15, 2</xref>
          ] is a reference application of Reaction RuleML. It
is supporting distributed semantic multi-agent systems and rule-based inference
services that run rule engines at their core and communicate using (Reaction)
RuleML as a standardized rule interchange format. The Rule Responder
Technical Group of RuleML is focused on implementing use cases that require the
interchange of rule sets and support querying the distributed rule inference
services. To implement di erent distributed system/agent topologies and semiotic
structures with their negotiation/coordination mechanisms, Rule Responder
instantiations employ three core classes of agents - Organizational Agents (OA),
Personal Agents (PAs), and External Agents (EAs). An OA represents goals
and strategies shared by its virtual organization (of agents) as a whole, using a
rule base that describes its policies, regulations, opportunities, etc. OAs hence
might act as centralized nodes in star-like distributed coordination networks.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>5 http://ruleml.org/RuleResponder/</title>
        <p>They often follow an orchestration style execution logic where the OA is a
centralized authority which orchestrates the other PAs. A PA assists a group or
person/agent of the organization, semi-autonomously acting on their behalf by
using a local knowledge base of rules de ned by the entity. In decentralized
distributed networks the PAs itself might communicate with each other following
e.g. a choreography style coordination, e.g. for distributed problem solving. EAs
can communicate with the virtual organization by sending messages to the
public interfaces of the OA. EAs can be human users using, e.g., Web forms or can
be automated services/tools sending messages via the multitude of transport
protocols of the underlying enterprise service bus (ESB) middleware of Rule
Responder. The agents employ ontologies in their rule-based knowledge bases to
represent semantic domain vocabularies, normative pragmatics and pragmatic
context of conversations and actions, as well as the organizational semiotics.</p>
        <p>
          Since the Rule Responder framework has been conceived [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], many
instantiations have been developed such as the Health Care and Life Sciences eScience
infrastructure [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], Rule-based IT Service Level Management and the Rule Based
Service Level Agreement (RBSLA) language [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], Semantic Business Process
Management (BPM) [
          <xref ref-type="bibr" rid="ref12 ref18">18, 12</xref>
          ], WellnessRules(2) [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ], PatientSupporter, and
SymposiumPlanner systems6.
        </p>
        <p>In this paper, we will employ the SymposiumPlanner 2011 to demonstrate the
distributed event-messaging interactions in Rule Responder. SymposiumPlanner
is a series of Rule Responder instantiations for the Questions&amp;Answers (Q&amp;A)
sections of the websites of the RuleML Symposia since 2007.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Translator Service Framework</title>
      <p>
        The design of Rule Responder follows the spirit of the OMG's Model Driven
Architecture (MDA) approach [
        <xref ref-type="bibr" rid="ref11 ref15">11, 15</xref>
        ]:
1. On the computational independent level rules are engineered in a Rule
Manager user interface in a natural controlled English language using blueprint
templates and user-de ned vocabularies and domain-speci c translation rules.
2. The rules are mapped and serialized in Reaction RuleML which is used as
platform independent rule interchange format to interchange rules between
Rule Responder inference services (agents) and arbitrary other rule execution
environments.
3. The Reaction RuleML rules are translated into the platform speci c rule
language for execution.
      </p>
      <p>Rule Responder provides a translator service framework with Web form
interfaces accepting controlled natural language inputs or prede ned selection-based
rule templates for the communication with external (human) agents on the
computational independent level, as well as HTTP Rest and Web service interfaces,</p>
      <sec id="sec-3-1">
        <title>6 http://ruleml.org/SymposiumPlanner/</title>
        <p>
          which can be used for translation into and from Reaction RuleML. In Rule
Responder SymposiumPlanner 20117, we also implemented a user client supporting
queries in Attempto Controlled English (ACE) [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], which is a rich subset of
controlled English designed to serve as a knowledge representation language. The
demonstration of the SymposiumPlanner 2011 user client can be found at8.
Before sending them to Rule Responder, the queries are translated into a discourse
representation structure (DRS) by the Attempto Parsing Engine (APE)9. It is
then fed into an XML parser which translates it into Reaction RuleML by an
ACE2RML translator, which makes use of domain speci c semantic vocabularies
and domain rules [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
        </p>
        <p>On the platform-independent and platform speci c level, Reaction RuleML
can be translated or mapped into several domain speci c reaction rule languages,
which are run by platform speci c rule engines, such as: Prova10, OO jDREW11,
Emerald12, Euler, etc. The translator services are using di erent translation
technologies such as XSLT stylesheet, JAXB, etc. to translate from and to Reaction
RuleML and are con gured in the transport channels of the inbound and
outbound links of the deployed rule engines on the ESB. That is, incoming Reaction
RuleML messages (receive) are translated into platform-speci c rule bases which
can be executed by di erent platform speci c rule engines, e.g. Prova, and
outgoing rule bases (send) are translated into Reaction RuleML in the outbound
channels before they are transferred via a selected transport protocol such as
HTTP or JMS, etc.</p>
        <p>For example, a user query in ACE format: "Which papers are full and
accepted?", which is used to get all full papers accepted by RuleML2011@IJCAI13
is rstly translated into Reaction RuleML:
&lt;?xml version="1.0" encoding="GBK"?&gt;
&lt;RuleML xmlns="http://www.ruleml.org/1.0/xsd"
xsi:schemaLocation="http://www.ruleml.org/reaction/1.0/xsd</p>
        <p>http://ibis.in.tum.de/research/ReactionRuleML/1.0/rr.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
&lt;oid&gt;</p>
        <p>&lt;Ind&gt;Generated message from ACE text "Which papers are full and accepted?".&lt;/Ind&gt;
&lt;/oid&gt;
&lt;Message directive="query-sync"&gt;
&lt;oid&gt;</p>
        <p>&lt;Ind&gt;RuleML-2011-IJCAI&lt;/Ind&gt;
&lt;/oid&gt;
&lt;protocol&gt;</p>
        <p>&lt;Ind&gt;esb&lt;/Ind&gt;
&lt;/protocol&gt;
&lt;sender&gt;</p>
        <p>&lt;Ind&gt;User&lt;/Ind&gt;
&lt;/sender&gt;
&lt;receiver&gt;
7 http://ruleml.org/SymposiumPlanner/documentation.html
8 http://de.dbpedia.org/redirects/ruleml/ACE2ReactionRuleML/index.jsp</p>
      </sec>
      <sec id="sec-3-2">
        <title>9 http://attempto.i .uzh.ch/site/</title>
        <p>10 http://www.prova.ws/
11 http://www.jdrew.org/oojdrew/
12 http://lpis.csd.auth.gr/systems/emerald/
13 http://www.defeasible.org/ruleml2011/
&lt;Ind&gt;RuleML-2011-IJCAI&lt;/Ind&gt;
&lt;/receiver&gt;
&lt;content&gt;
&lt;Atom&gt;
&lt;Rel&gt;getPapers&lt;/Rel&gt;
&lt;Ind&gt;full&lt;/Ind&gt;
&lt;Ind&gt;accepted&lt;/Ind&gt;
&lt;Var&gt;B&lt;/Var&gt;
&lt;/Atom&gt;
&lt;/content&gt;
&lt;/Message&gt;
&lt;/RuleML&gt;</p>
        <p>
          This example above also indicates the general message syntax of a Reaction
Message [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. In Reaction RuleML 1.0, each event message (the Message
element) consists of a conversation identi er (the oid element), a pragmatic context
description (the directive attribute), a transport protocol (the protocol
element), such as HTTP, JMS, SOAP, etc., a sender (the sender element)/receiver
(the receiver element) agent of the message and a message payload (the content
element). When a message is sent from an External Agent, Rule Responder picks
up the message, translates into a domain speci c rule language and then sends
it to a target agent. For example, the message of Reaction RuleML mentioned
above is translated into a Prova message via XSLT sheet in SymposiumPlanner
2011, shown as follows:
        </p>
        <p>Each Prova message describes the messages which are received and sent by
Prova agents and consists of constants, variables, or lists. For more information,
see the Prova 3.0 Users Guide14. After the above Prova message is processed
in the Prova rule engine, the resulting answer will be translated to Reaction
RuleML before sending it to other agents.</p>
        <p>
          Rule Responder's translation framework also supports the elementary
translation between Drools15 and Reaction RuleML. Drools is a business rule
management system (BRMS) with a forward chaining production rule engine [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
The production rule pattern of "when-then" in Drools can be represented by
the pattern of "if-do" in Reaction RuleML, as shown in Figure 1. For more
implementation details of the translation see [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Loosely-Coupled Interaction</title>
      <p>Reaction RuleML allows distributed event messaging interactions in
looselycoupled and decoupled distributed rule-based systems such as Web inference
services and semantic agents. In this Section we will demonstrate how event
messaging interaction plays an important role in Rule Responder.</p>
      <p>
        The loosely-coupled interaction leads to a resilient relationship between
distributed agents with some kind of exchange relationship. Each agent makes its
14 http://www.prova.ws/index.html?page=documentation.php
15 http://www.jboss.org/drools
requirements explicit and makes use of the public interface de nitions of other
agents for communicating with them, i.e., an agent publishes an interface de
nition (containing the public rule signatures), which can be accessed in one or
many concrete ways by other agents - typically by a query to the agent using
one of its public rule interface signatures. Instead of queries and answers, also
an interchange of complete rules and rule bases as mobile rule code to an agent
is possible. Their loosely-coupled dependency and their intended interpretation
and execution semantics is speci ed by the interface and brings exibility that
a change in the underlying rule implementation does not necessarily require a
change in the rule signature, except if the rule signature itself changes.
Moreover, while the interfaces might be published publicly and can be queried by
requesting agents, the concrete implementation of the rule base might be
hidden and privately encapsulated in the knowledge base of the agent. Figure 2
demonstrates the loosely-coupled interaction in Rule Responder.
Reaction RuleML 1.0 employs the Reaction RuleML Interface Description
Language (RuleML IDL) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] for describing functional and non-functional
properties of a rule inference service and its rule-based KB. The functional
description among others contains the signatures of public rule functions together with
their term modes (input, output or arbitrary terms) and type declarations. For
example, the signature of the aforementioned query of "getPapers" of
SymposiumPlanner 2011 can be described as follows:
&lt;signature&gt;
&lt;Atom&gt;
&lt;Rel&gt;getPapers&lt;/Rel&gt;
&lt;Var type="java://java.lang.String" mode="+"/&gt;
&lt;Var type="java://java.lang.String" mode="+"/&gt;
&lt;Var type="java://java.lang.String" mode="-"/&gt;
&lt;/Atom&gt;
&lt;/signature&gt;
      </p>
      <p>Reaction RuleML distinguishes between the interface of a rule base or rule
and its implementation. The signatures are de ned in the interface either directly
together with the implementation in one &lt;Rule&gt; or for better modularization
and information hiding separated from the implementation of the rule on the
level of a RuleML rule base &lt;Rulebase&gt; and asserted rule module &lt;Assert&gt;.
The following example illustrates the use of such signature declarations in the
interface descriptions of rules and distinguishes the interface from the
implementation referring from the interface to the implementation via an XML key-keyref
connection.
&lt;-- rule interface with two alternative interpretation semantics and a signature.</p>
      <p>The interface references the implementation identified by the corresponding key --&gt;
&lt;Rule keyref="r1"&gt;
&lt;evaluation index="1"&gt;
&lt;!-- WFS semantic profile define in the metamodel --&gt;
&lt;Profile type="ruleml:Well-Founded-Semantics" direction="backward"/&gt;
&lt;/evaluation&gt;
&lt;evaluation index="2"&gt;
&lt;!-- alternative ASS semantic profile define in the metamodel --&gt;
&lt;Profile type="ruleml:Answer-Set-Semantics" direction="backward"/&gt;
&lt;/evaluation&gt;
&lt;!-- the signature defines the queryable head of the backward-reasoning rule --&gt;
&lt;signature&gt;</p>
      <p>&lt;Atom&gt;&lt;Rel&gt;getPapers&lt;/Rel&gt;&lt;Var mode="+"/&gt;&lt;Var mode="+"/&gt;&lt;Var mode="-"/&gt;&lt;/Atom&gt;
&lt;/signature&gt;
&lt;/Rule&gt;
&lt;!-- implementation of rule 1 which is interpreted either by WFS or by ASS semantics
and onyl allows queries according to it's signature definition. --&gt;
&lt;Rule key="r1" style="reasoning"&gt;
&lt;if&gt;... &lt;/if&gt;
&lt;then&gt;</p>
      <p>&lt;Atom&gt;&lt;Rel&gt;getPapers&lt;/Rel&gt;&lt;Var&gt;Type&lt;/Var&gt;&lt;Var&gt;Status&lt;/Var&gt;&lt;Var&gt;Papers&lt;/Var&gt;&lt;/Atom&gt;
&lt;/then&gt;
&lt;/Rule&gt;</p>
      <p>The signatures can be also de ned or just referred to via key-keyref in the
&lt;signature&gt; of a &lt;Rulebase&gt;.</p>
      <p>
        This enables a loosely-coupled interaction with the inference service / agent,
where queries can be posed against the public interface signature and
interpreted with the intended semantics evaluation. Therefore, the interface also
de nes the applicable evaluation semantics, which in the example uses
predened semantic Profiles from the RuleML metamodel. This is in particular
useful for mobile code, i.e. rule bases which are uploaded to an inference service,
since the underlying rule engine needs to support the intended semantics. It is
also useful for veri cation and validation [
        <xref ref-type="bibr" rid="ref10 ref4 ref7 ref8">8, 10, 7, 4</xref>
        ], explanations, and proofs of
answers to queries which are dependent on the applied semantics.
      </p>
      <p>During the communication, Rule Responder represents the interactions
between distributed agents via constructs for asynchronously sending and
receiving event messages. Therefore it uses Reaction RuleML's support for messaging
in the CEP Reaction RuleML branch. For sending and receiving (event)
messages, Reaction RuleML 1.0 supports serial messaging CEP reaction rules that
&lt;Receive&gt; and &lt;Send&gt; events in arbitrary combinations. A serial (messaging)
reaction rule starts with a receiving event (&lt;on&gt;) followed by any combination
of conditions (&lt;if&gt;), events (&lt;Receive&gt;), and actions (&lt;Send&gt;) in the body of
the rule for expressing complex event processing logic. This exibility with
support for modularization and aspect-oriented weaving of reactive rule code is in
particular useful in distributed systems where event processing agents
communicate and form a distributed event processing network, as e.g. in the following
example:
&lt;Rule style="active"&gt;
&lt;on&gt;&lt;Receive&gt; receive event from agent 1 &lt;/Receive&gt;&lt;/on&gt;
&lt;do&gt;&lt;Send&gt; query agent 2 for regular products in a new sub-conversation &lt;/Send&gt;&lt;/do&gt;
&lt;on&gt;&lt;Receive&gt; receive results from sub conversation with agent 2 &lt;/Receive&gt;&lt;/on&gt;
&lt;if&gt; prove some conditions, e.g. make decisions on the received data &lt;/if&gt;
&lt;do&gt;&lt;Send&gt; reply to agent 1 by sending results received from agent 2 &lt;/Send&gt;&lt;/do&gt;
&lt;/Rule&gt;</p>
      <p>These Reaction RuleML messaging constructs can directly map to the
messaging reaction rules in Prova with: sendMsg predicates to send messages,
reaction rcvMsg rules which react to inbound messages, and rcvMsg or rcvMult
inline reactions in the body of messaging reaction rules to receive one or more
context-dependent multiple inbound event messages, shown as follows:
sendMsg(XID,Protocol,Agent,Performative,Payload |Context)
rcvMsg(XID,Protocol,From,Performative,Paylod|Context)
rcvMult(XID,Protocol,From,Performative,Paylod|Context)</p>
      <p>where XID is the conversation identi er. Protocol de nes the communication
protocol. From denotes the source of the message. Performative describes the
pragmatic context in which the message is sent. And Payload|Context denotes
the actual content of the event message.</p>
      <p>The event messages between distributed agents conversation invoke the rule
functions of the receiving agents if there exists a matching rule interface. For
instance, the example given in Section 3 indicates that the receiver agent
"RuleML2011-IJCAI" needs to specify an appropriate signature for "getPapers" queries.
In SymposiumPlanner 2011, the receiver "RuleML-2011-IJCAI" agent is a Prova
engine, which implements the interface de nition via its platform speci c rule
syntax: interface(getPapers(Type, Status, Papers),getPapers("+", "+", "-"),
"return related papers of RuleML-2011@IJCAI."). This public interface can be
queried in backward-reasoning style in a Prova engine and a "no further answers"
message will be sent to the sender if there is no suitable public interface is found:
% look-up interface
processMessage(XID,From,Primitive,[X|Args]):not(interface([X|Args],ModeDeclarations,Description)),
sendMsg(XID,esb,From,"answer", noPublicInterface(interface([X|Args]))),
sendMsg(XID,esb,From,"no_further_answers", [X|Args]),
fail().</p>
      <p>The implementation of a rule interface can be implemented by arbitrary rule
agents, which might have di erent levels of expressiveness. For example, the
implementation of the interface "getPapers" in Prova is shown as follows:
getPapers(XID, Type, Status,
Papers):sysTime(CT),
validate(CT)
:compare(CT,'&gt;',datetime(2011,5,31,0,0,0)).</p>
      <p>}
}
@paperType(full)
getAcceptedPapers(Papers)
:</p>
      <p>QueryString = '</p>
      <p>PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
PREFIX swrc: &lt;http://swrc.ontoware.org/ontology#&gt;
SELECT ?paper ?title</p>
      <p>FROM &lt;http://de.dbpedia.org/redirects/ruleml/ruleml2011.rdfs&gt;
WHERE {
?paper a ?type .
?paper dc:title ?title .</p>
      <p>FILTER (?type = &lt;http://ruleml.org/ontology#FullPaper&gt; ) .
',
sparql_select(QueryString,[title(Papers)]).
@paperType(short)
getAcceptedPapers(Papers)
:</p>
      <p>QueryString = '</p>
      <p>PREFIX foaf: &lt;http://xmlns.com/foaf/0.1/&gt;
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
PREFIX dc: &lt;http://purl.org/dc/elements/1.1/&gt;
PREFIX swrc: &lt;http://swrc.ontoware.org/ontology#&gt;
SELECT ?paper ?title</p>
      <p>FROM &lt;http://de.dbpedia.org/redirects/ruleml/ruleml2011.rdfs&gt;
WHERE {
?paper a ?type .
?paper dc:title ?title .</p>
      <p>FILTER (?type = &lt;http://ruleml.org/ontology#ShortPaper&gt; ) .
',
sparql_select(QueryString,[title(Papers)]).</p>
      <p>Prova supports modularization of its knowledge base and allows constructing
metadata based views on the knowledge base, so called scopes. For example, the
annotation "@paperType(Type)" on the followed goal literal
"getAcceptedPapers(Papers)" is a scope constraint which applies the goal literal only on the
target rule with matching metadata ("@paperType(full)", "@paperType(short)",
etc.) during uni cation, i.e. there must be a match between the value given for
the annotation @paperType and the value listed for the key in the target rule
of getAcceptedPapers. In the example, it would bind the metadata annotation
values "full", "short", etc. to the variable "Type". The metadata can act as an
explicit scope for constructive queries (creating a view) on the knowledge base
and enables scoped (meta) reasoning with the semantic annotations. Besides,
Prova supports literal guards which act as additional precondition constraints.
In the above example, the goal literal is only available "after 31st, May, 2011",
which is de ned by the guard "[validate(CT)]" and its implementation as a rule
"validate(CT):- compare(CT,'&gt;',datetime(2011,5,31,0,0,0)).".</p>
      <p>
        Reaction RuleML 1.0 provides corresponding expressiveness for metadata
annotations &lt;meta&gt;, scope de nitions &lt;scope&gt; and guards &lt;guard&gt;, which can
be de ned on the global level of a rule module and rule base as well as on the
level of rules and literals. Scopes de ned on the level of rule bases/modules set
the context in which the knowledge of the rule base/module is applied, i.e. all
queries and goal literals automatically apply within the scope. Nested scopes can
be de ned which override and specialize the outer (global) scopes, e.g. a scope
within a rule &lt;Rule&gt; and on a particular goal literals &lt;Atom&gt; within the body of
a rule. Scopes are e.g. useful to implement and distinguish di erent (behavioral)
roles of a rule-based agent as scoped rule modules in the agent's knowledge base.
Scopes are also useful to implement reactive work ow logics and (transactional)
update logics [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Decoupled Interaction</title>
      <p>The event messaging in Rule Responder also enables completely decoupled
interaction via standardized Reaction RuleML event messages. Here some agents are
event producers which publish events, e.g. in an event stream or in an event cloud
/ data source, irrespective of the event consumers. Other agents are consumers
which try to detect and consume relevant events on those streams applying
rulebased complex event processing techniques. That is, in di erence to the
looselycoupled interaction, where the events are sent directly to other agents and the
interaction with them takes place in a loosely-coupled way according to their
interface de nitions, the events in the decoupled scenario are just published, but
there is no direct interaction with the consumers of those events.</p>
      <p>For the decoupled interaction the message content itself is an event. Like
for rules, the generic syntax pattern for an Event again distinguishes between
the general event information, the event interface with the signature de ning
the event pattern (event type) and the concrete implementation in terms of an
event instance.
&lt;Event @key @keyref @iri @type&gt;
&lt;!-- event info and life cycle management, modularization --&gt;
&lt;oid&gt; &lt;!-- R: event instance object id --&gt; &lt;/oid&gt;
&lt;meta&gt; &lt;!-- R: (semantic) metadata of the event --&gt; &lt;/meta&gt;
&lt;scope&gt; &lt;!-- R: scope of the event --&gt; &lt;/scope&gt;
&lt;!-- event pattern description --&gt;
&lt;evaluation&gt; &lt;!-- R: semantics: selection, consumption policies --&gt; &lt;/evaluation&gt;
&lt;signature&gt; &lt;!-- R: event pattern declaration --&gt; &lt;/signature&gt;
&lt;!-- event instance --&gt;</p>
      <p>&lt;qualification&gt; &lt;!-- R: e.g. qualifying event declarations, e.g.</p>
      <p>priorities, validity, strategy --&gt;
&lt;quantification&gt; &lt;!-- R: quantifying rule declarations --&gt;
&lt;content&gt;
&lt;/Event&gt;
&lt;!-- R: event instance content --&gt;
&lt;/qualification&gt;
&lt;/quantification&gt;
&lt;/content&gt;</p>
      <p>
        Reaction RuleML 1.0 provides the support for rule-based event processing
and semantic complex event processing. With its typed logic, RuleML provides
the support for (re)using external temporal, spatial, situation, event, and
action ontologies and a metamodel which can be applied in the de nition of
semantic event/action types and temporal and spatial relations [
        <xref ref-type="bibr" rid="ref17 ref3">3, 17</xref>
        ]. Reaction
RuleML de nes a library of typical event, action, interval algebra operators and
generic elements such as Event, Action , Situation, Time, Location, Interval,
Operator. The type of these generic elements can be de ned by an @type
reference to external ontologies, e.g. to the Reaction RuleML metamodel (see [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]).
For instance, &lt;Operator type="ruleml:Sequence"&gt; instead of &lt;Sequence&gt;.
The following example shows a complex event pattern de nition:
&lt;Event key="ce2" type="ruleml:ComplexEvent"&gt;
&lt;signature&gt; &lt;!-- pattern signature definition --&gt;
&lt;Sequence&gt;
&lt;!-- atomic event --&gt;
&lt;signature&gt;
&lt;Event type="ruleml:SimpleEvent"&gt;
      </p>
      <p>&lt;signature&gt;&lt;Atom&gt;...event_A...&lt;/Atom&gt;&lt;/signature&gt;
&lt;/Event&gt;
&lt;/signature&gt;
&lt;!-- nested complex event referenced by @keyref --&gt;
&lt;signature&gt;&lt;Event type="ruleml:ComplexEvent" keyref="ce1"/&gt;&lt;/signature&gt;
&lt;!-- Common Base event selected via xpointer/xpath query in iri attribute --&gt;
&lt;signature&gt;</p>
      <p>&lt;Event type="cbe:CommonBaseEvent" iri="cbe.xml#xpointer(//CommonBaseEvent)"/&gt;
&lt;/signature&gt;
&lt;/Sequence&gt;
&lt;/signature&gt;
&lt;/Event&gt;
&lt;Event key="ce1"&gt;
&lt;signature&gt; &lt;!-- event pattern signature --&gt;
&lt;Concurrent&gt;
&lt;Event&gt;&lt;meta&gt;&lt;Time&gt;...t3&lt;/Time&gt;&lt;/meta&gt;&lt;signature&gt;...event_B&lt;/signature&gt;&lt;/Event&gt;
&lt;Event&gt;&lt;meta&gt;&lt;Time&gt;...t3&lt;/Time&gt;&lt;/meta&gt;&lt;signature&gt;...event_C&lt;/signature&gt;&lt;/Event&gt;
&lt;/Concurrent&gt;
&lt;/signature&gt;
&lt;/Event&gt;</p>
      <p>Such a complex event pattern de nition can be used for event detection in
the &lt;on&gt; part of a reaction rule of a rule-based event consuming agent:
&lt;Rule style="active"&gt;
&lt;on&gt;&lt;Event keyref="ce2"/&gt;&lt;/on&gt;
...
&lt;do&gt; ... &lt;/do&gt;
&lt;/Rule&gt;</p>
      <p>
        These Reaction RuleML rules for Complex Event Processing (CEP) can be
translated and executed e.g. in Prova. For an overview on typical (complex)
event pattern functions and their implementations see [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]16.
16 slides at http://goo.gl/E30Vu
      </p>
      <p>In our SymposiumPlanner demo scenario we consume and process the events
of the symposium, such as the news from the Twitter feed, calendar events
(deadlines etc.), etc. We apply a typical publish-subscribe approach where users
can subscribe their information needs in terms of (complex) event pattern to
the rule-based semantic event processing agents. The agents actively inform the
subscribers if they detect the relevant event patterns by continuously processing
the published events on the news feeds.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Summary</title>
      <p>In this paper, we presented how the standardized Reaction RuleML 1.0
interchange format supports loosely-coupled and de-coupled event-messaged
interactions in the rule-based semantic multi-agent system Rule Responder. We
demonstrated several expressiveness features of Reaction RuleML 1.0 on the example
of the Symposium Planner use case. We also showed how the computational
independent (natural) language Attempto Controlled English (ACE) is used to
construct user queries against rule-based KBs in distributed Rule Responder
agents (inference services), which are using Reaction RuleML as an
intermediary platform-independent language between the computational independent user
interface language (ACE) and the platform-speci c execution languages (Prova,
OO jDrew, Drools, ...).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Harold</surname>
            <given-names>Boley</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taylor Osmun</surname>
            , and
            <given-names>Benjamin</given-names>
          </string-name>
          <string-name>
            <surname>Craig</surname>
          </string-name>
          .
          <article-title>Social Semantic Rule Sharing and Querying in Wellness Communities</article-title>
          . In Asuncin Gmez-Prez,
          <string-name>
            <given-names>Yong</given-names>
            <surname>Yu</surname>
          </string-name>
          , and Ying Ding, editors,
          <source>The Semantic Web</source>
          , volume
          <volume>5926</volume>
          of Lecture Notes in Computer Science, pages
          <volume>347</volume>
          {
          <fpage>361</fpage>
          . Springer Berlin / Heidelberg,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          and
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Rule Responder Agents Framework and Instantiations</article-title>
          . In Atilla Eli, MamadouTadiou Kon, and MehmetA. Orgun, editors,
          <source>Semantic Agent Systems</source>
          , volume
          <volume>344</volume>
          <source>of Studies in Computational Intelligence</source>
          , pages
          <fpage>3</fpage>
          <lpage>{</lpage>
          23. Springer Berlin Heidelberg,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          , Adrian Paschke, and
          <article-title>Omair Sha q</article-title>
          .
          <source>RuleML 1</source>
          .
          <article-title>0: The Overarching Speci cation of Web Rules</article-title>
          . In RuleML, pages
          <volume>162</volume>
          {
          <fpage>178</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Jens</given-names>
            <surname>Dietrich</surname>
          </string-name>
          and
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>On the Test-Driven Development and Validation of Business Rules</article-title>
          .
          <source>In ISTA</source>
          , pages
          <volume>31</volume>
          {
          <fpage>48</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Norbert</surname>
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Fuchs</surname>
            , Kaarel Kaljurand, and
            <given-names>Gerold</given-names>
          </string-name>
          <string-name>
            <surname>Schneider</surname>
          </string-name>
          .
          <article-title>Attempto Controlled English Meets the Challenges of Knowledge Representation, Reasoning, Interoperability and User Interfaces</article-title>
          . In Geo Sutcli e and Randy Goebel, editors,
          <source>FLAIRS Conference</source>
          , pages
          <volume>664</volume>
          {
          <fpage>669</fpage>
          . AAAI Press,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Tichomir</given-names>
            <surname>Jabarski</surname>
          </string-name>
          .
          <article-title>Design and Development of A Translator Framework for Rule Languages Based on RuleML</article-title>
          ,
          <source>Master Thesis. Master's thesis</source>
          , Free University Berlin,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Paschke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dietrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Giurca</surname>
          </string-name>
          , G. Wagner, and
          <string-name>
            <given-names>S.</given-names>
            <surname>Lukichev</surname>
          </string-name>
          .
          <article-title>On SelfValidating Rule Bases</article-title>
          .
          <source>In Int. Semantic Web Enabled Software Engineering Workshop (SWESE'06)</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>The ContractLog Approach Towards Test-driven Veri cation and Validation of Rule Bases - A Homogeneous Integration of Test Cases and Integrity Constraints into Dynamic Update Logic Programs</article-title>
          and
          <string-name>
            <surname>Rule Markup Languages (RuleML). In</surname>
            <given-names>IBIS</given-names>
          </string-name>
          , TUM,
          <source>Technical Report 10/05</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>ECA-RuleML: An Approach Combining ECA Rules with Temporal Interval-based KR Event/Action Logics and Transactional Update Logics</article-title>
          . CoRR, abs/cs/0610167,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Veri cation, Validation and Integrity of Distributed and Interchanged Rule Based Policies and Contracts in The Semantic Web</article-title>
          . In In Second International Semantic Web Policy Workshop (SWPW06), pages
          <fpage>2</fpage>
          {
          <fpage>16</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Rule Responder HCLS eScience Infrastructure</article-title>
          .
          <source>In Proceedings of the 3rd International Conference on the Pragmatic Web: Innovating the Interactive Society, ICPW '08</source>
          , pages
          <fpage>59</fpage>
          {
          <fpage>67</fpage>
          , New York, NY, USA,
          <year>2008</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>A Semantic Rule and Event Driven Approach for Agile DecisionCentric Business Process Management - (Invited Paper)</article-title>
          .
          <source>In ServiceWave</source>
          , pages
          <volume>254</volume>
          {
          <fpage>267</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          and
          <string-name>
            <given-names>Martin</given-names>
            <surname>Bichler</surname>
          </string-name>
          .
          <source>Knowledge Representation Concepts for Automated SLA Management. Decision Support Systems</source>
          ,
          <volume>46</volume>
          (
          <issue>1</issue>
          ):
          <volume>187</volume>
          {
          <fpage>205</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          and
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          .
          <article-title>Rules Capturing Events and Reactivity</article-title>
          . In Adrian Giurca, Dragan Gasevic, and Kuldar Taveter, editors,
          <source>Handbook of Research on Emerging Rule-Based Languages and Technologies: Open Solutions and Approaches</source>
          , pages
          <volume>215</volume>
          {
          <fpage>252</fpage>
          . IGI Publishing, May
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          and
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          . Rule Responder:
          <article-title>Rule-Based Agents for The Semantic-Pragmatic Web</article-title>
          .
          <source>International Journal on Arti cial Intelligence Tools</source>
          ,
          <volume>20</volume>
          (
          <issue>6</issue>
          ):
          <volume>1043</volume>
          {
          <fpage>1081</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Adrian</surname>
            <given-names>Paschke</given-names>
          </string-name>
          , Harold Boley, Alexander Kozlenkov, and Benjamin Larry Craig.
          <article-title>Rule responder: RuleML-based Agents for Distributed Collaboration on The Pragmatic Web</article-title>
          .
          <source>In ICPW</source>
          , pages
          <volume>17</volume>
          {
          <fpage>28</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Adrian</surname>
            <given-names>Paschke</given-names>
          </string-name>
          , Harold Boley,
          <string-name>
            <given-names>Zhili</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Kia</given-names>
            <surname>Teymourian</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Tara</given-names>
            <surname>Athan</surname>
          </string-name>
          .
          <source>Reaction RuleML 1</source>
          .0:
          <string-name>
            <given-names>Standardized</given-names>
            <surname>Semantic Reaction</surname>
          </string-name>
          <article-title>Rules</article-title>
          .
          <source>In Proceddings of RuleML</source>
          <year>2012</year>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          and
          <string-name>
            <given-names>Alexander</given-names>
            <surname>Kozlenkov</surname>
          </string-name>
          .
          <article-title>A Rule-based Middleware for Business Process Execution</article-title>
          . In Multikonferenz Wirtschaftsinformatik,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Adrian</surname>
            <given-names>Paschke</given-names>
          </string-name>
          , Paul Vincent, Alexandre Alves, and
          <string-name>
            <given-names>Catherine</given-names>
            <surname>Moxey</surname>
          </string-name>
          .
          <article-title>Tutorial on Advanced Design Patterns in Event Processing</article-title>
          .
          <source>In DEBS</source>
          , pages
          <volume>324</volume>
          {
          <fpage>334</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>L.M. Surhone</surname>
            ,
            <given-names>M.T.</given-names>
          </string-name>
          <string-name>
            <surname>Tennoe</surname>
            , and
            <given-names>S.F.</given-names>
          </string-name>
          <string-name>
            <surname>Henssonow</surname>
          </string-name>
          .
          <source>Drools. VDM Verlag Dr. Mueller AG &amp; Co. Kg</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Zhili</surname>
            <given-names>Zhao</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          , Chaudhry Usman Ali, and
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          .
          <article-title>Principles of The SymposiumPlanner Instantiations of Rule Responder</article-title>
          .
          <source>In Proceedings of The 5th International Conference on Rule-based Modeling and Computing on The Semantic Web, RuleML'11</source>
          , pages
          <fpage>97</fpage>
          {
          <fpage>111</fpage>
          , Berlin, Heidelberg,
          <year>2011</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>