<!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>Semantic-based Model Matching with EMFCompare</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lorenzo Addazi</string-name>
          <email>lai15004@student.mdh.se</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Davide Di Ruscio</string-name>
          <email>davide.diruscio@univaq.it</email>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Cicchetti</string-name>
          <email>antonio.cicchetti@mdh.se</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ludovico Iovino</string-name>
          <email>ludovico.iovino@gssi.infn.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juri Di Rocco</string-name>
          <email>juri.dirocco@univaq.it</email>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alfonso Pierantonio</string-name>
          <email>alfonso.pierantonio@univaq.it, alfonso.pierantonio@mdh.it</email>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Gran Sasso Science Institute</institution>
          ,
          <addr-line>I-67100 L'Aquila</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Mälardalen University</institution>
          ,
          <addr-line>IDT, Västerås</addr-line>
          ,
          <country country="SE">Sweden</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Mälardalen University</institution>
          ,
          <addr-line>IDT, Västerås</addr-line>
          ,
          <country country="SE">Sweden</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of L'Aquila</institution>
          ,
          <addr-line>I-67100 L'Aquila</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>University of L'Aquila</institution>
          ,
          <addr-line>I-67100 L'Aquila</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>University of L'Aquila</institution>
          ,
          <addr-line>I-67100 L'Aquila</addr-line>
          ,
          <country country="IT">Italy</country>
          ,
          <institution>Mälardalen University</institution>
          ,
          <addr-line>IDT, Västerås</addr-line>
          ,
          <country country="SE">Sweden</country>
        </aff>
      </contrib-group>
      <fpage>40</fpage>
      <lpage>49</lpage>
      <abstract>
        <p>In MDE resolving pragmatic issues related to the management of models is key to success. Model comparison is one of the most challenging operations playing a central role in a wide range of modelling activities including model versioning, evolution and even collaborative and distributed specification of models. Over the last decade, several syntactic methods have been proposed to compare models even though they struggle in achieving higher levels of accuracy especially when the semantics of the application domain has to be considered. Existing methods improve comparison precision at the price of high performance costs. This paper discusses a lightweight semantic comparison method, which relies on a new matching algorithm that considers ontological information encoded in the WordNet lexical database further than ordinary syntactical and structural correlations. The approach has been implemented as extension of EMFCompare and evaluated to measure its precision and performances when compared to existing approaches. model differencing; syntactic matching; semantic matching; ontological matching; EMFCompare</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION</title>
      <p>
        Model-Driven Engineering (MDE) promotes the migration from
a code-centric to a model-based approach to cope with the
increasing development complexity of modern software systems. Models
abstract real-world phenomena focusing on a specific aspect, e.g.
its dynamic behaviour, its static structure, and assume the role of
first-class artefacts throughout the software life cycle [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Addressing pragmatic issues related to the management and
evolution of models has become a major concern in Model Driven
Engineering [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] (MDE). Critical facilities such as model mergers and
model difference tools related to model-level observability are key
in distributed development of modeling artifacts. As noticed
already in 2003 by Bran Selic model difference tools "must work at
a semantically meaningful level." [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Over the years, relevant advances have been provided in the area
of model differencing in terms of methods, such as similarity-based
approaches [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ], and tools with the introduction of the
EMFCompare [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] in the EMF ecosystem. However, the problem of
determining model differences represents an intrinsically complex task,
especially when dealing with two-way state-based comparisons [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ],
i.e. when the differencing is based on the sole information stored
in the two models being compared.
      </p>
      <p>
        Model differencing, indeed, relies on Model Matching, i.e. the
calculation of correspondences among model elements, which can
be reduced to the NP-Hard Graph Isomorphism Problem, that is the
problem of finding correspondences between graphs [
        <xref ref-type="bibr" rid="ref5 ref8">8, 5</xref>
        ]. The
available approaches to model matching are all different ways to
deal with this intrinsic hardness, which is typically alleviated through
either domain-specific or generic but approximate solution [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        In this paper, we make a first step towards the introduction of
semantic reasoning within the matching process in EMFCompare.
In particular, we present a custom matching engine extending the
default one of EMFCompare. In addition to the syntactical and
structural correlations, the proposed extension compares model
elements with respect to their semantic meaning using the WordNet
lexical database [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Furthermore, the effectiveness and efficiency
of the proposed approach is evaluated on a matching scenario based
on an existing benchmark.
      </p>
      <p>Structure of the paper: The paper is organized as follows.
Section 2 presents an example motivating the work. Section 3 provides
an overview of the model differencing problem. Section 4 outlines
the main phases of the comparison process of EMFCompare and
highlights its limitations. Section 5 outlines the WordNet lexical
database, and the various semantic similarity measures based on its
structural organization of concepts. Section 6 presents our main
contribution, that is, a semantic extension of the matching process
in EMFCompare. Section 7 evaluates the extension on a
matching scenario based on an existing benchmark. Section 8 concludes
the paper providing a brief summary and a discussion of possible
future directions.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>MOTIVATING SCENARIO</title>
      <p>As mentioned before, the problem of calculating differences
between two model versions is intrinsically difficult. Figure 1 depicts
a practical example involving two different versions of the
ThesisManagementSystem metamodel, that is a small-scale reproduction
of university theses management portal. According to the initial
version of the metamodel shown in Fig.1.a, a ThesisSystem
contains information about Departments, Students, teaching
staff (TeachingStaffMember), and Thesis. In order to
satisfy unforeseen requirements or to refine existing constructs,
metamodels can be modified as in the case of the new version of the
ThesisManagementSystem metamodel shown in Fig.1.b, which has
been obtained by applying the two metamodel changes described
below.</p>
      <p>Extract user super class: in the first version of the metamodel,
Student and TeachingStaffMember classes are completely
separated despite sharing most of their attributes. Moreover, the
metaclass Student has forename and surname attributes while
TeachingStaffMember has only a name attribute grouping
both name and surname. In light of this, the evolved metamodel
version extracts the common information among Student and
TeachingStaffMember into an additional superclass User,
while TeachingStaffMember’s name is partitioned in User’s
forename and surname attributes.</p>
      <p>Thesis Attribute Renaming: in the first version of the metamodel,
the main theme of a thesis is expressed through the topic attribute
in the Thesis class. In the newer version, this attribute is renamed
to subject. Intuitively, these attributes express the same concept,
i.e. the principal issue discussed in a given thesis.
a) Initial metamodel version
b) Evolved metamodel version
∗ contained structural features are fully matched
• remaining structural features are fully matched
the class User, i.e. U.id, U.forename, etc. in the evolved
version; between the relationships outgoing from Student and
targeting the Thesis classes. The total number of manually
identified correspondences is 37.
3.</p>
    </sec>
    <sec id="sec-3">
      <title>MODEL DIFFERENCING OVERVIEW</title>
      <p>
        Existing model differencing approaches can be considered as
logically composed of three main phases: i) compared models are
imported in a differencing friendly format (typically graph-based
structures); ii) a matching algorithm navigates the models to detect
and establish correspondences between entities in the two
models being compared; iii) a dedicated algorithm computes the
differences of the matched elements in terms of (at least) additions,
deletions, and changes of model entities as based on the matches
established in the previous phase. In this respect, the matching phase
is critical in any differencing approach, since any erroneous match,
both false-positive and false-negative, results in a wrong output.
More in general, requirements for model matching approaches
include accuracy, a high level of abstraction at which the comparison
is performed, independence from particular tools, domains, and
languages, efficiency, and minimal effort. In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] authors classify
model matching approaches as follows:
– Static Identity-Based Matching: in this category, it is
assumed that each model element has a persistent unique
identifier that is assigned to it upon creation. Therefore, a basic
approach for matching models is to identify matching model
elements based on their corresponding identities (as in [
        <xref ref-type="bibr" rid="ref11 ref12 ref13">11,
12, 13</xref>
        ]);
