<!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>MULTI 2015 - Multi-Level Modelling Workshop Proceedings</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Colin Atkinson</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Georg Grossmann</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Thomas Kühne</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juan de Lara (Eds.)</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <fpage>21</fpage>
      <lpage>62</lpage>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>© 2015 for the individual papers by the papers’ authors. Copying permitted for private and academic
purposes. Re-publication of material from this volume requires permission by the copyright owners.</p>
    </sec>
    <sec id="sec-2">
      <title>Editors’ addresses:</title>
    </sec>
    <sec id="sec-3">
      <title>Colin Atkinson University of Mannheim (Germany)</title>
    </sec>
    <sec id="sec-4">
      <title>Georg Grossmann University of South Australia (Australia)</title>
    </sec>
    <sec id="sec-5">
      <title>Thomas Kühne Victoria University of Wellington (New Zealand)</title>
    </sec>
    <sec id="sec-6">
      <title>Juan de Lara Universidad Autónoma de Madrid (Spain)</title>
      <sec id="sec-6-1">
        <title>Colin Atkinson Georg Grossmann Thomas Kuhne Juan de Lara</title>
        <sec id="sec-6-1-1">
          <title>Steering Committee</title>
        </sec>
      </sec>
      <sec id="sec-6-2">
        <title>Thomas Kuhne Juan de Lara</title>
        <sec id="sec-6-2-1">
          <title>Program Committee</title>
        </sec>
      </sec>
      <sec id="sec-6-3">
        <title>University of Mannheim (Germany) University of South Australia (Australia) Victoria University of Wellington (New Zealand) Universidad Autonoma de Madrid (Spain)</title>
      </sec>
      <sec id="sec-6-4">
        <title>Victoria University of Wellington (New Zealand)</title>
        <p>Universidad Autonoma de Madrid (Spain)
develop group (Germany)
Federal University of Esp rito Santo (Brazil)
University of Mannheim (Germany)
S23M (Australia)
Middlesex University (United Kingdom)
Johannes Kepler Universitat Linz (Austria)
Universitat Duisburg-Essen (Germany)
University of Mannheim (Germany)
University of Bremen (Germany)
Spanish National Research Council (CSIC)
University of South Australia (Australia)
Universidad Autonoma de Madrid (Spain)
Universitat Bayreuth (Germany)
University of Skovde (Sweden)
Victoria University of Wellington (New Zealand)
Bergen Univeristy College (Norway)
Universidad Autonoma de Madrid (Spain)
University of Helsinki (Finland)
Universitat Salzburg (Austria)
SINTEF (Norway)
Johannes Kepler Universitat Linz (Austria)
University of South Australia (Australia)
TU Wien (Austria)</p>
        <p>King's College London (Germany)</p>
        <p>Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Experimenting with Multi-Level Models in a Two-Level Modeling Tool . . . . . . . . .
Martin Gogolla
Aspect-oriented Concrete Syntax De nition for Deep Modeling Languages . . . . .
Colin Atkinson and Ralph Gerbig
Exploring Multi-Level Modeling Relations Using Variability Mechanisms . . . . . . .
Iris Reinhartz-Berger, Arnon Sturm, and Tony Clark
Multi-Language Modelling with Second Order Intensions . . . . . . . . . . . . . . . . . . . . . . .
Vadim Zaytsev
Practical Multi-level Modeling on MOF-compliant Modeling Frameworks . . . . . .
Kosaku Kimura, Yoshihide Nomura, Yuka Tanaka, Hidetoshi Kurihara, and
Rieko Yamamoto
An algebraic instantiation technique illustrated by multilevel design patterns . . .
Zoltan Theisz and Gergely Mezei
1
3
13
23
33
43
53
MULTI 2015 was the second installment of the MULTI workshop series focusing on
multilevel modeling. It was held as a satellite event of the ACM/IEEE sponsored conference
MODELS 2015, in Ottawa (Canada). The goal of this workshop was to continue the
community building initiated in the rst edition held in conjunction with MODELS 2014
in Valencia (Spain). In order to increase the level of dissemination of work in
multilevel modeling and to provide more opportunities for plenary discussions and/or group
work, MULTI 2015 was organized as a two-day workshop rather than the typical one-day
workshop.</p>
        <p>The aim of the rst day of the workshop was to set the scene for discussions by means
of paper presentations that included an invited paper and two regular paper sessions.
The invited paper by Professor Martin Gogolla of the University of Bremen, entitled
\Experimenting with Multi-Level Models in a Two-Level Modeling Tool", explored the
extent to which multi-level models can be simulated in two-level modeling environments
by explicitly modeling di erent underlying linguistic (meta) models at the class level, and
simulating ontological classi cation relationships at the instance level in the form of links.</p>
        <p>The rst paper in the rst regular paper session by Colin Atkinson and Ralph Gerbig,
entitled \Aspect-oriented Concrete Syntax De nition for Deep Modeling Languages",
described how to support a deep, context sensitive visualization of multi-level models using
concepts from aspect-orientation to merge concrete syntax elements across instantiation
chains. The second paper by Iris Reinhartz-Berger, Arnon Sturm and Tony Clark, entitled
\Exploring Multi-Level Modeling Relations Using Variability Mechanisms", explored the
relationship between the instantiation forms found in multi-level modelling and those used
in product line engineering.</p>
        <p>The rst paper of the afternoon session by Vadim Zaytsev, entitled \Multi-Language
Modelling with Second Order Intensions", proposed the use of second-order intensions
and extensions to more closely model linguistic and ontological conformance. The
second paper by Kosaku Kimura, Yoshihide Nomura, Yuka Tanaka, Hidetoshi Kurihara and
Rieko Yamamoto, entitled \Practical Multi-level Modeling on MOF-compliant Modeling
Frameworks" explored how multi-level modeling can be supported using existing
modeling frameworks based on the MOF. The third paper by Zoltan Theisz and Gergely Mezei,
entitled \An algebraic instantiation technique illustrated by multilevel design patterns"
proposed a new algebraic instantiation approach aiming to provide a solid, algebraic
foundation for multi-level meta-modelling which is easily customizable. The rst day concluded
with a plenary session that allowed participants to discuss issues raised in the presentations
and nd consensus on how to best structure the second afternoon.</p>
        <p>The morning of the second day of the workshop was devoted to providing an insight
