<!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>Experiences Using Deliberation RuleML 1.01 as Rule Interchange Language</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Matthias Tylkowski</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Muller</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Binarypark</institution>
          ,
          <addr-line>Erich-Weinertstr. 1, 03044 Cottbus</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>After four decades of development, it is now well accepted that rules are one of the most suitable decisioning mechanism for changeintensive applications. Moreover, as web applications are expanding everywhere, rule languages allow to publish, trasmit, deploy, and execute rules on the Web. This paper describes some principles and practices of developing rulebases from computationally independent business models using Deliberation RuleML version 1.01. We present a complete rulebase, based on the UServ Product Derby Case Study, ready to be deployed into rule systems allowing RuleML serialization. We also raise two issues that the next version of Deliberation RuleML may address: i) reference to external domain vocabularies used by rules and ii) distinction between binary object properties, i.e. predicates/relations (whose second argument is a RuleML Ind element), and datatype properties, i.e. predicates/relations (whose second argument is a RuleML Data element), as in OWL.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Rule based applications have a long history starting with the early attempts to
make logic an executable language [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the age of expert system applications [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
the introduction of object orientation [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and the accommodation of rule-based
reasoning into mainstream programming languages [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        Experiments with rule interchange were pioneered back in 2006-2007 by
[
        <xref ref-type="bibr" rid="ref10 ref14 ref16">10, 14, 16</xref>
        ] within a rule interchange framework R2ML, [
        <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
        ]. Inspired by
RuleML [
        <xref ref-type="bibr" rid="ref20 ref5 ref8">5, 8, 20</xref>
        ], R2ML provided an approach to integrate the Object
Constraint Language (OCL), the Semantic Web Rule Language (SWRL) and the
Rule Markup Language (RuleML). Development of the R2ML language ended in
2008 and after that some progress was made by the W3C RIF activity to achieve
a standard for rule interoperability. RuleML continued the development [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] so
that by now various families of rule languages are available, including
Deliberation RuleML [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Reaction RuleML [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and Legal RuleML [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
      </p>
      <p>Towards restarting the debate about rule interoperability, this paper
describes a RuleML 1.01 rulebase accommodating the UServ Product Derby Case
Study. The UServ study describes rules using natural language, and provides a
scenario simulating a vehicle insurance service. The main purpose is to compute
an annual premium for a vehicle insurance policy, belonging to an eligible client.
Using a business-speci c language, UServ divides its business rules into sets,
each of them addressing di erent goals and contexts i.e. calculates the
eligibility scores in order to set the eligibility status for a client/driver/car, as well as
pricing and cancelation policies at client portfolio level. The goal of this work is
to provide a tutorial for practitioners developing business rule applications from
natural language descriptions based on core ontological concepts like classes and
variables, to target rule systems. UServ was also implemented using R2ML.
2</p>
      <p>
        Mapping the Data Model into Rules
Rules should be based on vocabularies, i.e. the de ned universe of discourse. The
UServ case identi es classes such as cars, clients, drivers, their subclasses such
as ConvertibleCar, YoungDriver and their properties e.g. theftRating, price, age,
and so on. We use F-logic [
        <xref ref-type="bibr" rid="ref11 ref12">11, 12</xref>
        ] as the executable language for UServ rules.
      </p>
      <p>We map all universe-of-discourse artefacts according to the mapping rules
introduced by R2ML. In addition, all vocabulary items (predicates, functions,
constants) are identi ed by URIs, e.g. http://userv.org/ontology/price
identies the binary predicate price. Throughout this paper we use the RuleML 1.01
NafNegHornlogEq sub-language, where equality is used just because, in general,
Deliberation RuleML 1.01 does not allow the direct de nition of global constants
(more in Section 2.4).
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Mapping Classes</title>
      <p>UServ classes are mapped to RuleML types or unary predicates. These are the
two signi cant options to encode such classes { either by using the @type
attribute or by using an explicit class de nition by means of an atom (we assume
a declaration of the namespace pre x us: as the iri http://userv.org/ontology/):
&lt;!-- 1. type encoding into the variable occurences --&gt;
&lt;Var type="us:ConvertibleCar"&gt;C&lt;/Var&gt;
&lt;!-- 2. type explicitly defined as an atom --&gt;
&lt;Atom&gt;
&lt;Rel iri="us:ConvertibleCar"&gt;car&lt;/Rel&gt;
&lt;Var&gt;C&lt;/Var&gt;
&lt;/Atom&gt;
2.2</p>
    </sec>
    <sec id="sec-3">
      <title>Mapping subClassOf Relation</title>
      <p>The subClassOf relation is not included by RuleML as a language
syntactical construct. However, there are solutions to realize it, either by de ning the
subClassOf relation axiomatically or by binding the rulebase to an external
vocabulary de ning this relation.</p>
      <p>De ning subClassOf Axiomatically
&lt;Forall&gt;
&lt;Var&gt;X&lt;/Var&gt;
&lt;Implies&gt;
&lt;Atom&gt;
&lt;Rel iri="us:ConvertibleCar"&gt;convertibleCar&lt;/Rel&gt;
&lt;Var&gt;X&lt;/Var&gt;
&lt;/Atom&gt;
&lt;Atom&gt;
&lt;Rel iri="us:Car"&gt;car&lt;/Rel&gt;
&lt;Var&gt;X&lt;/Var&gt;
&lt;/Atom&gt;
&lt;/Implies&gt;
&lt;/Forall&gt;
It is obvious that such an axiom must be added for any pair of classes in the
application domain that are subject of in a subClassOf relation. Moreover,
assuming that a translation to an executable language will preserve this axiom in
this form, inference will be quite expensive as, usually, the subClassOf veri
cation is much more of a constraint veri cation than an inference.</p>
    </sec>
    <sec id="sec-4">
      <title>Binding a Rulebase to an External Vocabulary</title>
      <p>
        An elegant solution, also discussed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], and implemented in OO
jDREW, is to de ne this relation at the domain vocabulary level using an
appropriate knowledge representation language, for example, RDF Schema:
&lt;rdfs:Class rdf:ID="http://userv.org/ontology/ConvertibleCar"&gt;
.....
      </p>
      <p>&lt;rdfs:subClassOf rdf:resource="http://userv.org/ontology/Car"/&gt;
&lt;/rdfs:Class&gt;
Of course, the rulebase must provide a reference to this vocabulary, e.g by using
type="us:ConvertibleCar", as discussed earlier.</p>
    </sec>
    <sec id="sec-5">
      <title>High Order Atom Construct</title>
      <p>The Atom content model of the Deliberation RuleML 1.01 could be extended
to allow high order constructs1, such as:
&lt;Atom&gt;
&lt;Rel iri="rdfs:subClassOf"&gt;subClassOf&lt;/Rel&gt;
&lt;arg index="1"&gt;
&lt;Rel
iri="http://userv.org/ontology/ConvertibleCar"
type="http://www.w3.org/2000/01/rdf-schema#Class"&gt;convertibleCar&lt;/Rel&gt;
1 The older RuleML 0.91 was supporting high order constructs via "Hterm" element.
&lt;/arg&gt;
&lt;arg index="2"&gt;
&lt;Rel
iri="http://userv.org/ontology/Car"
type="http://www.w3.org/2000/01/rdf-schema#Class"&gt;car&lt;/Rel&gt;
&lt;/arg&gt;
&lt;/Atom&gt;</p>
    </sec>
    <sec id="sec-6">
      <title>Declarative De nition of Instances</title>
      <p>Finally, because the application domain has a limited number of (car)
instances, only few of them may be convertible. In this case, from an inference
engine perspective, it is less expensive to explicitly de ne cars and their
convertibility as facts:
&lt;Assert&gt;
&lt;And&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/Car"&gt;car&lt;/Rel&gt;
&lt;Ind iri="http://userv.org/ontology/i/a9fccd3a-a851-4e80"&gt;car1&lt;/Ind&gt;
&lt;/Atom&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/ConvertibleCar"&gt;car&lt;/Rel&gt;
&lt;Ind iri="http://userv.org/ontology/i/a9fccd3a-a851-4e80"&gt;car1&lt;/Ind&gt;
&lt;/Atom&gt;
&lt;/And&gt;
&lt;/Assert&gt;
Notice that the above code describes the same individual as being an instance
of two types but does not encode any subClassOf relationship between them.
2.3</p>
    </sec>
    <sec id="sec-7">
      <title>Mapping Properties</title>
      <p>UServ de nes object properties and datatype properties. For example, price
is a datatype property with a unique value. We map such properties into the
traditional rst order logic atom:
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/price"&gt;price&lt;/Rel&gt;
&lt;!-- the subject of the property --&gt;
&lt;Var&gt;C&lt;/Var&gt;
&lt;!-- the value of the property --&gt;
&lt;Var type="xs:positiveInteger"&gt;P&lt;/Var&gt;
&lt;/Atom&gt;
Also, to express something like "the car's potential theft rating is high", we
encode:
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/theftRating"&gt;theftRating&lt;/Rel&gt;
&lt;Var&gt;C&lt;/Var&gt;
&lt;Data&gt;
&lt;!-- @type="us:Rating" --&gt;
&lt;us:ratingValue xsi:type="xs:positiveInteger"&gt;4&lt;/us:ratingValue&gt;
&lt;us:ratingVerbalization xml:lang="en"&gt;high&lt;/us:ratingVerbalization&gt;
&lt;/Data&gt;
&lt;/Atom&gt;
The structured datatype including an integer (i.e. 4) is more convenient than the
plain symbol (i.e., high) as it allows a computer program to better deal with
values and their verbalizations. It is worthwhile to mention the Schema.org2 e ort to
standardize a large common sense vocabulary for web semantics. Unfortunately,
the current version of RuleML does not allow such user-de ned datatypes but
only pre-de ned XML datatypes, e.g.
&lt;Data xsi:type="xs:string"&gt;high&lt;/Data&gt;
Allowing external datatypes would be an improvement, as common types become
more and more adopted by the Web community. However, the current content
model of the RuleML &lt;Data&gt; element is xs:any; therefore, above, we were still
able to encode the necessary structured data.</p>
      <p>
        The values of multi-valued properties such as airbag are mapped into RuleML
lists (using &lt;Plex&gt;):
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/airbag"&gt;airbags&lt;/Rel&gt;
&lt;Var&gt;C&lt;/Var&gt;
&lt;Plex&gt;
&lt;Data xsi:type="xs:string"&gt;driverAirbag&lt;/Data&gt;
&lt;Data xsi:type="xs:string"&gt;frontPassengerAirbag&lt;/Data&gt;
&lt;/Plex&gt;
&lt;/Atom&gt;
Object-valued properties are mapped following the same principles.
While the "positional" RuleML used above adopted a logic programming syntax,
the above method for de ning properties (binary predicates) may not be ideal.
However, "slotted" RuleML, inspired by F-logic, as in Object-Oriented RuleML
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and PSOA RuleML [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], could be used instead. Because UServ is built on an
object-oriented approach (as are many other real-life applications), properties are
binary relations. Therefore, it is obvious that knowledge representation languages
that de ne vocabularies are more suited for de ning such properties. Here is an
example using OWL:
&lt;owl:DatatypeProperty rdf:ID="price"&gt;
&lt;rdf:type rdf:resource="owl:FunctionalProperty"/&gt;
&lt;rdfs:domain rdf:resource="http://userv.org/ontology/Car"/&gt;
&lt;rdfs:range rdf:resource="xs:positiveInteger"/&gt;
&lt;/owl:DatatypeProperty&gt;
2 See http://schema.org and http://lists.w3.org/Archives/Public/public-vocabs/
Such a declaration would allow a rulebase validator to check the consistency of
rules, e.g. fail when the below "multi-priced" atom is encountered:
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/price"&gt;p&lt;/Rel&gt;
&lt;Var&gt;C&lt;/Var&gt;
&lt;Plex&gt;
&lt;Data xsi:type="xs:positiveInteger"&gt;23000&lt;/Data&gt;
&lt;Data xsi:type="xs:positiveInteger"&gt;23500&lt;/Data&gt;
&lt;/Plex&gt;
&lt;/Atom&gt;
2.4
      </p>
    </sec>
    <sec id="sec-8">
      <title>Mapping Built-in Predicates and Global Constants</title>
      <p>UServ deals with all kinds of conditions such as numerical constraints, e.g. "price
is greater than $45,000", or list membership conditions "the car model is on
the list of High Theft Probability Auto". The mapping uses external built-in
predicates, speci cally the ones introduced by the W3C RIF Datatypes and
Built-Ins 1.0.
&lt;!-- price is greater than $45,000 --&gt;
&lt;Atom&gt;
&lt;Rel iri="pred:numeric-less-than-or-equal"&gt;gt&lt;/Rel&gt;
&lt;Var type="xs:positiveInteger"&gt;P&lt;/Var&gt;
&lt;Data xsi:type="xs:integer"&gt;45000&lt;/Data&gt;
&lt;/Atom&gt;
&lt;!-- the car model is on the list of High Theft Probability Auto --&gt;
&lt;Atom&gt;
&lt;Rel iri="prolog:member"&gt;member&lt;/Rel&gt;
&lt;Var&gt;M&lt;/Var&gt;
&lt;Ind type="rdf:Bag"&gt;HighTheftProbabilityAutoList&lt;/Ind&gt;
&lt;/Atom&gt;
Unlike logic programming, object oriented applications deal with global
constants that are available to all objects. Similarly such a construct will greatly
improve rulebase readability.</p>
      <p>Deliberation RuleML cannot directly represent global constants but uses
equality to explicitly de ne a collection as an individual such as the above-used
HighTheftProbabilityAutoList, e.g.
&lt;Equal oriented="yes"&gt;
&lt;Ind&gt;HighTheftProbabilityAutoList&lt;/Ind&gt;
&lt;Plex&gt;
&lt;Ind iri="http://userv.org/ontology/i/a9fccd3a-a851-4e80"&gt;car1&lt;/Ind&gt;
&lt;Ind iri="http://userv.org/ontology/i/5bff7cc6-72f7-4be3"&gt;car3&lt;/Ind&gt;
&lt;Ind iri="http://userv.org/ontology/i/5eb91389-f1f3-473c"&gt;car5&lt;/Ind&gt;
&lt;Ind iri="http://userv.org/ontology/i/3c308aa3-3507-40fa"&gt;car6&lt;/Ind&gt;
&lt;/Plex&gt;
&lt;/Equal&gt;
However, such an approach requires the use of a hornlogeg RuleML language
("eq" referring to equality), while there may be applications which do not really
require full equality but only the fragment needed for de ning global constants.
However, from the perspective of interoperability, it may be the responsibility of
a translator to identify such constructs and translate them into global constants,
while still keeping the rest of the rule translation in the realm of a hornlog RuleMl
language.
2.5</p>
    </sec>
    <sec id="sec-9">
      <title>Expressing Facts</title>
      <p>UServ facts are descriptions of cars such as:
Car 4,
2005 Honda Odyssey,
Full Airbags, Alarm System,
Price $39,000,
Type Luxury Car,</p>
      <p>
        Not on "High Theft Probability List"
it is obvious to any object oriented modeler that car1 is the id of an object of the
type LuxuryCar together with a set of properties (e.g. carModel:'Honda Odyssey',
modelYear:2005). This can be mapped to Deliberation RuleML 1.01 using the
traditional logic programming approach:
We shall observe that the representation of "Not on High Theft Probability List"
corresponds to negation as failure (no positive fact). In addition, the global
constant HighTheftProbabilityAutoList does not contain this car among its
values. This solution has the advantage of preserving the logic programming
approach, allowing a translator to still use the NafNegHornlog sub-language.
There are object-oriented rule languages, notably F-logic, Drools [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], and PSOA
RuleML allowing declarative descriptions of objects e.g.,
car4:LuxuryCar [
price -&gt; 39000;
modelYear -&gt; 2005;
hasAlarm-&gt; true;
airbags -&gt; ['driverAirbag','frontPassengerAirbag', 'sideAirbag']
].
      </p>
      <p>Deliberation RuleML could achieve such a representation as in Object-Oriented
RuleML or by extending the slotted notation to allow relations as slot names:
&lt;Assert&gt;
&lt;Equal oriented="yes"&gt;
&lt;Ind iri="http://userv.org/ontology/i/a9fccd3a-a851-4e80"&gt;car4&lt;/Ind&gt;
&lt;Plex&gt;
&lt;slot&gt;
&lt;Rel iri="http://userv.org/ontology/price"&gt;&lt;/Rel&gt;
&lt;Data xsi:type="xs:positiveInteger"&gt;39000&lt;/Data&gt;
&lt;/slot&gt;
&lt;slot&gt;
&lt;Rel iri="http://userv.org/ontology/hasAlarm"&gt;&lt;/Rel&gt;
&lt;Data xsi:type="xs:boolean"&gt;true&lt;/Data&gt;
&lt;/slot&gt;
...</p>
      <p>&lt;/Plex&gt;
&lt;/Equal&gt;
&lt;/Assert&gt;
3</p>
      <sec id="sec-9-1">
        <title>Rules and Rulebases</title>
        <p>Deliberation RuleML 1.01 de nes rulebases as collections of implications, facts
and equations, where the &lt;Rule&gt; element is specialized to an &lt;Implies&gt;
&lt;Rulebase xml:id="theftRating"&gt;
&lt;!-- Processing car's theftRating --&gt;
&lt;meta&gt;
&lt;Atom&gt;</p>
        <p>&lt;Rel iri="http://userv.org/ontology/theftRating"&gt;theftRating&lt;/Rel&gt;
&lt;/Atom&gt;
&lt;/meta&gt;
&lt;!-- If the car is a convertible, then the car's potential theft rating is high. --&gt;
&lt;Forall&gt;
&lt;Var type="us:ConvertibleCar"&gt;C&lt;/Var&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/theftRating"&gt;theftRating&lt;/Rel&gt;
&lt;Var type="us:ConvertibleCar"&gt;C&lt;/Var&gt;
&lt;Data&gt;
&lt;!-- @type="us:Rating" --&gt;
&lt;us:ratingValue xsi:type="xs:positiveInteger"&gt;4&lt;/us:ratingValue&gt;
&lt;us:ratingVerbalization xml:lang="en"&gt;high&lt;/us:ratingVerbalization&gt;
&lt;/Data&gt;
&lt;/Atom&gt;
&lt;/Forall&gt;
&lt;!-</p>
        <p>If the car's price is greater than $45,000,
then the car's potential theft rating is high.</p>
        <p>--&gt;
&lt;Forall&gt;
&lt;Var type="us:Car"&gt;C&lt;/Var&gt;
&lt;Implies direction="backward"&gt;
&lt;And&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/price"&gt;price&lt;/Rel&gt;
&lt;Var&gt;C&lt;/Var&gt;
&lt;Var type="xs:positiveInteger"&gt;P&lt;/Var&gt;
&lt;/Atom&gt;
&lt;Atom&gt;
&lt;Rel iri="pred:numeric-greater-than"&gt;gt&lt;/Rel&gt;
&lt;Var type="xs:positiveInteger"&gt;P&lt;/Var&gt;
&lt;Data xsi:type="xs:integer"&gt;45000&lt;/Data&gt;
&lt;/Atom&gt;
&lt;/And&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/theftRating"&gt;theftRating&lt;/Rel&gt;
&lt;Var&gt;C&lt;/Var&gt;
&lt;Data&gt;
&lt;!-- @type = "us:Rating"--&gt;
&lt;us:ratingValue xsi:type="xs:positiveInteger"&gt;4&lt;/us:ratingValue&gt;
&lt;us:ratingVerbalization xml:lang="en"&gt;high&lt;/us:ratingVerbalization&gt;
&lt;/Data&gt;
&lt;/Atom&gt;
&lt;/Implies&gt;
&lt;/Forall&gt;
&lt;!-- other rules ... --&gt;
&lt;/Rulebase&gt;</p>
        <p>Conclusion and Future Work
This work provides some insight into the Deliberation RuleML 1.01 capabilities
to serialize business rule scenarios. We hope that our ndings will contribute
to improvements in the next RuleML version. We also raise the issue that the
next version of Deliberation RuleML may provide: i) reference to external
domain vocabularies used by rules and ii) distinction between binary object
properties, i.e. predicates/relations (whose second argument is a RuleML Ind element),
and datatype properties, i.e. predicates/relations (whose second argument is a
RuleML Data element), as in OWL. Future work will be concerned with a
family of XSLT transformations allowing translation from speci c sub-languages of
Deliberation RuleML to Prolog and F-logic.</p>
      </sec>
      <sec id="sec-9-2">
        <title>Acknowledgments References</title>
        <p>We would like to thank to Tara Athan, Harold Boley, Adrian Giurca and Adrian
Paschke for their essential feedback and insights that made this work possible.</p>
        <p>UServProductDerbyCaseStudy.ruleml
&lt;!-</p>
        <p>If the car model is on the list of High Theft Probability Auto, then the cars potential
theft rating is high.
--&gt;
&lt;Forall&gt;
&lt;Var type="http://userv.org/ontology/Car"&gt;C&lt;/Var&gt;
&lt;Implies direction="backward"&gt;
&lt;And&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/carModel"&gt;carModel&lt;/Rel&gt;
&lt;Var&gt;C&lt;/Var&gt;
&lt;!-</p>
        <p>If the car has no airbags, then the cars potential occupant injury
rating is extremely high.
--&gt;
&lt;Forall&gt;
&lt;!-</p>
        <p>If none of the following is true, then the auto eligibility is eligible
- Auto eligibility is not eligible
- Auto eligibility is provisional
&lt;Atom&gt;</p>
        <p>&lt;Rel iri="http://userv.org/ontology/SeniorDriver"&gt;seniorDriver&lt;/Rel&gt;</p>
        <p>If the following are not true, then eligible driver</p>
        <p>- Young driver</p>
        <p>If driver has taken drivers training from a licensed driver training company,
then driver has training certification
--&gt;
&lt;Forall&gt;
&lt;Var type="http://userv.org/ontology/Driver"&gt;D&lt;/Var&gt;
&lt;Implies direction="backward"&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/hasTrainingFromLicensedDriverTrainingCompany"&gt;
hasTrainingFromLicensedDriverTrainingCompany
&lt;/Rel&gt;
&lt;Var type="http://userv.org/ontology/Driver"&gt;D&lt;/Var&gt;
&lt;/Atom&gt;
&lt;!-</p>
        <p>If the driver has been convicted of a DUI, then the driver qualifies as a High Risk Driver
--&gt;
&lt;Forall&gt;
&lt;Var type="http://userv.org/ontology/Driver"&gt;D&lt;/Var&gt;
&lt;Implies direction="backward"&gt;
&lt;And&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/noOfDUI"&gt;noOfDUI&lt;/Rel&gt;
&lt;Var type="http://userv.org/ontology/Driver"&gt;D&lt;/Var&gt;
&lt;Var&gt;DUI&lt;/Var&gt;
&lt;/Atom&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/DriverRiskRating"&gt;driverRiskRating&lt;/Rel&gt;
&lt;Var&gt;D&lt;/Var&gt;
&lt;Data&gt;
&lt;us:value xsi:type="xs:positiveInteger"&gt;4&lt;/us:value&gt;
&lt;us:verbalization xml:lang="en"&gt;high&lt;/us:verbalization&gt;
&lt;/Data&gt;
&lt;/Atom&gt;
&lt;/Implies&gt;
&lt;/Forall&gt;
&lt;!-</p>
        <p>If the number of accidents the applicant has been involved in is greater than 2,
then the driver qualifies as a High Risk Driver.
--&gt;
&lt;Forall&gt;
&lt;Var type="http://userv.org/ontology/Driver"&gt;D&lt;/Var&gt;
&lt;Implies direction="backward"&gt;
&lt;And&gt;
&lt;Atom&gt;
&lt;Rel iri="http://userv.org/ontology/noOfAccidentsI"&gt;noOfAccidents&lt;/Rel&gt;
&lt;Var type="http://userv.org/ontology/Driver"&gt;D&lt;/Var&gt;
&lt;Var&gt;accidents&lt;/Var&gt;
&lt;/Atom&gt;
&lt;Atom&gt;
&lt;Rel iri="pred:numeric-greater-than"&gt;gt&lt;/Rel&gt;
&lt;Var type="xs:positiveInteger"&gt;accidents&lt;/Var&gt;
&lt;Data xsi:type="xs:integer"&gt;2&lt;/Data&gt;
&lt;/Atom&gt;
&lt;/And&gt;
&lt;!-</p>
        <p>If the driver has had more than 3 moving violations in the last two years,
then the driver qualifies as a High Risk Driver.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Tara</given-names>
            <surname>Athan</surname>
          </string-name>
          , Harold Boley, Guido Governatori, Monica Palmirani, Adrian Paschke, and
          <string-name>
            <given-names>Adam</given-names>
            <surname>Wyner</surname>
          </string-name>
          .
          <article-title>Legalruleml: From metamodel to use cases - (a tutorial)</article-title>
          .
          <source>In Leora Morgenstern</source>
          , Petros S. Stefaneas,
          <string-name>
            <surname>Francois Levy</surname>
          </string-name>
          , Adam Wyner, and Adrian Paschke, editors,
          <source>RuleML</source>
          , volume
          <volume>8035</volume>
          of Lecture Notes in Computer Science, pages
          <volume>13</volume>
          {
          <fpage>18</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Tara</given-names>
            <surname>Athan</surname>
          </string-name>
          , Harold Boley, Guido Governatori, Monica Palmirani, Adrian Paschke, and
          <string-name>
            <given-names>Adam</given-names>
            <surname>Wyner</surname>
          </string-name>
          .
          <article-title>Oasis legalruleml</article-title>
          .
          <source>In Enrico Francesconi and Bart Verheij</source>
          , editors,
          <source>ICAIL</source>
          , pages
          <volume>3</volume>
          {
          <fpage>12</fpage>
          . ACM,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          .
          <article-title>Object-oriented ruleml: User-level roles, uri-grounded clauses, and order-sorted terms</article-title>
          .
          <source>In Michael Schroeder and Gerd Wagner</source>
          , editors,
          <source>RuleML</source>
          , volume
          <volume>2876</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>1</fpage>
          <lpage>{</lpage>
          16. Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          .
          <article-title>A rif-style semantics for ruleml-integrated positional-slotted, objectapplicative rules</article-title>
          .
          <source>In Nick Bassiliades</source>
          , Guido Governatori, and Adrian Paschke, editors,
          <source>RuleML Europe</source>
          , volume
          <volume>6826</volume>
          of Lecture Notes in Computer Science, pages
          <volume>194</volume>
          {
          <fpage>211</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Mike</given-names>
            <surname>Dean</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Benjamin N.</given-names>
            <surname>Grosof</surname>
          </string-name>
          , Michael Kifer, Said Tabet, and
          <string-name>
            <given-names>Gerd</given-names>
            <surname>Wagner</surname>
          </string-name>
          .
          <article-title>Ruleml position statement</article-title>
          .
          <source>In Rule Languages for Interoperability. W3C</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          , Rolf Grutter, Gen Zou, Tara Athan, and
          <string-name>
            <given-names>Sophia</given-names>
            <surname>Etzold</surname>
          </string-name>
          .
          <article-title>A datalog + plus ruleml 1.01 architecture for rule-based data access in ecosystem research</article-title>
          . In Antonis Bikakis, Paul Fodor, and Dumitru Roman, editors,
          <source>RuleML</source>
          , volume
          <volume>8620</volume>
          of Lecture Notes in Computer Science, pages
          <volume>112</volume>
          {
          <fpage>126</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          , Adrian Paschke, and
          <article-title>Omair Sha q. Ruleml 1.0: The overarching speci cation of web rules</article-title>
          .
          <source>In Mike Dean</source>
          , John Hall, Antonino Rotolo, and Said Tabet, editors,
          <source>RuleML</source>
          , 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="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          , Said Tabet, and
          <string-name>
            <given-names>Gerd</given-names>
            <surname>Wagner</surname>
          </string-name>
          .
          <article-title>Design rationale for ruleml: A markup language for semantic web rules</article-title>
          . In Isabel F. Cruz, Stefan Decker, Jero^me Euzenat, and Deborah L. McGuinness, editors,
          <source>SWWS</source>
          , pages
          <volume>381</volume>
          {
          <fpage>401</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Randall</given-names>
            <surname>Davis</surname>
          </string-name>
          , Bruce G. Buchanan, and
          <string-name>
            <surname>Edward H. Shortli</surname>
          </string-name>
          <article-title>e. Production rules as a representation for a knowledge-based consultation program</article-title>
          .
          <source>Artif. Intell.</source>
          ,
          <volume>8</volume>
          (
          <issue>1</issue>
          ):
          <volume>15</volume>
          {
          <fpage>45</fpage>
          ,
          <year>1977</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Adrian</given-names>
            <surname>Giurca</surname>
          </string-name>
          and
          <string-name>
            <given-names>Gerd</given-names>
            <surname>Wagner</surname>
          </string-name>
          .
          <article-title>Rule modeling and interchange</article-title>
          . In Negru et al. [
          <volume>15</volume>
          ], pages
          <fpage>485</fpage>
          {
          <fpage>491</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Kifer</surname>
          </string-name>
          .
          <article-title>Rules and ontologies in f-logic</article-title>
          .
          <source>In Norbert Eisinger and Jan Maluszynski</source>
          , editors,
          <source>Reasoning Web</source>
          , volume
          <volume>3564</volume>
          of Lecture Notes in Computer Science, pages
          <volume>22</volume>
          {
          <fpage>34</fpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Kifer</surname>
          </string-name>
          and
          <string-name>
            <given-names>Georg</given-names>
            <surname>Lausen</surname>
          </string-name>
          .
          <article-title>F-logic: A higher-order language for reasoning about objects, inheritance, and scheme</article-title>
          . In James Cli ord, Bruce G. Lindsay, and David Maier, editors,
          <source>SIGMOD Conference</source>
          , pages
          <volume>134</volume>
          {
          <fpage>146</fpage>
          . ACM Press,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Robert</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kowalski</surname>
          </string-name>
          .
          <article-title>Predicate logic as programming language</article-title>
          .
          <source>In IFIP Congress</source>
          , pages
          <volume>569</volume>
          {
          <fpage>574</fpage>
          ,
          <year>1974</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Milan</surname>
            <given-names>Milanovic</given-names>
          </string-name>
          , Dragan Gasevic, Adrian Giurca, Gerd Wagner, and
          <string-name>
            <given-names>Vladan</given-names>
            <surname>Devedzic</surname>
          </string-name>
          .
          <article-title>Towards sharing rules between owl/swrl and uml/ocl</article-title>
          . ECEASST,
          <volume>5</volume>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Viorel</surname>
            <given-names>Negru</given-names>
          </string-name>
          , Tudor Jebelean, Dana Petcu, and Daniela Zaharie, editors.
          <source>Proceedings of the Ninth International Symposium on Symbolic and Numeric Algorithms for Scienti c Computing</source>
          ,
          <source>SYNASC</source>
          <year>2007</year>
          , Timisoara, Romania,
          <source>September 26-29</source>
          ,
          <year>2007</year>
          . IEEE Computer Society,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Oana</surname>
            <given-names>Nicolae</given-names>
          </string-name>
          , Adrian Giurca, and
          <string-name>
            <given-names>Gerd</given-names>
            <surname>Wagner</surname>
          </string-name>
          .
          <article-title>On interchange between jboss rules and jess</article-title>
          .
          <source>In Costin Badica and Marcin Paprzycki</source>
          , editors, IDC, volume
          <volume>78</volume>
          <source>of Studies in Computational Intelligence</source>
          , pages
          <fpage>135</fpage>
          {
          <fpage>144</fpage>
          . Springer,
          <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>
          .
          <article-title>0: Standardized semantic reaction rules</article-title>
          .
          <source>In Antonis Bikakis and Adrian Giurca</source>
          , editors,
          <source>RuleML</source>
          , 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="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>Mark</given-names>
            <surname>Proctor</surname>
          </string-name>
          .
          <article-title>Relational declarative programming with jboss drools</article-title>
          .
          <source>In Negru et al. [15], page 5.</source>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>Mark</given-names>
            <surname>Proctor</surname>
          </string-name>
          .
          <article-title>Drools: A rule engine for complex event processing</article-title>
          . In Andy Schurr, Daniel Varro, and Gergely Varro, editors,
          <source>AGTIVE</source>
          , volume
          <volume>7233</volume>
          of Lecture Notes in Computer Science, page 2. Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Gerd</surname>
            <given-names>Wagner</given-names>
          </string-name>
          , Grigoris Antoniou, Said Tabet, and
          <string-name>
            <given-names>Harold</given-names>
            <surname>Boley</surname>
          </string-name>
          .
          <article-title>The abstract syntax of ruleml - towards a general web rule language framework</article-title>
          .
          <source>In Web Intelligence</source>
          , pages
          <fpage>628</fpage>
          {
          <fpage>631</fpage>
          . IEEE Computer Society,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Gerd</surname>
            <given-names>Wagner</given-names>
          </string-name>
          , Carlos Viegas Damasio, and
          <string-name>
            <given-names>Grigoris</given-names>
            <surname>Antoniou</surname>
          </string-name>
          .
          <article-title>Towards a general web rule language</article-title>
          .
          <source>Int. J. Web Eng. Technol.</source>
          ,
          <volume>2</volume>
          (
          <issue>2</issue>
          /3):
          <volume>181</volume>
          {
          <fpage>206</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Gerd</surname>
            <given-names>Wagner</given-names>
          </string-name>
          , Adrian Giurca, and
          <string-name>
            <given-names>Sergey</given-names>
            <surname>Lukichev</surname>
          </string-name>
          .
          <article-title>A general markup framework for integrity and derivation rules</article-title>
          .
          <source>In Francois Bry</source>
          , Francois Fages, Massimo Marchiori, and Hans Jurgen Ohlbach, editors,
          <source>Principles and Practices of Semantic Web Reasoning</source>
          , volume
          <volume>05371</volume>
          <source>of Dagstuhl Seminar Proceedings. Internationales Begegnungs- und Forschungszentrum fur Informatik (IBFI)</source>
          , Schloss Dagstuhl, Germany,
          <year>2005</year>
          . &lt;
          <article-title>Atom&gt; &lt;Rel iri="pred:numeric-greater-than"&gt;gt&lt;/Rel&gt; &lt;Var type="xs:positiveInteger"&gt;DUI&lt;/Var&gt; &lt;Data xsi:type="xs:integer"&gt;0&lt;</article-title>
          /Data&gt; &lt;/Atom&gt; &lt;/And&gt;
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>