<!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>NORMA: a Software for Intelligent Conceptual Modeling</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Francesco Sportelli</string-name>
          <email>francesco.sportelli@inf.unibz.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>KRDB, Department of Computer Science, Free University of Bozen-Bolzano</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Object-Role Modeling (ORM) is a framework for modeling and querying information at the conceptual level. It comes to support the design of large-scale industrial applications allowing the users to model easily the domain. The reasoning on a conceptual schema enables to automatically detect relevant formal properties, such as inconsistencies or redundancies that cause a degradation of the quality of the design and an increase of development times and costs. In this demonstration we introduce NORMA, a tool which implements the ORM language and its plugin ORMIe, which performs the reasoning on ORM conceptual schema in order to help the modeler during the modeling phase to avoid mistakes that could lead the software to unexpected behaviors.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Conceptual modeling</kwd>
        <kwd>OWL</kwd>
        <kwd>Reasoning</kwd>
        <kwd>Description Logics</kwd>
        <kwd>ORM</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Conceptual modeling is a critical step during the development of a database system. It is
the detailed description of the universe of discourse in a language that is understandable
by users of the business domain. Object-Role Modeling (ORM) is a conceptual language
for modeling, which includes a graphical (ORM’s graphical notation) and textual
language (FORML) for specifying models, a textual language for formulating queries, as
well as procedures for constructing ORM models, and mapping to other kinds of models
like UML and ER. ORM is fact-oriented, i.e., it models the information in a way that it
can be verbalized using sentences that are easily understandable by domain experts and
even for those who are not familiar with IT in general. The expressiveness of the ORM
constructs may lead to implicit consequences that can go undetected by the designer in
complex schemas; this may also lead to various forms of inconsistencies or redundancies
in the diagram itself that give rise to the degradation of the quality of the design and/or
increased development times and costs. This issue leads to the need of automated
reasoning to check the mentioned inconsistencies and redundancies. NORMA is the tool that
implements the ORM language and ORMIe is a plugin for NORMA which enables the
automated reasoning on ORM conceptual schemas. Of particular interest are the
Derivation Rules, they are special ORM constructs which are able to express knowledge that is
beyond the ORM capabilities. The current version of ORMIe is able to perform reasoning
on a subset of such Derivation Rules.</p>
    </sec>
    <sec id="sec-2">
      <title>2. ORM and NORMA</title>
      <p>
        ORM stands for Object-Role Modeling. It is a language that allows users to model and