– Signature-Based Matching: in this category, the identity of
each model element is not static. Instead its identity,
typically referred to as signature, is dynamically calculated by
combining the values of its features. The signature
computation is performed by means of a user-defined function
specified using a model querying language (as in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]);
– Similarity-Based Matching: the approaches in this category
treat models as typed attribute graphs and attempts to
identify matching elements based on the aggregated similarity of
their features. It is worth noting that not all features of model
elements are equally relevant for establishing a match (e.g.
classes with matching names are more likely to be matched
with classes specialising the same parent superclass).
Therefore, similarity-based algorithms typically need to be
provided with a configuration that specifies the relative weight
of each feature and thus of detected correspondences (as in
[
        <xref ref-type="bibr" rid="ref13 ref15 ref5">5, 15, 13</xref>
        ]);
– Custom Language-Specific Matching Algorithms: this
category involves matching algorithms tailored to a particular
modelling language. Notably, UMLDiff [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and the work in
[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] specifically target UML models and statecharts,
respectively. In these cases, the narrow set of available entities,
their semantics, and their valid evolution alternatives, allows
to specialise the matching algorithm computations.
      </p>
      <p>
        None of the approaches previously listed can be considered as
the best solution as shown in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Instead, the choice of a model
matching solution should be evaluated as trying to optimise the
trade-off between the constraints imposed by the context and the
particular task at stake. This work is based on EMFCompare due
to the flexibility and customisability of its matching engine, as
detailed in the remainder of this section.
      </p>
    </sec>
    <sec id="sec-4">
      <title>THE EMFCOMPARE TOOL: OVERVIEW</title>
    </sec>
    <sec id="sec-5">
      <title>AND LIMITATIONS</title>
      <p>
        EMFCompare [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] is an Eclipse project which was initiated in
2006 at Eclipse Summit Europe, where the need for a model
comparison engine emerged. It provides generic and customisable
support for model comparison and merge of EMF models, such as
Ecore and UML. The most relevant characteristic with respect to
other approaches, at the time, consists in its high degree of
extensibility: in fact, the whole comparison process is indeed designed
to be completely customisable. In particular, the different
activities composing the comparison process are explicitly disjoint and
managed using different software entities, i.e. engines.
Furthermore, according to its extensible nature, EMFCompare provides
full support for the extension of its default metamodel-independent
behaviour to tailor custom or metamodel-specific solutions.
      </p>
      <p>
        The main advantage resulting from the explicit partition of the
comparison process in its various sub-activities is that developers
can focus on the specific part of the process they are going to
extend/customise, while leaving the management of the remaining
steps to the framework. For instance, the default matching
approach adopted in EMFCompare falls in the similarity-based
techniques. However, it also provides the possibility to adopt a static
identity-based or a signature-based matching approach, possibly
defining custom generator functions, if needed. In this regard, it is
worth mentioning that this paper focuses on metamodel-independent
differencing, which is incompatible with static identity-based and
signature-based approaches [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>In the following, we first provide a brief description of the overall
comparison process in EMFCompare. Then, we focus our attention
on the issues and limitations affecting the matching phase; such a
phase will constitute the foothold on which our main contribution
is built.
4.1</p>
    </sec>
    <sec id="sec-6">
      <title>The Comparison Process</title>
      <p>
        The EMFCompare comparison process can be roughly divided
into six phases, whose main characteristics are singularly described
below. The matching phase is illustrated in deeper details due to its
relevance for this contribution, while the interested reader can refer
to [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] for further details about the other phases.
      </p>
      <p>Phase 1: Model resolving - This phase builds a logical
representation of the overall comparison context, i.e. a model representing
the artefacts to be compared enriched with the information required
for the subsequent activities.</p>
      <p>Phase 2: Model matching - Once resolved the logical models, the
matching phase creates a set of two-by-two mappings while
iterating over the model elements, e.g. Student in the model in Fig.1.a
corresponds to Student in the model in Fig.1.b. By going into more
details, for each element in the first model it is necessary to browse
the elements in the second in order to find the most similar one.
The default match engine firstly selects a specific element pair, and
subsequently a similarity evaluation is computed by the
combination of four different metrics in an overall score ranging from 0,
i.e. completely different, to 1, i.e. identical elements. These
metrics analyse the name of an element, its content, its type, and its
relations with other elements.</p>
      <p>
        Despite considering different characteristics of a given element,
all the metrics adopt the same comparison approach. Indeed, for
each metric, the final result is given by the execution of a string
distance algorithm, e.g. the Levenshtein Distance Algorithm [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], on
the string representation of the elements. In order to better explain
this fundamental phase, listing 1 reports a simplified
matchingalgorithm pseudo-code. After the result initialisation (line 1), the
algorithm iterates over all possible element pairs to compute their
similarity (lines 2–4). It is worth noting that for optimisation
purposes the models are not compared as a whole, whereas the possible
elements are selected within a proper search window (line 3).
      </p>
      <p>Once all the possible candidate matches are identified, the
createMatch method takes as input the similarity values, and by using
threshold policies produces the Comparison object containing all
detected matches. The elements included in the current search
window which are not matched yet are forwarded to future searches to
possibly produce new matches.</p>
      <p>Listing 1: EMFCompare default match engine implementation
1 result = Double[Model1.getElements().size()][Model1.</p>
      <p>getElements().size()]
2 foreach (elM1 : Model1.getElements())
3 foreach (elM2 : elM1.getWindowElements())
4 result[elM1][elM2] = calculateSimilarity(elM1, elM2)
5 return createMatches(result)
Phase 3: Model differencing - In this phase, the output of the
matching is analysed to classify the various changes happened from
a version to another. For instance, an element only present in the
old version is classified as a deletion, an element only present in
the new version as an addition, while a match can either be an
untouched element, or an element subject to updates.</p>
      <sec id="sec-6-1">
        <title>Phase 4: Detection of difference equivalences - During the equiv</title>
        <p>alences step, the produced differences are analysed for filtering out
redundant correspondences.</p>
      </sec>
      <sec id="sec-6-2">
        <title>Phase 5: Detection of difference requirements - In this phase the</title>
        <p>produced differences are analysed once more to detect possible
dependencies among them. Notably, the addition of the specialisation
relationship between Student and User in the model in Fig.1.b
could not exist without the creation of User, which does not exist
in the old version of the model (see Fig.1.a).
∗ contained structural features are fully matched
• topic and subject attributes are not paired but other contained
structural features are fully matched.</p>
      </sec>
      <sec id="sec-6-3">
        <title>Phase 6: Detection of difference conflicts - This phase allows to</title>
        <p>link the comparison process with a conflict detection mechanism,
for instance when dealing with models managed through a Version
Control System (VCS).
4.2</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Limitations and Issues</title>
      <p>According to performed experiments EMFCompare might have
difficulties when dealing with comparison scenarios presenting
complex correspondences. In particular, we define complex those
differences which cannot be detected considering syntactical features
only, or those differences characterised by n-to-m matches.
Examples of representative complex correspondences are renaming
an element using a synonym term, extracting features in common
among multiple entities into a more generic one, or vice-versa,
decomposing or distributing an entity feature among more specific
entities.</p>
      <p>By considering the default implementation of the EMFCompare
matching process, we have classified the emerging issues into two
categories, namely contextual issues and linguistic issues. The
former result from the limited consideration of the features
characterising the elements surrounding the compared ones, e.g. the
classes containing a given pair of attributes. The latter, i.e.
linguistic issues, result from the lack of a semantical evaluation of the
features characterising the compared elements. Renaming a given
class using a syntactically different name, for example, could lead
to a false-negative, i.e. undetected correspondence. Analogously,
a false positive, i.e. unexpected correspondence, could result when
renaming a given class using a semantically different term, which
however presents a strong syntactical similarity with another
existing one.</p>
      <p>Keeping in mind contextual and linguistic issues, Table 2 show
the calculated matches with respect to the motivating example
introduced in Sec.2. The EMFCompare default implementation
identifies 25 matches, in particular 12 false negatives and 0 false
positives. In particular, EMFCompare is not able to detect the
correspondence between the attributes in the old Student metaclass
and the new ones inherited from the extracted superclass User.
Moreover, the comparison does not match the old topic attribute
with the new subject attribute contained in Thesis metaclass.</p>
    </sec>
    <sec id="sec-8">
      <title>WORDNET-BASED SIMILARITY</title>
      <p>In this section, we provide an overview of the WordNet lexical
database (see Sect. 5.1) and of related semantic similarity measures
(see Sect. 5.2). Such techniques and tools underpin the
improvement of EMFCompare proposed in Sect. 6 in order to mitigate the
issues discussed in the previous section.
5.1</p>
    </sec>
    <sec id="sec-9">
      <title>WordNet in a nutshell</title>
      <p>
        WordNet [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is a lexical database for the English language. It
was created and is being maintained at the Cognitive Science
Laboratory of Princeton University under the direction of psychology
professor George A. Miller. In this database, English words are
grouped into sets of synonyms called synsets, which also include a
generic definition joining the contained words together and
information about the semantic relationships connecting them to other
synsets. The specific meaning of one word under a specific
PartOf-Speech (POS) is called a sense. Each synset has a gloss that
defines the concept it represents. For example, the words night,
nighttime, and dark constitute a single synset that has the
following gloss: “the time after sunset and before sunrise while it is dark
outside”. The purpose is twofold: to produce a combination of
dictionary and thesaurus that is more intuitively usable, and to
support automatic text analysis and artificial intelligence applications
[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Synsets are connected to one another through explicit
semantic relations. Some of these relations (hypernym, hyponym for
nouns, and hypernym and troponym for verbs) constitute
is-a-kindof (holonymy) and is-a-part-of (meronymy for nouns) hierarchies.
For example, tree is a kind of plant, tree is a hyponym of plant,
and plant is a hypernym of tree. Analogously, trunk is a part of
a tree, and we have trunk as a meronym of tree. While
semantic relations apply to all members of a synset, because they share
a meaning but are all mutually synonyms, words can also be
connected to other words through lexical relations, including antonyms
(i.e., opposites of each other) which are derivationally related, as
well. WordNet provides also the polysemy count of a word, i.e. the
number of synsets that contain the word. If a word participates in
several synsets (i.e., has several senses) then typically some senses
are much more common than others.
5.2
      </p>
    </sec>
    <sec id="sec-10">
      <title>Semantic Similarity Measures</title>
      <p>
        Semantic similarity measures might be used for performing tasks
such as term disambiguation [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], as well as text segmentation, and
for checking ontologies for consistency or coherence. All the
currently available measures can be grouped into four classes [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]: i)
path-length based, ii) information-content based, iii) feature based,
and iv) hybrid measures. In the following, a brief explanation for
each of these measure classes is provided with further emphasis on
information-content based measures, which have been adopted to
develop the proposed EMFCompare extension.
      </p>
      <p>
        Path-length based measures. The main idea of path length based
