<!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>Ontology-based Model Synchronisation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Federico Rieckhof</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mirko Seifert</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Uwe A mann</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Technische Universitat Dresden Institut fur Softwareund Multimediatechnik D-01062</institution>
          ,
          <addr-line>Dresden, Germany federico.rieckhof</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Models are the central artifact in Model-Driven Software Development (MDSD). Being de ned by meta models, they expose a strict syntactic structure. This property allows for processing models mechanically and using generic tools for arbitrary models. However, the wellknown meta modelling languages (e.g., Essential MOF (EMOF)) do not have a formal semantical foundation. Rather, the semantics of models is de ned implicitly and informal in respective speci cation documents. To resolve this restriction, the integration of models and ontologies has been proposed earlier [1]. In contrast to models, ontologies do have a formal grounding and allow for more sophisticated reasoning about the information represented therein. This paper presents an approach to employ the ontological representation of models for synchronising changes across related models. Existing ideas from ontology mapping and alignment are applied to model synchronisation to investigate to what extent these technologies can be used in MDSD.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>With the advent of MDSD, code is replaced by models as the primary artifact
in software development processes. By using standardised meta modelling
languages (e.g., EMOF) the structure (i.e., the abstract syntax) of such models
can be formally de ned. If augmented with a description of the concrete syntax,
either graphical or textual, models can be created and edited. To obtain actual
software products from models, the latter are usually transformed over
multiple stages. Starting from very abstract descriptions, more information is added
yielding re ned (i.e., more concrete) models. The most concrete models are then
transformed to source code, which implements desired functionality.</p>
      <p>When looking at models involved in such a development process one can
detect lots of redundancy. For example, information is duplicated by the
transformations between models. Even though one should strike for as little duplication
as possible, there is often sound reasons for giving up this goal in favour of other
objectives. For example, di erent views on the same data enable to focus on
certain aspects of a system without worrying about others. This is the central idea
behind using Domain-Speci c Languages (DSLs) to model a system. Each of the
DSL models shares some information with other models, yet it allows to model
a speci c concern (e.g., the user interface or the persistence strategy) separately.
In other cases, information may be duplicated because tools can operate only
on speci c data formats and conversion and thereby duplication is needed to
use these tools. A last reason for introducing redundancy in software artifacts
is performance. Complex analysis of models (or source code) often requires to
extract relevant information in order to perform the analysis in reasonable time.</p>
      <p>Despite the sound reasons for introducing redundancy, there is the strong
need to maintain consistency among all software artifacts. Inconsistent models
must yield inconsistent implementations, which will de nitely cause systems to
fail. So whenever redundancy is introduced, action must be taken to make sure
consistency preservation for this particular duplicated information is ensured.</p>
      <p>
        In the MDSD community various approaches have been developed to solve
this problem. Trace information is collected to explicitly capture the relations
between duplicated information [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Bidirectional transformations (e.g., Relations
in Query View Transformation (QVT) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]) are used to synchronise models. Most
prominently Triple Graph Grammars (TGGs) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] were proposed to synchronise
models by means of a declarative description of the relation.
      </p>
      <p>
        Recent research has shown that the strength of modelling languages (i.e., the
precise speci cation of abstract syntax) can be augmented with the power of
formal semantics. In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] the integration of ontologies and the Uni ed Modeling
Language (UML) was shown, in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] similar was achieved for DSLs. Opposed to
pure models based on object-oriented meta modelling languages (e.g., EMOF),
the semantics of the models is no longer informal or implicit, but rather formally
de ned and explicit. Ontologies and the Web Ontology Language (OWL) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
being a wide-spread representative thereof, seem suitable for such an integration.
      </p>
      <p>We believe that this shift toward explicit, formal model semantics can foster
solutions to the model synchronisation problem. In particular we expect the
following bene ts from using ontologies in the context of model synchronisation:
1. Reduce speci cation e ort - Existing synchronisation approaches need
complex speci cations. Ontologies may help here because implicit information
can be derived by reasoners.
2. Intuitive speci cation - OWL-DL uses a very intuitive representation of
knowledge. Classes are sets of individuals and subclasses are sub sets of
their super classes. This may ease the understanding of models mapping.
3. Bidirectionality - Existing unidirectional synchronisation approaches require
separate speci cation for each synchronisation direction. The declarative
style of ontologies may support the speci cation of both directions at once.
4. Reuse ontology mapping technology - The whole existing body of work in
the area of ontology mapping can be applied to obtain model mappings.</p>
      <p>
        In this paper we investigate the rst three points. To do so we introduce
a running example in Sect. 2. Before presenting our OWL-based approach to
model synchronisation in Sect. 4, we will recapitulate the mapping of models
to ontologies in Sect. 3. This mapping has been discussed earlier [
        <xref ref-type="bibr" rid="ref1 ref8">1, 8</xref>
        ], but ours
di ers slightly, which is why we outline the di erences and the rationale behind
them. In Sect. 5 we discuss related work and conclude in Sect. 6.
      </p>
      <p>PetriNet
name : EString
0..* arcs source 1</p>
      <p>Arc
name : EString
0..* nodes</p>
      <p>Node
name : EString
target 1
a)</p>
      <p>
        Place
