<!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>Explicitly Modelling the Type/Instance Relation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Yentl Van Tendeloo</string-name>
          <email>Yentl.VanTendeloo@uantwerpen.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hans Vangheluwe</string-name>
          <email>Hans.Vangheluwe@uantwerpen.be</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Antwerp</institution>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Antwerp, Belgium</institution>
          ,
          <addr-line>Flanders Make vzw, Belgium</addr-line>
          ,
          <institution>McGill University</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-The various meta-modelling tools in existence today all have differences in their conformance relations, either intentional or accidental. This results in incompatibilities between tools, where a model cannot simply be exchanged as-is: the meta-meta-model and semantics likely differ. Current tools are inflexible in this regard, making their models grafted on the tool implementation. In this paper, we distinguish between syntactical and semantical differences between tools, both resulting in nonexchangable models. We propose to explicitly model the metameta-model (addressing syntactical differences) and its semantics (addressing semantical differences). This allows meta-metamodels and semantics to be added and manipulated at runtime, making our approach flexible for new tools as well. Models and languages from different tools can then be meaningfully stored in a single tool, retaining syntax and semantics. We provide a prototype implementation: the Modelverse.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>A plethora of meta-modelling tools currently exist, many
with their own meta-circular level and associated conformance
semantics. Due to these intentional or accidental differences,
inconsistencies between tools arise: all models, including
languages, become grafted on the tool’s implementation. With
the growing importance of tool interoperability, for example
in collaboration and model repositories, this might turn into a
problem: while the model can be exchanged, the inherent tool
semantics cannot.</p>
      <p>These limitations are caused by variations between tools, in
which we distinguish two types: syntactical and semantical.
Syntactical variations result in non-exchangable models, and
semantical variations cause unexpected behaviour with
successfully exchanged models. A simple example is multiple
inheritance. Syntactically, some tools do not support this,
making them unable to receive models from tools which do
support multiple inheritance. Semantically, some tools handle
the resolution order of multiple inheritance differently, thereby
altering the set of allowed instances.</p>
      <p>In this paper, we address this problem by explicitly
modelling the syntax and semantics, usually built into the tool.
Apart from documentation, new syntax and semantics can be
loaded on-demand, without altering the tool itself. As such, a
single tool is able to store and operate semantically meaningful
models of different tools, given that explicit models are
present. Models now become grafted on another model, which
can just as well be exchanged, instead of being grafted on the
tool implementation. Additionally, the created models can be
used as documentation of the syntax and semantics of the tool.</p>
      <p>The remainder of this paper is organized as follows.
Section II specifies the two types of variations and provides
examples. Section III presents our explicitly modelled approach.
Section IV describes our implementation. Section V presents
related work. Section VI concludes the paper and presents
future work.</p>
      <p>
        Semantically meaningful model exchange is hindered by
