<!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>A RuleML - DMN Translator</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Freie Universität Berlin</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Germany paschke AT inf.fu-berlin.de</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>simon.koennecke AT fu-berlin.de</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>Rule markup languages are the vehicle for using rules on the Web and other distributed systems. They allow deploying, executing, publishing and communicating rules in a network. The Object Management Group (OMG) standardized the Decision Modelling and Notation (DMN). Decision tables describe the business logic of a decision making process. We form a bridge by providing a translation framework to translate DMN decision tables to RuleML, a standardized rule interchange language.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>enables, e.g. to use the growing number of DMN modelling tools6 as user interfaces
/ editors for the various RuleML-supported rule engines which can act as
platformspecific execution environments for the DMN models.</p>
      <p>The further paper is structured as follows: Section 2 describes the background
for using RuleML’s Semantic Profiles for OMG DMN. DMN decision tables
are introduced in section 3. Section 4 summarizes the DMN profile as basis for
the DMN-RuleML translator. Section 5 describes the implementation of the
translator service. Section 6 demonstrates the translator and finally section 7
concludes this demo paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        Since Reaction RuleML 1.0 so called Semantic Profiles have been introduced
in RuleML and further adopted in the overall RuleML 1.02 family. They are
used to define the intended semantics for knowledge interpretation (typically a
model-theoretic semantics), reasoning (typically entailment regimes and
prooftheoretic semantics), or for execution (e.g., operational semantics such as selection
and consumption policies and windowing techniques in complex event event
processing). Profiles can further detail the syntax and semantics of a RuleML rule
base and provide necessary information about the intended semantics for modular
RuleML knowledge representations [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] as required for interchange, translation,
inference, and verification and validation with test cases [
        <xref ref-type="bibr" rid="ref10 ref7">10,7</xref>
        ].
      </p>
      <p>
        Various pre-defined semantic profiles 7 exist, which can be referenced as
semantic styles8 in RuleML, e.g. logical rule semantics [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] such as Herbrand
semantics for first order logic and horn logic as well as Tarski semantics for
horn logic, as used e.g., in PSOA RuleML9. This also includes semantic profiles
supporting the semantically safe translation of other rule standards into RuleML,
making RuleML an overarching “lingua franca” to interchange rules and integrate
with other markup languages. For instance, the First-Order-Deontic-Alethic
Semantic Profile (FODAL semantic profile) 10 defines a two-layered modal Kripke
semantics for deontic and alethic modal first order formulas which can be used
to represent, e.g. business rules as in the OMG standard Semantics of Business
Vocabulary and Rules (OMG SBVR)11, and to map from the SBVR FODAL
representations into Modal Reaction RuleML via the profile’s translation function.
This profile has been used, e.g., as basis for the mapping from OMG SBVR into
OASIS LegalRuleML 12 with a Reaction RuleML translator [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
6 http://openjvm.jvmhost.net/DMNtools/
7 see e.g. http://wiki.ruleml.org/index.php/Predefined_Semantic_Styles_of_RuleML_
1.02
8 http://wiki.ruleml.org/index.php/Semantic_Styles_of_RuleML_1.02 (@style
attribute)
9 http://ruleml.org/1.02/profiles/HornPSOA-Tarski [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
10 http://ruleml.org/1.02/profiles/fodal
11 http://www.omg.org/spec/SBVR/
12 https://www.oasis-open.org/committees/legalruleml/
      </p>
      <p>The translator described in this paper is based on a semantic profile for
representing and translating OMG DMN (1.1) in RuleML. DMN 1.1 defines the
simple friendly enough expression language (S-FEEL) for the purpose of giving
standard executable semantics to many kinds of expressions in decision model [6,
p. 92].
3</p>
    </sec>
    <sec id="sec-3">
      <title>DMN Decision Table</title>
      <p>The purpose of DMN is to provide the constructs that are needed to model
decisions [6, p. 21]. Decision logic can be express in DMN with a decision table. A
decision table is a tabular representation with a name, hit policy, allowed values,
default values and a set of related input and output expressions, organized into
rules indicating which output entry applies to a specific set of input entries. The
decision table contains all (and only) the inputs required to determine the output
[6, p. 72]. Refer to figure 1 for a sample decision table.</p>
      <p>A decision table normally contains several rules. As a default, rules do not
