<!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>Type Inference Using Concrete Syntax Properties in Flexible Model-Driven Engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Athanasios Zolotas</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nicholas Matragkas</string-name>
          <email>n.matragkas@hull.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sam Devlin</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dimitrios S. Kolovos</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Richard F. Paige</string-name>
          <email>richard.paigeg@york.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, University of Hull</institution>
          ,
          <addr-line>Hull</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Computer Science, University of York</institution>
          ,
          <addr-line>York</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In traditional Model-Driven Engineering (MDE) models are instantiated from metamodels. In contrast, in Flexible MDE, language engineers initially create example models of the envisioned metamodel. Due to the lack of a metamodel at the beginning, the example models may include errors like missing types, typos or the use of di erent types to express the same domain concepts. In previous work [1] an approach that uses semantic properties of the example models to infer the types of the elements that are left untyped was proposed. In this paper, we build on that approach by investigating how concrete syntax properties (like the shape or the color of the elements) of the example models can help in the direction of type inference. We evaluate the approach on an example model. The initial results suggest that on average 64% of the nodes are correctly identi ed.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In traditional MDE the models instantiated using editors, conform to a
prede ned metamodel. In contrast, in Flexible MDE, language engineers use
drawing editors, like those proposed in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], to express example models
that will be used to infer the envisioned metamodel. These tools are used as
free-form whiteboards on which the domain experts sketch elements that
represent concepts and assign types to them. As there is no metamodel to specify the
semantics, this process is error prone. Drawn elements may be left untyped, or
the same concept may be represented by using two or more types. The rst could
happen either unintentionally (the engineer forgot to assign a type to the
element) or intentionally (engineers leave repeatedly-expressed concepts untyped).
The latter may occur either because two or more engineers are involved and thus
di erent terminology may be used or, if the process is long-term, the engineer
may have forgotten the type used in the past for a speci c concept.
      </p>
      <p>
        This paper addresses the challenges associated with identifying and managing
omissions during type assignment in exible modelling by using a variation of the
type inference approach proposed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]: missing types are inferred by computing
and analysing matches between untyped and typed elements that share the same
graphical characteristics. The di erence between the approach proposed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is
that in this work we are looking for concrete syntax properties of the drawings
and not at semantic relations. More speci cally, in this approach, features that
represent graphical characteristics of the nodes (i.e. the shape, color, width and
height) are fed to a Classi cation and Regression Tree (CART) algorithm which
predicts the types of the untyped nodes. We present the approach in detail,
using an illustrative exible modelling approach based on GraphML and the
exible modelling technique called Muddles [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. We demonstrate the approach's
accuracy via experiments run on an example exible model.
      </p>
      <p>This approach is based on the assumption that language engineers tend to
use, to the extent possible, the same concrete syntax to express the same concept
in a diagram. However, in order to explore the capabilities of the approach in
cases where this assumption does not stand (or stands partially) we add noise to
the example model by applying changes to the graphical properties of its nodes
(e.g. randomly changing the shape of some nodes).
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], rules that should be taken into consideration to construct the
graphical syntax of languages is proposed. The author claims that the importance of
graphical notation is a neglected issue so far and he adapts the theory of
communication by Shannon and Weaver [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] to highlight that the e ectiveness of the
graphical syntax can be increased by choosing the most appropriate notation
conventions of these that the human mind can process. In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Bertin identi ed
a set of 8 visual variables that can encode and reveal information about the
elements they represent or their relations in a graphical way.
      </p>
      <p>
        In the eld of bottom-up metamodelling, Cho et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] propose an approach
for an semi-automatic metamodel inference using example models. In [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
example models created by domain experts can be used to infer the metamodel. In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
evolved models that do not conform to their metamodel are used to recover the
metamodel. In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], users, using a drawing tool, de ne example models which are
then amenable to programmatic model management scripts.
      </p>
      <p>
        Type inference is used in programming languages. The Hindley-Milner [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] algorithm and its extension by Milner and Damas [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] are the most common
