<!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>A language engineering, modeling and execution environment</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ulrich Frank</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tony Clark</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Aston University</institution>
          ,
          <addr-line>Birmingham</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Duisburg-Essen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper presents the versatile language engineering, modeling, and execution environment XModelerML. Starting with the motivation for developing the tool and a brief historical background, the underlying language engineering technology is presented. Subsequently, we give an overview of core concepts of the (meta) modeling language FMMLx that is used for creating models and DSMLs with the XModelerML. Finally, an outline of the components of the XModelerML gives an impression of how to use the tool.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;multi-level modeling</kwd>
        <kwd>reflexive language architecture</kwd>
        <kwd>DSML development</kwd>
        <kwd>model-based development</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>The development of languages, models, and corresponding tools and applications is a demanding
undertaking. It often requires expertise and resources that are beyond many organizations capabilities.
Reuse is a promising approach to reduce the corresponding efort without the need to compromise on
quality. However, reuse is not easy to achieve, since languages, models and applications in general often
have to satisfy specific requirements of particular use cases. Apart from reusing existing components,
the only way to achieve reuse is to aim at powerful abstractions, which capture commonalities of a wide
range of artefacts and, at the same time, support convenient and safe adaptation to specific needs. There
are various approaches in software engineering and conceptual modeling that pursue this objective.
The abstraction they allow for often depends on the (programming) language they make use of or they
were designed for. This is especially the case for the fact that most (object-oriented) languages allow
for one classification level only. As a consequence, more abstract knowledge about a class of systems or
a domain that would require higher levels of classification can hardly be expressed.</p>
      <p>
        The tool we present in this paper, the XModelerML, is based on a reflexive language architecture that