into the range of tools currently available to support multi-level modeling. Six di erent
tools with various kinds of multi-level modeling capabilities were demonstrated over two
sessions: the DPF workbench from Bergen University College, Norway (presented by
Xiaoliang Wang and Yngve Lamo), WebDPF from Bergen University College, Norway
(presented by Fazle Rabbi and Yngve Lamo, Melanee { The Deep Modeling
Domainspeci c Language Workbench from the University of Mannheim, Germany (presented by
Ralph Gerbig), MetaDepth { a tool for multi-level model-driven engineering, from the
Universidad Autnoma de Madrid, Spain (presented by Juan de Lara and Esther Guerra),
a tool for Multilevel Modelling and Reasoning with FOML from Ben-Gurion University,
Israel and SUNY Stony Brook, USA (presented by Mira Balaban, Igal Khitron and Michael
Kifer), and TouchCORE from McGill University, Montreal (presented by Jorg Kienzle).</p>
        <p>The nal afternoon of the workshop was structured by two plenary sessions discussing
the state of multi-level modelling technology and identifying areas where further clari
cation would be helpful to the community. The debate included arguments on the nature
of the distinction between linguistic and ontological classi cation and the roles these
different forms of classi cation should play within classi cation architectures. One of the
intensely discussed questions was whether ontological classi cation relationships should
require certain syntactic conformance rules in addition to being based on (either
explicitly or implicitly represented) mappings to the meaning of the related elements. Due to
a lack of time, the idea of agreeing on a de nition of \multi-level modeling" could only
be partially pursued by collecting a set of candidate de nitions. Likewise, a concrete
identi cation of use cases, scenarios, reference architectures, etc. had to be deferred.</p>
        <p>In order to further support the dissemination of new information and provide a common
repository for de nitions, tool descriptions, modeling artifacts, etc., the participants agreed
to establish a forum for online interaction for the multi-level modelling community in the
form of a wiki web. The respective wiki can be found at:
http://homepages.ecs.vuw.ac.nz/Groups/MultiLevelModeling/ and everyone is invited to
update contents. The website devoted to the MULTI workshop series is still hosted at:
http://www.miso.es/multi/.</p>
        <p>We are grateful to all authors of submitted papers, to the reviewers for their
constructive criticism, to all participants of the workshop for the interesting and lively discussions,
and to the organizers of MODELS 2015 for their support.</p>
      </sec>
      <sec id="sec-6-5">
        <title>October 2015 Colin Atkinson, Georg Grossmann, Thomas Kuhne, Juan de Lara 2</title>
        <sec id="sec-6-5-1">
          <title>Experimenting with MultiL-evel Models in a TwoL-evel Modeling Tool</title>
          <p>Martin Gogolla
Database Systems Group, University of Bremen, Germany</p>
          <p>gogolla@informatik.unib-remen.de
Abstract. This paper discusses two ways to establish the connection
between two levels in a multi-level model. The first approach uses normal
associations and generalizations under the assumption that the multi
levels are represented in one UML and OCL model. The second approach
views a middle level model both as a type model and as an instance model
and introduces operations to navigate between the type and instance
level. The paper reports on some experiments that have been carried
out.</p>
          <p>Keywords. UML, OCL, Model, Multi-level model, Metamodel, Level
connection.
1</p>
          <p>
            Introduction
Metamodeling has become a major topic in software engineering research [
            <xref ref-type="bibr" rid="ref16 ref24 ref25 ref34 ref44 ref45 ref6 ref7">6, 7,
16</xref>
            ]. There are, however, a lot of discussions about central notions in connection
with metamodels like potency or clabject where no final conceptual definition has
been achieved. On the other hand, software tools for metamodeling are beginning
to be developed [
            <xref ref-type="bibr" rid="ref2 ref20 ref27 ref40 ref9">9, 2</xref>
            ].
          </p>
          <p>Metamodeling is closely connected to multi-levels models because the
instantiation of a metamodel is a model. That model, when viewed as a type model, may
be instantiated again and can then be viewed as an instance model. Proceeding
this way, at least three model levels arise.</p>
          <p>
            This paper discusses two ways to establish the connection between two levels in
multi-level models. The first approach uses ordinary associations and
generalizations under the assumption that the multi levels are represented in one UML
and OCL model. The second approach views a middle level model both as a type
model and as an instance model and introduces operations in order to navigate
between the type and instance level. The paper reports on some experiments
that have been carried out. The first appr oach joins the metamodels of several
levels into one model as in our previous work [
            <xref ref-type="bibr" rid="ref12 ref30">12</xref>
            ]. Details about the rfist
approach can be found in [
            <xref ref-type="bibr" rid="ref13 ref31">13</xref>
            ]. The second approach has not been put forward in
a paper yet.
          </p>
          <p>
            Our work has links to other related or similar approaches. The tool Melanie [
            <xref ref-type="bibr" rid="ref2 ref20 ref40">2</xref>
            ]
is designed as an Eclipse plug-in supporting strict multi-level metamodeling and
support for general purpose as well as domain specific languages. Another tool
is MetaDepth [
            <xref ref-type="bibr" rid="ref27 ref9">9</xref>
            ] allowing linguistic as well as ontological instantiation with
an arbitrary number of metalevels supporting the potency concept. In [
            <xref ref-type="bibr" rid="ref16 ref34">16</xref>
            ] the
authors describe an approach to afltten met alevel hierarchies and seek for a
levelagnostic metamodeling style in contrast to the OMG four-layer architecture. The
approach in [
            <xref ref-type="bibr" rid="ref14 ref32">14</xref>
            ] also transforms multi-level models into a two-level model and
focusses on constraints. Similar to our approach employing UML and OCL, the
work in [
            <xref ref-type="bibr" rid="ref17 ref35">17</xref>
            ] uses F-Logic as an implementation basis for multi-level models
including constraints. A conceptual clean foundation for multi-level modeling
is discussed in [
            <xref ref-type="bibr" rid="ref26 ref8">8</xref>
            ]. [
            <xref ref-type="bibr" rid="ref22 ref4 ref42">4</xref>
            ] studies model constraints and [
            <xref ref-type="bibr" rid="ref21 ref3 ref41">3</xref>
            ] discusses multi-level
connections in presence of a multi-level architecture distinguishing between a
linguistic and an ontologic view on modeling.
          </p>
          <p>The structure of the rest of the paper is as follows. Section 2 gives a small example
for establishing the multi-level connection with associations and generalizations.
Section 3 discusses the second approach that uses operations to connect the
multi-levels. The contribution is closed with a conclusion and future work in
sect. 4.
2</p>
          <p>
            Connecting MultiL-evels with Associations and
Generalizations
The rfist approach connects multi-levels with usual model elements: associations
and generalizations. The example in Fig. 1 shows a substantially reduced and
abstracted version of the OMG four-level metamodel architecture with modeling
levels M0, M1, M2, and M3. Roughly speaking, the figure states: Ada is a Person,
Person is a Class, and Class is a MetaClass. The gfiure does so by formally
building an object diagram for a precisely defined class diagram including an
OCL invariant that requires cyclefreeness when constructing instance-of
connections. The distinction between MetaClass and Class is that when MetaClass
is instantiated something is created that can be instantiated on two lower levels
whereas for Class instantiation can only be done on one lower level. The model
has been formally checked with the tool USE [
            <xref ref-type="bibr" rid="ref10 ref11 ref28 ref29">11, 10</xref>
            ]. In particular, we have
employed the features supporting UML generalization constraints as discussed
in [
            <xref ref-type="bibr" rid="ref1 ref15 ref19 ref33 ref39">1, 15</xref>
            ].
          </p>
          <p>Concepts on a respective level Mx are represented in a simplified way as a class
Mx. All classes Mx are specializations of the abstract class Thing whose objects
cover all objects in the classes Mx. On that abstract class Thing one association
Instantiation is defined that is intended to represent the instance-of
connections between a higher level object and a lower level: an object of a lower level
is intended to be an instance of an object on a higher level. The association
Instantiation on Thing (with role names instantiater and instantiated)
is employed for the definition of the associations Typing0, Typing1, and Typing2
between Mx and Mx+1 all having roles typer and typed. The role typer is a
redefinition of instantiater, and typed is a redenfiition of instantiated. The
multiplicity 1 of typer narrows the multiplicity 0..1 of instantiater.
The class diagram from the left side of Fig. 1 is made concrete with an object
diagram on the right side. The fact that the three associations Typing0, Typing1,
and Typing2 are all redenfiitions of association Instantiation is reflected in
the object diagram by the three dashed links for association Instantiation
with common role names instantiater and instantiated (dashed links in
contrast to continuous links for ordinary links). Viewing Instantiation as a
generalization (in terms of redefinition) of all Typingx associations allows to use
the closure operations from class Thing on objects from classes M0, M1, M2 or
M3. Thus the displayed OCL expressions and their results reflect the following
facts: object Person is a (direct resp. indirect) instantiation of objects Class and
MetaClass; objects Ada and Person are (direct resp. indirect) instantiations of
object Class.</p>
          <p>Metamodeling means to construct models for several levels. The metamodels
on the respective level should be described and modeled independently (e.g., as
M0, M1, M2, and M3). The connection between the models should be
established in a formal way by a typing association (e.g., Typing0 gives a type object
from M1 to a typed object from M0). The Typing associations are introduced
as redefined versions of the association Instantiation from (what we call) a
multi-level superstructure. This superstructure contains the abstract class Thing
which is an abstraction of all metamodel elements across all levels and
additionally contains the association Instantiation and accompanying constraints.
Because Instantiation is defined as union, an Instantiation link can only
connect elements of adjacent levels, i.e., the Typingx links are level-conformant
and strict. The aim of the devices in the superstructure is to establish the
connection between metamodel levels in a formal way and to provide support for
formally restricting the connections.
3</p>
          <p>
            Connecting MultiL-evels with Operations
The second approach for connecting multi-levels is based on viewing one model
both as a type model and as an instance model. In Fig. 2 an example as
elaborated with USE [
            <xref ref-type="bibr" rid="ref10 ref11 ref28 ref29">11, 10</xref>
            ] is shown. The object diagram on the left side is essentially
equivalent to the class diagram on the right side. The displayed example can be
realized in USE in this way, however, there is currently no option to connect
the two equivalent representations in form of the class diagram and the object
diagram. Additional features would be needed.
          </p>
          <p>In Fig. 4 such a connection is indicated with (a) one operation accessing a
model element through its String-valued name $_$ : String -&gt; ModelElement
and (b) one operation returning the String-valued name of a model
element #_# : ModelElement -&gt; String .</p>
          <p>Apart from the two new operations dollar $ and sharp # some new modeling
features for UML and OCL would be needed as well: (a) OCL clauses (for
elements such as invariants or pre- and postconditions) should allow parameters
that represent variables for model elements and (b) the new operations dollar
and sharp should be allowed in expressions for model elements in clauses (e.g.,
for a class or an attribute). The following examples try to give an impression of
the aimed functionality.
parameter[rs:RelSchema]
let relSchemaClass = $rs.name$ in - in this example: $rs.name$=rs
let keyAttr = $rs.attr-&gt;any(a|a.isKey=true).name$ in
context relSchemaClass inv keyAttrUnique:
relSchemaClass.allInstances&gt;-forAll(x,y |</p>
          <p>x&lt;&gt;y implies x.keyAttr&lt;&gt;y.keyAttr)
parameter[rs:RelSchema]
let relSchemaClass = $rs.name$ in
let keyAttr = $rs.attr-&gt;any(a|a.isKey=true).name$ in
context x,y:relSchemaClass inv ’keyAttrUniqueIn’ + #rs#:
x&lt;&gt;y implies x.keyAttr&lt;&gt;y.keyAttr
In these examples it is assumed that there is exactly one key attribute for each
class. When these parameterized features become actualized, then in this case
the following invariants would be required. It is an open question whether the
actualization is implicit or explicit: The actualization mechanism may be
considered as being implicit for all actual features that are available in the model, or
the actualization mechanism may be considered as being something the modeler
has to explicitly ask for.
context Town inv keyAttrUnique:</p>
          <p>Town.allInstances&gt;-forAll(x,y | x&lt;&gt;y implies x.name&lt;&gt;y.name)
context Country inv keyAttrUnique:</p>
          <p>Country.allInstances&gt;-forAll(x,y | x&lt;&gt;y implies x.name&lt;&gt;y.name)
context x,y:Town inv keyAttrUniqueInTown:</p>
          <p>x&lt;&gt;y implies x.name&lt;&gt;y.name
context x,y:Country inv keyAttrUniqueInCountry:
x&lt;&gt;y implies x.name&lt;&gt;y.name
This paper is based on the idea to describe different metamodels in one model
and to connect the metamodels either (a) with generalizations and associations
employing appropriate UML and OCL constraints or (b) with special operations
allowing to navigate between different multi-levels in a model. The paper does
not claim to present final results, but some experiments and ideas in the context
of multi-level models.</p>
          <p>
            Future research includes the following topics. We would like to work out for our
approach formal denfiitions for notions like potency or strictness. The notion of
powertype will be given special attention in order to explore how far this concept
can be integrated. Our tool USE could be extended to deal with different
metamodel levels simultaneously. So far USE deals with class and object diagram.
In essence, we think of at least a three-level USE (cubeUSE) where the middle
level can be seen at the same time as an object and class diagram, as has been
sketched in the second approach in this paper. Furthermore, larger examples and
case studies must check the practicability of the proposal.
12. Gogolla, M., Favre, J.M., Bu¨ttner, F.: On Squeezing M0, M1, M2, and M3 into a
Single Object Diagram. In et al., T.B., ed.: Proc. MoDELS’2005 Workshop Tool
Support for OCL and Related Formalisms, EPFL (Switzerland),
LGL-REPORT2005-001 (2005)
13. Gogolla, M., Sedlmeier, M., Hamann, L., Hilken, F.: On Metamodel
Superstructures Employing UML Generalization Features. In Atkinson, C., Grossmann,
G., Ku¨hne, T., de Lara, J., eds.: Proc. Int. Workshop on Multi-Level
Modelling (MULTI’2014), http://ceur-ws.org/Vol-1286/, CEUR Proceedings, Vol. 1286
(2014) 13–22
14. Guerra, E., de Lara, J.: Towards Automating the Analysis of Integrity Constraints
in Multi-Level Models. [
            <xref ref-type="bibr" rid="ref23 ref43 ref5">5</xref>
            ] 63–72
15. Hamann, L., Gogolla, M.: Endogenous Metamodeling Semantics for Structural
UML 2 Concepts. In Moreira, A., Scha¨tz, B., Gray, J., Vallecillo, A., Clarke, P.J.,
eds.: MoDELS. Volume 8107 of LNCS., Springer (2013) 488–504
16. Henderson-Sellers, B., Clark, T., Gonzalez-Perez, C.: On the Search for a
LevelAgnostic Modelling Language. In Salinesi, C., Norrie, M.C., Pastor, O., eds.:
CAiSE. Volume 7908 of LNCS., Springer (2013) 240–255
17. Igamberdiev, M., Grossmann, G., Stumptner, M.: An Implementation of
MultiLevel Modelling in F-Logic. [
            <xref ref-type="bibr" rid="ref23 ref43 ref5">5</xref>
            ] 33–42
          </p>
        </sec>
        <sec id="sec-6-5-2">
          <title>Aspect-oriented Concrete Syntax Definition for</title>
        </sec>
        <sec id="sec-6-5-3">
          <title>Deep Modeling Languages</title>
        </sec>
      </sec>
      <sec id="sec-6-6">
        <title>Colin Atkinson1 and Ralph Gerbig1</title>
        <p>University of Mannheim
{atkinson, gerbig}@informatik.uni-mannheim.de
Abstract. Multi-level modeling tools provide inherent support for
modeling domain scenarios with multiple classification levels. However, as the
success of domain-specific modeling tools illustrates users increasingly
expect to be able to visualize models using domain-specific languages. It
is relatively straightforward to support this using traditional “two-level”
modeling technologies, but many of the benefits of multi-level
modeling would be lost. For example, in a multi-level context it is not only
desirable to define concrete syntax that is applicable over more than
just one instantiation level, it should also be possible to customize the
visualization of model elements as they become more specialized over
instantiation and inheritance levels. In this paper we present an approach
for multi-level concrete syntax definition which addresses this need by
using aspect-oriented principles to parametrize the visualization
associated with model elements. We also explain how this is implemented in
the Melanee deep modeling tool.</p>
        <p>Keywords: aspect-orientation; deep modeling; concrete syntax
1</p>
        <p>
          Introduction
Since concrete syntax definition is one of the core foundations of domain-specific,
model-driven development a large number of tools supporting this capability are
available today. Important examples include MetaEdit+ [
          <xref ref-type="bibr" rid="ref17 ref35">17</xref>
          ] and the Graphical
Modeling Framework [
          <xref ref-type="bibr" rid="ref11 ref29">11</xref>
          ] for graphical languages, XText [
          <xref ref-type="bibr" rid="ref27 ref9">9</xref>
          ] and Spoofax [
          <xref ref-type="bibr" rid="ref12 ref30">12</xref>
          ]
for textual languages and EMF Forms [
          <xref ref-type="bibr" rid="ref26 ref8">8</xref>
          ] for form-based languages. Other
concrete syntax formats can also be supported such as table-based and wiki-based
languages. However, these tools are all based on traditional “two-level”
modeling technology which only supports two classification levels. As a result, they
have no inherent capability to support the definition of concrete syntax that
can “span” (i.e. automatically be applied over) multiple classification levels. In
other words, they can only inherently support the application of a concrete
syntax definition to instances at the level immediately below. To apply a concrete
syntax to two or more levels below its definition, complex transformation and
editor generation/deployment steps are needed. This not only complicates the
initial defintion and use of concrete syntaxes, it significantly increase the effort
involved in maintaining and evolving them.
        </p>
        <p>Deep modeling has the potential to address this problem because it
inherently supports multiple classification levels. However, some challenges need to
be addressed to support effective level-spanning concrete syntax definition and
application within a deep modeling environment. The most significant is to find
a suitable tradeoff between the need to define common syntax elements that are
suitable across multiple levels whilst providing the flexibility to customize the
common syntax elements as and where needed. In other words, the most
significant challenge is to allow the concrete syntax used to visualize model elements
to reflect the specialization that inherently takes place in the instantiation and
inheritance hierarchies in a deep model.</p>
        <p>
          The Melanee [
          <xref ref-type="bibr" rid="ref21 ref3 ref41">3</xref>
          ] deep modeling environment addresses this problem through
an aspect-oriented approach which essentially allows concrete syntax definitions
to be parametrized. Using this capability it is possible for the concrete syntax
applied to a model element to be customized to reflect the specialization that
naturally takes place in a deep model, significantly reducing the complexity
involved in defining, maintaining, and evolving different concrete syntaxes. The
implemented mechanism paves the way towards general concrete-syntax
repositories which can be configured for particular domains and application scenarios
in a simple and straightforward way.
        </p>
        <p>The remainder of this paper is structured as follows: In the next section
(Section 2) the underlying deep modeling approach is introduced. Section 3
then introduces the concept of aspect-oriented concrete syntax definition while
Section 4 presents pragmatic observations made during the use of the approach
in three different domains. The paper closes with conclusions (Section 5).
2</p>
        <p>OCA-based Deep Modeling
The most widely implemented deep modeling architecture is the orthogonal
classification architecture shown schematically in Figure 1. Its most obvious
difference to the traditional linear modeling infrastructure of the UML is that there
are two “orthogonal” classification dimensions. One dimension, the linguistic
classification dimension, is represented by the vertical stack of levels labeled
L2 to L0, and the other dimension, the ontological classification dimension, is
represented by the horizontal stack of levels labeled O0 to O2.</p>
        <p>The linguistic levels essentially capture the organization of the model
information from the perspective of how deep modeling is realized in a meta-modeling
framework such as EMF. The top most linguistic level (L2), contains all language
constructs available in the deep modeling language, while the middle level (L1)
contains the user-modeled domain languages and is thus often referred to as the
domain level. The ontological dimension, in turn, consists of “ontological”
levels which are stacked horizontally within L1. Each model element at this level is
classified by exactly one model element at level L2, indicated by vertically dashed
classification lines. The lowest level, L0, contains the real-world concepts
modeled by L1. The light bulb represents the concept of EmployeeType which captures
the common properties of all employees. The group of stick-men with a wrench
∨LT
w
w
w
w
w
w
w
w
w
w
∨∨LT
δ- ∧∨LT
δ∧
ε
- ∧LT
δ∨</p>
        <p>?
ι- ∨∧LT
χ</p>
        <p>PT
δ-∧ ∧∧LT = ∧∧LC</p>
        <p>δ∧
μ
χ</p>
        <p>χ
- JP K
μ</p>
        <p>PC
∧LC
δ∨</p>
        <p>?
∨∧LC</p>
        <p>ι
χ</p>
        <p>δ∧
∧∨LC
ε
∨LC
w
w
w
w
w
w
w
w
w
w
- ∨∨LC</p>
        <p>JP K with ∧P and using ∨P for the hypothetical set of all possible representations
of a program P .</p>
        <p>
          The notion of commitment to grammatical structure was discussed by Klint,
Lämmel and Verhoef [
          <xref ref-type="bibr" rid="ref10 ref28">10</xref>
          ], and recently was elaborated by a megamodel of various
software language engineering artefact kinds such as parse trees, visual models,
lexical templates, etc, in the context of (un)parsing in a broad sense [
          <xref ref-type="bibr" rid="ref18 ref36">18</xref>
          ]. The
contribution of this paper to that trend was showing that concrete syntaxes are
ι
ontological instances of the abstract syntax (more precisely, ∧∨L −→ ∨∧L). The
idea that a software language should be allowed to have different syntaxes while
staying essentially the same language, is not new but has always been rejected
by formalisations.
        </p>
        <p>
          Atkinson [
          <xref ref-type="bibr" rid="ref1 ref19 ref39">1</xref>
          ], Bézivin [
          <xref ref-type="bibr" rid="ref21 ref3 ref41">3</xref>
          ], Favre [
          <xref ref-type="bibr" rid="ref24 ref44 ref6">6</xref>
          ], Gašević [
          <xref ref-type="bibr" rid="ref25 ref45 ref7">7</xref>
          ], Kühne [
          <xref ref-type="bibr" rid="ref11 ref29">11</xref>
          ], Muller [
          <xref ref-type="bibr" rid="ref13 ref31">13</xref>
          ] and
many others have made significant contributions to comprehension and
refinement of the processes of modelling, metamodelling and megamodelling. This
paper is an endeavour to contribute to that trend by making a yet another step
in improving the formalisations, as well as by providing concrete examples from
software and grammarware engineering, even when they seemed less suitable
to discuss ontological matters than the classic Lassie/Fido – Collie – Breed
example. We hope such results will both help to identify problems we can solve
in the future and bring less meta-minded modelling practitioners and language
engineers closer.
        </p>
        <p>9</p>
        <p>
          Apart from the Fregean perspective on intensional logic, Montague
considered a Russelian variant where the extension of the intension (called the “sense
denotation”) is not a fundamental concept [
          <xref ref-type="bibr" rid="ref12 ref30">12</xref>
          ]. It has proven to be less useful
to him, but in software language engineering this idea has never even been tried
yet.
        </p>
        <p>10</p>
        <sec id="sec-6-6-1">
          <title>Practical Multi-level Modeling on</title>
        </sec>
        <sec id="sec-6-6-2">
          <title>MOF-compliant Modeling Frameworks</title>
          <p>Kosaku Kimura, Yoshihide Nomura, Yuka Tanaka,</p>
          <p>Hidetoshi Kurihara, and Rieko Yamamoto</p>
          <p>Fujitsu Laboratories, Kawasaki, Japan
{ kimura.kosaku,y.nomura,tanaka.yuka,kurihara.hide,r.yamamoto}
@jp.fujitsu.com
Abstract. This paper describes practices for multi-level modeling by
only using existing modeling frameworks that comply Meta-Object
Facility (MOF). We design modeling patterns for achieving the multi-level
modeling methodologies on Eclipse Modeling Framework, and implement
the dataflow model by applying the patterns. Moreover, we attempt
to compare the patterns regarding the facilitation of developing both
our tool and plugins. We found Orthogonal Classification Architecture
(OCA) pattern is easier to develop our tool than powertypes pattern,
but regarding plugins for our tool, powertypes pattern can define
modelto-text transformation templates more simply than OCA pattern.
1
Model-driven engineering (MDE) gains productivity of software developments
providing several powerful tools for designing, developing or verifying software.
Especially, model transformation technologies (i.e., model-to-model and
modelto-text) are important for facilitating agile software developments. For the
modelto-text transformation enables to generate executable source codes from a model,
developers can develop complex applications by using graphical editors.</p>
          <p>
            There are various kinds of graphical editing tools for developing and
executing applications, e.g., Extract-Transform-Load [
            <xref ref-type="bibr" rid="ref2 ref20 ref23 ref40 ref43 ref5">2, 5</xref>
            ], Business Analytics [
            <xref ref-type="bibr" rid="ref21 ref3 ref41">3</xref>
            ]
and Workflow Management [
            <xref ref-type="bibr" rid="ref22 ref4 ref42">4</xref>
            ]. We also have been developing a graphical
editing tool on a cloud platform for facilitating developments of big data processing
applications [
            <xref ref-type="bibr" rid="ref18 ref36">18</xref>
            ]. Figure 1 shows the web interface of our tool.
          </p>
          <p>
            Many of the tools are based on modeling frameworks and provide automatic
generation features for executable source codes. However, extending models of
the tools tends to be difficult for third-party developers, and therefore, there have
been a few plugins published from developer communities. Nowadays, the
metamodels of graphical editing tools have to be easily extensible so that developers
can develop more plugins [
            <xref ref-type="bibr" rid="ref16 ref34">16</xref>
            ].
          </p>
          <p>Meta-Object Facility (MOF)1 is a standard for MDE provided by Object
Management Group (OMG), and Eclipse Modeling Framework (EMF)2 is one
1 http://www.omg.org/mof/
2 https://eclipse.org/modeling/emf/
Fig. 1. EMF-based graphical editing tool for developing and executing big data
processing.
of mature MOF-compliant modeling frameworks, and there are various toolkits
in the EMF community, such as Acceleo3, Query/View/Transformation (QVT)
Operational4 and ATL Transformation Language5. Those toolkits also conform
to or follow the OMG’s standards. In this paper, we attempt to achieve
multilevel modeling on EMF. EMF provides the Ecore metamodel, which is
compatible with Essential MOF, and tools for creating models that conform to the Ecore
metamodel.</p>
          <p>
            One of the major drawbacks of EMF is that it is hard to define and use
a new metamodel located at the same level as the Ecore metamodel, because
EMF is basically adequate to create models and objects just based on the Ecore
metamodel. If we use our own metamodel, although it is obviously possible to
develop a proprietary tool based on it by using the code generation feature
of EMF [
            <xref ref-type="bibr" rid="ref1 ref19 ref37 ref39">1, 19</xref>
            ], the tool tends to force an unusual manner to developers, and
eventually, most of them may feel that “I do not want to use it.” This issue is
crucial for developing the ecosystem and the community of our tool.
          </p>
          <p>
            In order to overcome the drawbacks of existing modeling frameworks, various
methodologies of multi-level modeling have been proposed such as Orthogonal
Classification Architecture (OCA) [
            <xref ref-type="bibr" rid="ref11 ref24 ref25 ref27 ref29 ref44 ref45 ref6 ref7 ref9">6, 7, 9, 11</xref>
            ], powertype-based
metamodeling [
            <xref ref-type="bibr" rid="ref13 ref14 ref31 ref32">13, 14</xref>
            ] and deep instantiation [
            <xref ref-type="bibr" rid="ref12 ref17 ref30 ref35">12, 17</xref>
            ]. The methodologies can
provide simple solutions to design metamodels along with models and objects.
However, there is little consensus in the literature on fundamental multi-level
modeling concepts [
            <xref ref-type="bibr" rid="ref10 ref28">10</xref>
            ], and therefore, it is still difficult to determine to apply
them to industries. For now, multi-level models must be defined by only using
existing MOF-compliant modeling frameworks, so we have to clarify a workaround
for that.
3 http://www.eclipse.org/acceleo/
4 http://www.eclipse.org/mmt/?project=qvto
5 https://eclipse.org/atl/
          </p>
          <p>Element
M2
M1</p>
          <p>Duplication
+Input: Data
+Output: Data[]</p>
          <p>Output[0]</p>
          <p>
            Output[
            <xref ref-type="bibr" rid="ref1 ref19 ref39">1</xref>
            ]
          </p>
          <p>This paper describes practices for achieving multi-level models on EMF. We
use a hierarchy of a dataflow model as an example model that is used on graphical
editing tools. We design multi-level modeling patterns on EMF, and implement
the dataflow model by applying the patterns. Moreover, we attempt to compare
the patterns regarding the facilitation of developing both our tool and plugins.</p>
          <p>The remainder of this paper is organized as follows. Section 2 describes a
model of a graphical editing tool as our motivating example. Section 3 describes
patterns for multi-level modeling on EMF. In Sect. 4 we discuss the comparison
of the patterns, and our conclusions are presented in Sect. 5.
2</p>
          <p>Motivating example: a dataflow model for graphical
editing tools
A typical graphical editing tool consists of a palette and a canvas as well as Fig.
1. The palette shows icons representing types of nodes, and the canvas is used
to define a diagram by putting a node of the type selected from the palette and
drawing an edge between nodes. By using such tool, we can easily develop a
data processing application as a flow diagram that consists of nodes and edges
representing icons and lines, respectively.</p>
          <p>Figure 2 shows the hierarchy of the dataflow model that we want to design.
Layer M3 represents the original Ecore metamodel, and layer M2 represents the
metamodel of the dataflow model. Objects in layer M2 (i.e., Dataflow, Data and
Process) are instances of Class. An instance of Dataflow composes instances
L1
L2</p>
          <p>O0
M1
M0</p>
          <p>powertype
Class (EClass)
instance-of
subtype</p>
          <p>Element
instance-of</p>
          <p>OCL</p>
          <p>Definition</p>
          <p>instance-of
Instance
Fig. 3. OCA pattern.</p>
          <p>
            Fig. 4. Powertypes pattern.
of Data and Process, and represents how data is processed and the order of
execution in the processing methodologies as well as the definition in [
            <xref ref-type="bibr" rid="ref15 ref33">15</xref>
            ].
          </p>
          <p>Layer M1 represents definitions of types and subtypes of Data and Process
that are displayed on the palette. Classes in layer M1 are instances of the
classes in layer M2 and have definitions of type names, input ports, output ports
and owned properties. In Fig. 2, Table and Model are instances of Data, and
AddTimestamp and Duplication are instances of Process. Moreover, EventData
and TemporaryData are subclasses of Table, and SVMModel is subclasses of
Model. Those subclasses define their own properties and data schemata for
storing databases. A plugin created by a third-party developer defines a new instance
of Process in layer M1, i.e., a new type of nodes in the palette.</p>
          <p>Layer M0 represents an instance of Dataflow edited on the canvas in Fig. 1.
Objects in layer M0 are instances of the objects in layer M1. Data node Sensor
data in layer M0 represents data that is produced and sent by sensors and has
the schema defined by EventData.
3</p>
          <p>
            Multi-level modeling on EMF
Several multi-level modeling methodologies introduce a new concept of objects.
A clabject is an object that is both a class and an instance of another class [
            <xref ref-type="bibr" rid="ref26 ref8">8</xref>
            ].
Clabjects sometimes have a potency feature that represents the depth to which
an attribute can be instantiated [
            <xref ref-type="bibr" rid="ref12 ref30">12</xref>
            ] and is utilized in deep instantiation. In
order to achieve multi-level model by only using EMF, we consider that it is
difficult to introduce them on EMF, because applying those concepts obviously
needs to develop a new modeling editor.
          </p>
          <p>We attempt to implement the dataflow model described in Sect. 2 by
applying the following two methodologies: OCA and powertype-based
metamodeling. Figure 3 and 4 show modeling patterns as workarounds for each
methodology.
The OCA has two dimensions of model layers: linguistic layers and ontological
layers. In Fig. 3, L and O denotes linguistic layers and ontological layers,
respectively. Layer L0 contains the Ecore metamodel and class Element that is an</p>
          <p>Dataflow
data
process
DefinitionElement</p>
          <p>InstanceElement
property</p>
          <p>property
definition
definition
definition
definition</p>
          <p>Property
+value: string</p>
          <p>Data
data output
input</p>
          <p>Port
+index: int
output input
definition
definition
definition</p>
          <p>instance-of
Add timestamp
-- for instance objects of Data
context Data
inv DataHasDefinition: definition &lt;&gt; null
inv DataHasValidProperties:</p>
          <p>definition.property-&gt;forAll(i | property-&gt;exists(definition = i))
inv DataHasValidFields:</p>
          <p>definition.field-&gt;forAll(name &lt;&gt; null and type &lt;&gt; null)
-- for instance objects of Process
context Process
inv ProcessHasDefinition: definition &lt;&gt; null
inv ProcessHasValidProperties:</p>
          <p>definition.property-&gt;forAll(i | property-&gt;exists(definition = i))
inv ProcessHasValidInputPorts:</p>
          <p>definition.input-&gt;forAll(i | input-&gt;exists(definition = i))
inv ProcessHasValidOutputPorts:</p>
          <p>definition.output-&gt;forAll(i | output-&gt;exists(definition = i))</p>
          <p>Fig. 5. Dataflow model and excerpt of OCL constraints in OCA pattern.
data</p>
          <p>Data
Model</p>
          <p>in
SVMModel</p>
          <p>EventData
+eventId: int
+timeStr: string
+millisStr: string
+type: string
+value: string
Sensor data</p>
          <p>process</p>
          <p>Duplication
instance-of</p>
          <p>instance-of
Add timestamp</p>
          <p>A data processing</p>
          <p>Dataflow
in
out</p>
          <p>in
outFirst
outSecond
out</p>
          <p>AddTimestamp
+time: string
+millis: string
+storedIn: string
context EClass
def: isA(typeName : String) : Boolean =
name = typeName or oclIsKindOf(EClass)
and oclAsType(EClass).eAllSuperTypes-&gt;exists(name = typeName)
-- for subclasses of Data
inv DataHasNoExtraProcessRefs:
isA(’Data’) implies eReferences-&gt;forAll(</p>
          <p>eReferenceType.isA(’Process’) implies name.matches(’in|out’)
-- for subclasses of Process
inv ProcessHasValidInputPorts:
isA(’Process’) implies eReferences-&gt;forAll(</p>
          <p>name.matches(’^in.*’) implies eReferenceType.isA(’Data’)
)
inv ProcessHasValidOutputPorts:
isA(’Process’) implies eReferences-&gt;forAll(</p>
          <p>name.matches(’^out.*’) implies eReferenceType.isA(’Data’)
instance of class Class, for defining elements of ontological layers ( O0 and O1)in
layer L1. Class DefinitionElement in layer O0 and class InstanceElement in
layer O1 defines the type and the instance of elements of the dataflow model,
respectively. Layer L2 contains definition objects and instance objects that are
instances of class DefinitionElement and InstanceElement, respectively.</p>
          <p>We represent an ontological instantiation relationship by a reference to a
definition object. The instance object has a reference to the definition object,
and the correctness of the relationship between them is verified by constraints
written in Object Constraint Language (OCL).</p>
          <p>Figure 5 shows the dataflow model that conforms to the OCA pattern. Class
Dataflow, Data, Process, Port and Property are instance classes, which are
subclasses of class InstanceElement, and all of them respectively have their
own definition classes, which are subclasses of class DefinitionElement.
Object Dataflow, EventData and AddTimestamp are definition objects, i.e.,
instances of the definition classes. Object A data processing, Sensor data and
Add timestamp are instance objects, i.e., instances of the instance classes.</p>
          <p>Examples of OCL constraints for instance objects of class Data and Process
are shown in the lower part of Fig. 5.
3.2</p>
          <p>
            Model applying powertypes pattern
Powertype-based metamodeling introduces a powertype that is defined as
a type whose instances are types inheriting a subtype [
            <xref ref-type="bibr" rid="ref14 ref32">14</xref>
            ]. While in the original
idea, every object in layer M1 must be a clabject that is both an instance of a
powertype and a subclass of a subtype, we define an object in layer M1 of Fig.
4 just as an instance of a powertype, i.e., class Class, and use OCL constraints
for defining the relationship between the object and a subtype. We define that
the object is regarded as a genuine subclass of the subtype if it satisfies the OCL
constraints.
          </p>
          <p>Figure 6 shows the dataflow model that conforms to the powertypes
pattern. As class Dataflow, Data and Process are subclasses of class Element,
the hierarchy of all classes are represented as inheritance relationships. Class
EventData, which is a subclass of class Table, has attributes that represent
data schema. Class AddTimestamp, which is a subclass of class Process, has
attributes that represent parameters of the process. Class AddTimestamp also has
an input port and an output port as references to class Table, which means that
it consumes and produces Table-typed data.</p>
          <p>Object A data processing, Sensor data and Add timestamp are instances
of class Dataflow, EventData and AddTimestamp respectively.</p>
          <p>Examples of OCL constraints for subclasses of class Data and Process are
shown in the lower part of Fig. 6.
4</p>
          <p>Evaluation
We attempt to compare our modeling patterns, OCA and powertypes,
regarding the facilitation of the following developments: developing our tool by</p>
          <p>Name Description
Input a single port that consumes a subclass of Table
Output a single port that produces a subclass of Table
time a formatted date string, e.g., ‘‘yyyy-MM-dd hh:mm:ss’’
millis an integer string of a millisecond value
storedIn a field name to which a timestamp value is assigned
ourselves and developing plugins for our tool by third-party developers. We
consider there are a lot of viewpoints regarding the facilitation, but we have not yet
completed the comprehensive evaluation from the viewpoints. In this paper, we
concentrate the following two viewpoints: model manipulation for our tool and
template description for plugins.</p>
          <p>Model manipulation for our tool
Regarding the development of our tool, we focus on how to manipulate the
model on the methodology. The OCA pattern can utilize the code generation
features of EMF, because we do not need to extend metamodels in layer L0 of
Fig. 3. All objects that are added by plugins for new types of data or processes
are located in layer O0, and they can be manipulated by using automatically
generated codes. On the other hand, when we apply the powertypes pattern,
we have to extend the Ecore metamodel dynamically, so it is difficult to utilize
the code generation. We have to manipulate objects in layer M0 by only using
the default Ecore APIs that are not intuitive and troublesome to manipulate.
4.2</p>
          <p>Template description for plugins
Regarding the development of plugins, we focus on the description of the
modelto-text transformation template for process AddTimestamp in Fig. 1, 2, 5 and 6.
Table 1 shows the definition of process AddTimestamp. The process produces a
record that is appended a new field named as the string value of storedIn. The
new field is assigned a string value of a timestamp that is calculated by using
time, and millis of an original record.</p>
          <p>Now, we consider a template for producing the following SQL-like processing
query.
insert into &lt;Output&gt; select &lt;Field of Input&gt;[,&lt;Field of Input&gt; ...],
UDF.timestamp(&lt;time&gt;, &lt;millis&gt;) as &lt;storedIn&gt; from &lt;Input&gt;</p>
          <p>We use Acceleo, which is an implementation of MOFM2T6, for generating
the query. By applying the OCA pattern, the template can be described as
follows.
6 http://www.omg.org/spec/MOFM2T/
[template public generate(aProcess : Process) overrides generate
? (definition.name=’AddTimestamp’)]
insert into [output-&gt;any(definition.name=’out’).data.name/]
select [for (input-&gt;any(definition.name=’in’)
.data.definition.field) separator(’,’)][name/][/for]
, UDF.timestamp(
[property-&gt;any(definition.name=’time’).value/],
[property-&gt;any(definition.name=’millis’).value/]
) as
[property-&gt;any(definition.name=’storedIn’).value/]
from [input-&gt;any(definition.name=’in’).data.name/]
[/template]</p>
          <p>By applying the powertypes pattern, the template can be described as
follows.
[template public generate(aProcess : AddTimestamp) overrides generate]
insert into [out.name/]
select [for (_in.eClass().eAttributes) separator(’,’)][name/][/for]
, UDF.timestamp([time/],[millis/]) as [storedIn/] from [_in.name/];
[/template]</p>
          <p>By contrasting those descriptions, the powertypes pattern can describe the
template more simply than the OCA pattern. This is because objects in layer
M1 of Fig. 4 are just models of the Ecore metamodel, so we can directly access
the attribute values of their instances. This advantage is valid not only Acceleo
but also other EMF-based toolkits, and the fact indicates that the powertypes
pattern is more usable by following the existing common manners of
MOFcompliant modeling frameworks.
5
In this paper, we described the practices for achieving multi-level modeling by
only using EMF. We defined modeling patterns of the following two
methodologies: OCA and powertype-based metamodeling. We implemented the
dataflow model for graphical editing tools by applying the patterns. By
comparing the implementations on the two methodologies, We found the OCA pattern
is easier to develop our tool than the powertypes pattern, but regarding plugins
for our tool, the powertypes pattern can define model-to-text transformation
templates more simply than the OCA pattern.</p>
          <p>We consider we have to achieve the ease of developing plugins for our tool
rather than the ease of developing our tool itself, because increasing the number
of plugins can benefit our tool and our communities. Although regarding the
simplicity of template descriptions, the powertypes pattern is a better choice
than the OCA pattern, further evaluations from other viewpoints are needed
for determining the best pattern.</p>
          <p>We hope that the multi-level modeling methodology is standardized
adequately following the existing common manners of MOF-compliant modeling
frameworks.</p>
        </sec>
        <sec id="sec-6-6-3">
          <title>An algebraic instantiation technique illustrated by multilevel design patterns</title>
        </sec>
      </sec>
      <sec id="sec-6-7">
        <title>Zoltan Theisz1 and Gergely Mezei2</title>
        <p>1 Huawei Design Centre, Ireland,</p>
        <p>
          zoltan.theisz@huawei.com
2 Budapest University of Technology and Economics, Budapest, Hungary,
gmezei@aut.bme.hu
Abstract. Multi-level meta-modeling hinges on the precise
conceptualization of the instantiation relation between elements of the meta-model
and the model. In this paper, we propose a new algebraic instantiation
approach, the Dynamic Multi-Layer Algebra. The approach aims to
provide a solid algebraic foundation for multi-level meta-modeling, which is
easily customizable through different bootstrap elements and a dynamic
instantiation procedure. The paper describes the major parts of the
approach and also demonstrates their modeling capabilities by covering
some of the most-often used design patterns for multi-level modeling.
Keywords: multi-level meta-modeling, dynamic instantiation, design
patterns
1
Multi-level meta-modeling is enjoying a renaissance thanks to the dynamic
modeling needs of contemporary complex software systems. For example, next
generation telecom management systems set new challenges towards centralized,
model-based extendable network element repositories that must be able to be
used both in design- and run-time. The model repository must be open-ended
with respect to complex types: both through gradual extension and the
introduction of new elements. Therefore, many well-known meta-modeling patterns such
as type-object, dynamic features or the dynamic auxiliary domain concepts [
          <xref ref-type="bibr" rid="ref23 ref43 ref5">5</xref>
          ]
frequently reappear there. Although potency-based meta-modeling can handle
these situations, alternative formalisms may simplify their modeling by allowing
more dynamism in the instantiation.
        </p>
        <p>
          In this paper, we aim to illustrate how such an alternative multi-level
metamodelling approach, referred to as Dynamic Multi-Layer Algebra (DLMA) [
          <xref ref-type="bibr" rid="ref25 ref45 ref7">7</xref>
          ],
can be applied equally well to those multi-level meta-modelling patterns. The
paper is structured as follows: Section 2 introduces the technical background
of multi-level modeling, then, in Section 3, we introduce our DLMA approach
in some detail. Next, in Section 4, the approach is illustrated by its targeted
application to those three well-know multi-level meta-modeling design patterns
that are often observed in real-life applications as analyzed in [
          <xref ref-type="bibr" rid="ref23 ref43 ref5">5</xref>
          ]. Finally, Section
5 concludes the paper with our future research directions.
        </p>
        <p>
          Background
Instantiation lies at the heart of any metamodel-based model development
technique. Instantiation is the key operation that defines the semantic linkage
between the meta-model and the model level. This linkage can be ontological or
linguistic, or even both at the same time, depending on the actual
methodology and the available tools used for meta-modelling. Standard approaches prefer
the linguistic interpretation which results in a two level architecture, where the
metamodel is built first and then it is instantiated into models. This
architecture has been implemented, for example, in Eclipse Modelling Framework
(EMF) [
          <xref ref-type="bibr" rid="ref1 ref19 ref39">1</xref>
          ], which enforces the definition of the meta-model within one single
meta-level by relying on natively available meta-modeling facilities such as type
definition, inheritance, data types, attributes and operations. However, it is hard
to modify the meta-model once instance models have been built, thus explicit
meta-modeling of an ontological interpretation of instantiation is also necessary.
        </p>
        <p>
          With only linguistic interpretation enforced, the resulting multi-level models
may become ad-hoc and usually involve accidental complexity. In order to avoid
mixed ontological and linguistic instantiation and to overcome the limits set
by the two-meta-level architecture, pure multi-level meta-modeling approaches
have been put in action. These techniques can distinguish between two kinds of
instantiation: shallow instantiation means that information is used at the
immediate instantiation level, while deep instantiation allows to define information on
the deeper modeling levels as well. If we need each meta-level to be instantiable,
there must be some means to add new attributes and operations to the existing
models. There are two options: one can either bring the source of the
information along through all model levels (and use it where it may be needed), or one
can add the source of that information directly to the model element where it is
actually used. The concept of potency notion and dual field notion [
          <xref ref-type="bibr" rid="ref21 ref3 ref41">3</xref>
          ] [
          <xref ref-type="bibr" rid="ref2 ref20 ref40">2</xref>
          ] were
introduced as solutions of the problem. Here, elements within a model may not
only be instances of some element in the meta-model above, but, at the same
time, they may also serve as types to some other elements in the meta-level
below. In other words, one assumes the existence of an unrestricted meta-model
building facility that is controlled only by the explicit definition of potency limits
allowing a preset number of meta-levels an element can be instantiated at. In
effect, there are non-negative numbers attached to all model elements that are
decremented by each instantiation until they reach 0. In some sense, this solution
is both too liberal and too restrictive at the same time: too liberal because at
each meta-level the full potential of meta-model building facilities is available,
but it is also too restrictive because the modeler must know in advance on which
level the information will be needed and set a potency value accordingly.
        </p>
        <p>
          Although potency allocation at end-points can be consistently extended to
connections as well [
          <xref ref-type="bibr" rid="ref24 ref44 ref6">6</xref>
          ], next generation telecom management systems often
require more flexibility vis-a-vis setting in advance the allowed number of
multilevels and less universality with respect to the permitted modeling facilities
available at each modeling level. In other words, scheduled and gradual instantiation
of information modeling is necessary. Under gradual instantiation we mean the
instantiation of some attributes and operations of the meta definitions, and not
necessarily all of them in one single go. This added dynamicity in the
instantiation is the main driver of our approach. Although our ASM formalism differs
from the set theoretical foundation of potency based approaches we believe that
it is at least so expressive for practical multi-level meta-modelling and simplifies
the implementation of the solution. In order to prop up this conjecture three
of the most frequent design patterns for multi-level meta-modelling [
          <xref ref-type="bibr" rid="ref23 ref43 ref5">5</xref>
          ] will be
rewritten in DMLA.
In this section, we shortly introduce our Abstract State Machines (ASM, [
          <xref ref-type="bibr" rid="ref22 ref4 ref42">4</xref>
          ])
based multi-level instantiation technique. Dynamic Multi-Layer Algebra (DMLA)
consists of three major parts: The first part defines the modeling structure and
defines the ASM functions operating on this structure. In essence, the ASM
formalism defines an abstract state machine and a set of connected functions that
specify the transition logic between the states. The second part is the initial
set of modeling constructs, built-in model elements (e.g. built-in types) that are
necessary to make use of the modeling structure in practice. This second part is
also referred to as the bootstrap of the algebra. Finally, the third part defines
the instantiation mechanism. We have decided to separate the first two parts
because the algebra itself is structurally self-contained and it can also work with
different bootstraps. Moreover, the a concrete bootstrap selection seeds the
concrete meta-modeling capability of the generic DMLA, which we consider as an
additional benefit compared to the unlimited and universal modeling capability
potency supports at all meta-levels. In effect, the proper selection of the
bootstrap elements determines the later expressibility of DMLA’s modeling capability
on the lower meta-levels.
3.1
        </p>
        <p>Data representation
In DMLA, the model is represented as a Labeled Directed Graph. Each model
element such as nodes and edges can have labels. Attributes of the model
elements are represented by these labels. Since the attribute structure of the edges
follows the same rules applied to nodes, the same labeling method is used for
both nodes and edges. Moreover, for the sake of simplicity, we use a dual field
notation in labeling that represents Name/Value pairs. In the following, we refer
to a label with the name N of the model item X as XN .</p>
        <p>We define the following labels: (i) XName (the name of the model element),
(ii) XID (a globally unique ID of the model element), (iii) XMeta (the ID of the
metamodel definition), (iv) XCardinality (the cardinality of the model element,
which is applied during the instantiation as an explicit constraint imposed on
the number of instances the model element may exist in within the instance
model), (v) XV alue (the value of the model element is only used in the case of
attributes!), (vi) XAttributes (a list of attributes)</p>
        <p>Due to the complex structure of attributes, we do not represent them as
atomic data, but as a hierarchical tree, where the root of the tree is always
the model item itself. Nevertheless, we handle attributes as if they were model
elements. More precisely, we create virtual nodes from them. Virtual here means
that these nodes do not appear as real (modeling) nodes in diagrams but – from
the algebra’s formal point of view – they behave just like usual model elements.
This solution allows us to handle attributes and model elements uniformly and
avoid multiplication of labeling and ASM functions. Since we use virtual nodes,
all the aforementioned labels are also used for them: attributes have a name,
an ID, a reference to their meta definition, a cardinality and they may have
attributes as well. Moreover, they may also have a value. By the way, this is the
reason why we have defined the Value label.</p>
        <p>After the structure of the modeling elements has been briefly introduced, we
now define the Dynamic Multi-Layer Algebra itself.</p>
        <p>Definition 1. The superuniverse |A| of a state A of the Dynamic Multi-Layer
Algebra consists of the following universes: (i) UBool (containing logical values
{true/false}), (ii) UNumber (containing rational numbers {Q} and a special
symbol representing infinity), (iii) UString (containing character sequences of finite
length), (iv) UID (containing all the possible entity IDs), (v) UBasic (containing
elements from {UBool ∪ UNumber ∪UString ∪UID}).</p>
        <p>Additionally, all universes contain a special element, undef, which refers to an
undefined value. The labels of the entities take their values from the following
universes: (i) XName (UString), (ii) XID (UID), (iii) XMeta (UID), (iv) XCardinality
([UNumber,UNumber]), (v) XV alue (UBasic), (vi) XAttrib (UID[]).</p>
        <p>Note that we modeled cardinality as a pair of lower and upper limits.
Obviously, this representation could be extended to support ranges (e.g. “1..3”) as
well. The label Attrib is an indexed list of IDs, which refers to other entities.</p>
        <p>Now, let us have an example: BookID = 42, BookMeta= 123, BookCardinality
= {0, inf}, BookV alue = undef , BookAttrib = [] The definition formalizes the
entity Book with its ID of 42 and the ID of its metamodel being 123. Note that
in the algebra, we do not require that the universe of IDs uses the universe of
natural numbers, this is only one possible implementation we use for illustration.
In effect, the only requirement imposed on the universe is that it must be able
to identify its elements uniquely. Now, one can instantiate any number of the
Book entities in the instance model, which will have no components and values
defined. For the sake of legibility, we will use a more compact notation from now
on without loosing the original semantics:</p>
        <p>{"Book", 42, 123, [0, inf], undef, []}.
Functions are used to define rules to change states in ASM. In DMLA, we rely on
shared and derived functions. The current attribute configuration of a model item
is represented using shared functions. The values of these functions are modified
either by the algebra itself, or by the environment of the algebra (for example
by the user). Derived functions represent calculations, they cannot change the
model, they are only used to obtain and restructure existing information. Thus,
derived functions are used to simplify the description of the abstract state
machine. The vocabulary P of the Dynamic Multi-Layer Algebra formalism is
assumed to contain the following characteristic shared functions: (i) Name(UID):
UString, (ii) Meta(UID): UID, (iii) Card(UID): [UNumber,UNumber], (iv)
Attrib(UID, UNumber): UID, (v) Value(UID): UBasic.</p>
        <p>
          The functions are used to access the values stored in the corresponding
label. Note that the functions are not only able to query the requested
information, but they can also update the information. For example, one can
update the meta definition of an entity by simply assigning a value to the
Meta function: Meta(IDConcreteObject) : = IDNewMetaDefinition. Moreover, there
are two derived functions: (i) Contains(UID,UID): UBool and (ii)
DeriveFrom(UID,UID): UBool. The first function takes an ID of an entity and the
ID of an attribute and checks if the entity contains the attribute. The second
function checks whether the entity identified by the first parameter is an
instantiation, also transitively, of the entity specified by the second parameter. The
detailed, precise definition of the above functions are reported in [
          <xref ref-type="bibr" rid="ref25 ref45 ref7">7</xref>
          ].
3.3
        </p>
        <p>Bootstrap mechanism
The aforementioned functions make it possible to query and change the model.
However by only these constructs, it is very hard to use the algebra since it
lacks the basic, built-in modeling constructs. For example, entities are required
to represent the basic types, otherwise one cannot use the label Meta when it
refers to a string because the label is supposed to take its value from UID and not
from UString. To draw a parallel, functions are like empty hardware components.
They are useless unless an operation system to invigorates the system.</p>
        <p>In DMLA, there is no universal setup for this initial set of modeling
constructs. For example, one can restrict the usage of basic types to an absolute
minimum, or one can extend them by allowing technology domain or
metamodeling specific types. Also, meta-modeling constructs such as attribute
injection or inheritance may be defined explicitly here. Using our previous analogy:
we can install different operating systems on our hardware for different purposes.
It is worth mentioning that the bootstrap and the instantiation mechanism
cannot be defined independently of each other. When an entity is being instantiated
there are constructs to be handled in a special way. For example, we can check
whether the value of an attribute violates the type constraints of the meta-model
only if the algorithm can find and use the basic type definitions. The bootstrap
presented in this paper provides a practically useful minimal set of constructs,
however that can be freely modified if needed without changing the foundational
algebra. The bootstrap has two main parts: basic types and principal modeling
entities.</p>
        <p>
          The built-in types of the DMLA are the following: Basic, Bool, Number,
String, ID. All types refer to a value in the corresponding universe. In the
bootstrap, we define an entity for each of these types, for example we create an
entity called Bool, which will be used to represent Boolean type expressions.
Types Bool, Number, String and ID are inherited from Basic. Besides the basic
types, we also define three principal entities: Attribute, Node and Edge. They act
as the root meta elements of attributes, nodes and edges, respectively. All three
principal entities refer to themselves by meta definition (more precisely, they are
self-referring among themselves). Thus, for example, the meta of Attribute is the
Attribute entity itself.
{"Attribute",IDAttr,IDAttr,[0,inf],undef,
[{"Attributes",IDAttrs,IDAttr,[0,inf],undef,[]}]
}
We should also mention here that attributes are not only used as simple data
storage units, but also for creating annotations that are to be processed by
the instantiation. Similarly to basic types, we can define special attributes with
specific meaning. By adding these annotational attributes to entities, we can
finetune their handling. We define three annotation attributes: AttribType, Source
and Target. AttribType is used as a type constraint to validate the value of the
attribute in the instances. The Value label of AttribType specifies the type to be
used in the instance of the referred attribute. Using AttribType and setting its
Value field are mandatory if the given attribute is to be instantiated. AttribType
is only applied for attributes.
{"AttribType",IDAttrT,IDAttr,[
          <xref ref-type="bibr" rid="ref1 ref19 ref39">0,1</xref>
          ],undef,[
{"AType",IDAType,IDAttrT,[
          <xref ref-type="bibr" rid="ref1 ref19 ref39">0,1</xref>
          ],IDID,[]}
]}
Source and Target are used both as type constraints and data storage units to
store the source and target node of an edge. The constraint part restricts which
nodes can be connected by the edge, while the data storage contains its current
value. The constraint is expressed by AttribType, while the actual data is stored
in the Value field. The complete definition of the boostrap is presented in [
          <xref ref-type="bibr" rid="ref25 ref45 ref7">7</xref>
          ].
Based on the structure of the algebra and the bootstrap, we can represent our
models as states of DMLA. Now, we will discuss the instantiation procedure that
takes an entity and produces a valid instance of it. During the instantiation, one
can usually create many different instances of the same type without violating
the constraints set by the meta definitions. Most functions of the algebra are
defined as shared, which means that they allow manipulation of their values
also from outside of the algebra. However, the functions do not validate these
manipulations because that would result in a considerably complex exercise.
Instead, we distinguish between valid and invalid models, where validity checking
is based on formulae describing different properties of the model. We also assume
that whenever external actors change the state of the algebra, the formulae are
evaluated. The complete definition of validation formulae is presented in [
          <xref ref-type="bibr" rid="ref25 ref45 ref7">7</xref>
          ].
        </p>
        <p>The instantiation process is specified via validation rules that ensure that if
an invalid model may result from an instantiation, it is rejected and an
alternative instantiation is selected and validated. The only constraint imposed on this
procedure is that at least one instantiation step (e.g. instantiating an attribute,
or model element) must succeed in each step. The procedure consists of
instructions that involves a selector and an action. We model these instructions as a
tuple {λselector, λaction} with abstract functions. The function λselector takes an
ID of an entity as its parameter and returns a possibly empty list of IDs referring
to the selected entities. The function λaction takes an ID of an entity and
executes an action on it. The actions λaction must invoke only functions previously
defined for the ASM. Hence, the functions λselector and λaction can be defined
as abstract, which allows us to treat them as black boxes. Also, the operations
can be defined a priori in the bootstrap similar to attributes.</p>
        <p>
          Multi-level Modeling with DMLA
In our opinion, the most effective way to demonstrate the applicability of DMLA
to multi-level meta-modeling problems is through the reproduction of some of
the reoccurring practical meta-modeling patterns reported in [
          <xref ref-type="bibr" rid="ref23 ref43 ref5">5</xref>
          ]. DMLA is a
multi-level modeling approch, thus we focus only on the potency based
formalism of those design patterns without any contemplation on their structure or
benefits. Hence, the potency based definition of the those modeling patterns are
copied verbatim from [
          <xref ref-type="bibr" rid="ref23 ref43 ref5">5</xref>
          ] and their equivalent DLMA constructs are produced in
parallel. Also, the correspondence and/or potential differences between the two
multi-level modeling formalisms are briefly explained by the various examples.
        </p>
        <p>Type-Object pattern
The pattern serves to dynamically add both types and instances to the model.
The pattern is broadly applied in network management systems where new
device types may be added to the network on-demand, in an ad-hoc fashion, and
those types serve to facilitate the management of their instances.</p>
        <p>The example below shows the gradual binding of attributes in both type and
object level. While potency @1 indicates that vat must take its value in the next
meta-level, @2 allows price to get its value after another meta-level jump.</p>
        <p>
          The DMLA formalism defines Product as a Node instance with two Attributes
whose value types are defined both as Numbers. Then, during the first
instantiation Attribute vat is instantiated to 4.0, which is followed by the instantiation
of price to 35. Since no further instantiation is possible the GoF object is ready.
The pattern serves to dynamically add new attributes to a type which also
become part of each instance of the type. The pattern is broadly applied in network
management systems where existing device types may be extended by new
features on-demand, in an ad-hoc fashion, and those features are automatically
made manageable on all the corresponding instances.
}
]}
Level 2:
{"Product",IDProduct,IDNode,[0,inf],undef,
[
},
{"price",IDprice,IDAttribute,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],undef,
[{"priceType",IDpriceT,IDAttribType,
[
          <xref ref-type="bibr" rid="ref1 ref19 ref39">0,1</xref>
          ],IDNumber,[]}]
Level 1:
{"Book",IDBook,IDProduct,[0,inf],undef,
[
{"vat",IDvatC,IDvat,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],4,[]},
{"price",IDpriceC,IDAttribute,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],undef,
[
{"priceType",IDpriceT,IDAttribType,
[
          <xref ref-type="bibr" rid="ref1 ref19 ref39">0,1</xref>
          ],IDNumber,[]}
Level 0:
{"GoF",IDBookC,IDBook,[0,inf],undef,
[
{"vat",IDvatC,IDvat,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],4,[]},
{"price",IDpriceC,IDprice,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],35,[]},
]}
        </p>
        <p>Fig. 1. The Type-Object pattern</p>
        <p>The example below shows the addition of attribute pages to Book and its
later instantiation within GoF. The DMLA formalism defines Product as a Node
instance and further enables the potential addition of an arbitrary number of
attributes in it. Book introduces the attribute pages and binds its type to
Number. It also shuts down the possibility to append more attributes by setting the
cardinality of Attribute to zero. Finally, within GoF, the pages takes its value
as 349.</p>
        <p>
          Similar to the type-object pattern, DMLA can correctly replicate the original
potency example. Moreover, it provides the possibility to remove attributes by
setting their cardinality to 0. This feature derives from the formal ASM definition
of DMLA thanks to the explicit representation of cardinalities there. Hence, even
though an attribute may be allowed at some position by its structural definition,
it cannot be instantiated if the related upper cardinality is later set to 0.
Level 2:
{"Product",IDProduct,IDNode,[0,inf],undef, [
{"vat", IDvat,IDAttribute,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],undef,
[{"vType",IDvatT,IDAttribType,[
          <xref ref-type="bibr" rid="ref1 ref19 ref39">0,1</xref>
          ],
        </p>
        <p>
          IDNumber,[]}]
},
{"price",IDprice,IDAttribute,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],undef,
[{"pType",IDpriceT,IDAttribType,[
          <xref ref-type="bibr" rid="ref1 ref19 ref39">0,1</xref>
          ],
        </p>
        <p>
          IDNumber,[]}]
},
{"Attribs",IDAF,IDAttribute,[0,inf],undef,[]}
]}
Level 1:
{"Book",IDBook,IDProduct,[0,inf],undef,[
{"vat",IDvatC,IDvat,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],4,[]},
{"price",IDprice,IDAttribute,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ], undef,
[{"priceType",IDpriceT,IDAttribType,
[
          <xref ref-type="bibr" rid="ref1 ref19 ref39">0,1</xref>
          ],IDNumber,[]}]
},
{"pages",IDpage,IDAttribute,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],undef,
[{"pType",IDpageT,IDAttribType,[
          <xref ref-type="bibr" rid="ref1 ref19 ref39">0,1</xref>
          ],
        </p>
        <p>
          IDNumber,[]}]
}
]}
Level 0:
{"GoF",IDBookC,IDBook,[0,inf],undef, [
{"vat",IDvatC,IDvat,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],4,[]},
{"price",IDpriceC,IDprice,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],35,[]},
{"pages",IDpageC,IDpage,[
          <xref ref-type="bibr" rid="ref1 ref1 ref19 ref19 ref39 ref39">1,1</xref>
          ],349,[]},
]}
        </p>
        <p>Fig. 2. Dynamic features</p>
        <p>
          Dynamic auxiliary domain concepts
