<!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>Towards using OWL DL as a metamodelling framework for ATL</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dennis Wagelaar?</string-name>
          <email>dennis.wagelaar@vub.ac.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Vrije Universiteit Brussel</institution>
          ,
          <addr-line>Pleinlaan 2, 1050 Brussels</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <fpage>79</fpage>
      <lpage>85</lpage>
      <abstract>
        <p>Ontologies have become increasingly relevant to the modelling community, providing a knowledgebase to support several software engineering activities. As such, several e orts have been made to integrate ontology technology with modelling technology. This has resulted in the Ontology De nition Metamodel (ODM), which allows model transformation languages to interact directly with ontologies. The ODM limits itself to data structure, however, and does not integrate the reasoning capabilities within ontologies. Therefore, we have done an experiment with an OWL DL driver for ATL, where ATL has direct access to the reasoning capabilities of the OWL DL ontology language. OWL DL is used as a metamodelling framework, where OWL classes serve as metaclasses and OWL individuals serve as model elements. The envisioned bene ts are optimisation possibilities through automatic classi cation, and static analysis of ATL transformations written using OWL DL expressions. This paper will discuss our ndings so far regarding these two envisioned bene ts.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Ontologies are becoming more and more prominent, and they can provide a
supporting knowledgebase for several software engineering activities, such as
domain engineering [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], semantic middleware [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], inconsistency management [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
platform dependency management [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], and several others [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. As such, they are
also gaining in relevance to the modelling community. This has resulted in the
Ontology De nition Metamodel (ODM) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ][
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], which provides a metamodel of the
OWL ontology language, and allows model transformation languages to interact
directly with ontologies. However, the ODM limits itself to the structural aspects
of an ontology, and does not provide an interface for the reasoning capabilities for
ontologies. Therefore, we have done an experiment with an OWL DL driver for
ATL, which allows for direct access to the reasoning capabilities of the OWL DL
language. The driver itself uses the OWLAPI ontology repository framework [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
and the Pellet ontology reasoner [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] to access ontologies and reason about them.
In this experiment, OWL DL is used as a metamodelling framework, where OWL
classes serve as metaclasses and OWL individuals serve as model elements. The
OWL DL reasoner provides the inferred OWL class hierarchy, as well as the
inferred classes for each OWL individual. Whereas in the modelling world OCL
is used to express constraints, OWL DL provides its own language constructs for
this purpose. The OWL DL language allows constraints { or restrictions { to be
encapsulated inside (by subsumption) or even encapsulated as (by equivalence)
an OWL class. An OWL DL restriction encapsulated as a class can automatically
be classi ed in an inferred class hierarchy by the OWL DL reasoner, such that
the OWL restriction is represented as a metaclass in the metamodel. The OWL
DL reasoner also automatically infers the instances of this metaclass, which are
those instances that conform to the OWL DL restriction.
      </p>
      <p>The envisioned bene ts of using OWL DL as a metamodelling framework
are optimisation possibilities through automatic classi cation of OWL DL class
expressions, and static analysis of ATL transformations written using OWL DL
expressions. In the remainder of this paper, we will rst discuss the development
of the OWL4ATL driver, and our ndings of mapping the ATL metamodelling
constructs onto OWL DL constructs. Then, we will discuss our ndings so far
regarding the two envisioned bene ts.
2</p>
      <p>OWL4ATL
The ATL virtual machine allows for de ning new drivers that implement ATL's
model and metamodel abstractions. We've implemented such a driver for OWL
DL1, which maps metaclasses onto OWL classes and model elements onto OWL
individuals. Table 1 shows how ATL's main language constructs for (meta-)
model representation are mapped onto OWL language constructs, with the
implementing Java classes in parentheses. ATL's primitive data types are mapped
onto the closest XSD data types used by OWL.</p>
    </sec>
    <sec id="sec-2">
      <title>ATL language construct</title>
    </sec>
    <sec id="sec-3">
      <title>OWL language construct</title>
    </sec>
    <sec id="sec-4">
      <title>Model (ASMModel)</title>
    </sec>
    <sec id="sec-5">
      <title>Metaclass (ASMModelElement)</title>
    </sec>
    <sec id="sec-6">
      <title>Model element (ASMModelElement)</title>
    </sec>
    <sec id="sec-7">
      <title>Reference (ASMModelElement)</title>
    </sec>
    <sec id="sec-8">
      <title>Attribute (ASMModelElement)</title>
    </sec>
    <sec id="sec-9">
      <title>OWLOntology (ASMOWLModel)</title>
    </sec>
    <sec id="sec-10">
      <title>OWLClass (ASMOWLModelElement)</title>
    </sec>
    <sec id="sec-11">
      <title>OWLIndividual (ASMOWLModelElement)</title>
    </sec>
    <sec id="sec-12">
      <title>OWLObjectProperty (ASMOWLModelElement)</title>
    </sec>
    <sec id="sec-13">
      <title>OWLDataProperty (ASMOWLModelElement)</title>
      <p>2.1</p>
      <sec id="sec-13-1">
        <title>Mapping metamodels to OWL</title>
        <p>As the OWLAPI does not provide a metacircular implementation of
OWLClass (where OWLClass is an instance of OWLClass) in the OWL DL
language, the metametamodel must be implemented separately. This has not yet
been done, and as a result only M2 models can be used as metamodels. This
means that OWL ontologies of instances can be transformed, using OWL
ontologies of classes as metamodels. As a consequence, we've used the Eclipse
EODM2 implementation of the ODM to generate an initial metamodel in OWL,
consisting of OWL classes. As an example metamodel, we've used the Eclipse
UML metamodel, as it covers all features of the EMF Ecore metamodelling
language. The ATL transformation module used is called \ECORE2OWL.atl",
the resulting metamodel \ontologies/UML.owl", which can both be found at
http://soft.vub.ac.be/viewvc/ATL/OWLMatching/.</p>
        <p>During the mapping of the UML metamodel to OWL, some of the semantic
di erences between Ecore and OWL became apparent:
{ OWL properties are de ned within the namespace of the ontology,
not the namespace of the OWL class on which one can de ne
property values. Whereas Ecore EAttributes and EReferences are de ned
within the namespace of a single EClass, OWL properties have a domain
and a range. The domain speci es all OWL classes for which one can de ne
property values, and the range speci es the valid types of the values. The
domain of an EReference or EAttribute is always limited to a single EClass.
When mapping only from Ecore to OWL, it is su cient to add the name of
the domain class to the property name to make sure the OWL property has
a unique name within the ontology.
{ OWL properties do not support containment. EMF models are in
the form of a containment tree, where EReferences can be de ned as
containment references. OWL does not support the concept of containment,
other than ontology elements being contained in an ontology (namespace).
In order to retain the information of whether an OWL property represents
a containment EReference, four \meta-properties" are introduced in the
ontology: \allContainment", \allContainer", \containment", and \container".
\allContainment" is a transitive property and represents the transitive
closure of contained model elements. \allContainer" is a transitive property
that represents the transitive closure of containing (parent) model elements.
\containment" and \container" are non-transitive subproperties of
\allContainment" and \allContainer", and represent the direct contained and
containing model elements. All containment properties are represented as
subproperties of \containment", and all container properties are represented as
subproperties of \container". The OWL subproperty relationship means that
each value of a subproperty can also be considered as a value of its
superproperties. For example, any value of the UML \packagedElement" property
is also a value of the \containment" and \allContainment" property. This
2 http://www.alphaworks.ibm.com/tech/semanticstk
representation also allows for the implementation of the ATL
\refImmediateComposite()" helper method.
2.2</p>
      </sec>
      <sec id="sec-13-2">
        <title>Mapping models to OWL</title>
        <p>Bridging the above semantic di erences between Ecore and OWL is su cient to
create an OWL representation of the UML metamodel expressed in Ecore. It is
also possible to copy a UML model based on Eclipse UML to an ontology based
on the generated UML meta-ontology. Another, more fundamental semantic
difference became apparent when trying to copy that UML ontology to another
UML ontology:
{ OWL DL follows the Open World Assumption, whereas Ecore
follows the Closed World Assumption. This basically comes down to the
principle that OWL DL assumes the available knowledge to be incomplete,
whereas Ecore assumes it to be complete. The concrete issue that rises here
is whether or not a model element can be considered an instance of a speci c
class. In Ecore, declaring a model element to be an instance of a metaclass
is su cient to know that it is only an instance of that metaclass (and its
superclasses). In OWL DL, however, one must explicitly state that an
individual is not an instance of a certain class. A partial solution for bridging
this di erence is to assert each new OWL individual as an instance of its
OWL class, as well as of the complement of each subclass of that OWL class.</p>
        <p>The ATL transformation rules that triggered this issue is the following:
rule Model {
from s : UML2 ! Model
to t : UML2 ! Model (</p>
        <p>...)
}
}
rule Package {
from s : UML2 ! Package (s. oclIsTypeOf ( UML2 ! Package ))
to t : UML2 ! Package (
...)</p>
        <p>The Model rule copies all instances of the \Model" metaclass, and Package
copies all instances of \Package". The Package rule explicitly checks that it does
not accidentally copy \Model" instances, as \Model" is a subclass of \Package"
in the metamodel, and would otherwise trigger the Package rule. In OWL DL,
any instance s of \Package" must explicitly be marked as not an instance of
\Model" for the reasoner to conclude that s.oclIsTypeOf(UML2!Package) is
false.</p>
        <p>A complete solution to the Open World vs. Closed World Assumption
problem would require additional \closing" assertions to be added to the OWL
representation of the metamodel:
{ Each pair of OWL classes that do not have a common sub- or
superclass must be declared disjoint. This enforces that OWL individuals
are considered not to be instances of other classes than its asserted class,
or superclasses of its asserted class. This follows the general semantics of
metamodelling languages such as Ecore. This cannot be done statically, as
Ecore models and OWL ontologies can both be extended with new classes.
Multiple inheritance may cause a pair of classes that previously had no
common subclasses to now have common subclasses. Currently, OWL4ATL does
not address this issue.
2.3</p>
      </sec>
      <sec id="sec-13-3">
        <title>Mapping OCL expressions to OWL restrictions</title>
        <p>Up to this point, the experiment has remained limited to OWL class/property
expressions that re ect Ecore expressions. ATL uses OCL to navigate over
metamodels and express restrictions on from statements. OWL DL provides its own
language constructs for expressing restrictions. Consider the following example
ATL rule, which transforms all UML Properties that are public:
rule PublicProperty {
from s : UML2 ! Property (</p>
        <p>s. oclIsTypeOf ( UML2 ! Property ) and s. visibility = # public )
to t : UML2 ! Property (</p>
        <p>...)
}</p>
        <p>In OWL DL, this OCL restriction can be written as an OWL class expression
in extended OWL Manchester syntax:
PublicProperty subClassOf Property
PublicProperty equivalentWith (
( Property_visibility value " public ") and not ExtensionEnd and not Port )</p>
        <p>This means that PublicProperty is the set of all Property instances that have
Property visibility set to \public" and are not an ExtensionEnd or a Port (the
subclasses of Property). As this expression is encapsulated as an OWL class, it
can be used from ATL as follows:
rule PublicProperty {
from s : UML2 ! PublicProperty
to t : UML2 ! Property (</p>
        <p>...)
}
}
rule AllProperty {
from s : UML2 ! Property (</p>
        <p>s. oclIsTypeOf ( UML2 ! Property ))
to t : UML2 ! Property (
...)</p>
        <p>The OWL DL reasoner also automatically classi es OWL class expressions
in the inferred class hierarchy. Consider the following ATL rule and its OWL
representation:
AllProperty subClassOf Property
AllProperty equivalentWith (not ExtensionEnd and not Port )</p>
        <p>The OWL DL reasoner would classify PublicProperty as a subclass of
AllProperty, which in turn is a subclass of Property. Based on the inferred OWL
class hierarchy, we can derive whether there is any overlap between the from
parts of ATL rules. Overlap is not allowed between separate matched rules, while
overlap is required between a super- and subrule in ATL.
3</p>
        <sec id="sec-13-3-1">
          <title>Discussion</title>
          <p>This paper has presented an experiment with using OWL DL as a
metamodelling framework for ATL. The experiment is still in progress, but some results
are already available. First of all, the development of the OWL4ATL driver that
enables the use of OWL DL within ATL has uncovered several semantic
differences between a regular metamodelling language, such as Ecore, and OWL
DL. Two of these di erences are structural di erences, regarding namespaces
and containment of elements, and can be bridged without many problems.
Another di erence is the Open World vs. Closed World Assumption, which is a
fundamental di erence in language semantics. The result is that complex
mappings are required between regular metamodelling and OWL DL in order to
represent the same modelling language. A start has been made with providing
these mappings, but more mappings are required. Some of these mappings are
also dynamic, and can change as the metamodel is extended. Whether or not
these mappings are needed, depends on whether one wants to represent a regular
metamodel in OWL DL, or whether one just wants to use an existing OWL DL
ontology as a metamodel (and retain the Open World Assumption).</p>
          <p>The rst envisioned bene t of using OWL DL as a metamodelling framework
is the possibility to optimise through automatic classi cation of OWL DL class
expressions. We have demonstrated how OWL DL class expressions can be used
in the from part of an ATL rule. ATL currently relies on caching of helper
attributes to achieve a performance speedup. This only works if the developer uses
helper attributes in the right places. By using OWL DL class expressions, the
OWL DL reasoner can use its inferred class hierarchy to make smart assumptions
about the instances of the classes. A subclass will have no more instances than
its superclass, for example. We currently don't know if the OWL DL reasoner
can be more e cient in nding class instances that ATL using helper attribute
caching. We do know that current OWL DL reasoners have a limit in how many
class equivalence expressions in combination with property restriction
expressions they can handle, which lies somewhere below 1000. This puts a limit on
the complexity of the transformation module.</p>
          <p>
            The second envisioned bene t is the ability to perform static analysis of ATL
transformations written using OWL DL expressions, similar to what is currently
done in graph transformation using critical pair analysis [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ] or in OCL using
constraint programming tools [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ]. Using the inferred OWL class hierarchy, it
is possible to determine whether there is overlap between two class expressions.
In addition, the OWL DL reasoner will be able to determine whether a class
expression is satis able at all (a non-satis able class expression cannot have
any instances). As long as we can translate an ATL from part expression to
an OWL class expression, it is possible to perform this kind of static analysis.
As soon as recursive helper methods are used, however, a translation to an
OWL DL expression is no longer possible. Currently, only a few examples have
been translated into OWL DL expressions. An exhaustive translation of ATL
expressions to OWL DL expressions will have to be developed. As most of the
work consists of translating OCL to OWL DL, the work of Cabot et al., amongst
other presented in [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ], may serve as a basis here.
          </p>
        </sec>
        <sec id="sec-13-3-2">
          <title>Acknowledgements</title>
          <p>The author would like to thank Ragnhild Van Der Straeten, Ulrike Sattler,
and Carsten Lutz for their discussion on mapping regular MOF/Ecore style
metamodelling languages onto OWL DL, and using OWL DL as a metamodelling
framework in a model transformation context.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Musen</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          :
          <article-title>Domain ontologies in software engineering: use of Protege with the EON architecture</article-title>
          .
          <source>Methods of Information in Medicine</source>
          <volume>37</volume>
          (
          <year>1998</year>
          )
          <volume>540</volume>
          {
          <fpage>550</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Burstein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McDermott</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McIlraith</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paolucci</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sycara</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sirin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Srinivasan</surname>
          </string-name>
          , N.:
          <article-title>Bringing Semantics to Web Services with OWL-S</article-title>
          .
          <source>World Wide Web</source>
          <volume>10</volume>
          (
          <year>2007</year>
          )
          <volume>243</volume>
          {
          <fpage>277</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Van Der Straeten</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jonckers</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>A formal approach to model refactoring and model re nement</article-title>
          .
          <source>Software and Systems Modelling</source>
          <volume>6</volume>
          (
          <year>2007</year>
          )
          <volume>139</volume>
          {
          <fpage>162</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Wagelaar</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Der Straeten</surname>
          </string-name>
          , R.:
          <article-title>Platform Ontologies for the Model-Driven Architecture</article-title>
          .
          <source>European Journal of Information Systems</source>
          <volume>16</volume>
          (
          <year>2007</year>
          )
          <volume>362</volume>
          {
          <fpage>373</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Happel</surname>
            ,
            <given-names>H.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seedorf</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Applications of Ontologies in Software Engineering</article-title>
          .
          <source>In: International Workshop on Semantic Web Enabled Software Engineering (SWESE'06)</source>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bezivin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devedzic</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Djuric</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Favreau</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gasevic</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>An M3- Neutral infrastructure for bridging model engineering and ontology engineering</article-title>
          .
          <source>In: Proceedings of the First International Conference on Interoperability of Enterprise Software and Applications (INTEROP-ESA'05) Geneva</source>
          , Switzerland,
          <source>SpringerVerlag</source>
          (
          <year>2005</year>
          )
          <volume>159</volume>
          {
          <fpage>171</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Object Management Group, Inc.: Ontology De nition Metamodel.
          <article-title>(</article-title>
          <year>2006</year>
          ) Sixth Revised Submission to OMG/ RFP ad/2003-03-40, ad/2006-05-01.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bechhofer</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The OWL API: A Java API for Working with OWL 2 Ontologies</article-title>
          . In
          <source>: OWLED</source>
          <year>2009</year>
          ,
          <article-title>6th OWL Experienced</article-title>
          and Directions Workshop. (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Sirin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalyanpur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katz</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Pellet: A practical OWL-DL reasoner</article-title>
          .
          <source>Journal of Web Semantics</source>
          <volume>5</volume>
          (
          <year>2007</year>
          )
          <volume>51</volume>
          {
          <fpage>53</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Mens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taentzer</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Runge</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Detecting Structural Refactoring Con icts Using Critical Pair Analysis</article-title>
          .
          <source>Electr. Notes Theor. Comput. Sci</source>
          .
          <volume>127</volume>
          (
          <year>2005</year>
          )
          <volume>113</volume>
          {
          <fpage>128</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clariso</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>de Lara</surname>
          </string-name>
          , J.:
          <article-title>Analysing Graph Transformation Rules Through OCL</article-title>
          . In Vallecillo,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Gray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Pierantonio</surname>
          </string-name>
          , A., eds.
          <source>: Proceedings of the First International Conference on Theory and Practice of Model Transformations (ICMT</source>
          <year>2008</year>
          ), Zurich, Switzerland. Volume
          <volume>5063</volume>
          of Lecture Notes in Computer Science., Springer-Verlag (
          <year>2008</year>
          )
          <volume>225</volume>
          {
          <fpage>239</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>