query information at the conceptual level and the world is described in terms of objects
(things) playing roles (parts in relationships) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. This language has been
formalized in Terry Halpin’s PhD Thesis [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] in the context of conceptual modeling. During last
years, the logicians’ community has focused the attention on the formalization of ORM
into a logical language, precisely Description Logics [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Recently, ORM
has evolved in ORM2 which has been formalized in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. The formalization of ORM
allows to perform automated reasoning in order to detect relevant formal properties and
new inferred knowledge in a given ORM diagram.
      </p>
      <p>
        Two software that implement the reasoning are ICOM [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and DogmaModeler [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
ICOM is an advanced conceptual modeling tool that allows the user to design multiple
ER or UML class diagrams with inter and intra-model constraints, expressed in a rich
view language similar to OCL and relational algebra based on Description Logics.
DogmaModeler is an ontology modeling tool that implements ORM supporting ontology
modularization and composition and verbalization into pseudo natural languages.
      </p>
      <p>
        NORMA is the tool that implements the ORM language, it has been developed by
Terry Halpin and Matthew Curland, [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. NORMA stands for Natural Object-Role
Modeling Architect, it is a free software available from the Sourceforge repository and
it is implemented in Microsoft Visual Studio Environment and it is written in C#.
Unlike ICOM and DogmaModeler, NORMA is built into this environment so it inherits
all the functionalities of the popular framework and it takes advantage of full API
support that makes the software easily to maintain; moreover, it has a plugin-like structure
which makes possible for developers to create their own plugins to extend NORMA.
NORMA implements the ORM’s graphical notation for all ORM constraints making
easier for the final user to model a conceptual schema. From the reasoning perspective,
unlike ICOM and DogmaModeler, NORMA is currently able to cover reasoning even on
Derivation Rules (see below). An exhaustive demo of NORMA features can be found
here: https://vimeo.com/159092232 .
      </p>
      <p>ORM main features are:
formalized, it has a clear syntax and semantics;
graphical, has an official software (NORMA) that makes possible to express the
conceptual schema in an easy graphical way, like the examples shown in this
paper;
fact-oriented, all facts and rules are modeled in terms of controlled natural
language (FORML), sentences easy to understand even for non-technical users;
attribute-free, unlike ER and UML, it is more stable and adaptable to changing
business requirements.</p>
      <p>The following examples show how NORMA works and implements ORM. We show
only the very basic ORM constructs to simplify the general understanding. In Figure 1a
we have an ORM conceptual schema with some entities: Person, Male, Female, Husband
and Wife. Male and Female are subentities of Person in disjoint and covering. Husband
is subentity of Male and Wife is subentity of Female. Name is an entity value which
means a collection of data types (string, int, etc.). The relations are depicted with the tiny
rectangle boxes. The arity depends on the number of boxes (roles) and consequently of
(a) ORM schema.</p>
      <p>(b) ORM schema verbalization.
role players (entities). Smokes is a unary relation that is exactly like the boolean value in a
SQL column true/false. Has and marriage instead are binary relations. The fact-oriented
approach facilitates the understanding of the ORM conceptual schema in a way that even
the non-technical users can easily understand the semantics of the schema, since it is
expressed in controlled natural language; this approach helps also the modeler during
the validation of the schema to detect errors. This feature is implemented in NORMA by
ORM Verbalization Browser, as shown in Figure 1b.</p>
    </sec>
    <sec id="sec-3">
      <title>3. ORMIe Plugin</title>
      <p>
        ORMIe stands for ORM Inference Engine and it is a NORMA plugin that performs
reasoning on ORM schemas. Reasoning helps the modeler to detect relevant formal
properties of the schema that may be undetected during the modeling phase which give rise
to the software quality degradation and/or increased development times and costs.
Especially with large software this is helpful to understand if and why the schema could have
some inconsistencies, redundancies and unexpected behaviors. The reasoning services in
ORM are due to off-the-shelves reasoners developed by the Description Logics
community. As in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] for UML, we have a polynomial encoding of a subset of ORM language
in the Description Logics ALCQI and this encoding preserves enough semantics to keep
reasoning on ORM sound and complete. Once ORMIe is activated, it starts its inference
engine translating the ORM conceptual schema in OWL generating an ontology; after
that, the ontology is processed by Fact++ [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] reasoner in order to discover the implicit
knowledge, like inconsistencies or redundancies.
      </p>
      <p>In Figure 2a we can see an example on how this can help the modeler during the
modeling phase. The ORM conceptual schema contains the entity Italian and its
subentities: LatinLover, Lazy and Mafioso, that are in covering and disjoint. Then, we also have
another subentity called ItalianProf, which is in disjointed with Lazy and Mafioso.
Considering that the covering and the disjointness of the Italian set is made by LatinLover,
Lazy, Mafioso and that ItalianProf cannot be Lazy and Mafioso, we can conclude that all
the objects in ItalianProf must also be objects of LatinLover. The result of the reasoning
is shown in Figure 2b.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Reasoning on Derivation Rules</title>
      <p>ORM is enriched with Derivation Rules that are of particular interest for our
demonstration, because they are able to express knowledge that is beyond ORM capabilities and
(a) ORM conceptual schema without
reasoning.</p>
      <p>(b) ORM conceptual schema with reasoning.
to derive new information from other information, similar to triggers, stored procedures
and views in SQL. In NORMA these rules are expressed in FORML, which is a
controlled natural language. This means that Derivation Rules are well structured and they
have a precise syntax. This syntax has been studied and enriched with an
unambiguous semantics, so it was possible to catch the encoding in ALCQI and consequently in
OWL.</p>
      <p>In Figure 3a there is an example of an ORM conceptual schema with 3 Derivation
Rules (depicted with an asterisk in the entities and a textbox):</p>
      <p>Bird is an Animal that flies and doesn’t swim;
Fish is an Animal that swims and doesn’t fly;</p>
      <p>Shark is an Animal that swims, doesn’t fly and is dangerous.</p>
      <p>Since all the objects in Bird fly and never swim and vice versa for those that are in
Fish, it is pretty clear that a bird cannot be a fish and vice versa, so this constraint leads to
the disjointness between the corresponding entities. The entity Shark is a specialization
of the entity Fish, because it has the same properties of Fish, but it is also “dangerous”.
This leads to the inferred constraints in Figure 3b.</p>
      <p>Derivation Rules can be placed on subtype entities and also on relations. Until now,
ORMIe covers reasoning only for Subtype Derivation Rules.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions and Future Works</title>
      <p>We presented ORM, a modeling language used to design diagram at the conceptual level.
ORM is implemented in NORMA, an advanced conceptual modeling tool that extended
with the plugin ORMIe is able to perform automated reasoning to support the conceptual
modeling phase during the development of the software lifecycle. We demonstrated, by
means of examples, the importance of the reasoning since it provides implicit
information which can be undetected during the modeling phase. This approach helps the
modeler to preserve the quality of the conceptual schema and to avoid mistakes that could
lead the software to unexpected behaviors.</p>
      <p>The research and development of NORMA continues on two tracks: we are keeping
studying the formalization of Derivation Rules in order to cover binary relations as well;
we are currently considering to implement the explanation service, which could help the
modeler to understand the reason behind mistakes that may occur during the modeling
phase.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Halpin</surname>
          </string-name>
          .
          <article-title>Object-role modeling: Principles and benefits</article-title>
          .
          <source>IJISMD</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>33</fpage>
          -
          <lpage>57</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Halpin</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Morgan</surname>
          </string-name>
          .
          <article-title>Information modeling and relational databases (2</article-title>
          . ed.). Morgan Kaufmann,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>T.</given-names>
            <surname>Halpin</surname>
          </string-name>
          .
          <article-title>A Logical Analysis of Information Systems: static aspects of the data-oriented perspective</article-title>
          .
          <source>PhD thesis</source>
          , jul
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C. M.</given-names>
            <surname>Keet</surname>
          </string-name>
          .
          <article-title>Mapping the object-role modeling language ORM2 into description logic language dlrifd</article-title>
          .
          <source>CoRR</source>
          , abs/cs/0702089,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Jarrar</surname>
          </string-name>
          .
          <source>Towards automated reasoning on ORM schemes. In Conceptual Modeling - ER</source>
          <year>2007</year>
          , 26th International Conference on Conceptual Modeling, Auckland, New Zealand, November 5-
          <issue>9</issue>
          ,
          <year>2007</year>
          , Proceedings, pages
          <fpage>181</fpage>
          -
          <lpage>197</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>R.</given-names>
            <surname>Hodrob</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Jarrar</surname>
          </string-name>
          .
          <article-title>Mapping ORM into OWL 2</article-title>
          .
          <source>In Proceedings of the 1st International Conference on Intelligent Semantic Web-Services and Applications</source>
          ,
          <string-name>
            <surname>ISWSA</surname>
          </string-name>
          <year>2010</year>
          , Amman, Jordan, June 14-16,
          <year>2010</year>
          , page
          <issue>9</issue>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Jarrar</surname>
          </string-name>
          .
          <article-title>Mapping ORM into the SHOIN/OWL description logic</article-title>
          .
          <source>In On the Move to Meaningful Internet Systems</source>
          <year>2007</year>
          :
          <article-title>OTM 2007 Workshops, OTM Confederated International Workshops</article-title>
          and Posters, AWeSOMe, CAMS, OTM Academy Doctoral Consortium,
          <string-name>
            <surname>MONET</surname>
          </string-name>
          , OnToContent, ORM, PerSys, PPN, RDDS, SSWS, and
          <article-title>SWWS 2007, Vilamoura</article-title>
          , Portugal,
          <source>November 25-30</source>
          ,
          <year>2007</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , pages
          <fpage>729</fpage>
          -
          <lpage>741</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>E.</given-names>
            <surname>Franconi</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Mosca</surname>
          </string-name>
          .
          <article-title>Towards a core ORM2 language (research note)</article-title>
          .
          <source>In On the Move to Meaningful Internet Systems: OTM 2013</source>
          Workshops - Confederated
          <source>International Workshops: OTM Academy, OTM Industry Case Studies Program, ACM, EI2N</source>
          , ISDE, META4eS, ORM, SeDeS, SINCOM, SMS, and
          <article-title>SOMOCO 2013, Graz</article-title>
          , Austria, September 9 -
          <issue>13</issue>
          ,
          <year>2013</year>
          , Proceedings, pages
          <fpage>448</fpage>
          -
          <lpage>456</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>P. R.</given-names>
            <surname>Fillottrani</surname>
          </string-name>
          , E. Franconi, and
          <string-name>
            <given-names>S.</given-names>
            <surname>Tessaris</surname>
          </string-name>
          .
          <source>The ICOM 3</source>
          .
          <article-title>0 intelligent conceptual modelling tool and methodology</article-title>
          .
          <source>Semantic Web</source>
          ,
          <volume>3</volume>
          (
          <issue>3</issue>
          ):
          <fpage>293</fpage>
          -
          <lpage>306</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Dogmamodeler</surname>
          </string-name>
          . https://sourceforge.net/projects/dogmamodeler/.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <article-title>Orm on sourceforge</article-title>
          . https://sourceforge.net/projects/orm/.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <article-title>The orm foundation</article-title>
          . https://www.ormfoundation.org.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>D.</given-names>
            <surname>Berardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          , and G. De Giacomo.
          <article-title>Reasoning on UML class diagrams</article-title>
          .
          <source>Artif</source>
          . Intell.,
          <volume>168</volume>
          (
          <issue>1- 2</issue>
          ):
          <fpage>70</fpage>
          -
          <lpage>118</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Fact</surname>
          </string-name>
          <article-title>++ reasoner</article-title>
          . http://owl.man.ac.uk/factplusplus/.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>