The pattern serves to dynamically add new entities to a type whose instances will
be correctly related to the instance of the type. Also, the new entities may have
attributes and further related entities. The pattern is broadly applied in network
management systems where new network concepts are added to device types
based on network technology evolution, and those concepts and their instances
automatically become part of the management system. Due to the page limits
only an excerpt of the DLMA representation of the full design pattern is shown
here. In essence, this design pattern is a mixture of the previous two with the
extension that the meta-model must provide a possibility to inject new Nodes
and Edges at will. Therefore, a ”root container” element, let us call it Domain,
is to be added to the original bootstrap.
Then, arbitrary domain concepts can be introduced dynamically into Domain
until the model is ready as
5
We have applied our novel multi-level meta-modeling approach, DLMA, to three
well-known design patterns for deep meta-modeling. During this exercise, our
immediate purpose was to illustrate the expressivity of DLMA by rewriting these
well-known design patterns that were already published [
          <xref ref-type="bibr" rid="ref23 ref43 ref5">5</xref>
          ] in a mainstream
multi-level modeling formalism. Our solution seems to allow higher level of
dynamism in instantiation than those existing solutions do, thus it offers a more
implementation ready formalisation of instantiation. Moreover, DMLA enables
to use different bootstrap alternatives, which may ultimately recreate the full
flexibility of state-of-the-art meta-model building facilities modeling
professionals of particular technical domains would need. Hence, our concrete goal is to
implement the presented approach and to investigate different bootstraps (e.g.
adding operations, association classes) to validate the full capability of the
approach.
        </p>
        <p>References</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kühne</surname>
          </string-name>
          .
          <string-name>
            <surname>Model-Driven Development</surname>
          </string-name>
          :
          <article-title>A Metamodeling Foundation</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>20</volume>
          (
          <issue>5</issue>
          ):
          <fpage>36</fpage>
          -
          <lpage>41</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>J.</given-names>
            <surname>Bézivin</surname>
          </string-name>
          .
          <article-title>In search of a basic principle for model-driven engineering</article-title>
          .
          <source>Novatica Journal</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Bézivin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Valduriez</surname>
          </string-name>
          .
          <article-title>On the Need for Megamodels</article-title>
          .
          <source>OOPSLA &amp; GPCE, Workshop on best MDSD practices</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Dowty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Wall</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Peters</surname>
          </string-name>
          . Introduction to Montague Semantics. Kluwer Academic Publishers,
          <year>1981</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>J.-M. Favre</surname>
          </string-name>
          .
          <article-title>Towards a Basic Theory to Model Driven Engineering</article-title>
          .
          <source>In Proceedings of the Third Workshop on Software Model Engineering</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>J.-M. Favre</surname>
            and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>NGuyen</surname>
          </string-name>
          .
          <article-title>Towards a Megamodel to Model Software Evolution through Transformations</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science, Proceedings of the SETra Workshop</source>
          ,
          <volume>127</volume>
          (
          <issue>3</issue>
          ),
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>D.</given-names>
            <surname>Gašević</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Kaviani</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Hatala</surname>
          </string-name>
          .
          <article-title>On Metamodeling in Megamodels</article-title>
          .
          <source>In MODELS'07</source>
          , pages
          <fpage>91</fpage>
          -
          <lpage>105</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>W.</given-names>
            <surname>Hesse</surname>
          </string-name>
          .
          <article-title>More Matters on (Meta-)Modeling: Remarks on Kühne's “matters”</article-title>
          .
          <source>SoSyM</source>
          ,
          <volume>5</volume>
          (
          <issue>4</issue>
          ):
          <fpage>387</fpage>
          -
          <lpage>394</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Hopcroft</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Motwani</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Ullman</surname>
          </string-name>
          . Introduction to Automata Theory, Languages, and
          <string-name>
            <surname>Computation</surname>
          </string-name>
          . Addison-Wesley,
          <source>third edition</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>P.</given-names>
            <surname>Klint</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lämmel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Verhoef</surname>
          </string-name>
          .
          <article-title>Toward an Engineering Discipline for Grammarware</article-title>
          .
          <source>ACM ToSEM</source>
          ,
          <volume>14</volume>
          (
          <issue>3</issue>
          ):
          <fpage>331</fpage>
          -
          <lpage>380</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>T.</given-names>
            <surname>Kühne</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Schreiber</surname>
          </string-name>
          .
          <article-title>Can Programming be Liberated from the Two-Level Style: Multi-Level Programming with DeepJava</article-title>
          .
          <source>In OOPSLA</source>
          , pages
          <fpage>229</fpage>
          -
          <lpage>244</lpage>
          . ACM,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>R.</given-names>
            <surname>Montague</surname>
          </string-name>
          . Universal Grammar. Theoria,
          <volume>36</volume>
          (
          <issue>3</issue>
          ):
          <fpage>373</fpage>
          -
          <lpage>398</lpage>
          ,
          <year>1970</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. P.
          <article-title>-</article-title>
          <string-name>
            <surname>A. Muller</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Fondement</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Baudry</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Combemale</surname>
          </string-name>
          . Modeling Modeling Modeling.
          <source>SoSyM</source>
          ,
          <volume>11</volume>
          (
          <issue>3</issue>
          ):
          <fpage>347</fpage>
          -
          <lpage>359</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Object Management Group.
          <source>Unified Modeling Language, 2.1.1 edition</source>
          ,
          <year>2007</year>
          . Available at http://schema.omg.org/spec/UML/2.1.1.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Object Management Group.
          <article-title>Meta-Object Facility (MOFTM) Core Specification, 2.0 edition</article-title>
          ,
          <year>January 2006</year>
          . Available at http://www.omg.org/spec/MOF/2.0.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>M.</given-names>
            <surname>Tomita</surname>
          </string-name>
          .
          <article-title>Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems</article-title>
          . Kluwer Academic Publishers,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>E. S. K.</given-names>
            <surname>Yu</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          . Understanding “
          <article-title>Why” in Software Process Modelling, Analysis, and</article-title>
          <string-name>
            <surname>Design. In ICSE</surname>
          </string-name>
          , pages
          <fpage>159</fpage>
          -
          <lpage>168</lpage>
          . IEEE Computer Society / ACM Press,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>V.</given-names>
            <surname>Zaytsev</surname>
          </string-name>
          and
          <string-name>
            <given-names>A. H.</given-names>
            <surname>Bagge</surname>
          </string-name>
          .
          <article-title>Parsing in a Broad Sense</article-title>
          . In J. Dingel,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schulte</surname>
          </string-name>
          , I. Ramos,
          <string-name>
            <given-names>S.</given-names>
            <surname>Abrahão</surname>
          </string-name>
          , and E. Insfran, editors,
          <source>Proceedings of the 17th International Conference on Model Driven Engineering Languages and Systems (MoDELS</source>
          <year>2014</year>
          ), volume
          <volume>8767</volume>
          <source>of LNCS</source>
          , pages
          <fpage>50</fpage>
          -
          <lpage>67</lpage>
          , Switzerland, Oct.
          <year>2014</year>
          . Springer International Publishing.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          1.
          <string-name>
            <surname>Metamodeling with</surname>
            <given-names>EMF</given-names>
          </string-name>
          :
          <article-title>Generating concrete, reusable Java snippets</article-title>
          , http:// www.ibm.com/developerworks/library/os-eclipse-emfmetamodel/
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Pentaho</given-names>
            <surname>Data</surname>
          </string-name>
          <string-name>
            <surname>Integration</surname>
          </string-name>
          , http://community.pentaho.com/projects/ data-integration/
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>3. RapidMiner, https://rapidminer.com/</mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>4. RunMyProcess, https://www.runmyprocess.com/en/</mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Talend</given-names>
            <surname>Data</surname>
          </string-name>
          <string-name>
            <surname>Integration</surname>
          </string-name>
          , http://www.talend.com/products/data-integration
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          6.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gutheil</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kennel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>A flexible infrastructure for multilevel language engineering</article-title>
          .
          <source>Software Engineering, IEEE Transactions on 35(6)</source>
          ,
          <fpage>742</fpage>
          -
          <lpage>755</lpage>
          (
          <year>Nov 2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          7.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuhne</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Model-driven development: a metamodeling foundation</article-title>
          .
          <source>Software, IEEE</source>
          <volume>20</volume>
          (
          <issue>5</issue>
          ),
          <fpage>36</fpage>
          -
          <lpage>41</lpage>
          (
          <year>Sept 2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          8.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Meta-modelling for distributed object environments</article-title>
          .
          <source>In: Enterprise Distributed Object Computing Workshop [1997]. EDOC'97. Proceedings. First International</source>
          . pp.
          <fpage>90</fpage>
          -
          <lpage>101</lpage>
          . IEEE (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          9.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
          </string-name>
          , R.:
          <article-title>Melanie: multi-level modeling and ontology engineering environment</article-title>
          .
          <source>In: Proceedings of the 2nd International Master Class on ModelDriven Engineering: Modeling Wizards. ACM</source>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          10.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Ku¨hne, T.:
          <article-title>Comparing multi-level modeling approaches</article-title>
          .
          <source>In: MULTI 2014-Multi-Level Modelling Workshop Proceedings</source>
          . pp.
          <fpage>53</fpage>
          -
          <lpage>61</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          11.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kennel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goß</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>The level-agnostic modeling language</article-title>
          .
          <source>In: Software Language Engineering</source>
          , pp.
          <fpage>266</fpage>
          -
          <lpage>275</lpage>
          . Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          12.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , Ku¨hne, T.:
          <article-title>The essence of multilevel metamodeling</article-title>
          .
          <source>In: UML 2001The Unified Modeling Language. Modeling Languages, Concepts</source>
          ,
          <source>and Tools</source>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>33</lpage>
          . Springer (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          13.
          <string-name>
            <surname>Henderson-Sellers</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gonzalez-Perez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>The rationale of powertype-based metamodelling to underpin software development methodologies</article-title>
          .
          <source>In: Proceedings of the 2nd Asia-Pacific Conference on Conceptual Modelling -</source>
          Volume
          <volume>43</volume>
          . pp.
          <fpage>7</fpage>
          -
          <lpage>16</lpage>
          . APCCM '
          <volume>05</volume>
          ,
          <string-name>
            <surname>Australian</surname>
            <given-names>Computer Society</given-names>
          </string-name>
          , Inc.,
          <string-name>
            <surname>Darlinghurst</surname>
          </string-name>
          , Australia, Australia (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          14.
          <string-name>
            <surname>Henderson-Sellers</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gonzalez-Perez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>On the ease of extending a powertypebased methodology metamodel. Meta-Modelling and</article-title>
          .
          <source>WoMM</source>
          <year>2006</year>
          pp.
          <fpage>11</fpage>
          -
          <lpage>25</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          15.
          <string-name>
            <surname>Kimura</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nomura</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurihara</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yamamoto</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yamamoto</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <article-title>: Multi-query unification for generating efficient big data processing components from a dfd</article-title>
          .
          <source>In: Cloud Computing (CLOUD)</source>
          ,
          <year>2013</year>
          IEEE Sixth International Conference on. pp.
          <fpage>260</fpage>
          -
          <lpage>268</lpage>
          . IEEE (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kimura</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nomura</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tanaka</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurihara</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yamamoto</surname>
          </string-name>
          , R.:
          <article-title>Runtime Composition for Extensible Big Data Processing Platforms</article-title>
          .
          <source>In: 2015 IEEE 8th International Conference on Cloud Computing</source>
          . pp.
          <fpage>1053</fpage>
          -
          <lpage>1057</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          17.
          <string-name>
            <surname>Neumayr</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schrefl</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Abstract vs concrete clabjects in dual deep instantiation</article-title>
          .
          <source>In: MULTI 2014-Multi-Level Modelling Workshop Proceedings</source>
          . pp.
          <fpage>3</fpage>
          -
          <lpage>12</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          18.
          <string-name>
            <surname>Nomura</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kimura</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurihara</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yamamoto</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yamamoto</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tokumoto</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Massive event data analysis and processing service development environment using dfd</article-title>
          .
          <source>In: Services (SERVICES)</source>
          ,
          <year>2012</year>
          IEEE Eighth World Congress on. pp.
          <fpage>80</fpage>
          -
          <lpage>87</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          19.
          <string-name>
            <surname>Steinberg</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Budinsky</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merks</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paternostro</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>EMF: eclipse modeling framework</article-title>
          .
          <source>Pearson Education</source>
          (
          <year>2008</year>
          ) {
          <article-title>"vat"</article-title>
          , IDvat,IDAttribute,[
          <volume>1</volume>
          ,1],undef,
          <source>[{"vatType"</source>
          ,IDvatT,IDAttribType, [
          <volume>0</volume>
          ,1], IDNumber,[]}] {
          <article-title>"Domain"</article-title>
          , IDDomain, IDNode, [
          <volume>0</volume>
          , inf], undef,
          <source>[ {"Nodes"</source>
          , IDnodes, IDNode, [
          <volume>0</volume>
          ,inf], undef, [ ]}, {
          <article-title>"Edges"</article-title>
          , IDedges, IDEdge, [
          <volume>0</volume>
          ,inf], undef, [ ]} ]}
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          <string-name>
            <surname>... {</surname>
          </string-name>
          <article-title>"authors"</article-title>
          , IDauthors, IDEdge, [
          <volume>0</volume>
          ,inf], undef,
          <source>[ {"Source"</source>
          , IDautSrc, IDSrc, [
          <volume>1</volume>
          ,1], undef,
          <source>[ {"SType"</source>
          ,IDSType,IDAttribType,[
          <volume>0</volume>
          ,1],IDBook,[ ]}]}, {
          <article-title>"Target"</article-title>
          , IDautTrg, IDTrg, [
          <volume>1</volume>
          ,1], undef,
          <source>[ {"TType"</source>
          ,IDTType,IDAttribType,[
          <volume>0</volume>
          ,1],IDAuthor,[ ]}]}, ...
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          1. Eclipse modeling framework
          <source>(EMF)</source>
          ,
          <year>2015</year>
          . https://eclipse.org/modeling/emf/.
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Colin</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <article-title>Thomas Ku¨hne. The essence of multilevel metamodeling</article-title>
          .
          <source>In Proceedings of the 4th International Conference on The Unified Modeling Language, Modeling Languages, Concepts</source>
          ,
          <source>and Tools</source>
          , pages
          <fpage>19</fpage>
          -
          <lpage>33</lpage>
          . Springer-Verlag,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Colin</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <article-title>Thomas Ku¨hne. Model-driven development: A metamodeling foundation</article-title>
          . IEEE Softw.,
          <volume>20</volume>
          (
          <issue>5</issue>
          ):
          <fpage>36</fpage>
          -
          <lpage>41</lpage>
          ,
          <year>September 2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          4.
          <string-name>
            <given-names>E.</given-names>
            <surname>Borger</surname>
          </string-name>
          and
          <string-name>
            <given-names>Robert F.</given-names>
            <surname>Stark</surname>
          </string-name>
          .
          <article-title>Abstract State Machines: A Method for High-Level System Design and Analysis</article-title>
          . Springer-Verlag New York, Inc.,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          5. Juan De Lara, Esther Guerra, and
          <article-title>Jesu´s Sa´nchez Cuadrado. When and how to use multilevel modelling</article-title>
          .
          <source>ACM Trans. Softw</source>
          . Eng. Methodol.,
          <volume>24</volume>
          (
          <issue>2</issue>
          ):
          <volume>12</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          :
          <fpage>46</fpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Bernd</given-names>
            <surname>Neumayr</surname>
          </string-name>
          , Manfred A.
          <string-name>
            <surname>Jeusfeld</surname>
            ,
            <given-names>Michael</given-names>
          </string-name>
          <string-name>
            <surname>Schrefl</surname>
          </string-name>
          , and
          <article-title>Christoph Schu¨tz. Dual Deep Instantiation and Its ConceptBase Implementation</article-title>
          . In
          <source>CAiSE</source>
          <year>2014</year>
          , volume Vol.
          <volume>8484</volume>
          of LNCS, pages
          <fpage>503</fpage>
          -
          <lpage>517</lpage>
          , 6
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Zoltan</given-names>
            <surname>Theisz</surname>
          </string-name>
          and
          <string-name>
            <given-names>Gergely</given-names>
            <surname>Mezei</surname>
          </string-name>
          .
          <article-title>Towards a novel meta-modeling approach for dynamic multi-level instantiation</article-title>
          .
          <source>In Automation and Applied Computer Science Workshop</source>
          ,
          <year>2015</year>
          . http://vmts.aut.bme.hu - Download - Papers.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>