<!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 Feasibility Study on the Validation of Domain Speci c Languages Using OWL 2 Reasoners</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ye Liu</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Soren Hoglund</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ali Hanzala Khan</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ivan Porres</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>TUCS Turku Centre for Computer Science D. of Information Technologies, Abo Akademi University Joukahaisenkatu</institution>
          <addr-line>3-5, FI-20520 Turku</addr-line>
          ,
          <country country="FI">Finland</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>1999</year>
      </pub-date>
      <abstract>
        <p>In this article we report on our experiences using the OWL 2 reasoners HermiT and Pellet to validate domain-speci c languages dened using UML-like metamodels. Currently there exists few tools to validate metamodels. Using ontologies and reasoners to de ne and validate metamodels is a possible solution to this problem. We evaluate the reasoners according to expressiveness, correctness, performance and problem reporting capabilities. We use metamodels from the Atlantic Zoo metamodel repository as input for our comparison, and report on our experiences with the zoo.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Model Driven Engineering (MDE) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] advocates the use of models to represent
the most relevant design decisions in a software development project. Each
software model is described using a particular modeling language, such as the Uni ed
Modeling Language (UML) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] or a domain-speci c language. The de nition of
a modeling language is given using a metamodeling language or a language to
de ne modeling languages. These metamodeling languages share common
fundamental concepts such as classes, properties and the specialization of classes
and properties, we call such languages UML-like metamodeling languages.
      </p>
      <p>The study of metamodeling languages has led to a number of practical tools
such as model repositories, diagram editors, model transformation tools and
code generation tools that simplify enormously the creation of new development
tool chains that use UML or domain-speci c modeling languages in software
development projects. However, the topic of metamodel validation is seldom
discussed and there is a lack of tool support for this task.</p>
      <p>
        In our previous work [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], we described a mapping from a UML-based
metamodeling language to OWL 2. In this article we discuss our practical experiences
in validating metamodels from a public repository using two OWL 2 reasoners.
The main objective of these experiments is to obtain empirical evidence that the
idea of using OWL 2 reasoners to validate metamodels in practice is viable.
      </p>
      <p>We proceed as follows: in Section 2 we discuss the need for metamodel
validation. In Section 3 we detail the objectives of the study. In Section 4, Section 5 and
Section 6 we present the materials used in the investigation. Section 7 presents
the results, and Section 8 is the conclusion.</p>
    </sec>
    <sec id="sec-2">
      <title>The need for Metamodel Validation</title>
      <p>The creation of a new metamodel is not a simple task since it requires a good
knowledge of the problem domain and how to capture its properties using a small
set of metamodeling concepts. A metamodel often includes many constraints on
how concepts in a model can be related to each other, such as multiplicity,
domain and range, composition and subset constraints. If not chosen carefully,
these constraints may lead to contradictions.</p>
      <p>For example, lets assume we are creating a metamodel for a Statechart
language that includes concepts such as simple states, composite states (that can
contain other states) and transitions between states. A fragment of such a
metamodel is shown in the top of Figure 1. This metamodel contains a rather obvious
contradiction: there is an association with the minimum multiplicity larger than
the maximum multiplicity. This contradiction means that there are no valid
models that can make use of this association.</p>
      <p>Another possible contradiction is shown in the bottom of Figure 1. The
depicted metamodel requires each instance of State to be in a composite
relationship with an instance of CompositeState. However, as CompositeState is a
subclass of State it inherits this requirement, which leads to each instance of
CompositeState having to be in a composite relationship with another instance
of CompositeState. Given a nite set of instances of CompositeState, it is
impossible not to violate one of the composition requirements | elements having
only one owner and there being no cycles in the compositon. As a consequence
there is no model with a nite number of elements that conforms to the given
metamodel.</p>
      <p>
        As shown in the examples, we consider it necessary to validate a new