overlap. If rules overlap, meaning that more than one rule may match a given set
of input values, the hit policy determines how the output entries will be chosen
[6, p. 91]. To list possible hit policies: unique, rule order or collection. Unique is
the default hit policy of decision tables and means there are no overlapping rules.
Rule order provide all valid output entries ordered by the defined rule sequence.
Collection returns randomly all valid output entries. Collection can also come
with an aggregation function like min, max, sum or count.</p>
    </sec>
    <sec id="sec-4">
      <title>Semantic Profile for DMN Representation in RuleML</title>
      <p>
        In this section we describe the basics of the RuleML semantic profile 13 used for
the RuleML-DMN translator in the demo. As representation language for DMN
we apply a (multi-sorted) logic programming syntax with a horn logic Herbrand
semantics, extended by built-in comparators, arithmetical operations, and (data)
types. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
4.1
      </p>
      <sec id="sec-4-1">
        <title>Syntax and Semantics</title>
        <p>The core alphabet Σ is defined as follows:
1. A signature S = (P , F , arity, c).</p>
        <p>– P is a finite sequence of predicates symbols (P1, · · · , Pn).
– F is a finite sequence of functions symbols (F1, · · · , Fm).</p>
        <p>– c is a finite sequence of constant symbols.
2. A set of variables V .
3. Connectives / operators: ¬, ∧, ∨, ⇐, :=.</p>
        <p>The serialization of the core alphabet Σ in RuleML is stated in table 1.</p>
        <p>Note, the equal operation assigns values from tj to ti.
13 Note: a semantic profile is interpreted as a substructure of an expanded profile
semantic multi-structure and hence can be further extended by other semantic profiles,
i.e. additional expressiveness can be added to the core syntax by combinations with
further profiles. For instance, a profile extension with multi-sorted structures, where
the members of the universe of discourse is structured into multiple sort domains.
To support such profile extensions, we deviate in our signature definitions from the
standard definitions in terms of just sets and define them in terms of sequences,
where the members can occur multiple-times, but are assigned with diferent sorts by
a sort function.</p>
        <p>We further extend the alphabet Σ with built-in comparators (=, ! =, &lt;, ≤, &gt;
, ≥), arithmetical operations (+, −, ·, /,mod,ˆ) and (data) types.</p>
        <p>For the interpretation of this syntax the existing semantic profiles for horn
logics with Herbrand semantics14 can be used as basis.</p>
        <p>Further we extend the basic syntax of Σ to represent DMN S-FEEL expressions
and interpret them as a logic program. In the following we will exemplify this
representation and also show example serializations in RuleML syntax.
Data Types and Built-ins Built-in Operators and Comparators will be
serialized as predicates. We use Semantic Web Rule Language built-ins (SWRLB)15
and XML Schema data types16 to extend the alphabet Σ.</p>
        <p>Data types are referenced in RuleML in &lt;Data&gt; elements using XML Schema
data types. More general types defined in external type systems can be referenced
by the @type attribute and interpreted, e.g. by semantic profiles for sorted logics.
Table 2 gives examples for the serialization of data types into RuleML. The
function ftype(ci) 7→ d determined the type, where d is a possible data type.
Therefore, the alphabet Σ can difer between types of constant symbols.
Operations The SWRLB provide arithmetical and comparison operation we
simple extend the alphabet Σ by the operation. The predicate’s name is the
name of the operation, the first parameter obtains the result of the operation,
the last two the parameters donate the values of the operands e. g. the listing
1.1 describe a serialization of an arithmetical operation Result := 2 + 3. The
comparison operation will be serialized the same way without result variable.</p>
        <p>Listing 1.1. Sample serialization of swrlb:add.
&lt;Atom&gt;
&lt;Rel i r i =" s w r l b : a d d "&gt;add&lt;/ Rel&gt;
&lt;Var&gt;R e s u l t&lt;/Var&gt;
&lt;Data . . . &gt;2 . 0&lt;/Data&gt;
&lt;Data . . . &gt;3.0&lt;/Data&gt;
&lt;/Atom&gt;</p>
        <p>SWRLB extend the Σ with the arithmetical operation +, −, ·, /,mod,ˆ.
