<!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>Reaction RuleML 1.0 for Distributed Rule-Based Agents in Rule Responder</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Adrian Paschke</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Harold Boley</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Freie Universitaet Berlin</institution>
          ,
          <addr-line>Germany paschke AT inf.fu-berlin.de</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of New Brunswick</institution>
          ,
          <addr-line>Fredericton, NB</addr-line>
          ,
          <country country="CA">Canada</country>
          <addr-line>harold.boley AT unb.ca</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Rule Responder is a rule-based multi-agent framework in which agents run platform-speci c rule engines as distributed inference services. They communicate with each other using Reaction RuleML as the common rule interchange format, e.g. for question answering or execution of mobile rule code in distributed problem solving, concurrent processing work ows and distributed event/action processing. In this paper we demonstrate the new capabilities of Reaction RuleML 1.0 for supporting the functionalities of Rule Responder such as knowledge interface declarations with signatures, modes, and scopes; distributed knowledge modules with static and dynamic scopes enabling imports and scoped reasoning within metadata-based scopes (closed constructive views) on the knowledge base; messaging reaction rules enabling conversation-scope based interactions between agents interchanging queries, answers, and rulebases; and evaluation and testing of interchanged knowledge bases with intended semantic pro les and self-validating test suites. We demonstrate these Reaction RuleML 1.0 capabilities with our proofof-concept implementation Rule Responder agent architecture and Prova 3.0 rule engine.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Rule Responder1 [
        <xref ref-type="bibr" rid="ref11 ref14 ref15">11, 14, 15</xref>
        ] is a multi-agent system that supports distributed
rulebased inference services on the Semantic-Pragmatic Web. It provides the infrastructure
for using platform-speci c rule engines for rule-based agents / inference services which
can communicate with each other using Reaction RuleML as standardized rule
interchange format.
      </p>
      <p>
        RuleML is a knowledge representation language designed for the interchange of the
major kinds of Web rules in an XML format that is uniform across various rule logics
and platforms. It has broad coverage and is de ned as an extensible family of
sublanguages, whose modular system of schemas permits rule interchange with high precision.
RuleML 1.0 encompasses both Deliberation RuleML 1.0 and Reaction RuleML 1.02 [
        <xref ref-type="bibr" rid="ref1 ref10 ref12 ref13 ref16">1,
16, 10, 12, 13</xref>
        ].
1 http://responder.ruleml.org [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]
2 http://reaction.ruleml.org
      </p>
      <p>
        Reaction RuleML is a standardized rule markup language and semantic
interchange format for reaction rules and rule-based event processing. Reaction rules include
distributed Complex Event Processing (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="ref1 ref13 ref16">13, 1, 16</xref>
        ].
      </p>
      <p>
        In this paper, we demonstrate the features of Reaction RuleML 1.0 for Rule