To illustrate our approach we will use a basic scenario where two domain models
need to be kept in sync. This scenario is taken from [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and has been slightly
extended by adding the meta class MaintenanceVehicle. The two involved
domains are petri nets and toy trains. The goal of the synchronisation is to make
sure the petri net model implements the dynamic semantics of the train model.
      </p>
      <p>The meta model for petri nets is shown in Fig. 1a). Every petri net consists
of arcs and nodes. Arcs do connect two nodes in a given direction. Nodes can be
either places or transitions. The former can hold multiple tokens. A constraint
not depicted in Fig. 1 forbids that arcs connect two nodes or two transitions. In
addition, petri nets, arcs, nodes and tokens have a name.</p>
      <p>The meta model for toy trains is depicted in Fig. 1b). Each toy train project
consists of components and connections. Components can be either tracks or
switches and expose ports. Connections connect ports, the direction is here given
by making a distinction between ports of type In and Out. Tracks do have exactly
one incoming and one outgoing port, whereas switches can have two ports of
the same type (i.e., either two In and one Out port or the other way around).
Furthermore, trains and maintenance vehicles can reside on tracks and switches.</p>
      <p>The mapping between the two domains can be put as follows. Each petri net
relates to one toy train project. Each track relates to an arc. Out ports relate
to places and In ports to transitions. Connections between ports do also relate
to arcs. A more complicated mapping is needed for switches. Switches with two
incoming ports relate to an arc connecting a transition and a place. Switches
with two outgoing ports relate to two arcs that connect a single transition with
two places. An example of two synchronised models in shown in Fig. 2.</p>
      <p>The gure uses concrete graphical syntax for both models. To make the
mapping more obvious the components of the toy train model (shown in Fig. 1b)
are also depicted in grey shade in Fig. 1a)). This way it is easier to see which
parts of the petri net correspond to which parts of the train model.
Place
Arc</p>
      <p>
        In Port
