<!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>The NORMA Tool for ORM 2</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Matthew Curland</string-name>
          <email>matthew.curland@logicblox.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Terry Halpin</string-name>
          <email>terry.halpin@logicblox.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>LogicBlox, Australia and INTI Education Group</institution>
          ,
          <country country="MY">Malaysia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>LogicBlox</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Second generation Object-Role Modeling (ORM 2) is a prime exemplar of fact-orientation, an approach that models the underlying facts of interest in an attribute-free way, using natural sentences to identify objects and the roles they play in relationships. ORM 2 provides languages and procedures for modeling and querying information systems at a conceptual level as well as mapping procedures for transforming between ORM structures and other structures, such as Entity Relationship (ER) models, class models in the Unified Modeling Language (UML), relational database models, extensible markup language schemas (XSD), and datalog. This paper provides an overview of Natural ORM Architect (NORMA), an ORM 2 tool under development that is implemented as a plug-in to Microsoft Visual Studio. For data modeling purposes, NORMA typically provides greater expressive power and semantic stability than provided by tools based on ER or UML. NORMA's support for automated verbalization and sample populations facilitates validation with subject matter experts, and its live error-checking provides efficient feedback to modelers.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Fact-oriented modeling is a conceptual approach (including languages and
procedures) for modeling, transforming, and querying information, that specifies the fact
structures of interest as well as the applicable business rules in terms of concepts that
are intelligible to the business users. Unlike Entity-relationship modeling (ER) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and
class diagramming in the Unified Modeling Language (UML) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], fact-orientation
makes no use of attributes as a way to encode facts, instead representing all ground
assertions of interest as atomic (non-decomposable) facts that are either existential
facts (e.g. There is a country named ‘Australia’) or elementary facts that predicate
over first-order individuals (objects that are either entities or values).
      </p>
      <p>Elementary facts are expressed using mixfix predicates, and are instances of fact
types. For example, the UML attributes Person.isSmoker and Person.birthdate are
modeled instead as Person smokes (unary fact type) and Person was born on Date (binary
fact type). Higher arity fact types are allowed, for example Person played Sport for Country
(a ternary) and Product in Year in Region sold in Quantity (a quaternary). This attribute-free
approach facilitates natural verbalization and population of models (important for
validating models with nontechnical domain experts), and promotes semantic stability
(e.g. one never needs to remodel an attribute and associated access paths if one later
wants to talk about an attribute).</p>
      <p>Business rules are modeled as constraints or derivation rules that apply to the
relevant business domain. Alethic constraints restrict the possible states or state
transitions of fact populations (e.g. No Person is a parent of itself), while deontic constraints are
obligations that restrict the permitted states or state transitions of fact populations
(e.g. It is obligatory that each Doctor is licensed to practice). Derivation rules enable some
facts or objects to be derived from others.</p>
      <p>
        Fact-oriented modeling approaches include Object-Role Modeling (ORM) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