used in this domain. Code statements are reduced to simpler constructs for
which a type is already known. Such approaches are challenging to apply in
exible modelling where there is no prede ned abstract syntax. Inferring types
(or metamodels) from example models is a matching problem: elements that
are \su ciently similar" may have similar or identical types; a classi cation
was published in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. A model matching technique is used in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] to generate
traceability links. The nodes of the two models are matched by checking their
name similarity. In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] each element's unique MOF identi er is used to calculate
the di erence and union of models that belong to the same ancestor model. In [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
manually generated signatures are used to match elements and perform model
merging. The last three approaches are of limited exibility as they depend
on names or persistent identi ers for inference. Finally, in Flexisketch [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] the
authors adapt the algorithm proposed in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to nd possible matches between
the shapes of hand-drawn elements that appear on the same canvas.
      </p>
      <p>
        This work builds on the approach presented in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. A CART algorithm is
used to infer the types of nodes. However, the data fed to the classi cation
algorithm consist of features that are related to semantic aspects of the example
models (number of attributes, unique incoming and outgoing references and
unique parents and children of each node). In this work, we propose the use of
features that are related to the concrete syntax of the drawn example models.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Background: Muddles</title>
      <p>
        In Muddles [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], a GraphML compliant drawing editor called yEd3 is used to allow
language engineers draw example models that are amenable to model
management suites. The drawn elements are annotated with their types. Attributes can
also be added by using the appropriate node properties input boxes. The drawing
is automatically transformed to the intermediate Muddle model and can then
be consumed by a model management suite like the Epsilon platform [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        In this work, due to the fact that we are interested in the graphical properties
of the drawings, like the shape, the color and the size of the drawn elements we
use the extended version of the Muddles approach that was presented in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] that
extracts such information. A muddling example follows for better understanding.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Example</title>
        <p>
          The language engineer is interested in creating a language for expressing
zoos. The process starts by drawing an example zoo diagram (Fig. 1(b)). Next,
diagram elements are annotated with basic type information. For instance, the
type of both hexagon shapes is de ned as Doctor and the type of the directed
edges from Doctor to Animal nodes (circles) as instances of the cures
relationship. The types are not bound to the shape but to each element, meaning that in
another example or even in the same drawing, a hexagon can be of type Doctor
while a di erent hexagon can be of type Animal. Types and properties of the
types (e.g. attributes, multiplicity of edges) can also be speci ed. More details
about these properties are presented in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>
          Model management programs can then be used to manage this diagram. For
example, the following Epsilon Object Language (EOL) [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] script returns the
3 http://www.yworks.com/en/products_yed_about.html
names of all the elements of Type Animal (the nodes typed as \Animal" have a
String attribute named name assigned to them).
var animals = Animal . a l l ( ) ;
for(" A(ani minal a:n"im+alas ).nafme) . p r i n t l n ( ) ;
g
4
        </p>
        <p>Listing 1.1. EOL commands executed on the drawing</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Type Inference Approach</title>
      <p>In this section the type inference approach followed is presented (an overview is
presented in Fig. 2). The engineer creates an example diagram of the envisioned
DSL using a GraphML compliant tool (yEd). Some of the elements may be left
untyped for the reasons discussed in Section 1. The mechanism proposed in this
approach, analyses the drawing and collects graphical information from it which
is then fed into a classi cation algorithm to classify the untyped elements.
The classi cation of the elements is based on characteristics that each element
has. These are called features. We call the set of all the characteristics that are
collected from each node as feature signature. In addition, the type of each node
is attached to the last position of the feature signature. If the element is left
untyped, then this place is left empty. In this approach we propose the use of 4
graphical characteristics as features for each node. The selected characteristics
are presented in Table 1. Example signatures follow for better understanding.</p>
      <p>For example, the feature signature for the node named \Animal Tamara"
