<!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 model driven approach for bridging ILOG Rule Language and RIF</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Valerio Cosentino</string-name>
          <email>valerio.cosentino@fr.ibm.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Macros Didonet del Fabro</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adil El Ghali</string-name>
          <email>elghali@lutin-userlab.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AtlanMod, INRIA &amp; EMN</institution>
          ,
          <addr-line>Nantes</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Lutin UserLab</institution>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Universidade Federal do Paran</institution>
          ,
          <country country="BR">Brazil</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Nowadays many companies run their business using Business Rule Management Systems (BRMS), that o er: a clear separation between decision logic and procedural structure; the ability to modify a rulebase set rather than processes and the reusability of rules across applications. All these factors allow a company to quickly react and align its policies to the ever-changing market needs. Despite these advantages, di erent BRMSs can be found on the market, each of them implementing a proprietary business rule language (ex.: JBoss uses Drools, IBM uses Ilog Rule Language, etc.). Rule Interchange Format(RIF) is a W3C open standard aiming at reducing the heterogeneity among business rule languages, which makes rules less reusable and interchangeable. Our work is focused on providing an implementation based on a Model Driven approach for bridging Ilog Rule Language to RIF.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The eld of BRMS is characterized by a number of normative, open source, or
proprietary systems and languages (Ilog JRules, JBoss Drools, etc.), allowing
the expression of various solutions to business problems at a high abstraction
level, but with heterogeneous sets of capabilities and languages. Rule Interchange
Format (RIF [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) and Production Rules Representation (PRR [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]) are two
standard proposals respectively developed at the W3C and at the OMG aiming at
providing a level of standardization to the domain. An important di erence
between RIF and PRR is that RIF is a standard for distribution of shared rules at
runtime, whereas PRR is a standard for interchanging design-time rules.
      </p>
      <p>
        This work presents a case study of bridging a business rule language: the Ilog
Rule Language (IRL) to a standard format: the Rule Interchange Format (RIF)
and vice versa. We show how to make it possible with the help of Model Driven
Engineering (MDE [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]).
      </p>
      <p>RIF is the W3C Rule Interchange Format and it is part of the infrastructure
composing the semantic web. It is an XML language for expressing rules that
computers can execute. One of the main goals of RIF is to promote a standard
format to interchange rules between existing rule languages.</p>
      <p>Because of the serious trade o s in the design of rule language, RIF provides
multiple versions, called dialects:
{ Core: it is the fundamental RIF language. It is designed to be the common
subset of most rule engines
{ BLD: it adds to Core dialect logic functions, equality in the then-part, and
named arguments
{ PRD: adds a notion of forward-chaining rules, where a rule res and then
performs some action (adding, updating or retracting some information)
In this work we have implemented transformations for the Core and PRD
dialects. An example of a RIF example is shown in (Fig. 1).</p>
      <p>
        IRL is a formal rule language used inside WebSphere ILOG JRules BRMS.
It supports the two di erent levels of a full- edged BRMS: the technical level
targeted at software developers and the business action language targeted at
business users. The technical rules of JRules are written in IRL. The complete
speci cation of IRL can be found in the JRules documentation [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] an example
of an IRL rule is provided in (Fig. 2).
      </p>
    </sec>
    <sec id="sec-2">
      <title>Model Driven Engineering</title>
      <p>The primary software artifacts of the MDE approach are models, which are
considered as rst class entities. Every model de nes a concrete syntax and
conforms to a meta-model (or grammar, or schema), which de nes its abstract
syntax. One of the most common operations applied on models is transformation,
which consists in the creation of a set of target models from a set of source models
according to speci c rules.</p>
      <p>
        In the work presented in this paper three main tools have been used:
{ Ecore allows to handle and create meta-models in Eclipse Modeling
Framework (EMF) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
{ TCS (Textual Concrete Syntax) ([
        <xref ref-type="bibr" rid="ref6">6</xref>
        ],[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]) is a bidirectional mapping tool
between meta-models and grammars. It is able to perform both text-to-model
(injections) and model-to-text (extractions) translations from a single
specication. TCS is used to map context-free concrete syntaxes to meta-models.
{ ATL (Atlas Transformation Language) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] is a model transformation
language speci ed as both a meta-model and a textual concrete syntax. It
allows developers to produce a number of target models from a set of source
models by writing rules that de ne how to create target models from source
model elements.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Transformations</title>
      <p>
        The RIF2IRL transformation takes as input a RIF le, a BOM le (Business
Object Model [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]) and a Dictionary model. The output generates an IRL model
and the related IRL le, generated by a TCS parser.
      </p>
      <p>
        From the rst input, using a TCS parser, a model conforming to an
implementation of the RIF meta-model is extracted. A BOM le is passed to the
transformation to resolve the domain information declared inside the RIF le/model.
The related BOM model is extracted out of the BOM le by a TCS parser and
it conforms to the BOM meta-model implemented in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. A Dictionary is added
as input parameter in the transformation in order to provide a translation from
the element names declared in the RIF le to the corresponding ones appearing
in the IRL le. The transformation has been implemented in ATL [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and it
de nes how to convert RIF to IRL.
      </p>
      <p>The IRL2RIF transformation takes as input a IRL le and two BOMs and
returns a RIF le. From the rst input, a model conforming to the IRL
metamodel is extracted by means of a TCS parser. The rst BOM contains the
information of the domain model, while the second one is used to map IRL
functions to the built-in RIF functions for handling dates, numbers, strings, etc.
The output is a RIF model, that is translated into a RIF le by a TCS parser.
4</p>
    </sec>
    <sec id="sec-4">
      <title>The demonstration</title>
      <p>
        The IRL2RIF and RIF2IRL transformations will be rst demonstrated using a
set of simple examples (Appendix A) that illustrate the main functionalities of
the transformation. We will then show a real world application of the
transformation using data from the Arcelor use-case studied in the ONTORULE project
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. In the context of the Rule Xchanger application depicted in the (Fig. 3),
we will focus on the transformation of IRL rule edited using JRules into RIF
rules that will be executed using the Tight engine.
The transformation we intend to demonstrate is a key component in the
interoperability between two rule languages that has been used in some real world
applications such us the Arcelor use-case. it shows that rule application
developed using commercial BRMS such as JRules can be exported to other platforms
that support the RIF standard.
      </p>
    </sec>
    <sec id="sec-5">
      <title>Annex</title>
      <p>Fig. 5. Example 2</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>1. Rule Interchange Format http://www.w3.org/TR/rif-overview/</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>2. Production Rules Representation http://www.omg.org/spec/PRR/1.0/</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>D.C.</given-names>
          </string-name>
          <string-name>
            <surname>Model-Driven Engineering</surname>
          </string-name>
          . IEEE Computer
          <volume>39</volume>
          (
          <issue>2</issue>
          ), Feb.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>4. JRules documentation http://pic.dhe.ibm.com/infocenter/dmanager/v7r5/index.jsp</mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>5. Eclipse Modeling Framework http://www.eclipse.org/modeling/emf/</mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>6. Textual Concrete Syntax http://wiki.eclipse.org/TCS</mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Jouault</surname>
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bezivin</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurtev</surname>
            <given-names>I.</given-names>
          </string-name>
          ,
          <article-title>TCS: a DSL for the Speci cation of Textual Concrete Syntaxes in Model Engineering</article-title>
          .
          <source>In proc. of GPCE'06</source>
          ,
          <string-name>
            <surname>Portland</surname>
          </string-name>
          , Oregon, USA, pp
          <fpage>249</fpage>
          -
          <lpage>254</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>8. Atlas Transformation Language http://www.eclipse.org/atl</mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Jouault</surname>
            <given-names>F</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allilaire</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bezivin</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurtev</surname>
            <given-names>I. ATL</given-names>
          </string-name>
          :
          <article-title>a Model Transformation Tool</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>72</volume>
          (
          <issue>3</issue>
          ,
          <string-name>
            <surname>Special</surname>
            <given-names>Issue</given-names>
          </string-name>
          <article-title>on Second issue of experimental software and</article-title>
          toolkits EST):
          <fpage>31</fpage>
          -
          <lpage>39</lpage>
          ,
          <year>2008</year>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Didonet Del Fabro</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Albert P.</given-names>
            ,
            <surname>Bezivin</surname>
          </string-name>
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Jouault</surname>
          </string-name>
          <string-name>
            <surname>F.</surname>
          </string-name>
          ,
          <article-title>Industrial-strength Rule Interoperability using Model Driven Engineering</article-title>
          ,
          <source>Technical report 6747</source>
          , INRIA, Nov.
          <year>2008</year>
          . http://hal.inria.fr/docs/00/34/40/13/PDF/RR6747.pdf
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gonzalez-Moriyon</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Final steel industry public demonstrators</article-title>
          ,
          <source>ONTORULE Deliverable D5</source>
          .5,
          <string-name>
            <surname>Jan</surname>
          </string-name>
          . 2012
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>