measures is that the similarity between two concepts is a function
of the length of the path linking the concepts and the position of
the concepts in the WordNet taxonomy. Although most path length
based measures are simple to use, local density of pairs (i.e.,
frequency of the involved terms) fails to be reflected [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
Feature based measures. Unlike the other measures, feature based
measures are independent from the taxonomy and the
subsumptions of the concepts. In particular, they attempt to exploit the
properties of the ontology in order to obtain similarity values. Indeed,
this kind of measures is based on the assumption that each concept
is described by a set of words indicating its properties or features,
such as glosses in WordNet. The more common characteristic two
concepts have and the less non-common characteristics they have,
the more similar the concepts are. However, it is worth noting that
this kind of measures introduces a noteworthy computational delay
into the overall process. Furthermore, feature based measures
require a complete and correct feature set to work properly, which is
not always an easy task to perform [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <sec id="sec-10-1">
        <title>Information-content based measures. In information-content (IC)</title>
        <p>
          based measures, it is assumed that each concept includes a certain
amount of information in WordNet. Similarity measures are based
on such information content of each concept within the taxonomy.
The more common information two concepts share, the more
similar the concepts are. Lin’s Measure [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] uses both the amount of
information needed to state the commonality between the two
concepts and the information needed to fully describe these terms. The
similarity measure formula is defined as follows:
        </p>
        <p>SimLin(c1, c2) =
2 ∗ IC(lso(c1, c2))
IC(c1) + IC(c2)
(1)
where IC(lso(c1, c2)) is the information needed to state the
commonality between c1 and c2, whereas IC(ci) is the information
needed to represent the concept ci.</p>
        <p>
          In general, IC based measures attempt to exploit the information
related to a given pair of concepts in order to evaluate their
similarity. Therefore, how to obtain IC represents a crucial issue, which
will directly affect the measure application performance. In [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ],
the IC value of a concept is a function of its number of hyponyms.
The more hyponyms a concept has, the more abstract it is. That
is to say, concepts with many hyponyms convey less information
than concepts that are leaves in the taxonomy. A common issue
encountered in adopting IC based measures consists in less precise
evaluations as regards the structure information of concepts, which
is fairly captured in path length based measures on the contrary.
However, IC based measures provide a relevant improvement in
terms of computational complexity, thus making it the convenient
in our case.
        </p>
        <p>
          Hybrid measures. The hybrid measures combine the above
mentioned ones. In practice, many measures not only are able to
combine the ideas presented above, but also the relations, such as is-a,
part-of, and so on. For instance, the Rodriguez’s measure [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]
includes three parts: (i) synonyms set, (ii) neighbourhoods, and (iii)
features. The similarity value of each part is assigned to a weight,
and then summed together. Generally, both IC and path length
based measures are integrated as parameters into hybrid functions,
as it is has been proposed in [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-11">
      <title>EXTENSION OF EMFCOMPARE WITH</title>
    </sec>
    <sec id="sec-12">
      <title>SEMANTIC MODEL MATCHING</title>
      <p>In this section, we propose an extension of EMFCompare aiming
at addressing both the linguistic and contextual issues presented in
Section 4.2. Furthermore, our solution introduces support for the
definition of custom matching approaches using ontological
descriptions in EMFCompare, instead of custom-tailored match
engine implementations.</p>
      <p>Thanks to the intrinsic extensibility of EMFCompare, our method
has been developed focusing on the matching phase only, hence
leaving untouched the previous and subsequent steps1. In
particular, the matching process has been modified redefining the
selection process of model elements, i.e. which elements to compare
among each other, and the evaluation approach itself, i.e. the
computation of the similarity value corresponding to a specific model
elements pair. The proposed solution limits its semantic
reasoning to the comparison among model element names, and relies on
the WordNet lexical dictionary as ontological source. However,
the knowledge is not directly retrieved from the WordNet database,
but rather from an automatically generated graph. In this way, our
1The prototypical implementation of the EMFCompare
semantic model matching extension is available at: https://github.com/
MDEGroup/EMFCompare-Semantic-Extension .
method does not directly depend on the WordNet database structure
itself, hence enabling the adoption of other ontologies.</p>
      <p>In order to define our method, we have extended the concept of
Match in the underlying EMFCompare comparison model by
introducing the Semantic Match concept (see the Semantic Match
Engine element in Fig. 2). The differences with respect to the
ordinary Match consist in: (i) semantic distance value, i.e. each
match carries information about the semantic distance among the
encapsulated model elements, (ii) container matches list, i.e. each
match carries references to the containers of the encapsulated model
elements, and (iii) content matches list, i.e. each match carries
references to the content of the encapsulated model elements.</p>
      <p>The overall matching process, as illustrated in Listing 2, can be
decomposed in three separated phases: (i) exploration, (ii)
evaluation and (iii) filtering. In compliance with the default
implementation in EMFCompare, the process starts receiving a logical
representation of the compared models and terminates producing a set
containing the expected matches.
1 function createMatches(Comparison comparison, List
leftEObjects, List rightEObjects){
2 SemanticMatch root = createSemanticMatch(null, null);
3 exploreMatches(root, leftEObjects, rightEObjects);
4 evaluateMatches(root);
5 filterMatches(root, comparison);
6 }</p>
      <sec id="sec-12-1">
        <title>Listing 2: Pseudo-code of the proposed semantic model match approach</title>
        <p>The three steps underpinning the proposed semantic match are
singularly described in the following.</p>
        <p>Exploration: during the exploration phase, our method builds a
labelled graph representation of the compared models. In such a
representation, each node represents a semantic match, while each
incoming or outgoing labelled edge represents a connection with
its parents or children elements, respectively. The exploration
process is listed in Listing 3. Given a starting pair of model elements,
i.e. the root parameter, the exploration phase first iterates over
their contained elements, (lines 2-3). For each pair of elements of
the same type, our method creates a new Semantic Match node
and connects it to the initial pair (lines 5-7). Finally, the same
exploration process is recursively repeated on the created node (line
8).
1 function exploreMatches(SemanticMatch root, List
leftEObjects, List rightEObject){
2 foreach(leftEObject : leftEObjects)
3 foreach(rightEObject : rightEObjects){
4 if(leftEObject.getClass().equals(rightEObject.getClass
())){
5 SemanticMatch current = createSemanticMatch(
leftEObject, rightEObject);
6 current.addParent(root);
7 root.addChild(current);
8 exploreMatches(current, leftEObject.getContent(),
rightEObject.getContent());</p>
        <p>
          The semantic distance evaluation process is described in
Listing 5. Given two model elements, the process begins with three
subsequent preprocessing operations aimed to prepare the input for
the subsequent evaluation (lines 2-3). Each string is tokenized by
using as delimeters any non-alphabetical character, blank spaces
and uppercasing - lowcasing changes in the word (line 12). Once,
the obtained sequences are analyzed using the Stanford Log-Linear
Part-Of-Speech Tagger [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ], which assigns parts of speech, such as
noun, verb or adjective, to each elements (line 13). Finally, in the
token stemming step, for each tagged token, our method retrieves
the corresponding root word using WordNet (line 14). At the end of
the preprocessing phase, the initial strings are transformed to
POStagged sequences, which represent the input for the actual
comparison phase.
        </p>
        <p>
          In order to evaluate the semantic similarity between two token
sequences, our method first compares each element from the first
with the elements from the latter (lines 5-6). For each element pair,
the comparison consists in retrieving all the possible synsets which
are related to the given words, evaluate their semantic distance
using the inverted Lin’s Algorithm (see Sect. 5.2), and returns back
the minimum obtained value, i.e. how much the given words are
similar in the best case (lines 7). In particular, we chose to adopt the
corpora-independent method proposed in [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], which uses
WordNet itself as a statistical resource to calculate IC values. Once that
each pair has been evaluated, the final result is given by the Min
Match Average of the obtained values, i.e. the sum of the minimum
distance for each pair of tokens, divided by the maximum token
list length among the involved ones (line 8). The final value ranges
from 0, i.e. identical elements, to 1, i.e. not matching.
1 function Double evaluateSemanticDistance(EObject left,
        </p>
        <p>EObject right){
2 leftTokens = inputProcessing(left);
3 rightTokens = inputProcessing(right);
4 Double[][] result = new Double[leftTokens.size()][
rightTokens.size()];
5 foreach(leftToken : leftTokens)
6 foreach(rightToken : rightTokens)
7 result[leftToken][rightToken] = invertedLin(leftToken,
rightToken);
8 return minMatchAverage(result);
9 }
10
11 function List inputProcessing(EObject element){
12 List result = tokenizeString(element.getName());
13 result = tagTokenList(result);
14 return stemTokenList(result);
15 }</p>
      </sec>
      <sec id="sec-12-2">
        <title>Listing 5: Pseudo-code of the semantic distance evaluation</title>
        <p>Filtering: starting from the semantic distance values obtained
during the previous steps, in this phase each Semantic Match node
is analysed in order to decide whether or not to put it into the
result set, as illustrated in Listing 6. Given an initial node, its
analysis value results from the weighted arithmetic mean of the
semantic distance value between the encapsulated model elements,
the average semantic distance values between their children, and
the minimum semantic distance value between their parents (lines
2-5). In order to be accepted, a Semantic Match node must
have a lower analysis value with respect to a pre-defined threshold
Tα. According to the requirements imposed by EMFCompare, the
final matches are inserted into the comparison set (line 7).
Furthermore, for each rejected node, we create two substituting matches
having the left and the right element only, respectively (lines 9-10).
The same process is then recursively repeated for each Semantic
Match child (lines 12-14).
1 function filterMatches(SemanticMatch root, Comparison
comparison){
2 Double rootDistance = root.getSemanticDistance() * root.</p>
        <p>getSemanticDistanceWeight();
3 Double childrenDistance = averageSemanticDistance(root.</p>
        <p>getChildren());
4 Double parentDistance = minSemanticDistance(root.</p>
        <p>getParents());
5 Double overallDistance = weightedArithmeticMean(
semanticDistance, childrenDistance, parentDistance)
;
6 if(overallDistance &lt; Tα){
7 comparison.add(root);
8 } else {
9 comparison.add(new SemanticMatch(root.getLeft(), null))
;
10 comparison.add(new SemanticMatch(null, root.getRight())
);
11 }
12 foreach(child : root.getChildren()){
13 filterMatches(child, comparison);
14 }
15 }
16
17 function Double weightedArithmeticMean(Double root,</p>
        <p>Double children, Double parent){
18 return WR*root + WC *children + WP *parent;
19 }</p>
      </sec>
      <sec id="sec-12-3">
        <title>Listing 6: Pseudo-code of the Filtering phase pseudo-code</title>
        <p>By considering the motivating example presented in Section 2,
the proposed semantic approach identifies correctly the 37 manual
correspondences and no false positives are found. Therefore, the
calculated matches are identical to the manual correspondences and
the first matches are exactly the same shown in Table 1.</p>
      </sec>
    </sec>
    <sec id="sec-13">
      <title>VALIDATION</title>
      <p>
        In order to validate our approach, we performed an experiment
using a matching case benchmark inspired by [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] beyond
successful tests on the motivating example presented in Section 2. This
choice was due to the impossibility to reproduce our example on
[
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], and also to the opportunity of exploiting a larger experimental
set. Once completed the experiment, we have compared our results
to the principal state-of-the-art model matching tools. In detail, we
have considered EMFCompare and Atlas Model Weaver (AMW),
which represent the state-of-the-art matching tools in EMF.
Furthermore, in order to extend our evaluation to matching tools in
general, we have also included four existing approaches from the
field of ontology and schema matching [
        <xref ref-type="bibr" rid="ref28 ref29 ref30 ref31">28, 29, 30, 31</xref>
        ], and the
search-based approach proposed in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. Furthermore, we have
compared our approach against GAMMA and [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] with respect to
the difference computation performances.
      </p>
      <p>
        In this section, we first describe the corpus of data used in our
experiment, as well as the measures used for the evaluation. Then,
we discuss the obtained results and compare them to the results
produced using the other approaches. We refer the interested reader
to [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] for further details about the results obtained by the other
tools.
7.1
      </p>
    </sec>
    <sec id="sec-14">
      <title>The Model Exchange Benchmark</title>
      <p>The benchmark considered for our experiment consists of five
structural modelling languages, namely UML 2.0, UML 1.4.2, Ecore,
WebML and EER, as shown in Table 3. These metamodels present
different characteristics with respect to both the size and used
terminology. Indeed, as far as the metamodel size is concerned, the
considered metamodels range from small-sized, e.g. EER, to
largesized, e.g. UML 2.0. Furthermore, while Ecore and UML
metamodels use an object-oriented (OO) terminology, WebML and EER
use database (DB) terminology.</p>
      <p>
        All the possible pairs of the considered metamodels are
considered as input to calculate the matches by means of GAMMA,
EMFCompare, and the proposed approach named Semantic
EMFCompare hereafter. In order to evaluate the quality of the produced
match results, manual correspondences are reused from the
previous studies using the INRIA alignment format provided in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
7.2
      </p>
    </sec>
    <sec id="sec-15">
      <title>Measures</title>
      <p>In order to evaluate the results produced by our approach, we
consider them with respect to three different metrics from the
information retrieval field: Precision, Recall and F-Measure. In this
context, the Precision measure denotes the percentage of correctly
matched elements with respect to all the proposed matchings as
shown in equation 2.</p>
      <p>P recision =
|{Retrieved M atches} ∩ {Relevant M atches}|
|{Retrieved M atches}|
(2)</p>
      <sec id="sec-15-1">
        <title>Metamodel</title>
        <p>UML 2.0 CD
UML 1.4.2 CD</p>
      </sec>
      <sec id="sec-15-2">
        <title>Ecore</title>
      </sec>
      <sec id="sec-15-3">
        <title>WebML EER</title>
      </sec>
      <sec id="sec-15-4">
        <title>Size</title>
        <p>158
143
83
53
23</p>
      </sec>
      <sec id="sec-15-5">
        <title>Terminology OO OO OO</title>
        <p>DB
DB
The Recall measure, instead, indicates the percentage of correctly
matched elements with respect to all the expected matchings. In
other words, it measures how many correct matchings have been
produced, as shown in equation 3.</p>
        <p>Recall =
|{Retrieved M atches} ∩ {Relevant M atches}|
|{Relevent M atches}|
(3)
Finally, the F-measure combines both accuracy and recall in order
to get an equally weighted average value of the measures. The
corresponding formula is shown in equation 4.</p>
        <p>F − M easure = 2 ∗</p>
        <p>P recision ∗ Recall
P recision + Recall
(4)
It is worth noting that all the considered evaluation measures
produce a numerical result, ranging from 0 to 1, where 0 corresponds
to the worst and the 1 to the best possible value.
7.3</p>
      </sec>
    </sec>
    <sec id="sec-16">
      <title>Results</title>
      <p>In this section, we discuss the obtained results with respect to
Precision, Accuracy and F-Measure, first, and time performance,
then.
7.3.1</p>
      <p>Quality Performance Results</p>
      <p>Figure 3 illustrates the results obtained with our proposed method,
GAMMA and EMFCompare for the model exchange benchmark.
Each axis of the glyph represents a matching task involving two
metamodels from the initial set. The three metrics are represented
using three quantitative variables, i.e. Precision, F-measure, and
Recall.</p>
      <p>
        Overall, our method provides the second best results with respect
to Precision, Recall and F-Measure. The benchmark evaluation
allows us to understand various characteristics about our solution,
hence possible future improvements. First of all, the obtained
results allow us to observe that our solution usually produces bigger
number of matches than expected. In light of that using semantic
approach, our extension matches more terms (i.e. objects and item
by semantic extension and it does not by default implementation).
Therefore Precision has in some cases a low value whereas
considering Recall there is a significant improvement. However the
F-measure has a better value than other tools analysed in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ].
      </p>
      <p>
        Currently, the GAMMA [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] approach provides the best results in
the state-of-the-art with respect to Precision, Recall and F-Measure.
However, it is worth noting that GAMMA uses SBSE approaches
to solve the matching problem, therefore the algorithm has to be
initialised with a set of initial solutions which constitute the
knowledge base for the computation.
7.3.2
      </p>
      <p>Time Performance Results</p>
      <p>
        Considering the main ideas driving the creation of
EMFCompare, time performance is perhaps among the most important ones.
Unlike for other approaches like [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], indeed, the tool has been
deRecall
      </p>
      <p>Precision</p>
      <p>F-measure</p>
      <p>Recall</p>
      <p>Precision</p>
      <p>F-measure</p>
      <p>Recall</p>
      <p>Precision</p>
      <p>
        F-measure
a) Semantic EMFCompare
b) GAMMA
c) EMFCompare
signed to provide a fast comparison algorithm, even at the price of
showing some degradation with respect to the Precision, Recall and
F-Measure of the produced results [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        One of our main concerns was to introduce the semantic
reasoning in the comparison process while keeping good time
performances at the same time. As shown in figure 5, our extension
successfully manages to perform a semantic reasoning while
keeping acceptable time performances. In detail, our method works in
terms of seconds as shown in 4, whereas for instance the solution
proposed in [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] works in terms of minutes2.
7.4
      </p>
    </sec>
    <sec id="sec-17">
      <title>Discussion</title>
      <p>The experience accumulated during the development of the
proposed semantic extension of EMFCompare and its validation phase
permits to draw some lessons learnt, which are detailed in this
section.</p>
      <p>
        Providing the comparison engine with a semantic reasoning can
be done in a lightweight manner, as illustrated throughout this
paper. However, we have noticed that an increasing matching power
(thanks to the semantic reasoning) often comes to the price of an
increasing imprecision, and in particular to a growing amount of
false-positives or false-negatives that have to be traded-off. In fact,
on the one hand the semantic reasoning is able to detect much
more relationships between terms than a simple string
compari2Please note that [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] comparison performances are rendered in a
logarithmic scale for the sake of space.
son. On the other hand, the decomposition of entities’ names not
always produce terms known in the ontology exploited for the
semantic reasoning (in our case WordNet), thus decreasing the
similarity value. We tried to deal with this problem by tuning
similarity thresholds and extending the information about the context in
which the pair of elements is compared (i.e., including elements’
owners and relationships). Nonetheless we feel that a more
extensive experimentation is needed in order to achieve more reliable
performances.
      </p>
      <p>The issues mentioned above become very evident when
comparing metamodels, since they are not expected to represent
semantically related information, nor to contain concepts used in the
usual English language. In this scenario, setting “looser thresholds”
causes a lot of false-positives, while setting “tighter thresholds”
remarkably reduces the number of matches. Therefore, quite
surprisingly a pure syntactical comparison like the one computed by
EMFCompare is able to provide on average more precise results than a
differencing algorithm including some semantic reasoning. In this
respect, even if comparing metamodels is a threat to validity, it is a
factor that negatively affects the performances of the proposed
extension. Therefore, we believe that our extension should be tested
in the context of model comparison, given the higher probability
of having semantically close names for the compared entities.
Furthermore, we feel that the selection of the dictionary being used
with respect to the kind of models to be matched plays a key role.</p>
      <p>
        As a side remark, during our tests we have experimented the
lack of suitable mechanisms to generate differencing test cases. In
fact, in order to validate the performances of our (and also other
existing) differencing algorithm we would need an engine able to
automatically produce different versions of a model and the
corresponding expected comparison results.The current practice is to
manually compare models and specify their differences, however
this approach becomes quickly unfeasible with the increasing size
of the input models. Alternatively, there exist tools and languages
to generate sets of large models like Ecore Mutator3 and Wodel
[
        <xref ref-type="bibr" rid="ref32">32</xref>
        ] able to produce and track model manipulations (or mutations),
however they typically work only on syntactical modifications. In
this respect, there is the need to extend the mutation engine with
the appropriate awareness of semantics variability, taking into
account that there is always the risk of introducing some bias in the
expected differencing results.
      </p>
    </sec>
    <sec id="sec-18">
      <title>RELATED WORKS</title>
      <p>
        Despite model versioning has been recognised as a critical
feature for the successful adoption of MDE, performing model
comparison with acceptable performances, both time- and
precisionwise, is still an open research problem. In this respect, there exists
a large body of literature discussing solutions to model comparison.
A complete discussion of the existing literature goes far beyond the
scope of this work, the interested reader can refer to [
        <xref ref-type="bibr" rid="ref17 ref27">17, 27</xref>
        ] as
initial papers from which explore the field further. For the purpose of
this paper, it is relevant to mention that in general approaches can
deal with syntax or semantic matching. In both cases the
comparison can be enriched by structural reasoning that helps in enhancing
the precision of the matches [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Therefore, the extension proposed
in this work can be considered as semantic matching with structural
reasoning.
      </p>
      <p>
        Other researchers have proposed semantic matching algorithms,
like [
        <xref ref-type="bibr" rid="ref33 ref34 ref35">33, 34, 35</xref>
        ], just to mention a few. These techniques share the
general approach of translating the syntax in a corresponding
semantic domain, in which the matching is performed. Notably, both
[
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] and [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] rely on the behavioural semantics related to the
compared models, while [
        <xref ref-type="bibr" rid="ref33">33</xref>
        ] proposes to translate the compared
(meta)models into corresponding ontologies and use ontology
comparison algorithms. Our approach is closer to the last mentioned, since
it exploits WordNet database and the linguistic relationships
between terms to identify the possible semantic matches between the
compared models. However, we do not consider the different
methods as mutually exclusive, but rather potentially contributing to a
more precise matching result. The open research problem is to
provide empirical/formal foundations on how to appropriately
combine the different techniques. As mentioned in this work, already
combining syntactical and ontological matching is not
straightforward in terms of the choice of the similarity thresholds, the order
of the matching algorithms executions, and so forth.
      </p>
      <p>
        The contribution by Kessentini et al. [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] is different from the
previous ones since it is based on a search-based solution. Even
if the precision of the matching can reach very good results, the
unavoidable learning phase and the computation time can represent
usability barriers of this and other similar solutions.
      </p>
      <p>
        From a broader perspective, there exists a corpus of literature
devoted to the problem of semantic clustering code to
automatically extract trace links with requirements, documentation, design
models, and more in general for information retrieval [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ]. These
techniques explore a set of artefacts, independently, with the goal of
identifying clusters (also called topics), their characteristics
(well3https://code.google.com/archive/a/eclipselabs.org/p/
ecore-mutator
contained, cross-cutting, etc.), and the relationships among them.
Then, the clusters in different documents are compared to identify
matches [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ]. Again, these approaches should not be conceived as
mutually exclusive with respect to the exploitation of the
semantic differencing illustrated in our proposal. On the contrary, they
can constitute a useful characterisation of models for enhancing
the precision of the matching algorithm.
      </p>
    </sec>
    <sec id="sec-19">
      <title>CONCLUSIONS AND FUTURE WORKS</title>
      <p>
        In this paper, we presented an extension of the EMFCompare
matching algorithm, which integrates the use of ontological
information in order to calculate the similarity among two given model
elements. The proposed solution represents an initial step towards
the integration of semantic reasoning in the EMFCompare
platform. Once presented our method, as well as the background
notions it relies on, we also presented the results obtained from its
application on the model exchange benchmark, which has been
borrowed from [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]. Our solution does not provide the best
results with respect to precision, recall and F-measure. However, the
benchmark evaluation gives us useful information for possible
future improvements. Moreover, we have successfully achieved to
maintain fast time performance in our extension, therefore
respecting one of the most important principles behind EMFCompare.
      </p>
      <p>In the near future, we plan to further extend the semantic
reasoning until completely cover the whole match engine. The current
heuristics used in EMFCompare, indeed, are only reasonable when
considering different versions of the same models, whereas tend to
create inefficiencies whenever applied to models conforming to
different metamodels. A possible solution to this inefficiency would
be to allow the user to integrate an ontological specification of the
differencing context, hence exploiting the consequent evaluations
on its content.</p>
      <p>Furthermore, although WordNet has been used in this paper, we
have already defined our solution in order to be easily adaptable to
different kind of ontological specifications. However, we plan to
make our solution even more general in order to completely
separate the ontological reasoning from its source description. Finally,
it would be interesting to investigate the application of machine
learning techniques in this context.
10.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bézivin</surname>
          </string-name>
          , “
          <article-title>On the unification power of models,” Software and Systems Modeling</article-title>
          , vol.
          <volume>4</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>171</fpage>
          -
          <lpage>188</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          , “Guest Editor's Introduction:
          <string-name>
            <surname>Model-Driven</surname>
            <given-names>Engineering</given-names>
          </string-name>
          ,” Computer, vol.
          <volume>39</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>31</lpage>
          , Feb.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          , “
          <article-title>The pragmatics of model-driven development</article-title>
          ,
          <source>” IEEE Software</source>
          , vol.
          <volume>20</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Xing</surname>
          </string-name>
          and E. Stroulia, “
          <article-title>Umldiff: An algorithm for object-oriented design differencing,” in Procs of the 20th</article-title>
          <source>IEEE/ACM Int. Conf. on Automated Software Engineering (ASE</source>
          <year>2015</year>
          )
          <article-title>, ser</article-title>
          .
          <source>ASE '05</source>
          . New York, NY, USA: ACM,
          <year>2005</year>
          , pp.
          <fpage>54</fpage>
          -
          <lpage>65</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          , “
          <article-title>DSMDiff: a differentiation tool for domain-specific models</article-title>
          ,”
          <source>European Journal of Information Systems</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>349</fpage>
          -
          <lpage>361</lpage>
          ,
          <year>2007</year>
          . [Online]. Available: https://hal.archives-ouvertes.fr/hal-00483464
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Brun</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , “
          <article-title>Model differences in the eclipse modeling framework,” The European Journal for the Informatics Professional</article-title>
          , April-May
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mens</surname>
          </string-name>
          , “
          <article-title>A state-of-the-art survey on software merging,”</article-title>
          <source>IEEE Trans. Softw</source>
          . Eng., vol.
          <volume>28</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>449</fpage>
          -
          <lpage>462</lpage>
          , May
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>R. C.</given-names>
            <surname>Read</surname>
          </string-name>
          and
          <string-name>
            <given-names>D. G.</given-names>
            <surname>Corneil</surname>
          </string-name>
          , “
          <article-title>The graph isomorphism disease</article-title>
          ,
          <source>” J. Graph Theory</source>
          , vol.
          <volume>1</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>339</fpage>
          -
          <lpage>363</lpage>
          ,
          <year>1977</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , “
          <article-title>Different models for model matching: An analysis of approaches to support model differencing,” in Procs</article-title>
          .
          <source>of the 2009 ICSE Workshop on Comparison and Versioning of Software Models, ser. CVSM '09</source>
          . Washington, DC, USA: IEEE Computer Society,
          <year>2009</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Oram</surname>
          </string-name>
          , “
          <article-title>Wordnet: An electronic lexical database</article-title>
          . christiane fellbaum (ed.). cambridge, ma: Mit press,
          <year>1998</year>
          . pp.
          <fpage>423</fpage>
          .” Applied Psycholinguistics, vol.
          <volume>22</volume>
          , pp.
          <fpage>131</fpage>
          -
          <issue>134</issue>
          , 3
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Alanen</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Porres</surname>
          </string-name>
          , Difference and union of models. Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Farail</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Gaufillet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Canals</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Le Camus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Sciamma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Michel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Crégut</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Pantel</surname>
          </string-name>
          , “
          <article-title>The topcased project: a toolkit in open source for critical aeronautic systems design,” Embedded Real Time Software (ERTS)</article-title>
          , vol.
          <volume>781</volume>
          , pp.
          <fpage>54</fpage>
          -
          <lpage>59</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Toulmé</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Inc</surname>
          </string-name>
          , “
          <article-title>Presentation of emf compare utility</article-title>
          ,” in Eclipse Modeling Symposium,
          <year>2006</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.</given-names>
            <surname>Reddy</surname>
          </string-name>
          , R. France,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghosh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fleurey</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Baudry</surname>
          </string-name>
          , “
          <article-title>Model composition-a signature-based approach,” in Aspect Oriented Modeling (AOM</article-title>
          ) Workshop,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>C.</given-names>
            <surname>Treude</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Berlik</surname>
          </string-name>
          , S. Wenzel, and U. Kelter, “
          <article-title>Difference computation of large models,” in Procs. of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering</article-title>
          .
          <source>ACM</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>295</fpage>
          -
          <lpage>304</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nejati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sabetzadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chechik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Easterbrook</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Zave</surname>
          </string-name>
          , “
          <article-title>Matching and merging of statecharts specifications,” in Procs</article-title>
          .
          <source>of the 29th Int. Conf. on Software Engineering (ICSE</source>
          <year>2007</year>
          ).
          <source>IEEE Computer Society</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>54</fpage>
          -
          <lpage>64</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , “
          <article-title>Different models for model matching: An analysis of approaches to support model differencing,” in Procs of the 2009</article-title>
          <source>ICSE Workshop on Comparison and Versioning of Software Models. IEEE Computer Society</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>L.</given-names>
            <surname>Yujian</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Bo</surname>
          </string-name>
          , “
          <article-title>A normalized levenshtein distance metric</article-title>
          ,
          <source>” IEEE Trans. Pattern Anal. Mach</source>
          . Intell., vol.
          <volume>29</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>1091</fpage>
          -
          <lpage>1095</lpage>
          , Jun.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>L.</given-names>
            <surname>Meng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Huang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Gu</surname>
          </string-name>
          , “
          <article-title>A review of semantic similarity measures in wordnet</article-title>
          .”
          <source>International Journal of Hybrid Information Technology</source>
          , vol.
          <volume>6</volume>
          , no.
          <issue>1</issue>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Patwardhan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Banerjee</surname>
          </string-name>
          , and T. Pedersen, “
          <article-title>Using measures of semantic relatedness for word sense disambiguation,” in Procs of the 4th Int</article-title>
          .
          <source>Conf. on Computational Linguistics and Intelligent Text Processing</source>
          , ser.
          <source>CICLing'03</source>
          . Berlin, Heidelberg: Springer-Verlag,
          <year>2003</year>
          , pp.
          <fpage>241</fpage>
          -
          <lpage>257</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Budanitsky</surname>
          </string-name>
          and G. Hirst, “
          <article-title>Evaluating wordnet-based measures of lexical semantic relatedness,” Comput</article-title>
          . Linguist., vol.
          <volume>32</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>13</fpage>
          -
          <lpage>47</lpage>
          , Mar.
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>D.</given-names>
            <surname>Lin</surname>
          </string-name>
          , “
          <article-title>An information-theoretic definition of similarity,” in Procs of the 15th Int</article-title>
          .
          <source>Conf. on Machine Learning, ser. ICML '98</source>
          . San Francisco, CA, USA: Morgan Kaufmann Publishers Inc.,
          <year>1998</year>
          , pp.
          <fpage>296</fpage>
          -
          <lpage>304</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>N.</given-names>
            <surname>Seco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Veale</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Hayes</surname>
          </string-name>
          , “
          <article-title>An intrinsic information content metric for semantic similarity in wordnet</article-title>
          ,”
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Rodríguez and M. J. Egenhofer</surname>
          </string-name>
          , “
          <article-title>Determining semantic similarity among entity classes from different ontologies</article-title>
          .
          <source>” IEEE Trans. Knowl. Data Eng.</source>
          , vol.
          <volume>15</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>442</fpage>
          -
          <lpage>456</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Gu</surname>
          </string-name>
          , “
          <article-title>New model of semantic similarity measuring in wordnet</article-title>
          ,
          <source>” in 3rd Int. Conf. on Intelligent System and Knowledge Engineering</source>
          ,
          <source>(ISKE</source>
          <year>2008</year>
          ), vol.
          <volume>1</volume>
          ,
          <string-name>
            <surname>Nov</surname>
            <given-names>2008</given-names>
          </string-name>
          , pp.
          <fpage>256</fpage>
          -
          <lpage>261</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>K.</given-names>
            <surname>Toutanova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Klein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. D.</given-names>
            <surname>Manning</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Singer</surname>
          </string-name>
          , “
          <article-title>Feature-rich part-of-speech tagging with a cyclic dependency network,” in Procs of the 2003 Conf. of the North American Chapter of the Association for Computational Linguistics on Human Language Technology - Volume 1, ser</article-title>
          .
          <source>NAACL '03</source>
          .
          <string-name>
            <surname>Stroudsburg</surname>
          </string-name>
          , PA, USA: Association for Computational Linguistics,
          <year>2003</year>
          , pp.
          <fpage>173</fpage>
          -
          <lpage>180</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kessentini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ouni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Bechikh</surname>
          </string-name>
          , “
          <article-title>Search-based metamodel matching with structural and syntactic measures,”</article-title>
          <string-name>
            <given-names>J.</given-names>
            <surname>Syst</surname>
          </string-name>
          . Softw., vol.
          <volume>97</volume>
          , no. C, pp.
          <fpage>1</fpage>
          -
          <lpage>14</lpage>
          , Oct.
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>J.</given-names>
            <surname>Euzenat</surname>
          </string-name>
          , “
          <article-title>An api for ontology alignment,” in The Semantic Web - ISWC 2004, ser</article-title>
          . Lecture Notes in Computer Science,
          <string-name>
            <given-names>S.</given-names>
            <surname>McIlraith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Plexousakis</surname>
          </string-name>
          , and F. van Harmelen, Eds. Springer Berlin Heidelberg,
          <year>2004</year>
          , vol.
          <volume>3298</volume>
          , pp.
          <fpage>698</fpage>
          -
          <lpage>712</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>D.</given-names>
            <surname>Aumueller</surname>
          </string-name>
          , H.
          <string-name>
            <surname>-H. Do</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Massmann</surname>
          </string-name>
          , and E. Rahm, “
          <article-title>Schema and ontology matching with coma++,” in Procs of the 2005 ACM SIGMOD Int</article-title>
          .
          <article-title>Conf. on Management of Data, ser</article-title>
          .
          <source>SIGMOD '05</source>
          . New York, NY, USA: ACM,
          <year>2005</year>
          , pp.
          <fpage>906</fpage>
          -
          <lpage>908</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kalfoglou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Shadbolt</surname>
          </string-name>
          , “
          <article-title>Capturing, representing and operationalising semantic integration (crosi) project - final report</article-title>
          ,” University of Southampton,
          <source>Technical Report</source>
          ,
          <year>October 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ehrig</surname>
          </string-name>
          , “
          <article-title>Foam - framework for ontology alignment and mapping; results of the ontology alignment initiative,” in Procs</article-title>
          .
          <source>of the Workshop on Integrating Ontologies</source>
          . Volume
          <volume>156</volume>
          ., CEUR-WS.org (
          <year>2005</year>
          )
          <fpage>72</fpage>
          -
          <lpage>76</lpage>
          ,
          <year>2005</year>
          , pp.
          <fpage>72</fpage>
          -
          <lpage>76</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>P.</given-names>
            <surname>Gómez-Abajo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          , and J. de Lara, “
          <article-title>Wodel: a domain-specific language for model mutation</article-title>
          ,”
          <source>in Proceedings of the 31st Annual ACM Symposium on Applied Computing. ACM</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>1968</fpage>
          -
          <lpage>1973</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>G.</given-names>
            <surname>Kappel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kargl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Kramler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Schauerhuber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Seidl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Strommer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , “
          <article-title>Matching metamodels with semantic systems - an experience report,” in Datenbanksysteme in Business, Technologie und Web (BTW</article-title>
          <year>2007</year>
          ), Workshop Proceedings, Aachen, Germany,
          <year>2007</year>
          , pp.
          <fpage>38</fpage>
          -
          <lpage>52</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          , and G. Kappel,
          <source>Semantic Model Differencing Utilizing Behavioral Semantics Specifications</source>
          . Springer International Publishing,
          <year>2014</year>
          , pp.
          <fpage>116</fpage>
          -
          <lpage>132</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>S.</given-names>
            <surname>Maoz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Ringert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          , “
          <article-title>Summarizing semantic model differences,” CoRR</article-title>
          , vol.
          <source>abs/1409.2307</source>
          ,
          <year>2014</year>
          . [Online]. Available: http://arxiv.org/abs/1409.2307
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kuhn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ducasse</surname>
          </string-name>
          , and T. Gîrba, “
          <article-title>Semantic clustering: Identifying topics in source code</article-title>
          ,
          <source>” Information and Software Technology</source>
          , vol.
          <volume>49</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>230</fpage>
          -
          <lpage>243</lpage>
          ,
          <year>2007</year>
          , 12th Working Conference on Reverse Engineering.
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>G.</given-names>
            <surname>Antoniol</surname>
          </string-name>
          , G. Canfora,
          <string-name>
            <given-names>G.</given-names>
            <surname>Casazza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. D.</given-names>
            <surname>Lucia</surname>
          </string-name>
          , and E. Merlo, “
          <article-title>Recovering traceability links between code and documentation</article-title>
          ,
          <source>” IEEE Transactions on Software Engineering</source>
          , vol.
          <volume>28</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>970</fpage>
          -
          <lpage>983</lpage>
          ,
          <year>Oct 2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>