metamodel to ensure that no such problems exist before actual tools and models are
created.
To tackle the previous problem, we are working towards the integration of an
automatic metamodel validation tool in a metamodel editor. The validation is based
on the idea of translating a metamodel into an ontology and using a reasoner
to check the ontology for consistency and class satis ability. We have decided to
use the OWL 2 Web Ontology Language [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] as our metamodel representation
language.
      </p>
      <p>
        OWL 2 provides classes, properties, individuals, and data values, that we
can use to de ne the main concepts of UML-like metamodeling languages as
shown by the authors [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. OWL 2 has di erent concrete syntaxes
(functionalstyle syntax, Manchester syntax, RDF/XML, etc.). In this article, we use the
OWL 2 functional-style syntax, because it allows ontologies to be written in a
compact form and preserves readability.
      </p>
      <p>
        We have noticed that OWL 2 is not expressive enough for some restrictions in
metamodels. For instance, there is no decidable combination of axioms in OWL
2 to express UML composition and its relevant restrictions. This problem could
be solved by writing extra rules in another language. One possibility is to use
the OCL Object Constraint Language [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. It is part of the UML standard and
it is used to describe metamodel and model constraints. However, OCL operates
on the syntactic level, which leads to a very extensive ruleset for UML elements.
To avoid this problem, we have decided to use SWRL[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. SWRL combines OWL
and the RuleML (Rule Markup language). It extends the set of OWL axioms
to include rules, thus restrictions in metamodels can be represented in SWRL
rules.
      </p>
      <p>
        To validate an ontology expressed in OWL 2 and SWRL, we need a reasoner
that supports both languages. There are tools which provide reasoning services
for OWL 2 ontologies as well as support of DL-safe SWRL rules [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], such as
Pellet and HermiT. We introduce them in Section 6.
      </p>
      <p>It is still an open question if this idea is feasible in practice. In the next
section we present a study that tries to answer this question.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Objectives of the Study</title>
      <p>The main goal of this article is to study the feasibility of using OWL 2 and SWRL
reasoners to validate metamodels for domain speci c languages. The feasibility
criteria is as follows:</p>
      <sec id="sec-3-1">
        <title>1. Expressiveness of OWL2 and SWRL</title>
        <p>One of the main objectives of our research is to judge the expressiveness of
OWL 2 and SWRL in terms of expressing the concepts of Domain Speci c
Languages developed by using an UML-like Metamodeling language.
2. Correctness of Reasoners Some of the existing reasoners are experimental
research tools under constant development. We would like to know whether
the current implementation of each reasoner is mature enough to produce
reliable results.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3. Performance</title>
        <p>We want to know how much processing time is required to validate a
metamodel. Can a modern desktop computer perform this task with ease? Can
the validation be performed on the y while editing a metamodel or when
we save the metamodel into a le?</p>
      </sec>
      <sec id="sec-3-3">
        <title>4. Problem Reporting</title>
        <p>Are the messages produced by an OWL2 reasoner intelligible by the
metamodel creator? Can we trace back inconsistencies in a generated ontology to
the original metamodel elements?
5. Problems in published metamodels Since we are also planning to
validate many existing metamodels, we are also interested to know if there are
problems in published metamodels.
3.1</p>
      </sec>
      <sec id="sec-3-4">
        <title>Study Execution</title>
        <p>In order to answer the previous questions we select a number of metamodels,
transform them into an ontology and check them for consistency and satis
ability using a reasoner. We measure execution time and observe eventual error
messages.</p>
        <p>In order to asses the maturity of the reasoner implementation, we have
decided to select two independently developed reasoners and compare their output.</p>
        <p>
          To ensure that the metamodels to validate are representative we have not
created the metamodels ourselves. Instead we have decided to process all the
metamodels in a public repository: the Atlantic Metamodel Zoo [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>We describe the materials for our study in the next three sections.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The Atlantic Metamodel Zoo</title>
      <p>The Atlantic Metamodel Zoo is a library of metamodels maintained by the
AtlanMod team. At the time of writing this text, it contains 286 metamodels
representing diverse domains such as LateX, Java, HTML. The metamodels are
available in di erent languages, including UML 2, OWL, KM3 etc.. We choose
to validate the metamodels expressed in UML 2.</p>
      <p>Metamodels expressed in UML 2 are identi ed by their headers and the
elements for describing its structure. The headers must include the namespace
URL for the UML metamodel and elements pre xed with uml:. An example of
such a metamodel is shown in Listing 1.1. This example shows two classes: Book
and Chapter associated by a simple composition.</p>
      <p>The metamodels in the Atlantic Zoo vary considerably in size and
complexity. In any case, these metamodels are considerably smaller than the UML
metamodel and they do not contain OCL constraints. We consider that the
metamodels in the Atlantic Zoo provide a good sample of metamodels for domain-speci c
languages.</p>
    </sec>
    <sec id="sec-5">
      <title>A Metamodel to OWL2 Transformation</title>
      <p>
        The transformation from a metamodel expressed using UML to OWL 2 is
implemented using the Model-to-Text transformation tool MOFScript [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>MOFScript consists of two parts: the MOFScript tool and the MOFScript
language. The MOFScript tool is an implementation of the MOFScript language
and it provides ways of editing, compiling and executing MOFScript
transformation code. MOFScript transformations are MOFScript language programs that
de ne a set of rules that can translate metamodel elements and relations between
them to expected output through print statements. The MOFScript
transformation code is written based on one or more input metamodels, then compiled and
executed on one or more loaded input les which contains models conforming to
the input metamodels.</p>
      <p>
        The input metamodel in our implementation is UML2 2.1.0, the input le is a
.uml le which contains a UML metamodel in XML syntax. There are two output
les: one contains an OWL 2 ontology written in OWL 2 functional syntax [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
and the other contains SWRL rules in OWL RDF/XML syntax.
      </p>
      <p>As mentioned in the previous sections, there are some restrictions of
metamodeling concepts that have to be written in SWRL rules. However, ontology
reasoners can not process OWL 2 functional syntax with SWRL rules embedded.
As a solution, we create extra SWRL rules written in RDF syntax in a separate
OWL document and import this ontology in the main ontology written in OWL
2 functional syntax. For instance, the generated ontologies of the metamodel
shown in Listing 1.1 are Listing 1.2 and Listing 1.3.
6</p>
    </sec>
    <sec id="sec-6">
      <title>OWL 2 Reasoners</title>
      <p>Once the ontology of a metamodel has been generated by using the
transformation described before, we use a reasoner to check the ontology consistency and
satis ability. In terms of an ontology representing a metamodel:
1. Metamodel consistency means that there exists at least one model that
conforms to that metamodel.
2. Metaclass satis ability means there is at least one model element that can
belong to the class (without making the metamodel inconsistent). In the
context of a metamodel, instantiating an unsatis able metaclass leads to
a contradiction and therefore the metaclass cannot be used in any model.
This is also refered as concept satis ability in the services provided by the
reasoners.</p>
      <p>The selection criteria for a reasoner were complete support for OWL2, SWRL
and also that the reasoner is freely available as open source. The rst two
requirements are motivated by the ontologies used in our study. The last requirement
ensures that the study is easily repeatable by others.</p>
      <p>Based on these criteria, we have chosen the following two reasoners:</p>
      <p>These reasoners are either already available as a Protege (an open source
ontology editor) plugin or will be supported. They can also all be used from the
command line.</p>
      <p>In our experiment, we run HermiT 1.2.1 from the command line and use
the options -k and -U to check the consistency and concept satis ability
respectively. In the case of Pellet, we use version 2.0.1 from the command line and
use the options consistency and unsat to check the consistency and concept
satis ability respectively.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Study Results</title>
      <p>Since metamodel validation involves both reasoners and metamodels, the
results of our study depends on two aspects: the reasoning tools an the input
metamodels. First, we evaluate the reasoners in terms of maturity, performance,
expressiveness, and their problem reporting mechanism. Then we investigate any
reported problems in the published metamodels.
7.1</p>
      <sec id="sec-7-1">
        <title>Expressivness</title>
        <p>The expressiveness is evaluated in two aspects: the concepts contained in the
metamodels and the Description Logic which the reasoners are based on.</p>
        <p>On one hand, the metamodels in the Atlantic Zoo are simple in the sense
that they do not cover all the concepts that are within the ability of the UML
metamodeling language. For example, there are no metamodels that contain
any ordered properties, ordered composition or ordered subset properties. The
constraints of these concepts are expressed in SWRL rules.</p>
        <p>On the other hand, we notice problems with UML composition: translating
composition to OWL 2 requires the transitivity axiom and irre exive axiom,
whereas the OWL 2 speci cation forbids the two axioms used on the same object
property. This can be solved by expressing them in SWRL, although SWRL rules
are only applied on individuals rather than classes.
7.2</p>
      </sec>
      <sec id="sec-7-2">
        <title>Maturity of reasoners</title>
        <p>Both HermiT and Pellet can process all the ontologies generated from the
Atlantic Zoo without generating any run time error or getting into an in nite loop.
Furthermore, both reasoners always produce the same report for all the
metamodels. This is signi cant because they have been implemented independently
by two di erent development groups. Based on this, we claim that the current
implementation of both HermiT and Pellet are mature enough for the task of
validating metamodels.</p>
        <p>
          During our experiment, we found that Pellet 2.0.1 supports OWL 1.1
functional syntax [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] which is di erent from OWL 2 in terms of pre x declaration
and datatype maps. HermiT supports strict OWL 2 functional syntax. So the
ontologies to be processed by HermiT and Pellet are slightly di erent
syntactically, Accordingly, the MOFScript transformation for each syntax should be
di erent too.
7.3
        </p>
      </sec>
      <sec id="sec-7-3">
        <title>Performance</title>
        <p>We run our performance experiments using a desktop computer with an Intel
Core 2 6400 processor running at 2.13GHz, 2GB of RAM, Linux Fedora Core 10
and Java 1.6.0 10 rc2. We process each metamodel three times and report the
average execution time.</p>
        <p>Figure 2 shows the time required for HermiT and Pellet to process each
metamodel. The x-axis represents the number of axioms in a generated
ontology. The y-axis represents the total time in seconds necessary to load an
ontology representing a metamodel, and check it for consistency and satis
ability. As for the counting of number of axioms, though, certain expressions are a
combination of OWL 2 axioms. For instance, the minimum cardinality in the
Figure 1 is expressed as follows, which is a combination of axiom SubClassOf
and ObjectMinCardinality, we count this as one axiom.</p>
        <p>SubClassOf(State ObjectMinCardinality(2 State_outgoing ))</p>
        <p>As we can observe from the gure, HermiT is consistently faster than Pellet,
but both tools can process each metamodel in less than four seconds.</p>
        <p>Based on this, we consider that the e ency of the two reasoners is satisfactory
for the given problem and an average desktop computer.
7.4</p>
      </sec>
      <sec id="sec-7-4">
        <title>Problem Reporting</title>
        <p>Pellet produces an error message if a given input contains a syntax error or
the wrong le header. Such input cannot be further checked for consistency
and unsatis ability. When checking consistency, Pellet simply shows if the input
ontology is consistent or not. When checking unsatis ability, given a consistent
ontology, Pellet reports the number of elements checked, time used and number
of unsatis able elements. If there are unsatis able elements, the speci c class
names are shown.</p>
        <p>Pellet provides an option to print verbose information while reasoning. The
printed information indicating input size, speci c numbler of classes, properties
and individuals, expressivity, used time summary, etc.. Once an element that
leads to an inconsistency is found, Pellet stops further processing and points out
a possible reason, but the actual reason still needs be veri ed by users.
4.5</p>
        <p>4
3.5
)
s
don 3
c
e
s
(e 2.5
m
i
T
1.5
2
1
0.5
0</p>
        <p>Reasoner Performance Comparision</p>
        <p>Pellet</p>
        <p>HermiT
500</p>
        <p>1000
Size (lines of axioms)
1500
2000</p>
        <p>HermiT also provides verbose infomation printing, such as the le under
processing, timing for parsing, etc.. In contrast to Pellet, when an input is
inconsistent, HermiT shows no possible reasons. As far as processing procedure is
concerned, HermiT di ers from Pellet in that it allows checking unsatis ablity
of an inconsistent metamodel.</p>
        <p>Regardless of how the two reasoners report the results, the information they
give can be di cult to interpret when a metamodel is inconsistent or has
unsatis able concepts. In the best case, they show the name of the unsatis able
concepts but no further explanations. More information on what makes a concept
unsatis able would be extremely helpful.
7.5</p>
      </sec>
      <sec id="sec-7-5">
        <title>Problems in Published Metamodels</title>
        <p>
          During our experiment with the 286 metamodels in the Atlantic zoo, we found
279 metamodels that are consistent and satis able and 7 with validation
problems. The 7 unsatis able metamodels are ekaw, paperdyne, pcs, micro, sigkdd,
Openconf and iasted. These are all generated from ontologies dealing with
conference organization by the OntoFarm Project [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] .
        </p>
        <p>We investigated the reason of the unsatis ablity and found problems in the
metamodels in the source .uml les. The original metamodels have two classes
Evaluated_Paper and Assigned_Paper, which both have a self association with
a minimum cardinality of 3 and a maximum cardinality of 1.</p>
        <p>
          We also examined the original ontologies [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] from which the UML
metamodels are generated. The ontologies only state that the minimum cardinality
is 3, but do not contain any axiom about the maximum cardinality. We suspect
the problem lies in the transformation used to convert each ontology to UML.
8
        </p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Conclusions</title>
      <p>In this article we have studied the feasibility of an approach to validate
metamodels using a OWL 2 reasoners. The rst step of validation is transforming
UML metamodels to OWL 2 ontologies. We use MOFScript to implement the
transformation from UML to OWL 2 and SWRL. The second step is to validate
the generated ontologies with a reasoner. This second step was the focus of this
article.</p>
      <p>We have processed all the metamodels in the Atlantic Zoo. This comprises
286 metamodels for domain-speci c languages created independently. To our
knowledge this is the most comprehensive empirical evaluation on the use of
OWL 2 in metamodeling to the date.</p>
      <p>The size of the metamodels can be considered small when compared to the
metamodel of the UML language. None of the metamodels use OCL constraints
or advanced metamodeling features such as subset properties. However, we
consider that the Atlantic Zoo provides a good sample of how metamodel in
domainspeci c languages are used in practice.</p>
      <p>Based on our experiences, we consider that OWL 2 combined with SWRL
can be used to represent all the metamodels in the repository. Also, the Pellet
and HermiT reasoners could process each metamodel in less than four seconds
and always provided the same results.</p>
      <p>Appendix
1 &lt;?xml v e r s i o n=" 1 . 0 " e n c o d i n g="ISO 8859 1 "?&gt;
2 &lt;uml : Model xmi : v e r s i o n=" 2 . 1 "
xmlns : xmi="http : / / schema . omg . org / s p e c /XMI/ 2 . 1 "
xmlns : uml="http : / /www. e c l i p s e . org /uml2 / 3 . 0 . 0 /UML"
xmi : i d=" dkpFAOiaEd6gMtZRCjS81g " name="Metamodel "&gt;
3 &lt;packagedElement xmi : type="uml : Package "</p>
      <p>xmi : i d=" dkpFAeiaEd6gMtZRCjS81g " name="Book "&gt;
4 &lt;packagedElement xmi : type="uml : A s s o c i a t i o n "
xmi : i d=" dkpFCuiaEd6gMtZRCjS81g "
name="A Book Chapter "
memberEnd=" dkpFCeiaEd6gMtZRCjS81g
dkpFC iaEd6gMtZRCjS81g "&gt;
5 &lt;ownedEnd xmi : i d=" dkpFC iaEd6gMtZRCjS81g " name="book "
type=" dkpFA iaEd6gMtZRCjS81g " i s U n i q u e=" f a l s e "
a s s o c i a t i o n=" dkpFCuiaEd6gMtZRCjS81g "&gt;
6 &lt;upperValue xmi : type="uml : L i t e r a l U n l i m i t e d N a t u r a l "
xmi : i d=" dkpsEuiaEd6gMtZRCjS81g " v a l u e="1 "/&gt;</p>
      <p>Listing 1.1. An example of metamodel presented in UML 2
1 P r e f i x ( r d f s :=&lt;http : / /www. w3 . org /2000/01/ rdf schema#&gt;)
2 P r e f i x ( owl2xml:=&lt;http : / /www. w3 . org /2006/12/ owl2 xml#&gt;)
3 P r e f i x ( owl:=&lt;http : / /www. w3 . org /2002/07/ owl#&gt;)
4 P r e f i x ( xsd:=&lt;http : / /www. w3 . org /2001/XMLSchema#&gt;)
5 P r e f i x ( r d f :=&lt;http : / /www. w3 . org /1999/02/22 rdf syntax ns#&gt;)
41
42 D e c l a r a t i o n ( ObjectProperty ( : Book Book book ) )
43 ObjectPropertyDomain ( : Book Book book : Book Book )
44 ObjectPropertyRange ( : Book Book book : Book Book )
45 SubClassOf ( : Book Book ObjectMinCardinality (1 : Book Book book ) )
46 SubClassOf ( : Book Book ObjectMaxCardinality (1 : Book Book book ) )
47 )</p>
      <p>Listing 1.2. Ontology in OWL 2 functional syntax
1 &lt;?xml v e r s i o n=" 1 . 0 " encoding="UTF 8"?&gt;</p>
      <p>Listing 1.3. SWRL rules written in OWL RDF syntax</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Conrad</given-names>
            <surname>Bock</surname>
          </string-name>
          , Achille Fokoue,
          <string-name>
            <given-names>Peter</given-names>
            <surname>Haase</surname>
          </string-name>
          , Rinke Hoekstra, Ian Horrocks, Alan Ruttenberg, Uli Sattler, and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Smith</surname>
          </string-name>
          .
          <article-title>OWL 2 Web Ontology Language Document Overview</article-title>
          . W3 Recommendation Available at http://www.w3.org/TR/ owl2-overview/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Conrad</given-names>
            <surname>Bock</surname>
          </string-name>
          , Achille Fokoue,
          <string-name>
            <given-names>Peter</given-names>
            <surname>Haase</surname>
          </string-name>
          , Rinke Hoekstra, Ian Horrocks, Alan Ruttenberg, Uli Sattler, and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Smith</surname>
          </string-name>
          .
          <article-title>OWL 2 Web Ontology Language Structural Speci cation and Functional-Style Syntax</article-title>
          . W3 recommendation, available at http://www.w3.org/TR/2009/REC-owl2
          <string-name>
            <surname>-</surname>
          </string-name>
          syntax-20091027/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Boris</given-names>
            <surname>Motic</surname>
          </string-name>
          ,
          <string-name>
            <surname>Peter F. Patel-Scheneider</surname>
          </string-name>
          ,
          <source>Ian Horrocks. OWL 1</source>
          .
          <article-title>1 Web Ontology Language Structural Speci cation</article-title>
          and
          <string-name>
            <surname>Functional-Sytle</surname>
            <given-names>Syntax</given-names>
          </string-name>
          , May
          <year>2007</year>
          . Available at http://www.webont.
          <source>org/owl/1</source>
          .1/owl_specification.html.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Clark and Parsia. Pellet:
          <article-title>OWL 2 Reasoner for Java</article-title>
          . Homepage, available at http://clarkparsia.com/pellet.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Foundation. MOFScript Homepage</surname>
          </string-name>
          . Available at http://www.eclipse. org/gmt/mofscript/.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Soren Hoglund,
          <string-name>
            <surname>Ali H. Khan</surname>
            , Ye Liu, and
            <given-names>Ivan</given-names>
          </string-name>
          <string-name>
            <surname>Porres</surname>
          </string-name>
          .
          <article-title>Representing and Validating Metamodels using OWL 2 and SWRL</article-title>
          .
          <source>Technical Report 973</source>
          , D. of Information Technologies,Abo Akademi University, Joukahaisenkatu 3-5, FI-20520
          <string-name>
            <surname>Turku</surname>
          </string-name>
          , Finland,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Ian</given-names>
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <surname>Peter F. Patel-Schneider</surname>
            , Harold Boley, Said Tabet, Benjamin Grosof, and
            <given-names>Mike</given-names>
          </string-name>
          <string-name>
            <surname>Dean</surname>
          </string-name>
          .
          <article-title>SWRL: A Semantic Web Rule Language Combining OWL</article-title>
          and RuleML,
          <year>2004</year>
          . Availible at http://www.w3.org/Submission/SWRL/.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Stuart</given-names>
            <surname>Kent</surname>
          </string-name>
          .
          <article-title>Model Driven Engineering</article-title>
          .
          <source>In Proc. of IFM International Formal Methods</source>
          <year>2002</year>
          , volume
          <volume>2335</volume>
          <source>of LNCS</source>
          . Springer-Verlag,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Vladimir</given-names>
            <surname>Kolovski</surname>
          </string-name>
          , Bijan Parsia, and
          <string-name>
            <given-names>Evren</given-names>
            <surname>Sirin</surname>
          </string-name>
          .
          <article-title>Extending the shoiq(d) tableaux with dl-safe rules: First results</article-title>
          . In Bijan Parsia, Ulrike Sattler, and David Toman, editors,
          <source>Description Logics</source>
          , volume
          <volume>189</volume>
          <source>of CEUR Workshop Proceedings. CEURWS.org</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>10. Information System of Oxford University. Hermit OWL Reasoner.</mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Jon</given-names>
            <surname>Oldevik. MOFScript User</surname>
          </string-name>
          <string-name>
            <surname>Guide</surname>
          </string-name>
          ,
          <year>December 2009</year>
          . Document available at http://www.eclipse.org/gmt/mofscript/doc/MOFScript-User-Guide-
          <volume>0</volume>
          .8.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <source>OMG. UML 2</source>
          .
          <article-title>0 OCL Speci cation</article-title>
          ,
          <year>October 2003</year>
          . Document, available at http: //www.omg.org/.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <source>OMG. UML 2</source>
          .
          <article-title>2 Superstructure Speci cation</article-title>
          ,
          <year>February 2009</year>
          . Available at http: //www.omg.org/.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>OntoFarm</given-names>
            <surname>Project</surname>
          </string-name>
          .
          <article-title>Ontofarm project homepage</article-title>
          . Available at http://nb.vse.cz/ ~svatek/ontofarm.html.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>15. OntoFarm Project. Conference track. Available at http://nb.vse.cz/~svabo/ oaei2009/.</mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. AtlanMod Team.
          <article-title>AtlanMod metamodel zoo</article-title>
          . Available at http://www.emn.fr/ z-info/atlanmod/index.php/Zoos.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>