and annotated with the type \Animal" is [ellipse, #FFCC00, 114, 112, Animal].
The rst value is the shape of the node (ellipse) while the second is the color of
the lling. The third and fourth features are the width and the height. The last
value is the annotated type for this element. Similarly, the feature signature for
the node named \Animal Joe" is [ellipse, #FFCC00, 107, 105, Animal]. From
these two signatures one can see that elements of the same type may or may not
have the same signatures. This justi es the selection of a classi cation algorithm
and not a simple matching algorithm, as classi cation algorithms do not only
look for perfect matches but can also classify the items by picking each time the
features that are more important in the set that they are trained on.</p>
      <p>A script that parses the diagram and constructs the feature signature for the
nodes was created. The signatures are stored in a le that is fed to the CART.
4.2</p>
      <sec id="sec-4-1">
        <title>Classi cation</title>
        <p>Classi cation algorithms are a supervised machine learning method for nding
functions mapping input features to a discrete output class from a nite set
of possible values. They require a dataset to train on, after which they can
generalise from the previous examples given in the training set to predict the
class of new unseen instances.</p>
        <p>
          Many classi cation algorithms exist, some of the most established being
decision trees, random forests, support vector machines and neural networks [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
For this work we chose to use decision trees. Speci cally, we used the rpart
package (version 4.1-9)4 that implements the functionality of (CART) [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] in R5. In
practice other classi cation algorithms (i.e. support vector machines or neural
networks) can often have higher accuracy, but will produce a hypothesis in a
form that is not as easily interpreted. Given the exploratory nature of this work,
these other algorithms were not deployed in favour of the aid to debugging
provided by being able to interpret how the learnt hypothesis would classify future
instances. For example, a possible decision tree for type inference is illustrated
in Figure 3. Internal nodes represent features (e.g. Shape, Colour, etc.), each
branch from a node is labelled with values of the feature and leaf nodes
represent the nal classi cation given. To classify a new instance, start at the root
node of the tree and take the branch that represents the value of that feature in
the new instance. Continue to process each internal node reached in the same
manner until a leaf node is reached. The predicted classi cation of the new
instance is the value of that leaf node. For example, given the tree in Fig. 3, a
new instance which shape is not an ellipse and its colour is di erent than white
(#FFFFFF) classi ed as Zoo (path is highlighted in Fig. 3).
        </p>
        <p>
          In our approach, the feature signatures list that contains the signatures of
the known elements of the model are the input features to the CART algorithm.
A trained decision tree is produced which can be used to classify (identify the
type of) the untyped nodes using their feature signatures. The success of a
classi cation algorithm can be evaluated by the accuracy of the resultant model
(e.g. the decision tree learnt by CART) on test data not used when training.
The accuracy of a model is the sum of true positives and negatives (i.e. all
correctly classi ed instances) divided by the total number of instances in the
4 http://cran.r-project.org/web/packages/rpart/index.html
5 http://www.r-project.org/
test set. A single measure of accuracy can be arti cially in ated due to the
learnt model over tting bias in the dataset used for training. To overcome this,
k-fold classi cation can be implemented [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. This approach generates k di erent
splits of the data into training and test data sets and returns the mean accuracy
generated from k repeats with each repeat using a unique split of the data.
In this section the experimentation process used to evaluate the performance of
the proposed approach is presented. An overview is given in Fig. 46.
        </p>
        <p>
          In order to test the proposed approach we applied the classi cation algorithm
to a muddle. This muddle was created before commencing this research as part
of a side project to express requirements for a web application. Our experience
working with Muddles suggests that it is a fairly complicated example as it
consists of more than 100 elements of 20 di erent types. This muddle was also
one of the 11 models that were part of the experiment for the approach presented
in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. A comparison with the 10 other models used in the experiment of the
previous approach is not possible as these were automatically generated using
mechanisms that are biased in the selection of the 4 features that we assess in
this work: all the nodes were of the same shape, color and size.
        </p>
        <p>In addition, we tested the resilience of the proposed approach to human error
and the bias that our muddling habits may cause: we tend to use the same shape
when we express a speci c type. We need to highlight here, that in some cases
all elements of the same type share same features but there are types where
this is not the case. In contrast, some feature values (e.g. rectangle) were not
used only for one type: elements of di erent types share common features in our
6 The code, data, results and a guide on how to use the approach can be found in
http://www.zolotas.net/type-inference-graphical
experimentation example. Arguably, this is the case with any other relatively
large muddle as the number of available shapes and colors is in practice limited.
Thus, in order to check if adhering to some basic conventions when drawing an
example model is important for the accuracy of the prediction, we performed a
second experiment by adding noise to some of the elements by explicitly changing
their features. We did that gradually by altering randomly one feature of none
(0%) up to all (100%) of the elements of the muddle using a step of 20% (0%,
20%, ..., 100%). 40% noise addition means that 40% of the nodes have exactly
one feature (randomly selected) changed to something else (e.g. shape is changed
from rectangle to ellipse). A step-by-step description of the experiment follows.</p>
        <p>Initially a script collects the features from the muddle and places them in
a list that includes the feature signatures for each element (step 1 ). As the
example has 105 nodes, there are 105 feature signatures in this list. This process
is repeated 6 times; a new signatures list le is created for each of the noise levels.
Next, each list is randomly separated into a training and a test set (step 2 in
Figure 4). The training set contains the nodes for which in a realistic scenario
the types are known while the test set contains those nodes that are left untyped.
In order to reach unbiased results (due to an unlucky or lucky random sampling)
we perform the random sampling 10 times for each le (10-Fold). It is also of
interest to identify if the amount of knowledge that the algorithm has on each
diagram is of importance to the success ratio. For that reason we use 7 di erent
sampling rates; from 30% to 90%. For example, a 40% sampling rate means that
40 % of the nodes are thought to be of known type while the rest (60%) are the
nodes for which the type is unknown. The generated couples of training and test
sets (420 in total) are then fed to the CART algorithm (step 3 ). The algorithm
is trained on a training set and predicts the types of the elements of the coupling
test set. The success ratio of the prediction is then calculated.
6</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Results</title>
      <p>
        The values for Corel. 1 indicate a strong correlation for all the added-noise
levels: prediction scores increase as training sets (the nodes with known types)
become larger. The same behaviour was also observed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Regarding the
second correlation (Corel. 2) we observe a perfect (negative) correlation between
the number of nodes in a drawing that have altered features and the success score
across all the sampling rates. This is evidence that following speci c rules in the
graphical syntax of the drawing increases the chances for correct type inference.
By the term \speci c rules" it is not implied that these rules should be strict. As
discussed in previous sections, in the 0% added-noise example the authors use
the same shapes to express the same concepts or in other cases the same color
but not in a rigorous manner: same graphical properties are used in di erent
concepts while the same concepts may have di erent graphical properties. We
have also identi ed that the results related with the added noise experimentation
(especially those of 80% and 100%) are in uenced a lot by the randomness in
picking the feature that each time will be altered. More speci cally, if the random
algorithm picked a lucky noise injection (changing in each node a feature that
it is not distinctive for this type) then the results were better.
One example, created before commencing this research, was used to evaluate the
approach. Although having one example may not be the best way to extract safe
results we believe that it gives at least preliminary evidence that concrete syntax
can be used to infer types of nodes in exible modelling. A threat related to that
which works against the approach is that the model consists of 20 di erent types.
According to our experience with Muddles, this is a marginal one as engineers
tend to use more rigorous editors as the models increase in size. The results in
the experiments run in the previous approach [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] suggest that as the number
of types increases the prediction accuracy decreases. In addition, the example
model consisted of a number of highly repeated elements of the same type (e.g.
nodes of type "MenuItem"). If these elements can be correctly identi ed, the
fact that they participate a lot in the example leads to better success scores.
However, a balancing fact is that there were also 5 types which appear less than
2 times, reducing the chances of having them predicted correctly in case all of
their instances end in the testing set (there will be no appearance in the training
set so the algorithm doesn't know about the existence of this speci c type).
7
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions and Future Work</title>
      <p>In this work we assessed whether the concrete syntax of exible models can be
used to infer the types of the elements that are left untyped using CART.
Experiments suggest that on average 64% of the types were correctly identi ed.
We also experimented with the intentional addition of noise in the diagram to
check how this a ects the prediction accuracy. A strong correlation between the
percentage of altered nodes and the accuracy was identi ed providing evidence
that this approach is more successful if it is used under the assumption that
modellers tend to use, to the extent possible, the same graphical notation for
elements of the same concept. We believe that this behaviour can be
\unintentionally" replicated because of the \copy-paste" nature of muddling (e.g. create
an animal node once and then copy &amp; paste the node when you need it again).
This way the same graphic notation is used for all the elements of the same type.
It is important to highlight that if the type of the node was typed before the
\copy-paste" event took place, which is not necessarily always the case, then the
type is also transferred to the newly pasted nodes.</p>
      <p>
        In the future, we plan to introduce and test additional features like font
size and color, border size, orientation etc. In addition, in order to check if
the prediction accuracy can be further increased, our intention is to combine
the concrete syntax feature with the semantic related features proposed in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Finally, we plan to run user studies to further evaluate the approach on more
example models developed by language engineers.
      </p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>This work was carried out in cooperation with Digital Lightspeed Solutions
Ltd, and was part supported by the Engineering and Physical Sciences Research
Council (EPSRC) through the Large Scale Complex IT Systems (LSCITS)
initiative, and by the EU, through the MONDO FP7 STREP project (#611125).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Zolotas</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matragkas</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devlin</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
          </string-name>
          , R.:
          <article-title>Type inference in exible model-driven engineering</article-title>
          . In Taentzer, G.,
          <string-name>
            <surname>Bordeleau</surname>
          </string-name>
          , F., eds.:
          <source>Modelling Foundations and Applications</source>
          . Volume
          <volume>9153</volume>
          of Lecture Notes in Computer Science. Springer International Publishing (
          <year>2015</year>
          )
          <volume>75</volume>
          {
          <fpage>91</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matragkas</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodr</surname>
            <given-names>guez</given-names>
          </string-name>
          , H.H.,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          :
          <article-title>Programmatic muddle management</article-title>
          .
          <source>XM</source>
          <year>2013</year>
          {Extreme Modeling Workshop (
          <year>2013</year>
          )
          <fpage>2</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Gabrysiak</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , Luders,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Seibel</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>How can metamodels be used exibly</article-title>
          .
          <source>In: Proceedings of ICSE 2011 workshop on exible modeling tools</source>
          ,
          <source>Waikiki/Honolulu</source>
          . Volume
          <volume>22</volume>
          . (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Moody, D.L.:
          <article-title>The physics of notations: toward a scienti c basis for constructing visual notations in software engineering</article-title>
          .
          <source>Software Engineering, IEEE Transactions on 35(6)</source>
          (
          <year>2009</year>
          )
          <volume>756</volume>
          {
          <fpage>779</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Shannon</surname>
            ,
            <given-names>C.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weaver</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>The mathematical theory of communication</article-title>
          . (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bertin</surname>
          </string-name>
          , J.:
          <article-title>Semiology of graphics: diagrams, networks, maps</article-title>
          . (
          <year>1983</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Cho</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Syriani</surname>
          </string-name>
          , E.:
          <article-title>Creating visual domain-speci c modeling languages from end-user demonstration</article-title>
          .
          <source>In: Modeling in Software Engineering (MISE)</source>
          ,
          <source>2012 ICSE Workshop on</source>
          , IEEE (
          <year>2012</year>
          )
          <volume>22</volume>
          {
          <fpage>28</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Sanchez-Cuadrado</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Lara</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
          </string-name>
          , E.:
          <article-title>Bottom-up meta-modelling: An interactive approach</article-title>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Javed</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mernik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bryant</surname>
            ,
            <given-names>B.R.</given-names>
          </string-name>
          :
          <article-title>Mars: A metamodel recovery system using grammar inference</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>50</volume>
          (
          <issue>9</issue>
          ) (
          <year>2008</year>
          )
          <volume>948</volume>
          {
          <fpage>968</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hindley</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>The principal type-scheme of an object in combinatory logic</article-title>
          .
          <source>Transactions of the american mathematical society</source>
          (
          <year>1969</year>
          )
          <volume>29</volume>
          {
          <fpage>60</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Milner</surname>
          </string-name>
          , R.:
          <article-title>A theory of type polymorphism in programming</article-title>
          .
          <source>Journal of computer and system sciences 17(3)</source>
          (
          <year>1978</year>
          )
          <volume>348</volume>
          {
          <fpage>375</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Damas</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Milner</surname>
          </string-name>
          , R.:
          <article-title>Principal type-schemes for functional programs</article-title>
          .
          <source>In: Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, ACM</source>
          (
          <year>1982</year>
          )
          <volume>207</volume>
          {
          <fpage>212</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Di Ruscio</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pierantonio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          :
          <article-title>Di erent models for model matching: An analysis of approaches to support model di erencing</article-title>
          .
          <source>In: Proceedings of the 2009 ICSE Workshop on Comparison and Versioning of Software Models. CVSM '09</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2009</year>
          ) 1{
          <fpage>6</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Grammel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kastenholz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Voigt</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Model matching for trace link generation in model-driven software development</article-title>
          . Springer (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Alanen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porres</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Di erence and union of models</article-title>
          . Springer (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Reddy</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , France,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Ghosh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Fleurey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Baudry</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          :
          <article-title>Model composition-a signature-based approach</article-title>
          .
          <source>In: Aspect Oriented Modeling (AOM) Workshop</source>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. Wuest,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Sey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            ,
            <surname>Glinz</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Flexisketch: A mobile sketching tool for software modeling</article-title>
          .
          <source>In: Mobile Computing</source>
          , Applications, and Services. Springer (
          <year>2013</year>
          )
          <volume>225</volume>
          {
          <fpage>244</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Coyette</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schimke</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vanderdonckt</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vielhauer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Trainable sketch recognizer for graphical user interface design</article-title>
          .
          <source>In: Human-Computer Interaction{ INTERACT 2007</source>
          . Springer (
          <year>2007</year>
          )
          <volume>124</volume>
          {
          <fpage>135</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drivalos</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polack</surname>
            ,
            <given-names>F.A.</given-names>
          </string-name>
          :
          <article-title>The design of a conceptual framework and technical infrastructure for model management language engineering</article-title>
          . In: Engineering of Complex Computer Systems,
          <year>2009</year>
          14th IEEE International Conference on,
          <source>IEEE</source>
          (
          <year>2009</year>
          )
          <volume>162</volume>
          {
          <fpage>171</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Zolotas</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matragkas</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          :
          <article-title>Assigning semantics to graphical concrete syntaxes</article-title>
          .
          <source>In: XM 2014{Extreme Modeling Workshop. 12</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polack</surname>
            ,
            <given-names>F.A.</given-names>
          </string-name>
          :
          <article-title>The epsilon object language (eol)</article-title>
          .
          <source>In: Model Driven Architecture{Foundations and Applications</source>
          , Springer (
          <year>2006</year>
          )
          <volume>128</volume>
          {
          <fpage>142</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Jiawei</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kamber</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Data mining: concepts and techniques</article-title>
          . San Francisco, CA, itd: Morgan Kaufmann 5 (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Breiman</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Friedman</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stone</surname>
            ,
            <given-names>C.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Olshen</surname>
            ,
            <given-names>R.A.</given-names>
          </string-name>
          :
          <article-title>Classi cation and regression trees</article-title>
          . CRC press (
          <year>1984</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. Mitchell,
          <string-name>
            <surname>T.M.:</surname>
          </string-name>
          <article-title>Machine learning</article-title>
          .
          <source>1997. Burr Ridge, IL: McGraw Hill</source>
          <volume>45</volume>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>