Cognition-enhanced Natural Information Analysis Method (CogNIAM) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], the
Predicator Set Model (PSM) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], and Fully-Communication Oriented Information
Modeling (FCO-IM) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The Semantics of Business Vocabulary and Business Rules
(SBVR) initiative is fact-based in its use of attribute-free constructs [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. For an
overview of fact-oriented modeling approaches, including history and research directions,
see [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        Since the 1970s, various tools have been developed to support fact-orientation.
Early tools based on NIAM include IAST and RIDL* (based on the RIDL language
[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]). CogNIAM is currently supported by Doctool. FCO-IM is supported by the Case
Talk tool. Related ontology tools include DOGMA Studio and Collibra. ORM tools
began with InfoDesigner, which later evolved into InfoModeler, VisioModeler, and
the ORM Source Model solution in Microsoft Visio for Enterprise Architects.
ActiveQuery [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is an ORM conceptual query tool released as a companion to
InfoModeler.
      </p>
      <p>
        More recently, a number of tools have been developed based on second generation
ORM (ORM 2) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. These include Natural ORM Architect (NORMA), ActiveFacts
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and ORM-Lite. For data modeling purposes, the ORM 2 graphical notation is far
more expressive than UML’s graphical notation for class diagrams, and is also much
richer than industrial ER notations. A detailed summary of the ORM 2 graphical
notation is accessible at http://www.orm.net/pdf/ORM2GraphicalNotation.pdf. A
thorough treatment of the theory and practice of ORM 2 may be found in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>The rest of this paper provides an overview of the NORMA tool, and is structured
as follows. Section 2 summarizes the main components of NORMA. Section 3
illustrates some important capabilities of NORMA. Section 4 provides details of the
implementation architecture. Section 5 summarizes the main contributions and outlines
future research directions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Overview of NORMA</title>
      <p>
        NORMA is implemented as a plug-in to Microsoft Visual Studio. Most of NORMA is
open-source, and a public domain version is freely downloadable [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. A professional
version of NORMA is also under development. Fig. 1 summarizes the main
components of the tool. Users may declare ORM object types and fact types textually using
the Fact Editor, or drag new elements off the toolbox. New model components are
added to the conceptual model and displayed with graphical shapes on one or more
ORM diagrams The Model Browser tool window also provides a hierarchical view of
all model components. Sample object and fact instances may be entered in tabular
format in the Sample Population Editor.
      </p>
      <p>
        Currently, ORM constraints must be entered in the ORM diagrammer or the
Properties Window. These constraints are automatically verbalized in FORML (Formal
ORM Language), a controlled natural language that is understandable even by
nontechnical people. Our modeling team at Logicblox recently extended the Model
Browser to enable derivation rules for both fact types and subtypes to be formally
captured and stored in a rules component of the conceptual model based on the role
calculus [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. These derivation rules are also automatically verbalized.
      </p>
      <p>Using mappers, ORM schemas may be automatically transformed into various
implementation targets, including relational database schemas for popular database
management systems (SQL Server, Oracle, DB2, MySQL, PostgreSQL), datalog,
.NET languages (C#, VB, etc.), and XML schemas. A Relational View extension
displays the relational schemas in diagram form. The semantics underlying relational
columns can be exposed by selecting them and automatically verbalizing the ORM
fact types from which they were generated. An import facility can import ORM
models created in some other ORM tools, and can reverse engineer relational schemas in
SQL Server into ORM schemas. Import from further sources is planned.</p>
      <p>Other components facilitate navigation and abstraction. For example, multiple
concurrent windows viewing the same model allow shapes to be copied between
diagrams, the ORM Diagram Spy and hyperlinks in the Verbalization Browser allow
rapid navigation through a model, and the ORM Context Window automatically displays
the global schema neighborhood of a selected ORM element.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Examples of Some NORMA Features</title>
      <p>Feedback from industrial practitioners indicates that automated verbalization support
is one of the most useful features of NORMA. Fig. 2 shows a screen shot from
NORMA illustrating verbalization of a join subset constraint.
Here we have three binary fact types: Advisor serves in Country; Advisor speaks Language;
Language is used by Country. Entity types are shown as named, soft rectangles with their
reference mode in parenthesis. Logical predicates are depicted as a named sequence
of role boxes connected to the object types whose instances play those roles. The bar
over each predicate depicts a spanning uniqueness constraint, indicating that the fact
types are m:n, and can be populated with sets of fact instances, but not bags.</p>
      <p>The circled “⊆”connected by dashed lines to role pairs depicts a subset constraint.
When the constraint shape is selected, NORMA displays role numbers to highlight the
role sequence arguments to the constraint. In this example, the set of advisor-country
instances of the role-pair (1.1, 1.2) are constrained to be a subset of the set of
advisorcountry instances populating the role-pair (2.1, 2.2) projected from the role path from
Advisor through Language to Country. In passing through Language, a conceptual
inner join is performed on its entry and exit roles, so this is an example of a join-subset
constraint. The meaning of the constraint is clarified by the verbalization shown at the
bottom of Fig. 2. Because every aspect of an ORM model can be automatically
verbalized in such a high level language, non-technical domain experts can easily validate
the rules without even having to see or understand the diagram notation.</p>
      <p>A feature of NORMA that is especially useful to modelers is its live error checking
capability. Modelers are notified immediately of errors that violate a metarule that has
been implemented in the underlying ORM metamodel. Fig. 3 shows an example
where the subset constraint is marked with red fill because it is inconsistent with other
constraints present. In this case, the committee role of being chaired is declared to be
mandatory (as shown by the solid dot on the role connection), while the committee
role of including a member is declared to be optional. But the subset constraint
implies that if a committee has a chair then it must have that person as a member. So it is
impossible for the two fact types to be populated in this situation. NORMA not only
detects the error but suggests three possible ways to fix the problem.</p>
      <p>
        Fig. 4 illustrates a very simple example of mapping from ORM to a relational
schema as well as a datalog schema. For a detailed discussion of a much more
complex example, as well as comparisons with ER and UML, see [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
⇩
Patient(x), patient:nr(x:y) -&gt; uint[32](y).</p>
      <p>Gender(x), gender:code(x:y) -&gt; string(y).</p>
      <p>Drug(x), drug:name(x:y) -&gt; string(y).
patient:smokes(x) -&gt; Patient(x).
patient:gender[x]=y -&gt; Patient(x), Gender(y).
patient:name[x]=y -&gt; Patient(x), string(y).
patient:drug:isAllergicTo(x,y) -&gt; Patient(x), Drug(y).</p>
      <p>Patient(x) -&gt; patient:gender[x]=_.</p>
      <p>Patient(x) -&gt; patient:name[x]=_.</p>
      <p>gender:code(_:y) -&gt; y="M"; y="F".</p>
    </sec>
    <sec id="sec-4">
      <title>Implementation</title>
      <p>The NORMA designer is built primarily on the Domain Specific Language (DSL)
Toolkit from the Visual Studio SDK, as well as general Visual Studio extension
points. The implementation of NORMA adds multiple framework services to DSL to
enable a highly modularized and extensible system. Extension points are available for
file importers, additional DSL models and designers that interact with the core
NORMA models, and extension points for artifact generation. All core NORMA
components have exactly the same architecture as the extension models, except that
the core models cannot be removed from the list of current extensions.</p>
      <p>DSL was chosen because it was a model-driven system, providing for a large
percentage of the required code to be generated. The generated code defines a
transacted object model with standard notifications that enable responsive secondary
model changes in response to atomic changes in the object model. A particularly
important feature of DSL is the built-in support for delete closures, which provide
notifications for elements that are pending deletion but have not yet been detached
from the model. Delete closures enable NORMA to minimize the parts of the model
that require revalidation in response to a model change, which in turn enables
extremely responsive incremental validation irrespective of model size.</p>
      <p>The NORMA implementation relies on a number of enhancements to the DSL
tooling and runtime components. Most extensions are necessary because many of the
DSL supporting SDK components assume that the complete metamodel is known at
all times, whereas NORMA makes the opposite assumption—the complete
metamodel and associated rules are not known until a model file is opened and the set of
extension models are read from the root XML element in the model file. Allowing
multiple models also required significantly more flexibility for serialization of NORMA
models than for a standard DSL model. The NORMA modeling framework includes
multiple extensions to the DSL rules engine to enable compartmentalized model
validation that minimizes incremental processing within a model and isolates dependent
models from other models that they do not even know are loaded.</p>
      <p>Extensions to NORMA can be classified in the following areas:
1. Importers allow XML data sources with schemas not supported first-hand by
the NORMA designers (including older NORMA file formats) to be
transformed automatically on load. Most importers are XSLT transformations,
although additional wizards can be registered with Visual Studio to first
translate a non-XML data source into XML suitable for import.
2. Primary Domain Models (domain model is a DSL term for a metamodel) are
extensions that provide model elements and validation rules for runtime
execution inside the designer. Extension models provide schematized XML
components and a mapping from the in-memory model to the XML
elements, load fixup mechanisms to reach an internally consistent state at load
completion, and rules to maintain consistency after the model is loaded.
Provided extensions in this category include the core ORM metamodel
(FactType, ObjectType, etc) and the relational metamodel, which contains
elements such as Table, Column, and ReferenceConstraint.
3. Presentation Models have the same characteristics as primary domain
models and are modeled similarly. However, presentation elements are treated as
views on the underlying model, not the model itself. The ORM Diagram and
Relational View, along with their contained shapes, are defined in
presentation models. A single element from a primary domain model may be
associated with multiple presentation shapes.
4. Bridge Models are also domain models with the special function of relating
two primary domain models. Bridge models consist of relationships between
two other models, plus generation settings that control the current
relationships between the models. Primary domain models are designed to be
standalone so that transformations can be performed in either direction. This
allows, for example, an importer to be written for the XML schema of the
relational model that is generated directly from a database and has no ORM
information. Bridge models enable changes in one primary model to be
applied to another loaded standalone model while maintaining the relationships
between the source and target.
5. Shell Components are views and editors targeting specific parts of an
inmemory ORM model, such as the Model Browser and Fact Editor tool
windows discussed earlier.
6. Artifact Generators produce non-ORM outputs such as DDL, class models,
and other implementations mapped from an ORM model. In general, artifact
generators are much easier to create than DSL models because generators
deal with a static artifact—namely a snapshot of the ORM model in XML
form—and do not have to worry about the change management that is the
bulk of the implementation cost for domain models. NORMA’s generation
system supports a dependent hierarchy of generated files based on output
format. A single generator can request inputs of both the standard ORM
format (with required extensions specified by the generator) and any other
formats produced by other registered generators.</p>
      <p>The hierarchical generation process allows analysis to be performed once
during generation, and then reused for multiple other generators. NORMA
provides XML schemas for all intermediate formats, allowing extension
generators to understand and leverage existing work. Some examples of
intermediate formats we use are DCIL (relational data constructs), DDIL (XML
representation of data-definition constructs, created from the DCIL format),
and PLiX (an XML representation of object-oriented and procedural code
constructs). These intermediate XML formats are transformed into
targetspecific text artifacts. DDIL is directly transformed to either SQL Server or
Oracle specific DDL formulations, and PLiX generates C#, VB, PHP, and
other languages—all without changing the intermediate file formats.</p>
      <p>Another advantage of the use of well-defined intermediate structures is
the ability to modify these structures during artifact generation. For example,
attempting to decorate an ORM model with auditing constructs is extremely
invasive at the conceptual model level. However, adding auditing columns to
each table is a simple transform from DCIL to DCIL with additional
columns for each table, with the modified file continuing in the generation
pipeline.</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>
        This paper provided a brief overview of the NORMA tool and its support for ORM 2.
Major recent work not reported on here because of space restrictions includes deep
support for entry of formal derivation rules and their automated verbalization, as well
as a prototype implementation of FORML 2 as an input language. Details on the latter
may be found in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Research is also under way to extend NORMA with support for
dynamic rules [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bakema</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zwart</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>van der Lek</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <year>2000</year>
          ,
          <article-title>Fully Communication Oriented Information Modelling</article-title>
          . Ten Hagen Stam.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Balsters</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <year>2008</year>
          , '
          <article-title>Formal Semantics of Dynamic Rules in ORM', On the Move to Meaningful Internet Systems 2008</article-title>
          : OTM 2008 Workshops, eds. R.
          <string-name>
            <surname>Meersman</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Tari</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Herrero</surname>
          </string-name>
          et al.,
          <string-name>
            <surname>Monterrey</surname>
          </string-name>
          , Mexico, Springer LNCS 5333, pp.
          <fpage>699</fpage>
          -
          <lpage>708</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bloesch</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <year>1997</year>
          , '
          <article-title>Conceptual queries using ConQuer-II'</article-title>
          ,
          <source>Proc. ER'97: 16th Int. Conf. on conceptual modeling</source>
          , Springer LNCS, no.
          <issue>1331</issue>
          , pp.
          <fpage>113</fpage>
          -
          <lpage>126</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>P. P.</given-names>
          </string-name>
          <year>1976</year>
          , '
          <article-title>The entity-relationship model-towards a unified view of data'</article-title>
          .
          <source>ACM Transactions on Database Systems</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ), pp.
          <fpage>9</fpage>
          −
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Curland</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Stirewalt</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <year>2009</year>
          , '
          <article-title>A Role Calculus for ORM', On the Move to Meaningful Internet Systems 2008</article-title>
          : OTM 2009 Workshops, eds. R. Meersman,
          <string-name>
            <given-names>P.</given-names>
            <surname>Herrero</surname>
          </string-name>
          et al.,
          <string-name>
            <surname>Vilamoura</surname>
          </string-name>
          , Portugal, Springer LNCS 5872, pp.
          <fpage>692</fpage>
          -
          <lpage>703</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <year>2005</year>
          , '
          <article-title>ORM 2', On the Move to Meaningful Internet Systems 2005</article-title>
          : OTM 2005 Workshops, eds
          <string-name>
            <given-names>R.</given-names>
            <surname>Meersman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Tari</surname>
          </string-name>
          , et al.,
          <source>Cyprus</source>
          . Springer LNCS 3762, pp
          <fpage>676</fpage>
          -
          <lpage>87</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <year>2007</year>
          , '
          <article-title>Fact-Oriented Modeling: Past, Present</article-title>
          and Future', Conceptual Modelling in Information Systems Engineering, eds. J.
          <string-name>
            <surname>Krogstie</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Opdahl</surname>
          </string-name>
          &amp; S. Brinkkemper, Springer, Berlin, pp.
          <fpage>19</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <year>2009</year>
          , '
          <article-title>Object-Role Modeling'</article-title>
          ,
          <source>Encyclopedia of Database Systems</source>
          , ed. L,
          <string-name>
            <surname>Liu &amp; M. Tamer</surname>
            <given-names>Ozsu</given-names>
          </string-name>
          , Springer-Verlag, Berlin.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <year>2010</year>
          , '
          <article-title>Object-Role Modeling: Principles and Benefits'</article-title>
          ,
          <source>International Journal of Information Systems Modeling and Design</source>
          , Vol.
          <volume>1</volume>
          , No. 1,
          <string-name>
            <given-names>IGI</given-names>
            <surname>Global</surname>
          </string-name>
          , pp.
          <fpage>32</fpage>
          -
          <lpage>54</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Wijbenga</surname>
            ,
            <given-names>J. P.</given-names>
          </string-name>
          <year>2010</year>
          , 'FORML 2', Enterprise, Business-Process and Information Systems Modeling, eds. I. Bider et al.,
          <source>Springer LNBIP 50</source>
          , pp.
          <fpage>247</fpage>
          -
          <lpage>260</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Halpin</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Morgan</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <year>2008</year>
          ,
          <string-name>
            <given-names>Information</given-names>
            <surname>Modeling</surname>
          </string-name>
          and Relational Databases, Second Edition, Morgan Kaufmann, San Francisco.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Heath</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <year>2009</year>
          . ActiveFacts Website: http://dataconstellation.com/ActiveFacts/.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>ter Hofstede</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Proper</surname>
          </string-name>
          , H. &amp;
          <string-name>
            <surname>van der Weide</surname>
          </string-name>
          , T.
          <year>1993</year>
          , '
          <article-title>Formal definition of a conceptual language for the description and manipulation of information models'</article-title>
          ,
          <source>Information Systems</source>
          , vol.
          <volume>18</volume>
          , no.
          <issue>7</issue>
          , pp.
          <fpage>489</fpage>
          -
          <lpage>523</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Meersman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <year>1982</year>
          ,
          <article-title>The RIDL Conceptual Language</article-title>
          ,
          <source>Int. Centre for Information Analysis Services, Control Data Belgium</source>
          , Brussels.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Nijssen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Lemmens</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <year>2008</year>
          , '
          <article-title>Verbalization for Business rules and Two Flavors of Verbalization for Fact Examples', On the Move to Meaningful Internet Systems 2008</article-title>
          : OTM 2008 Workshops, eds. R.
          <string-name>
            <surname>Meersman</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Tari</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Herrero</surname>
          </string-name>
          et al.,
          <source>Springer LNCS 5333</source>
          , pp.
          <fpage>760</fpage>
          -
          <lpage>769</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>NORMA (Natural ORM Architect</surname>
          </string-name>
          <article-title>) tool download site for public-domain version</article-title>
          : http://www.ormfoundation.org/files/folders/norma_the_software/default.aspx.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. Object Management Group 2009,
          <article-title>UML 2.2 Specifications</article-title>
          . Online at: www.omg.org/uml.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. Object Management Group 2008,
          <article-title>Semantics of Business Vocabulary and Business Rules (SBVR)</article-title>
          . Online at: http://www.omg.org/spec/SBVR/1.0/.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>