Responder. Reaction RuleML de nes a generic rule syntax distinguishing between metadata,
interface, and implementation, enabling distributed and modularized rulebases and
rules. It supports both programming-in-the-large with compositional import and
message interchange mechanisms and programming-in-the-small with abstraction and
scoping mechanisms. Semantic Pro les attach meaning to interchanged Reaction RuleML
rulebases and messages and enable their semantic interpretation and interchange, e.g. in
distributed rule-based agent system and rule-based Complex Event Processing (CEP)
agent architectures [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        As demonstration scenario we use a typical Semantic CEP scenario, namely the
real-time monitoring of stock market events[
        <xref ref-type="bibr" rid="ref19 ref20 ref21">19, 21, 20</xref>
        ]. Multiple Rule Responder event
processing agents monitor di erent stock market event streams which publish stock
market ticker data, such as
{(Name, OPEL)(Price, 45)(Volume, 2000)(Time, 1) }
{(Name, SAP)(Price, 65)(Volume, 1000) (Time, 2)}
      </p>
      <p>In contrast to standard CEP agents which apply syntactic event patterns, the Rule
Responder agents support more expressive semantic event queries, such as "stocks
of companies, which have production facilities in Europe and produce products out of
metal and have more than 10,000 employees " and which require additional background
knowledge bases (such as DBPedia), e.g.,
(OPEL, is_a, car_manufacturer),
(car_manufacturer, build, Cars),
(Cars, are_build_from, Metall),
(OPEL, has_production_facilities_in, Germany),
(Germany, is_in, Europe)
(OPEL, is_a, Major_corporation),
(Major_corporation, have, over_10,000_employees)</p>
      <p>The paper is organizes as follows: Section 2 introduces semantic pro les which
allow de ning the intended evaluation semantics of Reaction RuleML knowledge. Section
3 distinguishes the knowledge interface from the knowledge implementation, which is
the basis for describing the interfaces of distributed Rule Responder agents. Section
4 explains how Reaction RuleML supports modularization and distribution of
knowledge locally, externally, and by import. Section 5 broadens the concept of scopes to
the construction of dynamic views on the knowledge base by metadata based scopes
and scoped reasoning. Section 6 uses this scoping mechanism for conversation based
scopes which allow to maintain local (reasoning) context in messaging reaction rules
with send and receive actions for interchanging Reaction RuleML based knowledge
actions between Rule Responder agents. Finally, section 7 summaries the contribution
of Reaction RuleML 1.0 for Rule Responder and their implementation in Prova 33.
3 http://prova.ws</p>
    </sec>
    <sec id="sec-2">
      <title>Dialects and Semantic Pro les</title>
      <p>
        Dialects in Reaction RuleML provide a layer of general representation expressiveness
by de ning a dialect language, typically for a particular sort of reaction rules or a
combination of di erent sorts. The main Reaction RuleML dialects with their core
elements are:
{ Derivation Reaction RuleML (if-then) - Time, Spatial, Interval, Situation (+
algebra operators)
{ KR Reaction RuleML (if-then or on-if-do) - Happens(@type), Initiates,
Terminates, Holds, uent
{ Production Reaction RuleML (if-do) - Assert, Retract, Update, Action
{ ECA Reaction RuleML (on-if-do) - Event, Action, (+ event / action algebra
operators)
{ CEP Reaction RuleML (arbitrary combination of on, if, do) - Receive, Send,
Message
Combinations of dialects are also possible, e.g., DR-PR Reaction RuleML, which
combines derivation and production rules, or KR-CEP Reaction RuleML, which combines
KR calculi with CEP reaction rules, enabling e.g. pro les with an interval-based Event
Calculus semantics for complex (event/action) algebra operators [
        <xref ref-type="bibr" rid="ref18 ref5">5, 18</xref>
        ].
      </p>
      <p>Semantic pro les in Reaction RuleML are used to de ne the intended semantics
for knowledge interpretation (typically a model-theoretic semantics), reasoning (e.g.,
entailment regimes and proof-theoretic semantics), and for execution (e.g., operational
semantics such as selection and consumption policies and windowing techniques in
complex event processing). That is, they further detail the syntax and semantics of a
dialect and provide necessary information about the intended semantics for Reaction
RuleML knowledge representations as required for interchange, translation, inference,
and veri cation and validation.</p>
      <p>A dialect has a default semantic pro le de ning the default semantics, i.e., the
semantics which by default is used for interpretation. Deviating semantic pro les
(&lt;Profile&gt;) can be speci ed (&lt;evaluation&gt;) on all formulas and terms in Reaction
RuleML giving them an interpretation and execution di erent from the default
semantics.</p>
      <p>De nition 1. (Semantic Pro le) A semantic pro le, SP = hSSP ; SP ; ISP ; SP ; SP i,
(partially) de nes a pro le signature SSP , a language SP , an interpretation ISP ,
a domain-independent theory SP , and a semantics-preserving translation function
SP ( ) which translates from Reaction RuleML to the pro le's language / signature
(and vice versa, with the inverse function SP1).</p>
      <p>Semantic Pro les can be de ned internally within a Reaction RuleML document
(&lt;Profile&gt;) or externally. External semantic pro les can be referenced by their pro le
name (@type) and imported by their resource identi er (@iri). Their speci cation can
be given in any XML format (&lt;content&gt;), including RuleML formulas (&lt;formula&gt;), as
well as other formal and textual languages (which need not be directly machine
processable). For non-Reaction RuleML pro les a semantics-preserving translation function
needs be de ned in order to allow interpretations of Reaction RuleML knowledge bases
with the pro le's semantics.</p>
      <p>Multiple alternative semantic pro les are allowed with or without a priority
ordering and their scope can be speci ed. For instance the following XML snippet uses two
alternative pro les and gives the rst pro le preference by ordering them (@index).
&lt;evaluation index="1"&gt; &lt;!-- WFS semantic profile --&gt;</p>
      <p>&lt;Profile type="ruleml:Well-Founded-Semantics" direction="backward"/&gt;
&lt;/evaluation&gt;
&lt;evaluation index="2"&gt; &lt;!-- alternative ASS semantic profile --&gt;</p>
      <p>&lt;Profile type="ruleml:Answer-Set-Semantics"/&gt;
&lt;/evaluation&gt;</p>
      <p>Semantic pro les might de ne further specialized or deviating structures (e.g.,
module composition with modular join semantics etc.), intended models (e.g., in terms of
entailment regimes) and axioms and propositions (e.g., domain independent meta
axioms of a theory, e.g. for calculi such as event calculus, situation calculus), as well
as proof-theories and properties of operational semantics (e.g., process semantics and
protocols, windowing techniques, selection and consumption policies in complex event
processing and actions), etc. Also, they might specialize the language of a dialect, e.g.,
by limiting the dialect's signature to subsignatures.</p>
      <p>De nition 2. (Subsignature) A signature S1 is a subsignature of S2, i.e., S1 S2
i S1 is a signature which consist only of symbols from S2 without changing their sort
and arity.</p>
      <p>For instance, the following example de nes the signature of a global predicate
\planned " as subsignature of the already existing &lt;Happens&gt; predicate in the KR dialect
of Reaction RuleML, which takes an event as rst argument and a time as second
argument, with the mode attribute de ning it as input predicate.
&lt;signature&gt;
&lt;Atom type="ruleml:Happens" arity="2" mode="+"&gt;
&lt;Rel scope="global"&gt;planned&lt;/Rel&gt;
&lt;Var type="ruleml:Event" mode="+" scope="local"/&gt;
&lt;Var type="ruleml:Time" mode="+" scope="local"/&gt;
&lt;/Atom&gt;
&lt;/signature&gt;</p>
      <p>
        These explicitly de ned signatures are introduced as further specialized sorts into
the multi-sorted signature of a Reaction RuleML dialect and they are interpreted by
the intended semantic pro le, which de nes a multi-sorted interpretation for the sort
symbols. For further details about the core multi-sorted signatures and structures of
Reaction RuleML see [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>The following example (in Prova 3 syntax) lters received stock market ticks and
sends the ltered events as new happens facts to another event processing agent, called
"epa1".</p>
      <p>Filter for stocks starting with "A" and price &gt; 100
rcvMult(SID,stream,"S&amp;P500", inform, tick(S,P,T))
:</p>
      <p>filter(S,P), sendMsg(SID2,esb,"epa1", inform, happens(tick(S,P),T).
filter(Symbol,Price)
:Price &gt; 100, Symbol = "A.*".</p>
      <p>The transformed happens facts are interchanged to agent "epa1" as Reaction
RuleML messages, e.g., specifying a rei ed event calculus pro le as intended semantics.
&lt;evaluation index="1"&gt; &lt;!-- Event Calculus semantic profile --&gt;</p>
      <p>&lt;Profile type="ruleml:ReifiedClassicalEventCalculus"/&gt;
&lt;/evaluation&gt;</p>
    </sec>
    <sec id="sec-3">
      <title>Knowledge Interface De nition</title>
      <p>A knowledge representation element in Reaction RuleML consists of the
representational knowledge object, such as rulebases, rules, facts, queries, events, etc., and
optional additional meta knowledge.</p>
      <p>The meta knowledge comprises descriptive metadata (&lt;meta&gt;) and the
knowledge interface, which contains information about the knowledge scope (&lt;scope&gt;),
guard constraints (&lt;guard&gt;), intended semantics (&lt;evaluation&gt;), explicit signatures
(&lt;signature&gt;), qualifying metadata (&lt;qualification&gt;), and quanti ers (&lt;quantification&gt;).</p>
      <p>Moreover, several knowledge formulas can have further specialized meta
knowledge, such as a truth/uncertainty degree (&lt;degree&gt;) for atomic formulas (&lt;Atom&gt;)
and equations (&lt;Equal&gt;), conversation identi ers (&lt;cid&gt;), protocols (&lt;protocol&gt;),
sender/recevier agents (&lt;sender&gt;, &lt;receiver&gt;) for messages (&lt;Message&gt;), etc.
Several meta knowledge attributes specify additional information, e.g. about sort (@type),
arity (@arity), cardinality of set values (@card, @maxCard, @minCard), relative weight
(@weight), default quanti cation closure (@closure), inference direction (@direction),
ordering (@index), internationalized (remote) resource locator (@iri), global node
identi er (@node), internal key and key reference (@key, @keyref), input-output mode
declaration (@mode), material implication (@material), equality orientation (@oriented),
interpretation semantics of relations and functions (@per), pre x and vocabulary
definition for "webized" IRI mappings (@prefix, @vocab), processing/execution safety
(@safety), reasoning and execution style (@style), and indeterminism/determinism of
functions and operators (@val).</p>
      <p>The knowledge implementation is an instance (a knowledge object) of the
knowledge interface, i.e. it needs to be well-formed according to the signature and it needs
to be interpreted with the intended structures (Semantic Pro les) in the scope
(quanti cation and quali cation scope) de ned by the interface.</p>
      <p>The following example shows this distinction into metadata, interface, and
implementation for a rule.
&lt;Rule @key @keyref @style&gt;
&lt;!-- descriptive rule metadata --&gt;
&lt;meta&gt; &lt;!- descriptive metadata of the rule --&gt;
&lt;/meta&gt;
&lt;!-- rule interface --&gt;
&lt;scope&gt; &lt;!- scope of the rule e.g. a rule module --&gt; &lt;/scope&gt;
&lt;evaluation&gt; &lt;!-- intended semantics --&gt; &lt;/evaluation&gt;
&lt;signature&gt; &lt;! rule signature --&gt; &lt;/signature&gt;
&lt;qualification&gt; &lt;!- e.g. qualifying rule metadata, e.g.</p>
      <p>priorities, validity, strategy --&gt;
&lt;quantification&gt; &lt;!-- quantifying rule declarations,
e.g. variable bindings --&gt; &lt;/quantification&gt;
&lt;/qualification&gt;
&lt;!-- rule implementation --&gt;
&lt;oid&gt; &lt;! object identifier --&gt; &lt;/oid&gt;
&lt;on&gt; &lt;!- event part --&gt; &lt;/on&gt;
&lt;if&gt; &lt;!- condition part --&gt; &lt;/if&gt;
&lt;then&gt; &lt;!- (logical) conclusion part --&gt; &lt;/then&gt;
&lt;do&gt; &lt;!-- action part --&gt; &lt;/do&gt;
&lt;after&gt; &lt;!- postcondition part after action,</p>
      <p>e.g. to check effects of execution --&gt; &lt;/after&gt;
&lt;else&gt; &lt;!- (logical) else conclusion --&gt; &lt;/else&gt;
&lt;elsedo&gt; &lt;!-- alternative/else action,</p>
      <p>e.g. for default handling --&gt; &lt;/elsedo&gt;
&lt;/Rule&gt;
{ The &lt;meta&gt; roles, contain the descriptive metadata, which is used for annotations
describing the knowledge object. By default all knowledge is contextually
annotated by metadata about their source (@src([Locator])) and their name (@label([OID])),
with Locator being the module's source location in which the knowledge object
is implemented/de ned and OID being the implicitly (i.e., automatically created)
or explicitly de ned object identi er.
{ The &lt;scope&gt; role de nes subsets of the universe as domain of discourse in which
interpretation takes place. That is, from an operational point of view they de ne a
static or dynamic constructive view on the knowledge base in which scoped
reasoning takes place. The Reaction RuleML vocabulary prede nes the scopes \global"
(globally visible) \local" (visible with local interpretation) and \private" (hidden
and not visible outside of the module). Reaction RuleML dialects might
introduce further scopes, such as, e.g., \supremum" and \inf imum", which expand
the scope of nested submodules to its least upper bound or greatest lower bound.
Further, named metadata scopes can be de ned (in the scope role) and used as
scoped submodule in scoped reasoning.
{ The &lt;evaluation&gt; roles are used to specify semantic pro les, which de ne the
intended semantics for knowledge interpretation (typically a model-theoretic
semantics), reasoning (typically entailment regimes and proof-theoretic semantics),
and for execution (e.g., operational semantics such as selection and consumption
policies and windowing techniques in complex event processing). This includes,
e.g., semantic properties and assumptions such as closed world, open world, closed
(positively, negatively closed), etc.
{ The &lt;signature&gt; role explicitly de nes signatures, i.e., it introduces
(specialized) signature de nitions in the core multi-sorted signature of the used Reaction
RuleML dialect. With the @type attribute locally de ned signature sorts (e.g. frame
types, event patterns etc.) as well as externally de ned sorts from external
(possibly order-sorted) type systems can be introduced as new sorts in the multi-sorted
signature. Modes (@mode) further partition the universe into subsets having a
different mode. Reaction RuleML prede nes the modes (@mode) "+" (input mode),
" " (output mode) and "?" (open mode, i.e., input or output).
{ The &lt;qualification&gt; role de nes qualifying metadata. In contrast to descriptive
metadata (meta), qualifying metadata has an impact on the interpretation, e.g. it
is used for knowledge prioritization (e.g., con ict resolution strategies, defeasible
reasoning etc.), or for de ning validity times (e.g., for windowing techniques in
event processing etc.).
{ The &lt;quantification&gt; role explicitly de nes the quanti ers. Note, there is a
default quanti er scope assumed in a dialect; typically a universal closure, so that
formulas are universally closed by default.</p>
      <p>While these optional meta roles allow explicit de nitions of meta knowledge,
corresponding attributes on the knowledge formulas can point to these de nitions. For
instance, the @scope attribute can use the prede ned terms4 \global ", \local " and
\private", as well as scope names de ned in the &lt;scope&gt; role. In following example
(in Prova 3 syntax) the rst public rule receives stock market ticks from the event
stream "S&amp;P500" and the second private selection rule compares the price with ticker
information from other streams in the same event group in order to detect suspicious
price information.
% Select stock ticker events from stream "S&amp;P500"
4 by using @vocab, an automated mapping of terms into IRIs is performed, i.e., the
prede ned terms are mapped into IRIs of the Reaction RuleML vocabulary.
% Each received event starts a new subconversation (CID) which further processes the selected
% event (select)
@group(g1) rcvMult(CID,stream,"S&amp;P500", inform, tick(S,P,T))
:@scope(private) select(CID,tick(S,P,T)).
% Indefinitely (count=-1) receive further ticker events from other streams that follow the
% previous selected event in event processing group (group=g1). If the price differs for
% the same stock at the same time [T1=T2, P1!=P2] then ...
@scope(private)
select(CID,tick(S,P1,T1))
:@group(g1) @count(-1)
rcvMsg(CID,stream, StreamID ,inform, tick(S,P2,T2)) [T1=T2, P1!=P2]</p>
      <p>println (["Suspicious:",StreamID, tick(S,P2,T2)]," ").
4</p>
    </sec>
    <sec id="sec-4">
      <title>Knowledge Modularization and Distribution</title>
      <p>Reaction RuleML supports knowledge modularization and distribution. A syntactic
way to distribute knowledge locally within a KB is by separating the representation of
a knowledge formula into several syntactic parts and connecting and conjoining them
syntactically by key-keyref pairs (@key, @keyref). A key is a local (\webized" by using
@prefix and @vocab) identi er, with a unique name assumption (UNA), which can be
de ned as meta knowledge on any Reaction RuleML language element. A key reference
is a syntactic local reference (within a KB) using the key as locator to connect and
conjoin the key element with the key reference element. Multiple references to a key
element are possible (1 : m as well as n : m by de ning both key and keyref on pairwise
conjoined elements). The resulting combined syntax elements need to be well-formed
(according to their signature de nitions) to allow meaningful interpretations, i.e.
keykeyref pairs need to be on similar syntactic elements and for each key reference a
matching unique key needs to be de ned in a KB. A typical application of the
keykeyref mechanism is the separation of the knowledge interface with signatures from the
knowledge implementation, so that both can be represented and reused independently.
For instance, the following example shows the separated implementation of a rule
"ruleimpl1" which is referencing the rule interface "ruleinterf ace1".
&lt;Rule key="ruleinterface1"&gt;
&lt;evaluation&gt;&lt;Profile&gt; ... &lt;/Profile&gt;&lt;/evaluation&gt;
&lt;signature&gt; ... &lt;/signature&gt;
...
&lt;/Rule&gt;
...
&lt;Rule keyref="rulreinterface1" key="ruleimpl1 "&gt;
&lt;if&gt; ... &lt;/if&gt;
&lt;do&gt; ... &lt;/do&gt;
&lt;/Rule&gt;</p>
      <p>This enables, e.g., template de nitions (e.g., abstracted signature patterns,
knowledge templates, event pattern de nitions, etc.), modularization and information hiding,
e.g. by publishing the interface in a document distributed from the document with the
(possibly private) implementation5.</p>
      <p>Furthermore, with the @iri attribute also remote resources can be referenced. For
instance, in the following example an RDFS entailment regime is referenced as intended
semantic pro le for the order-sorted interpretation of external sorts de ned in external
RDFS ontologies (taxonomies).
5 With XML Inclusion (XInclude) such distributed documents can be syntactically
included into one KB enabling local key intra-references within it.
&lt;evaluation&gt;&lt;Profile type="rif:RDFS iri="http://www.w3.org/ns/entailment/RDFS"/&gt;&lt;/evaluation&gt;</p>
      <p>This pro le can be used, e.g. for the type reasoning in the following example rule
(in Prova syntax), which de nes a semantic event query with variables typed by
background knowledge bases (ontologies)6.
rcvMult(SID,stream,S&amp;P500, inform,
tick(Name^^car:Major_corporation,P^^currency:Dollar,T^^time:Timepoint)) :- ...</p>
      <p>Rule-based Data Access (RBDA) with optimizing techniques, such as enrichment,
can be used for e cient processing. For instance, the following example de nes a
rulebased data access rule which selects with the SPARQL query built-in of Prova 7 all
luxury car manufacturers from DBPedia.
luxuryCar(Manufacturer,Name,Car)
:Query="SELECT ?manufacturer ?name ?car % SPARQL RDF Query
WHERE {?car &lt;http://purl.org/dc/terms/subject&gt;</p>
      <p>&lt;http://dbpedia.org/resource/Category:Luxury_vehicles&gt; .
?car foaf:name ?name .
?car dbo:manufacturer ?man .</p>
      <p>?man foaf:name ?manufacturer. } ORDER by ?manufacturer ?name,
sparql_select(Query,manufacturer(Manufacturer),name(Name),car(Car)).</p>
      <p>Rulebase formulas (&lt;Rulebase&gt;) introduce a (possibly nested) structuring of groups
of knowledge formulas, called modules. External (&lt;RuleML&gt;) documents and messages
(&lt;Message&gt;) can be consulted/imported (&lt;Consult&gt;) or received (&lt;Receive&gt;). They
are treated as submodules in the importing KB.</p>
      <p>De nition 3. (Import) A document KB0 is said to be an import to a document KB,
if it is directly imported into KB (or it is imported into another document, which is
directly imported into KB). An imported document KB0 becomes a module of the KB.</p>
      <p>For instance, the following example consults (imports) the rule interface which has
been published in a separated Reaction RuleML document.
&lt;Consult iri="http://reaction.ruleml.org/1.0/exa/dr/DistributedDerivationRuleInterface.rrml"/&gt;</p>
      <p>The importing Reaction RuleML KB (i.e., &lt;RuleML&gt; document) is the super module
of all modules. All asserted, imported, and received rulebases are submodules of this
KB module.</p>
      <p>De nition 4. (Module and Submodule) A module is a tuple h@ ; i, where
is an ordered or unordered nite set of knowledge formulas i 2 (without or with
duplicates) and @ is an ordered or unordered nite set of meta knowledge formulas
@ i 2 @ , called the module interface. A module is a submodule of if .</p>
      <p>
        Modes partition the symbols in the universe used for formulas (predicates,
functions, and terms) into input, output, and open symbols. Also, scopes partition formulas
(and terms) into global, local, and private symbols. The set of input formulas In and
the set of output formulas Out are visible and can be imported and accessed by other
6 RuleML and Prova support external types, such as object-oriented Java class
hierarchies and ontologies [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
7 Prova has various built-ins for rule-based data access such as Java object access, le
access, XML (DOM), SQL, RDF triples, XQuery, SPARQL
modules. Accordingly, their scope must be either global or local. The set of formulas
with private scope are hidden internal formulas P riv and hence not accessible by other
modules. This is used for de ning the semantics of imports (&lt;Consult&gt;, XInclude) and
the composition semantics of modules.
      </p>
      <p>De nition 5. (Modes and Scopes) Let M be a module consisting of a tuple hF; I; O; G; L; P i,
where F is a nite set of all knowledge formulas in M ; I, O are pairwise disjoint sets of
input and output formulas, i.e., formulas with input or output mode; G, L, and P are
disjoint sets of formulas with global, local, and private scope. The function signature(F )
gives the signature of F , mode(F ) gives the mode, and scope(F ) gives the scope. Let R
be the set of rules in M , then signatureatom(R) gives the atoms (atomic formulas) of
a rule R, where
{ signatureatom(on), signatureatom(if ), signatureatom(af ter) are in I, i.e. the parts
of R which consist of input atoms
{ signatureatom(then), signatureatom(else), signatureatom(do) and
signatureatom(elseDo) are in O, i.e. output atoms which are not in I.</p>
      <p>Semantic pro les can de ne the composition semantics of modules.</p>
      <p>The composition semantics must respect the declared modes and scopes. While
global and local scopes are visible and hence can be used in input and output modes,
a private scope is only visible within the module in which it is de ned. For instance,
the composition of imported modules removes the output atoms from the set of input
atoms and enforces that KB0 and KB are mutual independent and that private atoms
from one module are not part of the signature of the other module in which they are
not visible. Private and local symbols might be de ned and interpreted di erently in
two imported modules, but their interpretation must coincide for global symbols.
De nition 6. (Module Composition) Let KB0 and KB be two modules; their
composition is the union KB0 t KB = hFKB0 [ FKB; (IKB0 [ IKB) (OKB0 [ OKB); OKB0 [
OKB; GKB0 [ GKB; LKB0 [ LKB; PKB0 [ PKBi, where signature(KB0) \ P1 = ; and
signature(KB)\P2 = ; and there are no (positive) cyclic dependencies8 in FKB0 [FKB
through loops between input and output atoms.</p>
      <p>That is, semantic pro les de ne the intended interpretations for composed
multimodule KBs. Semantic pro les might also specify syntactic translation and
transformation mapping, e.g., to consistently map all imported local symbols into the local
symbols of the importing KB or to do program transform such as renaming output
formulas to guarantee compositionality. Furthermore, they can de ne concrete module
composition semantics, e.g. as semantic join of models, as well as a mechanism to avoid
cyclic imports9.</p>
      <p>De nition 7. (Modular Semantic Multi-Structure) A modular semantic
multistructure M = hMKB0 ; MKB1 ; MKB2 ; ::i is a set of semantic structures such that MKB
is the semantic structure of the importing KB and MKBk is a set of semantic structures
8 One approach to detect mutual positive or negative dependencies is by adding extra
meta information in the models.
9 see the Semantic Pro les for modular Reaction RuleML knowledge bases and the
OntoMaven/RuleMaven dependency analysis and importation resolution algorithm
for imports from distributed KB repositories.
of the imported modules. The semantic structures MKB and all structures MKBk are
required to coincide in the mappings of global symbols in all semantic structures. But
they might di er for local and private symbols in their interpretation using the module
scope to constrain and close the domain of discourse for deviating local interpretations
in each MKBk .</p>
      <p>A semantic pro le can specify how to do the expansion of the modular semantic
multi-structure. The default is that the semantics of imported modules expands to the
semantics of the importing KB. But, other semantics can be de ne in a pro le, e.g.
as a conservative composition using renaming output transformations on the output
formulas in the module composition and a semantic outer join operator for the joint
interpretation.</p>
      <p>De nition 8. (Join) Let KB0 and KB be two modules and I0 and I be their sets
of interpretations; then the natural outer join I0 ./ I = fI0 \ signature(KB) = I \
signature(KB0)andI [ I0g, where I0 2 I0 and I 2 I.</p>
      <p>The following example (in Prova) shows the rule of a manager agent which reads a
Prova script from a le and uploads it to a contractor agent. The contractor consults
and evaluates the receive mobile code.
% Manager
upload_mobile_code(Remote,File) :</p>
      <p>Writer = java.io.StringWriter(),
fopen(File,Reader),
copy(Reader,Writer),
Text = Writer.toString(),
SB = StringBuffer(Text),
sendMsg(XID,esb,Remote,eval,consult(SB)).
% Service (Contractor)
rcvMsg(XID,esb,Sender,eval,[Predicate|Args]):- derive([Predicate|Args]).
5</p>
    </sec>
    <sec id="sec-5">
      <title>Scoped Reasoning</title>
      <p>
        A particular important feature of Reaction RuleML 1.0 feature for Rule Responder
agents is that it allows constructing views dynamically on the KB. These views are
de ned by metadata scopes [
        <xref ref-type="bibr" rid="ref14 ref8">14, 8</xref>
        ] in which scoped reasoning can be performed.
      </p>
      <p>Scoped reasoning can be performed on such metadata scopes (aka constructive
views on the KB) by de ning scoped literals in conditions, queries, and event
patterns. Scope literals are interpreted in the scoped domain of discourse and by default
have the scopes' closure10. The scope de nition of a scope literal might contain
variables. In addition to scopes, Reaction RuleML supports guards which act as additional
10 like for module imports in the large semantic pro les can de ne di erent closure
semantics
pre-conditional constraints on the literal. The following example de nes a scoring rule
which selects ticker events with a score value (scope) over 2 (guard). Accordingly, only
the second ticker event with a score value over 2 is further analyzed.
happens(tick(S,P),T):@score(Value) tick(S,P,T) [Value&gt;2].</p>
      <p>By default, the scope of relations and functions is global and their arguments' scope
is local. A global scope corresponds to a metadata scope de ned over all knowledge
quali ed with the source of the KB (@source([Locator])), and the local scope
corresponds to the metadata scope de ned over all knowledge quali ed with the name of the
module (@label([OID])). The mode of formulas when used as conditions, constraints,
queries, and event patterns is "+" (input), and the mode of conclusions, answers, and
active actions is " " (output); with a corresponding mode for their constant arguments,
and by default for variables, the mode is "?" (open). The default quanti cation scope
is universal (&lt;Forall&gt;). There is a nested submodule inheritance, i.e., meta knowledge
de ned on outer modules is automatically inherited to the inner modules.</p>
      <p>In the following example de nes a rating of events from only trusted sources.
:-solve(ratedEvent(X)). % =&gt; X=e1 (but not e2)
6</p>
    </sec>
    <sec id="sec-6">
      <title>Messaging</title>
      <p>Reaction RuleML supports actions for sending (&lt;Send&gt;) and receiving (&lt;Receive&gt;)
knowledge via messages (&lt;Message&gt;) in messaging reaction rules (rule
@style="messaging"). Messages interchange Reaction RuleML documents as their
payload between agents (&lt;Agent&gt;), which are rule-based agents (aka inference services).
A Message element that provides the syntax for inbound and outbound messages /
noti cations. Besides having the typical meta knowledge, a message consists of
{ an &lt;oid&gt; (message object identi er) and a &lt;cid&gt; which is the conversation
identier (enabling also long-running asynchronous conversations and sub-conversations
with new conversation identi ers),
{ an optional &lt;protocol&gt;: protocol de nition (e.g. high-level negotiation and
coordination protocols, agent protocols and operational transport protocols)
{ an optional &lt;sender&gt; and &lt;receiver&gt;: denotes the sender and the target of the
message,
{ a directive: pragmatic context de ning the pragmatic interaction and
interpretation context for the message payload, e.g. FIPA Agent Communication Language
primitives such as "acl:query-ref",
{ an optional @type de nes the type of the message and an optional @mode attribute
distinguishes "inbound" from "outbound" communication,
{ a payload transporting any valid &lt;RuleML&gt; knowledge document (enclosing, e.g.,
queries (&lt;Query&gt;), answers (&lt;Answer&gt;), imports, and updates (&lt;Consult&gt;, &lt;Assert&gt;,
&lt;Retract&gt;, &lt;Update&gt;), as well as general actions (&lt;Action&gt;)) or arbitrary XML
&lt;content&gt;.</p>
      <p>The following example shows the typical template of a message:
&lt;Message&gt;
&lt;oid&gt; &lt;!-- message ID--&gt; &lt;/oid&gt;
&lt;cid&gt; &lt;!-- conversation ID--&gt; &lt;/cid&gt;
&lt;protocol&gt; &lt;!-- transport protocol --&gt; &lt;/protocol&gt;
&lt;directive&gt; &lt;!-- pragmatic context --&gt; &lt;/directive&gt;
&lt;sender&gt; &lt;!-- sender agent/service --&gt; &lt;/sender&gt;
&lt;receiver&gt; &lt;!-- receiver agent/service --&gt; &lt;/receiver&gt;
&lt;payload&gt; &lt;!-- message payload --&gt; &lt;/payload&gt;
&lt;/Message&gt;</p>
      <p>The knowledge of received RuleML documents can be used in the messaging
reaction rules of the receiving agent. An important di erence to \standard" imports, as
described in the previous section, is that these knowledge updates are private to the
conversation scope of the message interaction which takes place in the execution
scope of the messaging reaction rules. A typical application of this conversation-based
interactions is distributed question-answering (Q&amp;A) between distributed agents (i.e.,
agents providing query interfaces to their KBs), where the send and receive actions
in messaging reaction rules act as queries and answers to the external agents' KBs.
For instance, the following messaging reaction rule starts two conversations, \xid1"
and \xid2", sending two queries. The serial execution initially waits for the answers
from the second conversation and then, after proving some conditions (e.g., conditions
de ned on the bound variables of the received answers), the execution waits for the
answers to the rst query in the rst conversation.</p>
      <p>Answers are given in terms of solved formulas, e.g. as a rulebase (&lt;Rulebase&gt;) that
contains `solved' equations with the variable bindings.</p>
      <p>&lt;Rulebase&gt;
&lt;Equal&gt;&lt;Var&gt;x&lt;/Var&gt;&lt;Ind&gt;a&lt;/Ind&gt;&lt;/Equal&gt;
&lt;Equal&gt;&lt;Var&gt;y&lt;/Var&gt;&lt;Ind&gt;b&lt;/Ind&gt;&lt;/Equal&gt;
&lt;Equal&gt;&lt;Var&gt;z&lt;/Var&gt;&lt;Ind&gt;c&lt;/Ind&gt;&lt;/Equal&gt;
&lt;/Rulebase&gt;
&lt;Atom&gt;
&lt;Rel&gt;p&lt;/Rel&gt;
&lt;Ind&gt;a&lt;/Ind&gt;
&lt;Ind&gt;b&lt;/Ind&gt;
&lt;Ind&gt;c&lt;/Ind&gt;
&lt;/Atom&gt;</p>
      <p>Alternatively, they are given one by one as ground literals (&lt;Atom&gt;) matching the
sent query.</p>
      <p>The semantics of sent queries interprets them as (sub-)goals which are proven by
the external agent's knowledge and the variable bindings from the received answers are
used to continue the local proof logic in the serial execution of the messaging reaction
rule.</p>
      <p>The following Prova example de nes an event composition work ow, where rst an
event "A" is received which forks the process into two alternative branches for event
"B" and "C".
rcvMsg(XID,Process,From,event,["A"])
:</p>
      <p>fork_b_c(XID, Process).
fork_b_c(XID, Process)
:@group(p1) rcvMsg(XID,Process,From,event,["B"]), .
fork_b_c(XID, Process)
:@group(p1) rcvMsg(XID,Process,From,event,["C"]), .
fork_b_c(XID, Process)
:% OR reaction group "p1" waits for either of the two event message handlers "B" or "C"
% and terminates the alternative reaction if one arrives
@or(p1) rcvMsg(XID,Process,From,or,_).</p>
      <p>Such reaction groups establish an additional event processing scope which is
used to manage the event processing ow. This can be used, for instance, to de ne
relative timer events in a reaction group within a time window, e.g., for the accumulation
of events over a time window as in the following Prova example.
% This reaction operates indefinitely. When the timer elapses (after 25 ms),
% the group by map Counter is sent as part of the aggregation event and consumed in an
% or group, and the timer is reset back to the second argument of @timer.
groupby_rate()
:</p>
      <p>Counter = ws.prova.eventing.MapCounter(), % Aggr. Obj.
@group(g1) @timer(25,25,Counter), % timer every 25 ms
rcvMsg(XID,stream,From,inform,tick(S,P,T)) % event
[IM=T,Counter.incrementAt(IM)]. % aggr. operation
groupby_rate()
:% receive the aggregation counter in the or reaction
@or(g1) rcvMsg(XID,self,From,or,[Counter]),
... % consume the Counter aggreation object.</p>
      <p>Another important aspect in this distributed interaction is the interface
declaration of knowledge base, in particular the signatures and their scope visibility which
de ne which knowledge can be queried from external agents. Furthermore, the agent
conversations might follow certain de ned protocols (&lt;Protocol&gt;) and the knowledge
interpretation might be given an additional pragmatic context (&lt;directive&gt;).</p>
      <p>
        For the correct semantic interpretation, the intended semantic pro les can be
interchanged together with test suites, which are special knowledge bases (&lt;TestSuite&gt;)
with a test assertion base (typically ground facts), and test items (&lt;TestItem&gt;),
consisting of test queries and prede ned expected answers. [
        <xref ref-type="bibr" rid="ref2 ref3 ref6 ref7 ref8">3, 8, 7, 2, 6</xref>
        ] The following example
shows a typical template for a test.
&lt;Test&gt;
&lt;TestSuite&gt;
&lt;!-- semantic profiles which should be used for the test suite --&gt;
&lt;evaluation&gt;&lt;Profile&gt;&lt;/Profile&gt;&lt;/evaluation&gt;
&lt;!-- test assertion base, such as ground test facts --&gt;
&lt;testbase&gt;&lt;Assert&gt;&lt;/Assert&gt;&lt;/testbase&gt;
&lt;!-- one particular test item of a test suite --&gt;
&lt;TestItem&gt;
&lt;!-- test query --&gt;
&lt;act&gt;&lt;Query&gt;&lt;/Query&gt;&lt;/act&gt;
&lt;!-- expected result --&gt;
&lt;expectedResult&gt;
&lt;Answer&gt;
&lt;degree&gt;&lt;Data&gt;1&lt;/Data&gt;&lt;/degree&gt; &lt;!-- expected "1" = query succeeds --&gt;
&lt;!-- resulting query variable bindings --&gt;
&lt;Equal&gt;&lt;/Equal&gt;
&lt;Equal&gt;&lt;/Equal&gt;
&lt;/Answer&gt;
&lt;/expectedResult&gt;
&lt;/TestItem&gt;
&lt;/TestSuite&gt;
&lt;/Test&gt;
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion - Reaction RuleML for Reaction Rules</title>
      <p>In this paper we have described and exempli ed several important features of Reaction
RuleML 1.0 which provide support for Rule Responder.</p>
      <p>
        { Knowledge interface declarations can be used to de ne signatures/patterns,
intended semantic pro les, scopes, quali cations and quanti cations of knowledge
implementations with possible separation and distribution of the interface from its
implementations by key-keyref references.
{ Modules with declarations of scopes, modes, and pro les distinguish global,
local, and private knowledge with possibly varying interpretations and visibility
for external agents.
{ Knowledge imports allow consultation of external knowledge as modules of the
importing KB with module composition and interpreting (join) semantics de ned
by semantic pro les.
{ Scoped reasoning can be used to close o the domain of discourse to a
particular scope, including dynamic metadata-based scopes which act as constructive
views on the (modular) knowledge base. [
        <xref ref-type="bibr" rid="ref14 ref8">14, 8</xref>
        ]
{ Messaging reaction rules are used for serial execution of (conditional) send and
receive actions which interchange knowledge between Rule Responder agents,
such as queries, answers, and rulebases, via Reaction RuleML messages within
protocol conversation scopes and serial execution scopes of the messaging reaction
rules in which the conversations take place.
{ Semantic pro les and test suites are optionally interchanged together with
the knowledge in order to test the Reaction RuleML knowledge with the intended
semantics against pre-de ned test items (test cases) leading to self-validating
rule bases. [
        <xref ref-type="bibr" rid="ref2 ref3 ref6 ref7 ref8">3, 8, 7, 2, 6</xref>
        ]
      </p>
      <p>
        The implementation of these advanced features of Reaction RuleML 1.0 and Rule
Responder is demonstrated in the Prova 3.0 rule engine with use cases for Q&amp;A
answering on top of rule-based data access to Linked Open Data (LOD) knowledge
bases such as DBPedia and design pattern implementations for Semantic Complex
Event Processing (SCEP) functionalities [
        <xref ref-type="bibr" rid="ref17 ref9">17, 9</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>H.</given-names>
            <surname>Boley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Paschke</surname>
          </string-name>
          , and
          <string-name>
            <surname>O.</surname>
          </string-name>
          <article-title>Sha q</article-title>
          .
          <source>RuleML 1</source>
          .
          <article-title>0: The Overarching Speci cation of Web Rules</article-title>
          . In Semantic Web Rules - International
          <string-name>
            <surname>Symposium</surname>
          </string-name>
          , RuleML 2010, Washington, DC, USA, October
          <volume>21</volume>
          -
          <issue>23</issue>
          ,
          <year>2010</year>
          . Proceedings, volume
          <volume>6403</volume>
          of Lecture Notes in Computer Science, pages
          <volume>162</volume>
          {
          <fpage>178</fpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <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 Information Systems Technology and its Applications</source>
          , 4th International Conference ISTA'
          <year>2005</year>
          ,
          <fpage>23</fpage>
          -25 May,
          <year>2005</year>
          ,
          <string-name>
            <given-names>Palmerston</given-names>
            <surname>North</surname>
          </string-name>
          , New Zealand, volume
          <volume>63</volume>
          <source>of LNI</source>
          , pages
          <volume>31</volume>
          {
          <fpage>48</fpage>
          .
          <string-name>
            <surname>GI</surname>
          </string-name>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <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 Evolving Logic Programs and Rule Markup Languages (RuleML)</article-title>
          .
          <source>International Journal of Interoperability in Business Information Systems</source>
          ,
          <volume>10</volume>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>A Typed Hybrid Description Logic Programming Language with Polymorphic Order-Sorted DL-Typed Uni cation for Semantic Web Type Systems</article-title>
          . In OWLED,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <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="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>On Self-Validating Rule Bases</article-title>
          .
          <source>In Proceedings of 2nd International Workshop on Semantic Web Enabled Software Engineering (SWESE</source>
          <year>2006</year>
          ), Athens, Georgia, USA,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Veri cation, Validation, Integrity of Rule Based Policies and Contracts in the Semantic Web</article-title>
          .
          <source>In 2nd International Semantic Web Policy Workshop (SWPW'06)</source>
          ,
          <source>Nov. 5-9</source>
          ,
          <year>2006</year>
          , Athens, GA, USA, volume
          <volume>207</volume>
          <source>of CEUR Workshop Proceedings. CEUR-WS.org</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>Rule based service level agreements: RBSLA; knowledge representation for automated e-contract, SLA and policy management</article-title>
          .
          <source>Idea Verlag GmbH</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <source>Semantic Complex Event Processing</source>
          . http://www.slideshare.net/swadpasc/dem-aal-semanticceppaschke,
          <year>May 2013</year>
          . Tutorial at Dem@
          <source>Care Summer School on Ambient Assisted Living</source>
          ,
          <fpage>16</fpage>
          -
          <lpage>20</lpage>
          September 2013, Chania, Crete, Greece, http://www.slideshare.net/swadpasc/ dem-aal-semanticceppaschke.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <source>Reaction RuleML 1</source>
          .
          <article-title>0 for Rules, Events and Actions in Semantic Complex Event Processing</article-title>
          .
          <source>In 8th International Web Rule Symposium</source>
          , Prague, Czech Republic,
          <source>August 18-20, RuleML 2014 Proceedings, Lecture Notes in Computer Science</source>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <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,
          <year>October 2007</year>
          .
          <article-title>RuleML project</article-title>
          , http://responder.ruleml.org/.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <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>Rule Markup Languages and Semantic Web Rule Languages</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
          <fpage>1</fpage>
          <lpage>{</lpage>
          24. IGI Publishing, May
          <year>2009</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>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="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>
          . 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="ref15">
        <mixed-citation>
          15.
          <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 Proceedings of the 2nd International Conference on Pragmatic Web, ICPW</source>
          <year>2007</year>
          , Tilburg,
          <source>The Netherlands, October 22-23</source>
          ,
          <year>2007</year>
          , volume
          <volume>280</volume>
          of ACM International Conference Proceeding Series, pages
          <volume>17</volume>
          {
          <fpage>28</fpage>
          . ACM,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <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 Rules on the Web: Research and Applications - 6th International Symposium, RuleML</source>
          <year>2012</year>
          , Montpellier, France,
          <source>August 27-29</source>
          ,
          <year>2012</year>
          .
          <article-title>RuleML 2012 Proceedings</article-title>
          , volume
          <volume>7438</volume>
          of Lecture Notes in Computer Science, pages
          <volume>100</volume>
          {
          <fpage>119</fpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <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 Proceedings of the Sixth ACM International Conference on Distributed Event-Based Systems, DEBS 2012</source>
          , Berlin, Germany,
          <source>July 16-20</source>
          ,
          <year>2012</year>
          , pages
          <fpage>324</fpage>
          {
          <fpage>334</fpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>Kia</given-names>
            <surname>Teymourian</surname>
          </string-name>
          and
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <source>Semantic Rule-Based Complex Event Processing. In Rule Interchange and Applications</source>
          , International Symposium, RuleML
          <year>2009</year>
          ,
          <string-name>
            <given-names>Las</given-names>
            <surname>Vegas</surname>
          </string-name>
          , Nevada, USA, November 5-
          <issue>7</issue>
          ,
          <year>2009</year>
          . Proceedings, volume
          <volume>5858</volume>
          of Lecture Notes in Computer Science, pages
          <volume>82</volume>
          {
          <fpage>92</fpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>Kia</given-names>
            <surname>Teymourian</surname>
          </string-name>
          and
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Plan-Based Semantic Enrichment of Event Streams</article-title>
          .
          <source>In The Semantic Web: Trends and Challenges - 11th International Conference, ESWC</source>
          <year>2014</year>
          , Anissaras, Crete, Greece, May
          <volume>25</volume>
          -29,
          <year>2014</year>
          . Proceedings, volume
          <volume>8465</volume>
          of Lecture Notes in Computer Science, pages
          <volume>21</volume>
          {
          <fpage>35</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Kia</surname>
            <given-names>Teymourian</given-names>
          </string-name>
          , Malte Rohde, and
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Processing of Complex Stock Market Events Using Background Knowledge</article-title>
          .
          <source>In Proceedings of the 5th International RuleML2011@BRF Challenge</source>
          ,
          <article-title>co-located with the 5th International Rule Symposium</article-title>
          , Fort Lauderdale, Florida, USA, November 3-
          <issue>5</issue>
          ,
          <year>2011</year>
          , volume
          <volume>799</volume>
          <source>of CEUR Workshop Proceedings. CEUR-WS.org</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Kia</surname>
            <given-names>Teymourian</given-names>
          </string-name>
          , Malte Rohde, and
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Paschke</surname>
          </string-name>
          .
          <article-title>Knowledge-based processing of complex stock market events</article-title>
          .
          <source>In 15th International Conference on Extending Database Technology, EDBT '12</source>
          , Berlin, Germany, March 27-30,
          <year>2012</year>
          , Proceedings, pages
          <volume>594</volume>
          {
          <fpage>597</fpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>