14 http://ruleml.org/1.02/profiles/Horn-Herbrand
15 https://www.w3.org/Submission/2004/SUBM-SWRL-20040521/
16 https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/datatypes.html</p>
      </sec>
      <sec id="sec-4-2">
        <title>DMN Representation in Horn Logic</title>
        <p>Qualified Name Qualified Names are variables in S-FEEL expression. The
translation function τqn(Exp, Y, τx) will parse all qualified names qi of Exp
and add a predicate context with qi as individual and a unique variable Zi.
Exp∗ is Exp where all qi will be replaced by Zi. After parsing and replacing
the function τx(Exp∗, Y ) will be applied, where τx is one of the other defined
translation functions. The qualified name translation function can be described
as τqn(Exp, Y, τx) = context(q0, Z0) ∧ .. ∧ context(qn, Zn) ∧ τx(Exp∗, Y ), where
n is the number of qualified names in the expression Exp.</p>
        <p>Interval The translation function of interval expressions to Σ can be defined as
follows:
τinterval(Exp∗, X) =</p>
        <p>Exp∗ = [a..b] : a ≥ X ∧ X ≤ b</p>
        <p>Exp∗ = (a..b) : a &gt; X ∧ X &lt; b</p>
        <p>Note, for the reason of simplification we only show two of the nine valid
S-FEEL interval mappings. a and b are placeholders for variables or constants
symbols.</p>
        <p>Literal expression The translation function for S-FEEL literal expression l
can be defined as τliteral(Exp∗, X) = X := Exp∗.</p>
        <p>Unary Test S-FEEL unary test expression means the first operand is implicitly
given. The operation and second operand are explicitly defined in unary test
expression for example “&lt; 12”. When an S-FEEL unary test is translated to Σ
there can be determined the following function:</p>
        <p> not(Exp∗) : ¬(τunary(Exp∗))
τunary(Exp∗, X) =  Exp∗ is a interval : τinterval(Exp∗, X)
 Exp∗ = − : true
 otherwise : fconcat(X, Exp∗)</p>
        <p>The variable X is the implicit operand. The function fconcat(X, Exp∗)
concatenates X and Exp∗.</p>
        <p>Decision Table, Output Expression and Rule The attributes of a decision
table, output expression or rule will be mapped as a fact to the knowledge base.
The first term of fact will be the decision tabel id. The mapping of an decision table
appears as: decisionT able(“tableId”, “tableLabel”, “hitP olicy”, “aggregation”).
Input Expression The input expression has a literal expression l and will
be translated as follows: inputExpression(“tableId”, “ColN o”, Result) ⇐ τqn(l,
Result, τliteral), where ColN o is the column position at the decision table.
Input Entry The input entry S-FEEL expression can describe multiply unary
tests separated by commas. For each unary test ti will be translated as inputEntry(
“tableId”, “ColN o”, “RuleN o”) ⇐ inputExpression(“tableId”, “ColN o”, V alue)
∧ τqn(ti, V alue, τunary), where ColN o column position of the related input
expression and RuleN o is the corresponding rule position.</p>
        <p>Output Entry Output entry defines the result value via a literal expression l.
The translation can be describe as outputEntry(“tableId”, “label”, · · · , V alue) ⇐
n
∧i=0inputEntry(“tableId”, i, “RuleN o”) ∧ τqn(l, V alue, τliteral), where n is the
number of input entries of the related rule, dots at outputEntry predicate are
placeholder for the attributes of the output entry and RoleN o the number of the
rule order.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>RuleML DMN Translator Service</title>
      <p>The translation service is split in two Java programs, one called rule translation
service (RTS) and other called rule translation web service (RTWS). RTS runs
by specifying four parameters, input language lin, output language lout, input
data din and output dout. RTS translate always from or to RuleML. The case
where lin or lout not RuleML the service will translate lin to RuleML and than
to lout. Note, the languages l needed to be listed at RTS. RTS provide syntax
mapping between S-FEEL to RuleML, DMN to RuleML and RuleML to Prova.
DMN and RuleML as XML based formatted will by parsed JAXB17. S-FEEL
will parsed by ANTRL18. RTWS wrappers RTS to provide an REST API of the
service. RTWS based on Java Spark19 a lightweight web framework to create
microservices.</p>
      <p>We explain three ways to translate a DMN file “table.dmn” to a RuleML file