tool incompatibilities. Even similar tools, by the same authors,
are often incompatible: AToMPM [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and AToM3 [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ];
WebGME [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and GME [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]; DPF [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and WebDPF [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Even
different versions of the same tool can be incompatible, either
intentionally [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], or accidentally due to minor implementation
changes or bugs.
      </p>
      <p>
        To concretize the problem, we focus on two tools throughout
the remainder of the paper: AToMPM [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and Metadepth [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
For both tools, we describe some (hardcoded) differences to
illustrate the problem. We present minimal example languages
and models for both syntactical and semantical differences.
      </p>
      <p>We consider two types of variations: syntactical and
semantical variations.</p>
      <sec id="sec-1-1">
        <title>A. Syntactical Variations</title>
        <p>First are syntactical variations, caused by a different abstract
syntax of the meta-language. Such changes can automatically
be detected, as a model would rely on unknown constructs.
We show two examples: one with a feature of AToMPM that
Metadepth does not support, and one that is the other way
around.</p>
        <p>The first example language, in Figure 1a, uses a specific
kind of association: the containment relation, as supported by
AToMPM. It resembles an ordinary association, but indicates
that the source element is a container for the target element.
Its primary use is for visual representation, though it is also
used as implicit constraint: containment cycles are not allowed.
Instances of class A can contain instances of the class B, and
the other way around. Figure 1b shows an example instance
of this language, where a contains b, but also the other way
around. Conceptually, this does not make any sense. With a
containment relation, this is automatically flagged as an error
and the model does not conform. In Metadepth, which does
not support a containment relation, this same language cannot
be loaded; the association type “containment” is unknown. As
such, the model cannot be exchanged either, as it depends on
the language. It is possible to mimic the containment relation
in Metadepth by defining the containment relation as a normal
association, which has an additional constraint that does not
allow loops. A semantically equivalent meta-model is shown
in Figure 1c.</p>
        <p>The second example language, in Figure 2a, uses
multiplicities on a class, as supported by Metadepth. The lower
and upper cardinality is defined as an integer attribute on the
class. Its primary use is to restrict the number of instances of
this specific type: the number of instances must be within this
range. The class A requires that there are exactly two instances
of A in every model conforming to it. Figure 2b shows an
example instance, where only one instance of A is present.
With the class multiplicities, this is automatically flagged
as an error and the model does not conform. In AToMPM,
which does not support class multiplicities, this same language
cannot be loaded: the attribute “multiplicity” is unknown. It
is possible to mimic multiplicities in AToMPM by defining a
global constraint, which checks the number of instances of A.
A semantically equivalent meta-model is shown in Figure 2c.</p>
        <p>In both example languages, the tools are equivalent in their
expressiveness (i.e., they can be used to express the same
language), but the language must be represented differently.
As such, languages, and therefore models, cannot be easily
exchanged without a conversion at the abstract syntax level.</p>
      </sec>
      <sec id="sec-1-2">
        <title>B. Semantical Variations</title>
        <p>Second are semantical variations, caused by a difference
in the implementation of the conformance check, which
provides the semantics for the abstract syntax of the
metalanguage. Clearly, just calling an association “containment” or
an attribute “multiplicity” does not automatically give it the
correct semantics: it needs to be defined somewhere. Semantic
differences are indetectable when models are exchanged, as
they structurally conform.</p>
        <p>Note that we consider the semantics of the meta-modelling
language (i.e., what does a given meta-model mean), and not
the semantics of the modelling language (i.e., what does a
given model mean). The former is mostly hardcoded in the
tool, whereas the latter is domain-specific and implemented
using, for example, model transformations.</p>
        <p>The third and final example language, in Figure 3a, uses
multiple inheritance, as supported by both AToMPM and
Metadepth. An example of such a language is shown in
Figure 3a, where the class C inherits from both A and B. Both
A and B define the same attribute but with different types. It
is unclear which of the two is selected for C, which inherits
from both. The semantics attached to multiple inheritance,
responsible for the choice, is hardcoded in both tools and left
undocumented. Only experimentation is therefore possible to
figure out what it means, resulting in Figure 3b for AToMPM
and Figure 3c for Metadepth. As the set of conforming
instances differs, for the same language, both tools attach
different semantics to the language. AToMPM seems to resolve
the earliest created inheritance link, whereas Metadepth seems
to lexicographically sort the class names and picks the first
match.</p>
        <p>While the example difference here is likely intentional,
many other differences exist that are likely accidental (e.g.,
bugs or ommissions). For example, AToMPM does not check
the type of attributes, and Metadepth cannot connect edges
when inheritance is involved, nor can it have attributes with
specific keyworded names (e.g., “id”). Notwithstanding the
source of the difference, the semantic differences make model
exchange meaningless. And when the tool semantics is altered
(e.g., an intentional change, a bugfix, or a newly introduced
bug), it is possible that a previously conforming model
suddenly becomes invalid, or that a previously invalid model
suddenly becomes valid.</p>
      </sec>
      <sec id="sec-1-3">
        <title>C. Problem Scope</title>
        <p>The previously introduced problems are often irrelevant
for users of a single tool. As such, we do not propose
to alter existing (meta-)modelling tools, though it might be
useful to have sufficient documentation. The true problem lies
elsewhere, with tools that explicitly have to communicate with
many different tools: model repositories.</p>
        <p>C
(a) Metamodel.
(b) AToMPM instances.</p>
        <p>c2:C
d = "a"
c2:C
d = "a"
d : int
d : string
c1:C
d = 1
c1:C
d = 1</p>
        <p>(c) Metadepth instances.</p>
        <p>Fig. 3: Third example language: use of multiple inheritance.</p>
        <p>The primary purpose of model repositories is model storage
and exchange. It makes sense that they want to maximize
the set of supported tools, thereby maximizing the available
models. Model repositories, however, have to understand the
models they are managing, as otherwise they would be reduced
to a mere file server. When working with models from different
tools, and possibly exchanging them between these tools, it
becomes important to take these syntactical and semantical
variations into account.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>III. EXPLICIT TYPE/INSTANCE RELATIONS</title>
      <p>Varying abstract syntax and semantics at the meta-language
level were identified as the root of the problem. Current
tools acknowledge that an explicit meta-model is required to
create a flexible modelling tool, in which the language can
be altered. They do not, however, take this one level up the
meta-modelling hierarchy: the language used to create new
languages, the meta-language, is hardcoded in the tool. Being
hardcoded, the problem becomes even worse: they are not
flexible either, as the hardcoded aspects cannot be altered in
any way. For this reason, we propose to explicitly model both
the meta-language’s abstract syntax and semantics, and make
this fully flexible at runtime.</p>
      <p>Some aspects of current tools are already modelled
explicitly. We distinguish three layers, as commonly agreed upon:
M1 (model level), M2 (language level, or meta-model), and M3
(meta-language level, or meta-meta-model). For Metadepth,
both M1 (M1AS) and M2 (M2AS, M2SEM) are explicitly
modelled. In AToMPM, the syntax of M3 (M3AS) is additionally
explicitly modelled. Both tools hardcode the semantics of M3
(M3SEM). It is this aspect of the tool that we will also model
explicitly in our approach.</p>
      <p>As both M3AS and M3SEM are explicitly modelled in our
approach, it becomes possible to (1) alter them at runtime
(e.g., optimizations, refactorings); (2) create and use new ones
at runtime (e.g., support a new tool, bugfixes); and (3) have
multiple of them simultaneously (e.g., models from different
tools loaded in a single tool).</p>
      <sec id="sec-2-1">
        <title>A. Meta-meta-model (M3AS)</title>
        <p>
          The meta-meta-model M3AS defines the concepts that can
be used when defining a new language, or meta-model. It has
two primary purposes. First, it can serve as documentation
for language engineers: what is the name of attributes, what
constraints can be added, whether multiple inheritance is
supported, and so on. Second, it is required for several operations
that need an explicit meta-model. For example
RAMification [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], used to create a new language to express model
transformation rules by Relaxing, Augmenting, and Modifying
the existing language. Differences in M3AS lead to syntactical
differences between tools, which can be automatically detected
by comparing two M3AS models.
        </p>
        <p>The M3AS of AToMPM is shown in Figure 4, modelled
explicitly using Entity-Relation Diagrams. It shows the various
attributes that can be set on a class, such as “attributes”
to define new attributes, and “name”. Perhaps surprisingly,
attributes have no dedicated entity, in contrast to other
approaches, such as EMF.</p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Meta-Language Semantics (M3SEM)</title>
        <p>The meta-language semantics M3SEM defines the semantics
of concepts defined in M3AS. It takes a model and its
metamodel as input, and determines whether the model conforms
to the meta-model. Its primary purpose is in determining
whether a model is valid with respect to a given language
specification (i.e., check conformance). Differences in M3SEM
lead to semantical differences between the tools, which are
difficult to detect automatically. Indeed, we would need to
verify if two models for M3SEM behave exactly the same in
every possible context.</p>
        <p>Due to space restrictions, we only show a snippet of the
conformance algorithm of Metadepth, pertaining to the
multiplicity checks of classes in Algorithm 1. This pseudo-code
can be modelled in an explicitly modelled action language.
Algorithm 1 M3SEM snippet for the cardinality check.
for all class 2 allInstances(M3, Class) do
assert allInstances(M2, class) class.lower cardinality
assert allInstances(M2, class) class.upper cardinality
end for</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. IMPLEMENTATION</title>
      <p>
        As a proof of concept, we implemented this approach in our
prototype tool: the Modelverse1 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. We describe the
      </p>
    </sec>
    <sec id="sec-4">
      <title>1https://msdl.uantwerpen.be/git/yentl/modelverse.git</title>
      <p>Class
name
attributes
constraints
actions
cardinalities
abstract
Inheritance</p>
      <p>GlobalConstraint
name
event
code</p>
      <p>GlobalAction
name
event
code
basics of the Modelverse, and present our implementation of
this approach in our prototype tool. We show that our approach
can indeed handle different types of M3AS and M3SEM in the
same tool, making it compatible with multiple tools. We do not
consider technical challenges, such as how to export a model
and load it again in our tool.</p>
      <p>
        The Modelverse, in essence, consists of an explicitly
modelled action language interpreter, combined with an action
language implementation of all meta-modelling behaviour. As
such, not only the conformance aspects are modelled explicitly,
but all other aspects as well, such as model instantiation, model
transformation, and model management in general. The action
language semantics has been explicitly modelled as well [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
When defining a new conformance relation, this is therefore a
model in the Modelverse and an extension to the Modelverse
at the same time.
      </p>
      <p>The interrelations between all models, such as conformance
relations, are also modelled explicitly. For each conformance
relation, the link is specified by the source model (instance),
target model (meta-model), and conformance semantics. As
such, a model can conform to the same meta-model through
multiple conformance semantics, or to different meta-models
using the same conformance semantics, or to different
metamodels using different conformance semantics.</p>
      <p>Using this explicitly modelled approach, the Modelverse
is able to offer the same results for the conformance checks
as either AToMPM or Metadepth, or any other tool, for that
matter. An overview of how these explicitly modelled
interrelations are stored, is shown in Figure 5, which itself represents
a model in the Modelverse. While L1 and L2 can only be
created in AToMPM and Metadepth, respectively, L3 is a valid
language in both. Nonetheless, both tools attach a different
semantics to L3, as seen in the two different instances: M3 and
M4. Both conformance semantics are also explicitly modelled,
as shown at the right. These are again typed by something, in
this case using a conformance relation defined specifically for
the Modelverse, though also explicitly modelled. This could
just as well have been any other previously defined semantics.</p>
    </sec>
    <sec id="sec-5">
      <title>V. RELATED WORK</title>
      <p>
        The conformance relation plays a crucial role in Model
Driven Development (MDE) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. But while it has often
been studied, it has remained hardcoded in various tools.
Research up to now has mostly focussed on defining different
levels of conformance [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and new types of conformance,
such as relaxed [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] or partial [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Nonetheless, they are
hardcoded and partially inflexible as well: tools cannot be
extended with additional conformance relations, nor can existing
conformance relations be inspected or manipulated.
      </p>
      <p>
        Updates to the hardcoded syntax and semantics, such as
UML, have resulted in (often unnecessary) breakage of
conformance [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. As such, old models cannot be loaded in newer
versions of the same tool, if tools update their implementation
of the UML. But whereas a model might still load in a
newer version of the UML, nothing guarantees that the same
semantics are used in its evaluation.
      </p>
      <p>
        In the multi-level modelling community, many aspects of
conformance are still being investigated, specifically for newly
introduced physical attributes. For example, the “potency”
attribute has various meanings, though in all tools it is typed
as a natural number [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. All identified semantics were
implemented side by side in Metadepth, and users could toggle
between them on a case-by-case basis. While this certainly
gives great freedom, it creates yet another specification of the
semantics: a union of existing ones. Future definitions might
yet again require changes to this specification, potentially
breaking conformance.
      </p>
      <p>When models are exchanged, the first thoughts are of the
technological problems: how to transfer the data from one
tool to another. Various serialization formats were conceived
for this problem, such as XMI and JSON. Nonetheless, they
limit themselves to transfering data only, not the actual model.
Essentially, M2AS is exchanged, but M3AS and M3SEM are not.
As such, models can be exchanged, assuming that both tools
implement the same M3AS and M3SEM. Should they differ, the
exchanged data becomes semantically meaningless.</p>
      <p>
        This brings us to model repositories, which, using this
approach, often resort to semantically meaningless model
exchange. For example, ReMoDD [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], being as general as
possible, sacrifices model semantics: uploaded models have
only marginally more semantics than arbitrary files. Advanced
operations, which rely on the semantics of these models, are
not supported. Another solution, as taken by MDEForge [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ],
MMMAToMPM
      </p>
      <p>MMMMetaDepth
L1
M1</p>
      <p>L3
M3</p>
      <p>M4</p>
      <p>L2
M2</p>
      <p>MMMModelverse</p>
      <p>Action</p>
      <p>Language</p>
      <p>
        SEMAToMPM SEMMetaDepth SEMModelverse
is to restrict exchanged models to its own M3AS and M3SEM.
This allows them to actually use the models, for example for
model transformations [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], though they do so by limiting the
set of supported tools.
      </p>
      <p>
        A posteriori typing [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] has been proposed as a way to have
multiple types for a single model. But whereas our approach
does not consider any conformance relation as special, a
posteriori typing starts from a special relation: the constructive
type. The constructive type is the type used to instantiate the
model, and cannot be changed. All other types, discovered
onthe-fly, are completely flexible. Even though multiple
metamodels can be found for a single model, all conformance
relations must use the same M3AS and M3SEM. As such,
only M2AS can change, and not M3AS nor M3SEM, though
this provides sufficient knowledge to reuse operations between
different meta-models. Concepts [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] serve a similar purpose,
but also with similar restrictions: there is only freedom at
M2AS.
      </p>
    </sec>
    <sec id="sec-6">
      <title>VI. CONCLUSIONS AND FUTURE WORK</title>
      <p>We have presented the problem of combining multiple
(meta-)modelling tools, each with their own meta-meta-model
syntax and semantics. This problem is particularly relevant
in the context of model repositories, where the collaboration
between multiple tools is the primary requirement.</p>
      <p>We proposed to explicitly model all aspects of the
conformance relation: its abstract syntax and semantics. Using our
approach, we have shown that we can achieve full flexibility. A
single tool was able to store, in a semantically meaningful way,
models with the same semantics as other tools. Furthermore,
a single model can conform using multiple such semantics,
potentially to different abstract syntax definitions as well.</p>
      <p>A prototype implementation of this approach was presented
in the Modelverse, our explicitly modelled meta-modelling
environment. The Modelverse was able to handle multiple
models, meta-models, and also meta-meta-models, all with
their own associated semantics. At runtime, new conformance
semantics models could be uploaded, and existing ones could
be modified.</p>
      <p>In future work, we plan to investigate the influence of the
conformance relation on other modelling operations as well,
such as the allInstances operation. Also, we intend to create
a variability model of all differences encountered in various
M3AS and M3SEM implementations, of which each tool
implementation is (theoretically) a specific configuration. Finally,
this approach is ideally suited for semantically meaningfull
model exchange between two existing tools: the unifying tool,
using our approach, would be able to perform the translation
automatically.</p>
    </sec>
    <sec id="sec-7">
      <title>ACKNOWLEDGMENTS</title>
      <p>This work was partly funded by a PhD fellowships from
the Research Foundation - Flanders (FWO). This research
was partially supported by Flanders Make vzw, the strategic
research centre for the manufacturing industry.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>E.</given-names>
            <surname>Syriani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Mannadiar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Hansen</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. Van Mierlo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and H.</given-names>
            <surname>Ergin</surname>
          </string-name>
          , “
          <article-title>AToMPM: A web-based modeling environment</article-title>
          ,” in
          <source>Joint Proceedings of MODELS'13 Invited Talks</source>
          , Demonstration Session,
          <source>Poster Session, and ACM Student Research Competition</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>J. de Lara</surname>
            and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>AToM3: A tool for multi-formalism and meta-modelling</article-title>
          ,” in International Conference on Fundamental Approaches to Software Engineering,
          <year>2002</year>
          , pp.
          <fpage>174</fpage>
          -
          <lpage>188</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Maro</surname>
          </string-name>
          ´ti, T. Kecske´s, R. Kereske´nyi,
          <string-name>
            <given-names>B.</given-names>
            <surname>Broll</surname>
          </string-name>
          , P. Vo¨lgyesi, L. Jura´cz, T. Levendovszky,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . Le´deczi, “
          <article-title>Next generation (meta)modeling: web- and cloud-based collaborative tool infrastructure</article-title>
          ,”
          <source>in Proceedings of the Workshop on Multi-Paradigm Modeling (MPM)</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>60</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ledeczi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Maroti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bakay</surname>
          </string-name>
          , and G. Karsai, “The Generic Modeling Environment,”
          <source>in Proceedings of International Symposium on Intelligent Signal Processing (WISP)</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lamo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mantz</surname>
          </string-name>
          ,
          <string-name>
            <surname>W.</surname>
          </string-name>
          <article-title>MacCaull, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Rutle</surname>
          </string-name>
          , “DPF Workbench:
          <article-title>A diagrammatic multi-layer domain specific (meta-) modelling environment</article-title>
          ,” Computer and Information Science,
          <source>Studies in Computational Intelligence</source>
          , vol.
          <volume>429</volume>
          , pp.
          <fpage>37</fpage>
          -
          <lpage>52</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>F.</given-names>
            <surname>Rabbi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lamo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. C.</given-names>
            <surname>Yu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Kristensen</surname>
          </string-name>
          , “
          <article-title>WebDPF: A web-based metamodelling and model transformation environment</article-title>
          ,”
          <source>in Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>87</fpage>
          -
          <lpage>98</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Degueule</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Blouin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Barais</surname>
          </string-name>
          , and J.
          <string-name>
            <surname>-M. Je</surname>
          </string-name>
          <article-title>´ze´quel, “Safe model polymorphism for flexible modeling</article-title>
          ,”
          <source>Computer Languages, Systems &amp; Structures</source>
          , vol.
          <volume>49</volume>
          , pp.
          <fpage>176</fpage>
          -
          <lpage>195</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>J. de Lara</surname>
          </string-name>
          and E. Guerra, “
          <article-title>Deep meta-modelling with MetaDepth,”</article-title>
          <source>in Proceedings of the TOOLS EUROPE Conference</source>
          ,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>T.</given-names>
            <surname>Ku</surname>
          </string-name>
          ¨hne, G. Mezei, E. Syriani,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , “Explicit transformation modeling,”
          <source>in Proceedings of the International Conference on Model Driven Engineering Languages and Systems (MoDELS)</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>240</fpage>
          -
          <lpage>255</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Y. Van Tendeloo</surname>
          </string-name>
          , “
          <article-title>Foundations of a multi-paradigm modelling tool</article-title>
          ,”
          <source>in Proceedings of the ACM Student Research Competition at MODELS 2015 co-located with the ACM/IEEE 18th International Conference MODELS</source>
          <year>2015</year>
          ,
          <year>2015</year>
          , pp.
          <fpage>52</fpage>
          -
          <lpage>57</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Van Tendeloo</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>The Modelverse: A tool for multi-paradigm modelling</article-title>
          and simulation,”
          <source>in Proceedings of the Winter Simulation Conference</source>
          ,
          <year>2017</year>
          , (accepted).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Van Tendeloo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Barroca</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. Van Mierlo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “Modelverse specification,” University of Antwerp,
          <source>Tech. Rep.</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Theisz</surname>
          </string-name>
          and G. Mezei, “
          <article-title>An algebraic instantiation technique illustrated by multilevel design patterns</article-title>
          ,”
          <source>in Proceedings of the 2nd International Workshop on Multi-Level Modelling</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and T. Ku¨hne, “
          <article-title>Concepts for comparing modeling tool architectures</article-title>
          ,”
          <source>in Proceedings of the International Conference on Model Driven Engineering Languages and Systems (MoDELS)</source>
          ,
          <year>2005</year>
          , pp.
          <fpage>398</fpage>
          -
          <lpage>413</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kennel</surname>
          </string-name>
          , “
          <article-title>A unified framework for multi-level modeling</article-title>
          ,
          <source>” Ph.D. dissertation</source>
          , University of Mannheim,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Salay</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Chechik</surname>
          </string-name>
          , “
          <article-title>Supporting agility in MDE through modeling language relaxation</article-title>
          ,”
          <source>in Proceedings of the Workshop on Extreme Modeling</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>J.-S.</given-names>
            <surname>Sottet</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Biri</surname>
          </string-name>
          , “
          <article-title>JSMF: a Javascript flexible modelling framework</article-title>
          ,”
          <source>in Proceedings of the 2nd Workshop on Flexible Model Driven Engineering</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>42</fpage>
          -
          <lpage>51</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rossini</surname>
          </string-name>
          , J. de Lara, E. Guerra,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rutle</surname>
          </string-name>
          , and U. Wolter, “
          <article-title>A formalisation of deep metamodelling</article-title>
          ,
          <source>” Formal Aspects of Computing (Springer)</source>
          , vol.
          <volume>26</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>1115</fpage>
          -
          <lpage>1152</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R.</given-names>
            <surname>France</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Biemand</surname>
          </string-name>
          , and B. H. C. Cheng, “
          <article-title>Repository for model driven development</article-title>
          ,”
          <source>in Proceedings of the International Conference on Model Driven Engineering Languages and Systems (MoDELS)</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>311</fpage>
          -
          <lpage>317</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>F.</given-names>
            <surname>Basciani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. Di</given-names>
            <surname>Rocco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Di</given-names>
            <surname>Salle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Iovino</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , “
          <article-title>MDEForge: an extensible web-based modeling platform</article-title>
          ,”
          <source>in Proceedings of the Workshop on Model-Driven Engineering on and for the Cloud (CloudMDE)</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>66</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J. Di</given-names>
            <surname>Rucco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantoini</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Sa</surname>
          </string-name>
          ´nchez Cuadrado, J. de Lara, and E. Guerra, “
          <article-title>Using ATL transformation services in the MDEForge collaborative modeling platform</article-title>
          ,”
          <source>in Proceedings of the International Conference on Model Transformation (ICMT)</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>J. de Lara</surname>
            , E. Guerra, and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Sa</surname>
          </string-name>
          <article-title>´nchez Cuadrado, “A-posteriori typing for model-driven engineering</article-title>
          ,”
          <source>in Proceedings of the International Conference on Model Driven Engineering Languages and Systems (MoDELS)</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>165</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>J. de Lara</surname>
          </string-name>
          and E. Guerra, “
          <article-title>Generic meta-modelling with concepts, templates and mixin layers</article-title>
          ,”
          <source>in Proceedings of the International Conference on Model Driven Engineering Languages and Systems (MoDELS)</source>
          ,
          <year>2010</year>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>