Out Port
Track/Switch
Connection
To use ontological tools for the synchronisation of models, a bridge is needed to
transfer models to the world of ontologies. Ontology tools and services operate on
ontology repositories and a process is needed to present models to these services.
The mapping of models and meta models to OWL has been discussed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and
generalized to other types of ontological spaces in [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. A mapping of UML to
ontologies has been presented in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], but this is not as relevant here as we are only
interested in mapping the concepts of meta modelling languages (i.e., EMOF).
Thus, this section mostly repeats parts of [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which we found necessary to
understand the mapping between models and OWL|a prerequisite for Sect. 4.
      </p>
      <p>For our experiments we used Ecore on the modelling side|the Eclipse
implementation of the EMOF standard. Therefore, we will restrict the mapping in
this section to this particular meta modelling language. For other meta modelling
languages a similar mapping might be suitable. On the ontology side, we used
OWL-DL, which is why the mapping will refer to OWL concepts in the following.
We will not map the concepts EOperation, EFactory and EParameter, because
these are not relevant to model synchronisation. For the sake of simplicity we
will also assume that domain meta models span one EPackage only.</p>
      <p>As EMOF (and Ecore as its implementation) is an object-oriented modelling
approach, the dominant concepts are classes and objects. Classes are also a
concept in OWL, objects correspond to OWL individuals. Both Ecore and OWL
do have the notion of instance-of, but with a di erent semantics. Ecore objects
can be instance of at most one class unless classes are related by inheritance.
In this case, objects are also instances of all super types of their class. In OWL
individuals can be instances of multiple classes even if these are not related by
inheritance. To correctly represent the semantics of meta models in OWL, classes
are declared to be disjoint if there is no inheritance relation between them.</p>
      <p>Attributes of Ecore classes (i.e., EAttributes) can be naturally mapped to
OWL data properties. Opposed to attributes, data properties are not bound to
one speci c class in OWL, but can exists on their own. This can cause a name
clash if two Ecore classes de ne attributes with the same name. When translating
meta models to OWL quali ed names can be used to solve this issue. References
connect classes in Ecore and can be represented by OWL object properties.
Again, name clashes can occur which the mapping tool must take care of.</p>
    </sec>
    <sec id="sec-2">
      <title>Model A</title>
    </sec>
    <sec id="sec-3">
      <title>Synchronisation Ontology</title>
    </sec>
    <sec id="sec-4">
      <title>Ontology A (In)</title>
    </sec>
    <sec id="sec-5">
      <title>Mapping</title>
    </sec>
    <sec id="sec-6">
      <title>Ontology</title>
    </sec>
    <sec id="sec-7">
      <title>Ontology B (Out)</title>
    </sec>
    <sec id="sec-8">
      <title>Model B</title>
    </sec>
    <sec id="sec-9">
      <title>Reasoning</title>
    </sec>
    <sec id="sec-10">
      <title>Implied Changes</title>
      <p>To return from OWL to the modelling world, a reverse mapping is needed.
This is not possible in general. However, if the OWL knowledge base conforms to
our construction schema, models can be created from OWL data. The constraints
must be met, because they explicitly model the implicit semantics of models. If
an OWL knowledge base does not do so, the corresponding model is not valid
w.r.t. the semantics of models. Furthermore, only concepts that do have an
equivalent in the modelling world can be used. Since we will use OWL behind
the scenes only, this can be easily ensured.</p>
      <p>
        Equipped with this mapping one can either implement a bridge based on
(1) adaptors, build one that relies on (2) transformations or (3) fully integrate
model and ontologies as shown in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. We choose to use a transformation-based
bridge (2) because this was readily available from earlier work performed in the
EU MOST project1. Nonetheless, the synchronisation mechanism presented in
Sect. 4 is equally applicable if models are adapted to their ontological
representation. The adaptors perform the transformation on-the- y while we do execute
it whenever we need to switch between the two technological spaces. We must
emphasise that our focus is not building this bridge, but rather to investigate
bene ts that can be gained from using ontology tools for synchronising models.
4
      </p>
      <sec id="sec-10-1">
        <title>Synchronising Models using Ontologies</title>
        <p>Being equipped with the bidirectional mapping between models and ontologies,
one can now focus on model synchronisation, which is essentially about
propagating changes that are made to one model to all related models. In the scope
of this paper, we will restrict the synchronisation to two models. So whenever a
change is made to one of the two, appropriate changes need to be applied to the
other one. As we want to use ontological tool machinery to do so, changes need
to be transferred to the respective ontology, before the set of implied changes
can be determined by reasoning. This procedure is depicted in Fig. 3.</p>
        <p>After the models and the performed changes are transferred to the
respective ontology a mapping between the two modelling domains is needed. This
information is captured in a so-called Mapping Ontology, which is similar to
transformation speci cations in the modelling worlds. This ontology refers to the
involved meta models by using the concepts that were derived from the meta</p>
        <sec id="sec-10-1-1">
          <title>1 http://www.most-project.eu</title>
          <p>models. Note that this mapping is handcrafted as it requires distinct knowledge
of the involved domains (i.e., the respective modelling languages).</p>
          <p>In this section, we will rst discuss possible mappings between meta models
in terms of the derived ontologies in Sect. 4.1. For di erent types of mappings
possible realisations are presented. Based on the domain ontologies (i.e., the
ones derived from the meta models and the models) and the mapping ontology a
reasoner can infer information that is needed in order to synchronise the models.
Details of this procedure can be found in Sect. 4.2.
4.1</p>
          <p>Mapping Speci cation between Models using Ontologies
OWL-DL|being the concrete ontology language used in this paper|is based on
Description Logics and is therefore strongly connected to set theory. OWL classes
basically denote sets of individuals. When we speak of synchronising ontologies
(i.e., the ontologies derived from our models), we refer to the synchronisation of
individuals. We are interested in the actions that must be taken if a new
individual is created in one of the two domains. The relation between the sets (i.e.,
the classes) de ned in each ontology is the key to this decision. We will therefore
closely look at typical types of relations that do exist between domain classes and
how they can be handled in terms of set de nitions. Thus, the general idea
behind the mapping speci cations, which will be presented shortly, is based on the
consideration of classes as sets of individuals. The objective of synchronisation
mappings is therefore to de ne the relations between these sets.</p>
          <p>When looking at relations between objects one can distinguish di erent types
of mappings depending on the number of related individuals. For example,
relations between individuals can be pairwise|one individual of one domain
corresponds to exactly one in the other domain. An individual can also be related to
a group of individuals in the opposite domain. In the most general case groups of
individuals are related to each other. These three main relation types form the
rst column in Table 1. The rst type (i.e., the 1:1 relation between individuals)
can be further split into sub types depending on the number of classes involved
in the mapping. These types are best explained using our running example.</p>
          <p>Individual Relation Class Relation Example Relation (Individuals)</p>
          <p>Let us rst consider the relation between petri nets and toy train projects.
Each petri net corresponds to one project. If we denote the individuals that form
a pair as left and right, all left individuals belong to the same class (from the
left domain) and all right ones belong to another class (from the right domain).
The same can be observed for the relation between transitions and InPorts, as
well as places and OutPorts. The situation is slightly di erent for tokens, trains
and maintenance vehicles. Here, individuals again form pairs, but classes di er
within one domain. Some tokens correspond to trains, others to maintenance
vehicles. The more general case where classes di er in both domains cannot be
found in the running example. If petri nets would have di erent kinds of tokens,
which would correspond to trains and maintenance vehicles we could observe the
general case. This is not the same as having one type of token corresponding to
trains and another one to maintenance vehicles.</p>
          <p>
            Having seen the di erent types of mappings, the question is how to implement
such a mapping in terms of OWL constructs. In this paper, we will present two
approaches to specify mappings. The rst one is based on de ning mappings
using subclass de nitions. The second one employs Semantic Web Rule Language
(SWRL) [
            <xref ref-type="bibr" rid="ref11">11</xref>
            ] rules to de ne model relations. Even though the latter approach
subsumes the former w.r.t. expressiveness, we will present both, because we
consider the subclass de nitions to be very natural and more easy to understand.
          </p>
          <p>Mappings based on Subclass De nitions OWL classes and properties
can be considered as sets. Each set contains all the individuals that are instances
of the class or property. When synchronising models using OWL, a mapping is
needed, which allows to determine all the individuals that are required in the
opposite domain to restore a synchronous state. To determine these individuals
the formalisation of the relation between classes is needed. For the most basic
mapping case (cf. Row 1 in Table 1), classes can be de ned as being equivalent.
In this case, subclasses are not even required.</p>
          <p>The second row of Table 1, contains the rst type of mapping which can be
handled by de ning subclasses. To specify that some tokens are mapped to trains
and others are mapped to maintenance vehicles, we introduce two subclasses of
Train. One that denotes the set of tokens that corresponds to trains, another one
that represents all tokens that are related to maintenance vehicles. To elaborate
this in more detail consider Fig. 4.</p>
          <p>Trains</p>
          <p>Tokens</p>
          <p>MVs
Tr/To</p>
          <p>Tr∩To</p>
          <p>To∩MV
(To/Tr)/MV</p>
          <p>MV/To</p>
          <p>Sets of
individuals
Class hierarchy
Train (Tr)</p>
          <p>Token (To)</p>
          <p>MaintenanceVehicle (MV)</p>
          <p>The domain classes (Train, Token and MaintenanceVehicle) are depicted as
boxes with solid border. The additionally de ned subclasses use dashed borders.
In Fig. 4 ve such subclasses are depicted. The rst one (Tr/To) denotes all
trains that do not have a corresponding token. In our example this set is empty,
but for other mappings it might be not. The second subclass (Tr\To) represents
all trains that correspond to a token. The de nition of this class is crucial for
the example mapping. The concrete de nition determines which tokens map to
trains and which do not. The third subclass ((To/Tr)/MV) contains all tokens
that are neither mapped to trains nor to maintenance vehicles. Again in our
example this set is empty, but this may not be the case for other mappings. The
two remaining classes (To\MV and MV/To) are reverse to the rst two.</p>
          <p>By de ning subclasses that extend classes from both domains, the pairs of
individuals are represented as one individual belonging to two classes. For
example, a train-token pair is represented by an individual of class Tr\To. If a train
individual is created, one can reason that it also belongs to class Tr\To, which
in turn implies that it is an instance of class Token. We will use this in Sect. 4.2.</p>
          <p>The mapping based on subclass de nitions does work for the rst three types
shown in Table 1 (i.e., all cases where pairs of individuals are related). It cannot
be applied if multiple individuals take part in a relation, because domain classes
are de ned to be disjoint within one domain. Thus, we can only de ne non-empty
subclasses that extend classes from di erent domains. Extending two classes from
the same domain yields an empty set of individuals, because the super classes
are disjoint. Besides this restriction, the approach seems very intuitive. Once the
designer of a mapping has decided that individuals are related pairwise, she must
clarify which set of individuals is mapped to which class in the opposite domain.
The resulting set de nitions can then be formalised as OWL class de nitions.
We believe that splitting classes into subsets, where each subset corresponds to
one class in the opposite domain, is easy to understand. Besides its simplicity,
another advantage of the subclass mapping approach is its bidirectionality. The
mapping is independent of the synchronisation direction. We can add individuals
to any domain and infer missing ones in the opposite domain.</p>
          <p>Mappings based on SWRL rules A second approach to express mappings
is based on SWRL. SWRL is an extension of OWL that enables the use of
Hornlike rules in combination with the OWL knowledge base. In this paper, we will
restrict ourselves to the DL-safe subset of SWRL. A SWRL rule can be read as
follows. If all atoms in the antecedent are true, then the consequent must also
be true. Using SWRL rules one can specify dependencies between domains. For
example, whenever a petri net contains an arc that connects a transition to a
place, a corresponding track must exist, expressed by the following rule:
Arc(?x) ^ P lace(?y) ^ T ransition(?z)^</p>
          <p>petriIn(?x; ?y) ^ petriOut(?x; ?z) !
T rack(?x) ^ InP ort(?y) ^ OutP ort(?z)^
haveP ort(?x; ?y) ^ haveP ort(?x; ?z)
(1)</p>
          <p>One can read rule 1 as follows. All individuals of type Arc, which are
related with one Place and one Transition by the object properties petriIn and
petriOut, imply that the individuals of type Arc are also of type Track, the
individuals of type Transition are also of type OutPort and that the
individuals of type Place are also of type InPort. Furthermore, the object property
havePort must be true. As this rule does only de ne the dependency in one
direction, a second rule is needed to express that each track and its respective
ports must be mapped to an arc connecting a transition and a place in the petri
net. The rule to express this is as follows:</p>
          <p>Arc(?x) ! Connection(?x)
Connection(?x) ! Arc(?x)
(5)
(6)</p>
          <p>Suppose there is an arc that connects a transition and a place. Obviously
both rules (rule 1 and rule 5) can match. Thus, a reasoner will infer that the arc
has both type Track and type Connection. If there is also a rule for mapping
haveP ort(?x; ?y) ^ haveP ort(?x; ?z) !</p>
          <p>As one can see, both a forward and a backward rule is needed to synchronise
individuals of type Track from the toy train meta model. Using rule 1 and
rule 2, a reasoner is able to infer the synchronisation in both directions without
any problems. More simple relations between classes can also be expressed. For
example, the next two rules state that Places and OutPorts are equivalent.</p>
          <p>P lace(?x) ! OutP ort(?x)</p>
          <p>OutP ort(?x) ! P lace(?x)</p>
          <p>This case can be handled more easily using subclass de nitions as this does
not require separate speci cations for each direction. But, to clarify the relation
between both approaches, it must be said that the use of SWRL rules subsumes
the subclass de nition approach in terms of expressiveness.</p>
          <p>Returning to the rst two rules (i.e., the ones mapping arcs to tracks), one
may wonder whether these two rules interfere with other rules (e.g., the ones
for mapping arcs to switches). Similar to tracks, switches with two incoming
ports are mapped to an arc that connects a transition to a place. But, not only
switches are mapped to arcs. Connections between toy train components are also
mapped to arcs. So, how can one distinguish between arcs that represent tracks,
arcs that correspond to switches and arcs that are related to connections?
Let us have a look at the initial rules for mapping arcs and connections:
(2)
(3)
(4)
switches, it might in addition infer that the arc is also of type Switch. As our
domain classes are disjoint by de nition, this is obviously a contradiction.</p>
          <p>To resolve this problem, we propose to combine the subclass approach and
the SWRL rules. Instead of using the classes de ned by our meta models in
the SWRL rules, we use distinct subclasses. So instead of mapping all arcs to
connections (as in rule 5) and all connections to arcs (as in rule 6), we map only
subsets, i.e., the arcs that represent connections and, respectively the connections
that represent arcs. This yields the following rules, which replace rule 5 and 6:
Arc2Connection(?x) ! Connection2Arc(?x)
Connection2Arc(?x) ! Arc2Connection(?x)
(7)
(8)</p>
          <p>The class Arc2Connection denotes the arcs that map to connections, class
Connection2Arc is the set of connections that map to arcs. The same procedure
is applied to all other rules concerned with mapping the same set of classes. By
introducing subclasses we resolve the contradiction faced before. However, to
make this work, the relation between the newly introduced subclasses and the
original classes (derived from the meta model) must be de ned. For example, all
connections are mapped to arcs. Therefore, class Connection2Arc is equivalent
to class Connection. This is not the case for arcs. Here we must specify, which
arcs are mapped to connections and which represent tracks or switches.</p>
          <p>To do so, we de ne subclass restrictions. For example, class Arc2Connection
is de ned as a subclass of Arc, but with the restriction that is must connect a
place to a transition. All other types of arcs (i.e., the ones mapped to tracks
and switches) do connect transitions to places, which is the other way around.
To distinguish arcs that must map to tracks and switches, other conditions are
speci ed. For arcs representing tracks the source transition must have exactly
one incoming and one outgoing arc. For the two types of switches, the situation
is di erent. Here, the source transition can have two incoming arcs (for switches
with two in ports) or two outgoing arcs (for switches with two out ports). The
restrictions can be implemented using OWL or SWRL|whatever is more easy.</p>
          <p>Once the subclasses are restricted like this, the reasoner can infer which
subclass a concrete arc belongs to and consequently which rule applies. By the
combination of SWRL rules and the subclass construction we can synchronise
individuals which do have di erent counterparts depending on their context.
This allows to handle both the 1:n and n:m mapping cases from Table 1.</p>
          <p>Handling Primitive Data Types In addition to classes and relations, meta
models can de ne attributes, which have a primitive type. These attributes can
be mapped to data properties, when translating models to ontologies. When
synchronising models, one must take care of these attributes and their values. In
principle, there are two cases that can appear when handling primitive types.</p>
          <p>In the rst case attributes are mapped directly. For example, the name
attribute of a class in one meta model is mapped to the identi er attribute of
another meta class. In this case no processing is applied to the attribute value.
To handle such mappings the previously described approach for synchronising
classes and object properties can be employed. Based on the de nition of sub
properties the sets of attribute values can be distributed across the classes that
need to hold these values. For example, the name of class Token can be split into
two sub properties (i.e., the names for trains and for maintenance vehicles).</p>
          <p>The second case can be observed whenever values need to be processed (e.g.,
set conditionally or concatenated). In this case we de ne sub data properties and
process these using SWRL built-ins. Because operations performed by built-ins
can do arbitrarily complex computations, there is no way to avoid explicit
speci cations for each transformation direction. For example, if strings are
concatenated by a rule, another rule is required to specify how strings are split.</p>
          <p>To give an example lets suppose we would like to pre x the names of all arcs
that correspond to a track with the string track_. To do so, rule 9 and rule 10
can be added. Here, rule 9 concatenates the pre x and the value of data property
name. The result of the concatenation is set as value for property subArcName.</p>
          <p>T rack2Arc(?t) ^ name(?t; ?name)^
stringConcat(?newN ame; "track "^^string; ?name) !
subArcN ame(?t; ?newN ame) ^ Arc2T rack(?t)
(9)</p>
          <p>In addition to rule 9, another rule is needed that implements the opposite
mapping. Here, the pre x is removed from the name of the arc. The remainder
is set as value of data property subname, which is the sub property of name in
the train ontology.</p>
          <p>To summarise, one can say that the handling of primitive types is not much
di erent from traditional model synchronisation approaches. Primitive types are
often processed using complex and often non-invertible operations. This does
leave no other choice than specifying individual rules for each transformation
direction. Nonetheless, we believe that support for bidirectional built-ins in SWRL
would be bene cial in this context. Such built-ins must then be evaluated similar
to relations (i.e., compute values for unbound parameters).
4.2</p>
          <p>Propagating Model Changes
In the previous section two di erent possibilities to specify mappings between
meta models using ontological concepts have been presented. Based on subclass
de nitions and SWRL rules one can now specify desired mappings between
domain models. Once these mappings have been formalised, the question is how
changes that are made to models can be processed by the ontological tool
machinery. Thus, this section will give details about this procedure.</p>
          <p>The rst logical step required, when synchronising changes across models is to
capture the changes made. This step is rather a technical issue and its concrete
implementation depends on the editors used to modify models. In Fig. 5 this
rst step is depicted on the left. Once information about changes is available, we
employ an OWL reasoner2 to infer implicit information. More concretely, we let</p>
        </sec>
        <sec id="sec-10-1-2">
          <title>2 our prototypical implementation uses Pellet [12]</title>
          <p>2
Open World
Resoning</p>
          <p>3
Collect Derived</p>
          <p>Information</p>
          <p>4
Generate New</p>
          <p>Individuals</p>
          <p>Fig. 5. Change Handling Procedure - Overview.</p>
          <p>Pellet perform the realisation task. The goal of this task is to calculate all types
for all individuals. To do so, the reasoner must also perform a classi cation,
which calculates all subclass and equivalence relations between OWL classes.
While performing these tasks, Pellet uses the rules de ned in the speci cation
mapping to imply new facts or to derive subclass and equivalence relations.
Thus, additional types besides the ones explicitly de ned by the model to OWL
transformation are assigned to individuals. When looking at the mapping types
presented in Sect. 4.1, one can see that these were intentionally designed to allow
a reasoner to infer the information needed to synchronise the domain models.</p>
          <p>The result of performing realisation and classi cation using Pellet is a large
graph. This is the outcome of step 2. To extract information that is of interest
to us, step 3 analyses this graph and extracts a tree structure. To do so, rst,
all individuals and all concrete classes are collected by sending a query to Pellet.
Using these two sets, we iterate over all individuals and determine their concrete
classes using a SPARQL3 query. This data is the rst level of our tree structure.</p>
          <p>Next, all secondary classes (i.e., the classes we have introduced in addition
to the original classes derived from the domain meta models) are collected. To
do so, again the set of all classes for each individual is determined. From this set
all original classes are removed to obtain secondary classes only. These sets form
the second level of the tree structure. Finally, the object and data properties for
all individuals are collected and put into the third and fourth layer of the tree.</p>
          <p>By traversing this tree structure from top to bottom we can derive the set
of individuals that need to be created. These new individuals are then explicitly
added to the knowledge base and the respective models. So, after step 4 a new,
incrementally updated, synchronous version of the domain ontologies is obtained.
For all new individuals a trace is kept. Thus, if an element is deleted in the source
model, the corresponding target model elements can be removed as well.</p>
          <p>To ensure the consistency of domain models, the constraints are checked by
closed world reasoning using Pellet ICV4. By using closed world reasoning, some
issues can be detected that are ignored by the checks performed before. For
example, lower bounds for multiplicities are checked in this step. If a transition
does have dangling reference, this is not reported by the previous checks, but will
issue an error when using Pellet ICV. If no errors are detected, new individuals
can be transferred to the respective models yielding a synchronous state again.
For subsequent changes the procedure starts from the beginning.</p>
        </sec>
        <sec id="sec-10-1-3">
          <title>3 SPARQL Protocol and RDF Query Language [13]</title>
        </sec>
        <sec id="sec-10-1-4">
          <title>4 http://clarkparsia.com/pellet/icv</title>
        </sec>
      </sec>
      <sec id="sec-10-2">
        <title>Related Work</title>
        <p>
          Model Synchronisation and Transformation Model synchronisation can be
performed in various ways. Often ad-hoc approaches based on imperative
languages are used. These are hard to analyse and usually restricted to the
unidirectional synchronisation. Therefore declarative approaches should be favoured.
Here, one can either use pairs of unidirectional model transformation rules (e.g.,
written in Atlas Transformation Language (ATL) [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] or QVTO [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]) or write
bidirectional rules (e.g., using QVTR [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] or TGGs [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]). The latter choice has
the appealing property that both directions are de ned by a single speci cation.
This does of course ease maintaining synchronisation de nitions.
        </p>
        <p>
          Compared to OWL, being based on Description Logics, most model
transformation approaches expose a less formal grounding. ATL does not have a formal
semantics at all. QVTR de nes its semantics by a mapping to QVT Core, but
there are still open questions and contradictions in the standard [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. The
approach with the best formal grounding are TGGs, as they are based on graph
rewriting. The approach presented in this paper and TGGs are similar in terms of
expressiveness. Our running example was actually taken from a paper on TGGs.
However, the point of using semantical techniques for models synchronisation, is
not to gain expressiveness, but to ease speci cation. In this regard, our approach
di ers from TGGs, as it uses a di erent speci cation mechanism based on
subclasses. Whether this is more intuitive than writing TGG rules lastly depends
on the user, but at least an alternative way to do so was made available.
        </p>
        <p>
          Ontology Matching and Alignment The ontology community has put a
lot of e ort into methods to match ontologies. The goal of that work is to
generate a mapping that formalise a common subset of concepts or terms. Di erent
approaches based on string comparison, language analysis, structural matching,
machine learning and combinations thereof [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], have been evaluated in this area.
While all these matching algorithms and systems can be employed to
synchronise models once models were transformed to ontologies, their use is orthogonal
to the work presented in this paper. Our objective is to show how a handcrafted
mapping speci cation can help to synchronise models, in particular how a
reasoner can be used to derive the information needed to keep models in sync.
Our focus is therefore on synchronising the individuals rather than matching
the classes in the ontologies to each other. Nonetheless, the ontology matching
approaches mentioned before can assist the creation of such a mapping, but this
is an optional process that can be performed before, if feasible.
        </p>
        <p>
          To represent mappings we used OWL and SWRL, which does have some
drawbacks (see [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] Sect. 8.1). Using other mapping formalisms like C-OWL [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]
is also possible. For the scope of this paper, we decided to stick with languages,
where reasoner technology was readily available to obtain a practical prototype.
6
        </p>
      </sec>
      <sec id="sec-10-3">
        <title>Conclusion and Future Work</title>
        <p>In this paper we presented an approach to synchronise models using their
ontological representations. Based on existing work, models were mapped to
ontologies and vice versa. To specify the synchronisation of models within the
technological space of OWL, we presented several types of mappings that can be
employed. Depending on the type of relation needed, either subclasses de nitions
can be used to map model elements or, for more complex structural relations,
SWRL rules can formalise relations between domain models. The former idea is
based on the notion of sets formed by individuals of classes. Subclasses are
dened to divide sets and equivalence relations map subsets to corresponding sets
of individuals in the opposite domain. We de ned types of mappings that can
be handled with this approach and other classes that cannot. The latter can be
handled using SWRL rules, which sacri ces the bidirectionality that was
available when using subclass de nitions. We have implemented the running example
based on OWL and the Pellet reasoner to justify the approach practically.</p>
        <p>
          In Sect. 1 our objectives were de ned as reducing speci cation e ort,
increasing intuitivity of speci cation and obtaining bidirectionality. Our results
do con rm these partially. We found the mappings based on subclass de nitions
very intuitive, but unfortunately these can only handle pairwise mappings
between individuals. Also, the need for bidirectional speci cations was met by the
subclass approach. But, more complex mappings using SWRL rules do not posses
this property. Whether speci cation e ort is reduced, cannot be determined at
this point. The technical obstacles one needs to deal with (e.g., when de ning
OWL classes instead of directly working on the meta models) are still to large
to gain bene t from the formal semantical foundation. Modelling languages with
built-in support for semantics [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] seem essential to overcome this barrier.
        </p>
        <p>
          To further investigate the use of ontological tool machinery for model
synchronisation, we plan to apply the mappings to an industrial case study, where
synchronisation has been realised before using model-based synchronisation tools.
The comparison of both approaches will then gain more insight about both ways
to ensure model consistency. In addition the tight integration of meta models
and formal semantics as proposed in [
          <xref ref-type="bibr" rid="ref18 ref5 ref6">5, 6, 18</xref>
          ] will be used to perform
synchronisation directly on model instances. This will hopefully eliminate the need of
transforming models to OWL. We believe that adding formal semantics to the
modelling world is more rational than using ontologies to represent system
models, simply because of the great amount of mature and powerful tools that are
readily available to create and process models.
        </p>
        <p>In this paper we restricted ourselves to mappings that are explicitly de ned
by domain experts. While this is feasible for small mappings, a lot of e ort is
needed for meta models of industrial size. Therefore, using ontology matching
techniques to derive initial mappings, which can then be re ned by domain
experts, is another interesting objective for future research.</p>
      </sec>
      <sec id="sec-10-4">
        <title>Acknowledgement</title>
        <p>This research has been co-funded by the European Commission within the FP6
project Modelplex #034081 and the FP7 project MOST #216691.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapsammer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kargl</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kramler</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reiter</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Retschitzegger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Lifting Metamodels to Ontologies: A Step to the Semantic Integration of Modeling Languages</article-title>
          . In
          <string-name>
            <surname>Nierstrasz</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whittle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reggio</surname>
          </string-name>
          , G., eds.:
          <source>MoDELS</source>
          . Volume
          <volume>4199</volume>
          of LNCS., Springer (
          <year>2006</year>
          )
          <volume>528</volume>
          {
          <fpage>542</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Drivalos</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fernandes</surname>
            ,
            <given-names>K.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          :
          <article-title>Towards Rigorously Dened Model-to-Model Traceability</article-title>
          .
          <source>In: Proceedings of the 4th ECMDA Traceability Workshop (ECMDA-TW 2008)</source>
          ,
          <fpage>9</fpage>
          -12
          <source>Jun</source>
          <year>2008</year>
          , Berlin, Germany. (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. The Object Management Group:
          <article-title>Meta Object Facility (MOF) 2</article-title>
          .0 Query/View/- Transformation Speci cation.
          <source>Technical report (April</source>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Schurr, A.:
          <article-title>Speci cation of Graph Translators with Triple Graph Grammars</article-title>
          . In
          <string-name>
            <surname>Mayr</surname>
          </string-name>
          , E.W.,
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tinhofer</surname>
          </string-name>
          , G., eds.
          <source>: Proceedings of 20th International Workshop on Graph-Theoretic Concepts in Computer Science</source>
          , Herrsching, Germany. Volume
          <volume>903</volume>
          of LNCS., Springer Verlag (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Parreiras</surname>
            ,
            <given-names>F.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Staab</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winter</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>TwoUse: Integrating UML Models and OWL Ontologies</article-title>
          .
          <source>Technical Report 16/2007</source>
          , Institut fur Informatik, Universitat Koblenz-Landau (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Walter</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ebert</surname>
          </string-name>
          , J.:
          <article-title>Combining DSLs and Ontologies Using Metamodel Integration</article-title>
          . In Taha, W.M., ed.:
          <source>Domain-Speci c Languages</source>
          . Volume
          <volume>5658</volume>
          of LNCS., Springer (
          <year>2009</year>
          )
          <volume>148</volume>
          {
          <fpage>169</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. W3C:
          <article-title>OWL 2 Web Ontology Language: Structural Speci cation and FunctionalStyle Syntax</article-title>
          .
          <source>Technical report (October</source>
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Parreiras</surname>
            ,
            <given-names>F.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Staab</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Winter</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>On Marrying Ontological and Metamodeling Technical Spaces</article-title>
          . In Crnkovic, I.,
          <string-name>
            <surname>Bertolino</surname>
          </string-name>
          , A., eds.: ESEC/SIGSOFT FSE, ACM (
          <year>2007</year>
          )
          <volume>439</volume>
          {
          <fpage>448</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kindler</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wagner</surname>
          </string-name>
          , R.:
          <source>Triple Graph Grammars: Concepts</source>
          , Extensions, Implementations, and
          <string-name>
            <given-names>Application</given-names>
            <surname>Scenarios</surname>
          </string-name>
          .
          <source>Technical Report tr-ri-07-284</source>
          , University of Paderborn, D-33098 Paderborn, Germany (
          <year>June 2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Gasevic</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Djuric</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devedzic</surname>
          </string-name>
          , V.:
          <article-title>MDA-based Automatic OWL Ontology Development</article-title>
          .
          <source>Software Tools for Technology Transfer</source>
          <volume>9</volume>
          (
          <issue>2</issue>
          ) (
          <year>2007</year>
          )
          <volume>103</volume>
          {
          <fpage>117</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>W3C: SWRL: A Semantic Web Rule Language Combining OWL and RuleML - W3C Member Submission</surname>
          </string-name>
          .
          <source>Technical report (May</source>
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <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>Web Semantics: Science, Services and Agents on the World Wide Web</source>
          <volume>5</volume>
          (
          <issue>2</issue>
          ) (
          <year>2007</year>
          )
          <volume>51</volume>
          {
          <fpage>53</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <article-title>W3C: SPARQL Query Language for RDF</article-title>
          .
          <source>Technical report (January</source>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. ATLAS Group:
          <article-title>ATLAS Transformation Language (ATL) User Guide</article-title>
          . http://wiki.eclipse.org/ATL/User Guide (
          <year>February 2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Stevens</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Bidirectional Model Transformations in QVT: Semantic Issues and Open Questions</article-title>
          . In Engels, G.,
          <string-name>
            <surname>Opdyke</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>D.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weil</surname>
          </string-name>
          , F., eds.:
          <source>MoDELS</source>
          . Volume
          <volume>4735</volume>
          of LNCS., Springer (
          <year>2007</year>
          )
          <volume>1</volume>
          {
          <fpage>15</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Euzenat</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shvaiko</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          : Ontology matching. Springer, Heidelberg (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Bouquet</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giunchiglia</surname>
          </string-name>
          , F.,
          <string-name>
            <surname>van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sera</surname>
            <given-names>ni</given-names>
          </string-name>
          , L.,
          <string-name>
            <surname>Stuckenschmidt</surname>
          </string-name>
          , H.:
          <article-title>C-OWL: Contextualizing Ontologies</article-title>
          . In Fensel, D.,
          <string-name>
            <surname>Sycara</surname>
            ,
            <given-names>K.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , J., eds.:
          <source>International Semantic Web Conference</source>
          . Volume
          <volume>2870</volume>
          of LNCS., Springer (
          <year>2003</year>
          )
          <volume>164</volume>
          {
          <fpage>179</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Walter</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parreiras</surname>
            ,
            <given-names>F.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Staab</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>OntoDSL: An Ontology-Based Framework for Domain-Speci c Languages</article-title>
          . In Schurr,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Selic</surname>
          </string-name>
          , B., eds.:
          <source>MoDELS</source>
          . Volume
          <volume>5795</volume>
          of LNCS., Springer (
          <year>2009</year>
          )
          <volume>408</volume>
          {
          <fpage>422</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>