overcomes this limitation. It provides powerful abstractions over languages, models and tools that do
not only support the eficient realization of custom languages and tools, but also enable new system
architectures that promote reuse, adaptability, integration and user empowerment. The development of
the XModelerMLstarted in 2010 within the project “Language Engineering for Multi-Level Modeling”
(LE4MM) as a collaboration between the universities Duisburg-Essen and Middlesex, London [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The
foundational language model and the corresponding tool, the XModeler, had been developed earlier [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>The design of the XModelerMLwas motivated by objectives, which to achieve was hardly possible
with existing language technologies. The presentation starts with a discussion of these objectives. We
will then give an overview of the foundational architecture and present essential benefits from using
the XModelerML.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Motivation</title>
      <p>The main reason for choosing the language technology implemented in the XModeler was frustration
with prevalent language architectures. Previously the enterprise modeling group at the University of
Koblenz and later at the University of Duisburg-Essen had developed a range of languages for enterprise
modeling. To foster the use of these languages for analysis and design purposes, various corresponding
modeling tools had been developed.</p>
      <p>
        At first, Smalltalk was chosen to this end [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. With its clean and consequent object-oriented foundation
and its pathbreaking development environment it proved to serve as a powerful instrument for the
implementation of modeling tools. In addition to classes, Smalltalk provides metaclasses. In principal,
these are useful since they allow for additional abstraction. However, the abstraction enabled by
metaclasses in Smalltalk is limited: by default, every class in Smalltalk has one metaclass which in turn
has exactly one instance only. As a consequence, it is not possible to define metaclasses of a range of
classes – or even of metaclasses. This limitation is a serious obstacle to the development and use of
modeling tools (see below). Later, EMF, Eclipse amd Java were used for a further generation of tools [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ],
mainly for the reason that they provide for platform independence and ofer extensive libraries, which
promote development productivity. Apart from that, Java represented a step backwards compared to
Smalltalk.
      </p>
      <p>
        The frustration accumulated through the experience with Java and even with Smalltalk was caused
primarily by the following limitations. For an extensive analysis of limitations inherent to the traditional
language paradigm see [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>Lack of expressiveness: It is a pivotal guideline, both for the design of modeling languages and for
conceptual modeling in general to express all knowledge one has about a domain at the highest level of
abstraction in order to avoid redundancy. It happens frequently that this is not possible with (meta-)
modeling languages based on the MOF. The example in Fig. 1 illustrates this limitation. We know that a
master thesis is a kind of document. At first, it seems plausible to regard the class MasterThesis as
being specialized from the class Document. However, the attribute maxPages in Document is not
to be inherited to MasterThesis. Instead, it should be instantiated there to indicate the maximum
numbers of pages defined for master theses. Also, we know of documents that particular instances
have a page count. Therefore, one should represent this knowledge with the specification of the class
Document. However, it is not possible to define that it is to be instantiated only at level 0.
to be
instantiated
on M0
inherited
extended</p>
      <p>Document
created: Date
pages: Integer
maxPages: Integer</p>
      <p>?</p>
      <p>MasterThesis
created: Date
pages: Integer
submitted: Date
mt1: MasterThesis
created = 05-26-2020
pages = 76
submitted = 05-27-2020
to be
instantiated
directly
maxPages = 80 –
where to specify?</p>
      <p>Limitations of DSML design: This is a special case of the previous limitation. It occurs frequently with
the design of modeling languages and is especially annoying, if the models created with a modeling
Periph
output: B
input: Boo
salesPrice:
partSalesP
serialNo: S
noOfMod</p>
      <p>Pr
salesPrice:
partSalesP
serialNo:
pagePerMi
resolution:</p>
      <p>CP
partSales
serialNo:
language should be further instantiated. To this end, a process modeling language should include the
knowledge we have about specific properties of process instances. For example, every process instance
has a start time and a termination time. Aparently, this obvious knowledge cannot be expressed with a
metaclass that is used for the specification of a modeling language.</p>
      <p>Pitfalls of model-driven development: Model-driven software development is an appealing idea. It
advocates to focus on modeling and do without coding as much as possible. Finally, when the models
are complete, code is generated. While this seems like a convincing approach to software development,
it sufers from a serious drawback: during its lifetime, a software system has to be adapted to new
requirements. No matter whether changes are applied to the code – which will often be the case – or to
the corresponding models, in any case both representations need to be synchronized, if one does not
want to give up on the benefits of having an up to date model.</p>
      <p>The example in Fig. 2 makes clear why code generation is necessary in the traditional language
paradigm. While the concepts represented by a model will usually be at M1 or higher, modeling tools
implemented with traditional languages do not allow for representing them there. Instead, they have to
be located as objects as M0.</p>
      <sec id="sec-2-1">
        <title>Modeling Environment</title>
      </sec>
      <sec id="sec-2-2">
        <title>Programming Environment</title>
        <p>M2</p>
        <p>M1</p>
        <p>Class Attribute
name: String includes name: String
0,* isAbstract: Boolean 1,1 0,* type: String
specializedFrom
represents class on M1</p>
        <p>0,1
M1</p>
        <p>M0</p>
        <p>generate</p>
        <p>Customer
firstName: String
lastName: String
custID: String
dateOfBirth: Date
yearsOfAge() : Integer
represented as object on M0</p>
        <p>M
M
conceptual level
actual implementation level</p>
        <p>
          Dissatisfactory integration of models and software: This limitation is directly related to the previous
one. To empower users of a complex application system such as an ERP system, it would be useful to
tightly integrate the system with the conceptual models, it is based on. In an ideal case, users could
then navigate from the application they use to the corresponding models. By changing the models they
could modify the software. This vision of “self-referential enterprise systems” [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] evolved already some
time ago. However, its implementation failed due to limitations of prevalent programming languages
that require separate representations of model and code.
        </p>
        <p>The development of the XModelerML was mainly motivated by these obstacles imposed by traditional
(meta) modeling and programming languages. To overcome these obstacles a language architecture was
required that allows for multiple, better: an arbitrary number of classifications, and that, thus, allows
for a common representation of models and code. The language architecture that builds on XCore and
XOCL and that is provided by the XModeler (see below) proved to serve as a powerful foundation for
achieving this objective.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Foundations</title>
      <p>
        XModeler has been designed for language engineering, both in terms of model-based languages and
text-based languages, and their associated tools. To achieve this it is based on XCore, which is a small
meta-circular meta model that is shown in figure 3. For a simplified representation of XCore see [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
XCore runs against a virtual machine written in Java. The two key principles of XCore are that it is
both self-describing and extensible; it achieves that in the following ways: uniformity everything is
an object with a standard interface that allows the object’s representation, type and behaviour to be
inspected and modified; types are both objects and extensible so that new types-of-types can be defined;
monitoring updates to objects can be monitored by daemons which allows XModeler to monitor its
own updates and to take appropriate action; language support in the form of grammars that allow new
text-based language features to be incrementally added to the existing language; meta-object-protocol
which allows the object-oriented language interface for XCore (object creation, operation invocation,
slot-access and update) to be extended at the type level.
      </p>
      <p>The XOCL language is implemented as a concrete language on top of XCore. Most of XModeler is
written in XOCL. It is also suitable for creating executable models of systems. XEditor is a tool that is
written for working with text-based languages that are implemented in XCore. A typical executable
model written in XOCL and its associated diagram is shown in figure 4.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Meta-language and components</title>
      <p>
        The XModelerML features a multi-level (meta) modeling language, the FMMLx [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Among other things,
it allows for an arbitrary number of classification levels and deferred instantiation (a property defined
at level n can be instantiated at levels &lt; n-1). Core concepts of the FMMLx and its default concrete
syntax are shown in Fig. 5. Since the FMMLx is based on the golden braid architecture featured by
XCore, it does not require distinguishing between a “linguistic” and an “ontological” meta model other
approaches are based on [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>The XModelerML allows to overcome the obstacles imposed by traditional modeling and programming
languages. It ofers clearly more expressiveness by allowing for an arbitrary number of classification
levels and for deferred instantiation (see, e.g., the attribute salesPrice of the class Product at
level 3 in in Fig. 5). Last but not least, models created with the FMMLx are fully executable. The common
distinction between models and code does not exist anymore, since both share the same representation.</p>
      <p>It also enables a more eficient specification of DSMLs. The specification of a DSML within
the XModelerML is illustrated in a screencast provided at the project webpages (www.le4mm.org/
xmodelerml). DSMLs can be defined at any level of classification. For example, a DSML that represents
general characteristics of products could be defined at level 4, and then used to specify a more specific
DSML to model vehicles, which would start at level 3, but also comprise more specific concepts such as
vehicle models at level 2. As a consequence, the distinction between modeling language, model and
instantiations of models is overcome, since a model designed with the FMMLx may include classes at
diferent classification levels. This corresponds directly to the use of concepts in natural language, where</p>
      <sec id="sec-4-1">
        <title>View Filters link</title>
      </sec>
      <sec id="sec-4-2">
        <title>Palette</title>
      </sec>
      <sec id="sec-4-3">
        <title>Level</title>
      </sec>
      <sec id="sec-4-4">
        <title>Delegation</title>
      </sec>
      <sec id="sec-4-5">
        <title>Derived Attribute</title>
      </sec>
      <sec id="sec-4-6">
        <title>Specialization</title>
      </sec>
      <sec id="sec-4-7">
        <title>Instantiation Level</title>
      </sec>
      <sec id="sec-4-8">
        <title>Constraint</title>
      </sec>
      <sec id="sec-4-9">
        <title>Slot Value Reading direction</title>
      </sec>
      <sec id="sec-4-10">
        <title>Operation Value</title>
        <p>a sentence may refer to concepts at diferent levels of abstraction as well as to particular exemplars. For
language designers, modelers and model users, this architecture creates obvious advantages. Language
designers are no longer forced to develop new languages from scratch using generic concepts such as
Class or Attribute.</p>
        <p>Instead, they can use a more general, yet domain-specific language, to define a more specific one.
Modelers can navigate to the language they use (it can be part of the same model) at runtime. They can
also instantiate a model at runtime, which may give valuable feedback for their design decisions. Finally,
this architecture gives users of an application system the opportunity to navigate to the conceptual
model of the system they work with at runtime, and change the model (if they are authorized to do so).
By changing the model, they would directly change the system.</p>
      </sec>
      <sec id="sec-4-11">
        <title>Constraint Report navigability</title>
        <p>With the XModelerML, the notorious synchronization of models and code is widely obsolete. All
classes specified with the FMML x are specified and implemented (!) at the level where they conceptually
belong. Hence, they can be instantiated within a model editor without the need for code generation.</p>
        <p>The XModelerML consists of various components that allow accessing, manipulating and executing
a model from diferent perspectives. With each model a corresponding diagram editor is generated.
In addition to allow for creating and modifying models, it also allows for executing models. If the
execution of a model results in changes of the diagram, these are directly shown in the editor.</p>
        <p>Developers that prefer textual representations over graphical ones may use an instance of the model
browser. It can operate on the same model that is also used by an instance of the diagram editor at the
same time. In case the default notation of the FMMLx (see Fig. 5) is not satisfactory, the concrete syntax
editor serves the specification of notations by arranging pre-defined SVGs and text elements. After a
notation has been defined, it can directly be used by the diagram editor.</p>
        <p>The workspace allows to interact with and manipulate model elements, e.g. for testing purposes,
using a command line editor. Two components serve the realization of application style GUIs to interact
with models. An object browser can be generated for every class in a model. It is composed of widgets
such as text or list boxes that serve the presentation of instances of the selected class. The GUIs created
by the object browser are restricted to objects of one class and lack a user-friendly layout of widgets.
The GUI builder overcomes this restriction. It transparently sends a model to an external GUI builder,
which allows to modify a generated GUI. After the GUI was redesigned, it is transparently sent back to
the XModelerML, where it can be used immediately to interact with the corresonding model.
model browser
diagram editor</p>
        <p>instance browser
console
control center</p>
        <p>Fig. 6 shows examples of the diagram editor, the model browser, the workspace and the object browser.
It also shows the control center, which, among other things, serves to load models, to start diagram
editors or access the workspace.</p>
        <p>The project webpages at www.le4mm.org ofer a wide range of resources on the XModeler ML,
including publications, screencasts and downloads of the latest build as well as example models.
Multilevel modeling represents a new language paradigm. As a consequence, using the FMMLx may be
perceived as demanding at first. Therefore, it will often be a good idea to start with using the FMML x as
a kind of UML class diagram editor. One would then create a UML class diagram which could be directly
instantiated, and executed, within the diagram editor (see screencast at www.le4mm.org/xmodelerml/
#UML-pp). Subsequently, one could continue with creating a first multi-level model to then subsequently
raise the level of abstraction (screencast at www.le4mm.org/xmodelerml).</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusions and future work</title>
      <p>
        Research on multi-level modeling has resulted in various languages and tools, e.g., [
        <xref ref-type="bibr" rid="ref11 ref12 ref13 ref9">11, 12, 9, 13</xref>
        ]. To the
best of our knowledge, the XModelerML is the only multi-level modeling environment that allows for the
execution of models at all levels of classification. A more detailed comparison of the XModeler MLwith
other tools would go beyond the scope of this paper. For an elaborate comparison with the LML and
Melanee see [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>In conjunction with the language engineering facitilities provided by XModeler and XOCL, it enables
a powerful foundation not only for the development of modeling languages and model editors, but
also for a new generation of self-reflexive application systems. While still in the state of a research
prototype, we believe the XModelerML allows to experience the benefits of multi-level modeling and
software development in a fairly convenient way.</p>
      <p>
        At the same time, multi-level modeling is a research subject that ofers attractive perspectives.
These include the development of hierarchies of DSMLs where higher level DSMLs promise attractive
economies of scale where more specific DSMLs serve to address particular needs [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The fact that the
XModelerML allows for executing models also enables attractive options for providing end-users with
tools to develop or modify small applications that go clearly beyond the potential of current “low-code”
environments. Furthermore, the technology underneath the XModelerML is especially suited for the
design and implementation of “digital twins”. To manage digital twins, it is not suficient to model
properties of their types. Furthermore, it is important to account for the state of particuar instances, too.
That requires to also to represent knowledge about specific characteristics of instances and to manage
them during execution. With traditional modeling and programming languages this is hardly possible
without extensive workarounds. In contrast, multi-level language architectures provide the concepts
for a straightforward implementation of digital twins.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>U.</given-names>
            <surname>Frank</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <article-title>Language Engineering for Multi-Level Modeling (LE4MM): A Long-Term Project to Promote the Integrated Development of Languages, Models and Code</article-title>
          , in: J.
          <string-name>
            <surname>Font</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Arcega</surname>
            ,
            <given-names>J.-F.</given-names>
          </string-name>
          <string-name>
            <surname>Reyes-Román</surname>
          </string-name>
          , G. Giachetti (Eds.),
          <source>Proceedings of the Research Projects Exhibition at the 35th International Conference on Advanced Information Systems Engineering (CAiSE</source>
          <year>2023</year>
          ), CEUR,
          <year>2023</year>
          , pp.
          <fpage>97</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sammut</surname>
          </string-name>
          , J. Willans, Applied Metamodelling:
          <article-title>A Foundation for Language Driven Development, 2 ed</article-title>
          .,
          <source>Ceteva</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Sammut</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Willans</surname>
          </string-name>
          ,
          <article-title>Super-languages: Developing languages and applications with XMF (second edition</article-title>
          ),
          <source>CoRR abs/1506</source>
          .03363 (
          <year>2015</year>
          ). URL: http://arxiv.org/abs/1506.03363. arXiv:
          <volume>1506</volume>
          .
          <fpage>03363</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>U.</given-names>
            <surname>Frank</surname>
          </string-name>
          , Multiperspektivische Unternehmensmodellierung:
          <article-title>Theoretischer Hintergrund und Entwurf einer objektorientierten Entwicklungsumgebung</article-title>
          , Oldenbourg, München,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gulden</surname>
          </string-name>
          , U. Frank, MEMOCenterNG
          <article-title>- A full-featured modeling environment for organisation modeling and model-driven software development</article-title>
          ,
          <source>in: Proceedings of the 2nd International Workshop on Future Trends of Model-Driven Development (FTMDD</source>
          <year>2010</year>
          ),
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>U.</given-names>
            <surname>Frank</surname>
          </string-name>
          ,
          <string-name>
            <surname>Multi-Level</surname>
            <given-names>Modeling</given-names>
          </string-name>
          : Cornerstones of a Rationale,
          <source>Software and Systems Modeling</source>
          <volume>21</volume>
          (
          <year>2022</year>
          )
          <fpage>451</fpage>
          -
          <lpage>480</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>U.</given-names>
            <surname>Frank</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Strecker</surname>
          </string-name>
          ,
          <source>Beyond ERP Systems: An Outline of Self-Referential Enterprise Systems, No. 31</source>
          , University of Duisburg-Essen,
          <year>2009</year>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>U.</given-names>
            <surname>Frank</surname>
          </string-name>
          ,
          <article-title>The Flexible Multi-Level Modelling and Execution Language (FMMLx)</article-title>
          .
          <source>ICB Research Report, No. 66</source>
          , University of Duisburg-Essen,
          <year>2018</year>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          , T. Kühne,
          <article-title>Reducing accidental complexity in domain models</article-title>
          ,
          <source>Software &amp; Systems Modeling</source>
          <volume>7</volume>
          (
          <year>2008</year>
          )
          <fpage>345</fpage>
          -
          <lpage>359</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kennel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Goß</surname>
          </string-name>
          ,
          <article-title>The level-agnostic modeling language</article-title>
          , in: B.
          <string-name>
            <surname>Malloy</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Staab</surname>
          </string-name>
          , M. van den Brand (Eds.),
          <source>Software Language Engineering</source>
          , volume
          <volume>6563</volume>
          of Lecture Notes in Computer Science, Springer Berlin Heidelberg,
          <year>2011</year>
          , pp.
          <fpage>266</fpage>
          -
          <lpage>275</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B.</given-names>
            <surname>Neumayr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Grün</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Schrefl, Multi-level Domain Modeling with M-objects and M-relationships</article-title>
          ,
          <source>in: Proceedings of the Sixth Asia-Pacific Conference on Conceptual Modeling -</source>
          Volume
          <volume>96</volume>
          , APCCM '09,
          <string-name>
            <surname>Australian</surname>
            <given-names>Computer Society</given-names>
          </string-name>
          , Inc.,
          <string-name>
            <surname>Darlinghurst</surname>
          </string-name>
          , Australia, Australia,
          <year>2009</year>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>116</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>J. de Lara</surname>
          </string-name>
          , E. Guerra,
          <article-title>Deep meta-modelling with metadepth</article-title>
          , in: J.
          <string-name>
            <surname>Vitek</surname>
          </string-name>
          (Ed.), Objects, Models, Components, Patterns, Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Jeusfeld</surname>
          </string-name>
          ,
          <string-name>
            <surname>B. Neumayr,</surname>
          </string-name>
          <article-title>DeepTelos: Multi-level Modeling with Most General Instances</article-title>
          , in: I.
          <string-name>
            <surname>Comyn-Wattiau</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Tanaka</surname>
            ,
            <given-names>I.-Y.</given-names>
          </string-name>
          <string-name>
            <surname>Song</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Yamamoto</surname>
          </string-name>
          , M. Saeki (Eds.),
          <source>Proceedings of the 35th International Conference on Conceptual Modeling (ER</source>
          <year>2016</year>
          ), Springer, Cham,
          <year>2016</year>
          , pp.
          <fpage>198</fpage>
          -
          <lpage>211</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Lange</surname>
          </string-name>
          , U. Frank,
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Töpel</surname>
          </string-name>
          ,
          <string-name>
            <surname>Comparing</surname>
            <given-names>LML</given-names>
          </string-name>
          and
          <article-title>FMMLx</article-title>
          , in: ACM/IEEE (Ed.),
          <source>Proceedings of the International Conference on Model Driven Engineering Languages and Systems</source>
          , IEEE Conference Publishing Services, Los Alamitos, CA, Washington, Tokyo,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>