“table.ruleml”. Firstly as command line execution, secondly as Java library call,
thirdly as HTTP call.</p>
      <p>Command-Line Interface RTS can be invoked as command on command line.
We will translate the DMN file to RuleML file as follow: java -jar
ruletranslatorservice.jar dmn ruleml table.dmn table.ruleml. The result will printed to file
“table.ruleml”.</p>
      <p>Java Library RTS can be used as library in other projects. The input of a
translation can be a File, a InputStream or a String. Here we load the file “table.dmn”,
mark it with input language “DMN”, translate it to “RuleML” and store the result
to “table.ruleml” by calling the function translate of RuleTranslationService.
17 https://jaxb.java.net/
18 http://www.antlr.org/
19 http://sparkjava.com/
/ / . . .
p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) {</p>
      <p>R u l e T r a n s l a t o r S e r v i c e r t s = R u l e T r a n s l a t o r S e r v i c e F a c t o r y .</p>
      <p>c r e a t e T r a n s l a t o r S e r v i c e ( ) ;
t r y {
r t s . t r a n s l a t e ( new F i l e ( " t a b l e . dmn" ) , "DMN" , "RuleML" , new</p>
      <p>FileOutputStream ( " t a b l e . ruleml " ) ) ;
} catch ( UnknownRulesLanguageException ex ) {</p>
      <p>// . . .
} catch ( RuleTranslatorException ex ) {</p>
      <p>// . . .</p>
      <p>}</p>
      <p>REST Translation For RTWS the translation languages l needs to be provide
in the URL call, e.g. the URL of the DMN to RuleML translation service is
http://localhost/api/translate/dmn/ruleml/ (We assume that the RTWS runs
on localhost). The body of the HTTP post call contains the raw DMN file
“table.dmn”. Successfully requesting RTWS gives a response with a HTTP status
code 200 and RuleML serialization in the body, otherwise an error has occurred.
REST Execution RTWS also provides an execution method, e.g. a request
with HTTP post message to the URL http://localhost/api/execute/ with the
body:
{ l a n g u a g e : "dmn" , p a r a m e t e r s : { Customer: " Busi ness " , " Order ␣ S i z e " : 5} ,
s o u r c e : &lt;t a b l e . dmn&gt; , q u e r y : [ " inputEntry ( DecisionTable , ␣Column , ␣Row)
" ] }
The service will translate the DMN file to RuleML and from RuleML to Prova
source code. Parameters of the body get translated to facts like context(“Customer”,
V alue) ⇐ V alue := “Business” and will be translated to Prova source code.
Furthermore, Prova source code will extend by “:- solve(inputEntry(DecisionTable,
Column, Row))”. The invocation of Prova source code by RTWS will be a response
as a JSON object with the result of the query.
6</p>
    </sec>
    <sec id="sec-6">
      <title>DMN-RuleML Translation Demo</title>
      <p>This section demonstrates how a DMN decision table in figure 1 gets serialized in
RuleML. We will examine the decision table “Discount”, the column “Customer”
(DMN input expression), the row starts with 1 (DMN rule), the cell Business at
DMN rule (DMN input entry), column “Discount” (DMN output) and the cell
below with value 0.10 (DMN output entry).</p>
      <p>The decision table “Discount” can be defined in DMN as follows:
&lt;d e c i s i o n i d=" d e c i s i o n D i s c o u n t " name=" Discount "&gt;
&lt;d e c i s i o n T a b l e i d=" d e c i s i o n T a b l e " h i t P o l i c y="UNIQUE"&gt;
. . . &lt;!−− a l l input e x p r e s s i o n s and output e x p r e s s i o n s −−&gt;
. . . &lt;!−− a l l r u l e s −−&gt;
&lt;/ d e c i s i o n T a b l e&gt;
&lt;/ d e c i s i o n&gt;</p>
      <p>RTS translates the decision table “Discount” to RuleML as follows:</p>
      <p>We can see that decision and decision table attributes get represented as fact
in knowledge base. All input expressions and output definitions get translated to
the same rulebase. Input expression “Customer” can be defined in DMN as
follows:
&lt;input i d=" i n p u t 1 " l a b e l=" Customer "&gt;
&lt;i n p u t E x p r e s s i o n i d=" i n p u t E x p r e s s i o n 1 " typeRef=" s t r i n g "&gt;</p>
      <p>&lt;t e x t&gt;i n p u t 1&lt;/ t e x t&gt;
&lt;/ i n p u t E x p r e s s i o n&gt;
&lt;/ input&gt;</p>
      <p>Translation of the input expression is translated to a Rule inputExpression(· · · ,
V alue) ⇐ context(“input”, S) ∧ V alue := S.
&lt;I m p l i e s&gt;
&lt;And&gt;
&lt;Atom&gt;
&lt;Rel&gt;context&lt;/ Rel&gt;
&lt;Ind&gt;i n p u t 1&lt;/ Ind&gt;
&lt;Var&gt;Storage10&lt;/Var&gt;
&lt;/Atom&gt;
&lt;Equal&gt;
&lt;Var&gt;Value&lt;/Var&gt;
&lt;Var&gt;Storage10&lt;/Var&gt;
&lt;/ Equal&gt;
&lt;/And&gt;
&lt;Atom k e y r e f=" i n p u t E x p r e s s i o n "&gt;
&lt;Rel&gt;i n p u t E x p r e s s i o n&lt;/ Rel&gt;
&lt;Ind&gt;d e c i s i o n T a b l e&lt;/ Ind&gt; &lt;!−− d e c i s i o n t a b l e id −−&gt;
&lt;Ind&gt;0&lt;/ Ind&gt; &lt;!−− column number −−&gt;
&lt;Var&gt;Value&lt;/Var&gt;
&lt;/Atom&gt;
&lt;/ I m p l i e s&gt;</p>
      <p>Output Expression “Discount” has only attributes. Therefore a fact will
be added to the rulebase.
&lt;output i d=" output1 " l a b e l=" Discount " name=" output1 " typeRef=" s t r i n g " /&gt;
&lt;Atom k e y r e f=" outputExpression "&gt;
&lt;Rel&gt;outputExpression&lt;/ Rel&gt;
&lt;Var&gt;Result&lt;/Var&gt;
&lt;Ind&gt;d e c i s i o n T a b l e&lt;/ Ind&gt; &lt;!−− d e c i s i o n t a b l e id −−&gt;
&lt;Ind&gt;output1&lt;/ Ind&gt; &lt;!−− output expression id −−&gt;
&lt;Ind&gt;output1&lt;/ Ind&gt; &lt;!−− output expression name −−&gt;
&lt;Ind&gt;Discount&lt;/ Ind&gt; &lt;!−− output expression l a b e l −−&gt;
&lt;Ind&gt;s t r i n g&lt;/ Ind&gt; &lt;!−− output expression type −−&gt;
&lt;/Atom&gt;</p>
      <p>Rule 1 contains all cells in the row. Starting by input entries “Business”, &lt; 10
and output entry 0.10. Each rule translated will be translated to new rulebase.
&lt;r u l e i d=" row −950612891−1 "&gt;
&lt;d e s c r i p t i o n&gt;Discount f o r small b u s i n e s s customer&lt;/ d e s c r i p t i o n&gt;
. . . &lt;!−− inputEntry and outputEntry . . . −−&gt;
&lt;/ r u l e&gt;</p>
      <p>All attributes of DMN rule and description will translated to a fact.
&lt;Rulebase&gt;
&lt;oid&gt;&lt;Ind&gt;row −950612891−1&lt;/ Ind&gt;&lt;/ oid&gt;
&lt;Atom k e y r e f=" r u l e "&gt;
&lt;Rel&gt;r u l e&lt;/ Rel&gt;
&lt;Ind&gt;d e c i s i o n T a b l e&lt;/ Ind&gt; &lt;!−− d e c i s i o n t a b l e id −−&gt;
&lt;Ind&gt;row −950612891−1&lt;/ Ind&gt; &lt;!−− r u l e id −−&gt;
&lt;Ind /&gt; &lt;!−− r u l e l a b e l −−&gt;
&lt;Ind&gt;Discount f o r small b u s i n e s s customer&lt;/ Ind&gt; &lt;!−− r u l e</p>
      <p>d e s c r i p t i o n −−&gt;
&lt;/Atom&gt;
. . . &lt;!−− Here s t a y s InputEntry and OutputEntry s e r i a l i z i a t i o n . . . −−&gt;
&lt;/ Rulebase&gt;</p>
      <p>Input entry and output entry are always related to a rule. Therefore the
translation will be added to the same rulebase as the rule. The input entry has
an ID and a S-FEEL expression. The input entry is related to input expression.
Input expression provides the value that each input entry compares with the
related S-FEEL expression.
&lt;inputEntry i d=" UnaryTests_0c1o054 "&gt; &lt;t e x t&gt;&lt;! [CDATA[ " Business " ] ]&gt;&lt;/ t e x t&gt;
&lt;/ inputEntry&gt;</p>
      <p>In this case, the input entry gets compared with the value of input expression
“Customer”. Therefore, inputExpression predicate retrieves the value of input.
This predicate inputEntry(“decision”, 0, 0) get only true, when the input is equal
to “Business”. Note, the S-FEEL serialization is in this case only the atom with
relation “equal”.
&lt;I m p l i e s&gt;
&lt;And&gt;
&lt;Atom k e y r e f=" i n p u t E x p r e s s i o n "&gt;
&lt;Rel&gt;i n p u t E x p r e s s i o n&lt;/ Rel&gt;
&lt;Ind&gt;d e c i s i o n T a b l e&lt;/ Ind&gt;
&lt;Ind&gt;0&lt;/ Ind&gt;
&lt;Var&gt;Value&lt;/Var&gt;
&lt;/Atom&gt;
&lt;Atom&gt;
&lt;Rel i r i =" s w r l b : e q u a l "&gt;equal&lt;/ Rel&gt;
&lt;Var&gt;Value&lt;/Var&gt;
&lt;Data x s i : t y p e=" x s : s t r i n g "&gt;Business&lt;/Data&gt;
&lt;/Atom&gt;
&lt;/And&gt;
&lt;Atom k e y r e f=" inputEntry "&gt;
&lt;Rel&gt;inputEntry&lt;/ Rel&gt;
&lt;Ind&gt;d e c i s i o n T a b l e&lt;/ Ind&gt; &lt;!−− d e c i s i o n t a b l e id −−&gt;
&lt;Ind&gt;0&lt;/ Ind&gt; &lt;!−− input column number −−&gt;
&lt;Ind&gt;0&lt;/ Ind&gt; &lt;!−− r u l e number −−&gt;
&lt;/Atom&gt;
&lt;/ I m p l i e s&gt;</p>
      <p>Output entry describes the output value of the output expression, when all
input entries turned true. DMN output entry is only a definition of the output
value. Defined in the text tag as S-FEEL expression.
&lt;outputEntry i d=" LiteralExpression_065u3ym "&gt; &lt;t e x t&gt;0 . 1 0&lt;/ t e x t&gt; &lt;/
outputEntry&gt;</p>
      <p>The output translation is related to the rule 1, therefore customer need to be a
business customer and the order size should be below 10. If the two constraints are
satisfied then the customer receives a 10% discount; in other words the predicate
outputEntry will be true if the constraints are satisfied. The representation of the
constrains in RuleML in the body of the rule includes all input entries connected
with a logical ∧.
&lt;I m p l i e s&gt;
&lt;And&gt;
. . . &lt;!−− inputEntry ( decisionTable , 0 , 0) and</p>
      <p>inputEntry ( decisionTable , 1 , 0) −−&gt;
&lt;Equal&gt;
&lt;Var&gt;Value&lt;/Var&gt;
&lt;Data x s i : t y p e=" x s : d o u b l e "&gt;0 . 1&lt;/Data&gt;
&lt;/ Equal&gt;
&lt;/And&gt;
&lt;Atom k e y r e f=" outputEntry "&gt;
&lt;Rel&gt;outputEntry&lt;/ Rel&gt;
&lt;Ind&gt;d e c i s i o n T a b l e&lt;/ Ind&gt; &lt;!−− d e c i s i o n t a b l e id −−&gt;
&lt;Ind&gt;output1&lt;/ Ind&gt; &lt;!−− output e xp r e s si o n id −−&gt;
&lt;Ind&gt;0&lt;/ Ind&gt; &lt;!−− output colum number −−&gt;
&lt;Ind&gt;LiteralExpression_065u3ym&lt;/ Ind&gt; &lt;!−− output entry id −−&gt;
&lt;Var&gt;Value&lt;/Var&gt;
&lt;/Atom&gt;
&lt;/ I m p l i e s&gt;</p>
      <p>In summary, decision table, output expressions, rules will be serialized as
facts. Input expression, input entry, output expression and output entry will
serialized as horn clauses. The knowledge base is complete, so that queries can be
answered after adding the context predicates. Variables should be defined only
once.</p>
    </sec>
    <sec id="sec-7">
      <title>7 Summary</title>
      <p>In this paper we have demonstrated a translator service for mapping OMG
DMN (v. 1.1) into RuleML (v. 1.02). This enables the use of the growing set
of modelling tools for OMG DMN as user interfaces together with the rich set
of RuleML-supported rule engines as execution environments. Furthermore, it
adds another standard to the RuleML interchange framework, as a basis for
semantically-safe rule translations by semantically composing the underlying
semantic profiles.</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgement</title>
      <p>This work has been partially supported by the “InnoProfile-Transfer Corporate
Smart Content" project funded by the German Federal Ministry of Education
and Research (BMBF) and the BMBF Innovation Initiative for the New German
Länder - Entrepreneurial Regions.
All links were last followed on June 17, 2016.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Athan</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Ruleml 1.02: Deliberation, reaction and consumer families</article-title>
          .
          <source>In: Proceedings of the RuleML</source>
          <year>2015</year>
          <article-title>Challenge, the Special Track on Rule-based Recommender Systems for the Web of Data, the Special Industry Track and the RuleML 2015 Doctoral Consortium hosted by the 9th International Web Rule Symposium</article-title>
          (RuleML
          <year>2015</year>
          ), Berlin, Germany,
          <source>August 2-5</source>
          ,
          <year>2015</year>
          . (
          <year>2015</year>
          ), http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1417</volume>
          /paper6.pdf
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Boley</surname>
          </string-name>
          , H.:
          <article-title>RIF ruleml rosetta ring: Round-tripping the dlex subset of datalog ruleml and rif-core</article-title>
          .
          <source>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. pp.
          <fpage>29</fpage>
          -
          <lpage>42</lpage>
          (
          <year>2009</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -04985-
          <issue>9</issue>
          _
          <fpage>6</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Boley</surname>
          </string-name>
          , H.:
          <article-title>A rif-style semantics for ruleml-integrated positional-slotted, objectapplicative rules</article-title>
          .
          <source>In: Rule-Based Reasoning</source>
          , Programming, and Applications - 5th
          <source>International Symposium</source>
          , RuleML 2011 - Europe, Barcelona, Spain,
          <source>July 19-21</source>
          ,
          <year>2011</year>
          . Proceedings. pp.
          <fpage>194</fpage>
          -
          <lpage>211</lpage>
          (
          <year>2011</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -22546-8_
          <fpage>16</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Boley</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shafiq</surname>
            ,
            <given-names>M.O.</given-names>
          </string-name>
          :
          <article-title>Ruleml 1.0: The overarching specification 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. pp.
          <fpage>162</fpage>
          -
          <lpage>178</lpage>
          (
          <year>2010</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -16289-3_
          <fpage>15</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Hallmark</surname>
            , G., de Sainte Marie,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fabro</surname>
          </string-name>
          , M.D.D.,
          <string-name>
            <surname>Albert</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Please pass the rules: A rule interchange demonstration</article-title>
          .
          <source>In: Rule Representation, Interchange and Reasoning on the Web, International Symposium, RuleML</source>
          <year>2008</year>
          , Orlando, FL, USA, October
          <volume>30</volume>
          -
          <issue>31</issue>
          ,
          <year>2008</year>
          . Proceedings. pp.
          <fpage>227</fpage>
          -
          <lpage>235</lpage>
          (
          <year>2008</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -88808-6_
          <fpage>24</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Object Management Group:
          <article-title>Decision model and notation (</article-title>
          <year>2014</year>
          ), http://www.omg. org/spec/DMN/1.1/Beta
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The ContractLog Approach Towards Test-driven Verification 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>
          ), http://ruleml.org/reaction/docs/ContractLog_VVI.pdf
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Reasoning Web. Semantic Technologies for the Web of Data: 7th</article-title>
          <source>International Summer School</source>
          <year>2011</year>
          , Galway, Ireland,
          <source>August 23-27</source>
          ,
          <year>2011</year>
          , Tutorial Lectures, chap. Rules and
          <article-title>Logic Programming for the Web</article-title>
          , pp.
          <fpage>326</fpage>
          -
          <lpage>381</lpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg (
          <year>2011</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>642</fpage>
          - 23032-
          <issue>5</issue>
          _
          <fpage>6</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Reaction ruleml 1.0 for rules, events and actions in semantic complex event processing</article-title>
          .
          <source>In: Rules on the Web</source>
          . From Theory to Applications - 8th
          <source>International Symposium, RuleML</source>
          <year>2014</year>
          ,
          <article-title>Co-located with the 21st</article-title>
          <source>European Conference on Artificial Intelligence, ECAI</source>
          <year>2014</year>
          , Prague, Czech Republic,
          <source>August 18-20</source>
          ,
          <year>2014</year>
          . Proceedings. pp.
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          (
          <year>2014</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -09870-
          <issue>8</issue>
          _
          <fpage>1</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Athan</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Law test suites for semantically-safe rule interchange</article-title>
          .
          <source>In: Proceedings of the 16th International Workshop on Non-Monotonic Reasoning (NMR'16)</source>
          (
          <year>2016</year>
          ), http://nmr2016.cs.
          <source>uct.ac.za/proceedings_nmr2016_online.pdf</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
          </string-name>
          , H.:
          <article-title>Rule Markup Languages and Semantic Web Rule Languages</article-title>
          . In: Giurca,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Gasevic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Taveter</surname>
          </string-name>
          ,
          <string-name>
            <surname>K</surname>
          </string-name>
          . (eds.)
          <source>Handbook of Research on Emerging Rule-Based Languages and Technologies: Open Solutions and Approaches</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          . IGI Publishing (May
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
          </string-name>
          , H.:
          <article-title>Rules Capturing Events and Reactivity</article-title>
          . In: Giurca,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Gasevic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Taveter</surname>
          </string-name>
          ,
          <string-name>
            <surname>K</surname>
          </string-name>
          . (eds.)
          <source>Handbook of Research on Emerging Rule-Based Languages and Technologies: Open Solutions and Approaches</source>
          , pp.
          <fpage>215</fpage>
          -
          <lpage>252</lpage>
          . IGI Publishing (May
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
          </string-name>
          , H.:
          <article-title>Distributed rule-based agents with rule responder and reaction ruleml 1.0</article-title>
          . In:
          <article-title>Proceedings of the RuleML 2014 Challenge and the RuleML 2014 Doctoral Consortium hosted by the 8th International Web Rule Symposium</article-title>
          , Challenge+DC@RuleML
          <year>2014</year>
          , Prague, Czech Republic,
          <source>August 18-20</source>
          ,
          <year>2014</year>
          . (
          <year>2014</year>
          ), http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1211</volume>
          /paper9.pdf
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Teymourian</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Athan</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Reaction ruleml 1.0: Standardized semantic reaction 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>
          . Proceedings. pp.
          <fpage>100</fpage>
          -
          <lpage>119</lpage>
          (
          <year>2012</year>
          ), http://dx.doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -32689-
          <issue>9</issue>
          _
          <fpage>9</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ramakrishna</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A process for knowledge transformation and knowledge representation of patent law</article-title>
          .
          <source>In: Rules on the Web</source>
          . From Theory to Applications - 8th
          <source>International Symposium, RuleML</source>
          <year>2014</year>
          ,
          <article-title>Co-located with the 21st</article-title>
          <source>European Conference on Artificial Intelligence, ECAI</source>
          <year>2014</year>
          , Prague, Czech Republic,
          <source>August 18-20</source>
          ,
          <year>2014</year>
          . Proceedings. pp.
          <fpage>311</fpage>
          -
          <lpage>328</lpage>
          (
          <year>2014</year>
          ), http: //dx.doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -09870-8_
          <fpage>23</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Zou</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peter-Paul</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boley</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riazanov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Psoatransrun: Translating and running PSOA ruleml via the TPTP interchange language for theorem provers</article-title>
          .
          <source>In: Proceedings of the RuleML2012@ECAI Challenge, at the 6th International Symposium on Rules, Montpellier, France, August 27th-29th</source>
          ,
          <year>2012</year>
          (
          <year>2012</year>
          ), http: //ceur-ws.
          <source>org/</source>
          Vol-
          <volume>874</volume>
          /paper6.pdf
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>