<!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>Foundations of a Multi-Paradigm Modelling Tool</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Yentl Van Tendeloo University of Antwerp</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>ion modelling as well as explicitly modelled processes). We identify a set of requirements, which we believe are vital to a modern Multi-Paradigm Modelling tool. These requirements then are mapped to the features which our specification will support: self-modifiability, formalization, and multiple notions of conformance between models and meta-models.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        To deal with the increasing complexity and size of the
systems that we build, both physical, software and
combinations thereof, Multi-Paradigm Modelling (MPM) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] promotes
the explicit modelling of all aspects of system development
using the most appropriate abstraction(s) and the most
appropriate formalism(s). It adresses and integrates three orthogonal
research dimensions: model abstraction, concerned with the
(refinement, generalization, . . . ) relationships between models
at different levels of abstraction; multi-formalism modelling,
concerned with the coupling of and transformation between
models described in different formalisms; and the explicit
modelling of the (multi-user, collaborative, multi-domain) model
management processes.
      </p>
      <p>A crucial feature is user collaboration, with every user
possibly from a different domain, collaborating from different
locations, at different times. This is usually adressed by
presenting the modelling tool as a service, which ideally
runs forever, requiring online self-updating to guarantee high
availability.</p>
      <p>Most current modelling tools do not directly support use as
a service, or they do not allow online self-updating, through
self-modification. Self-modification requires a description of
itself, preferably in the form of a model, to allow explicitly
modelling of the modification transformations. As such, a
complete model of the modelling tool, and all of its features,
needs to be present within the tool itself, and be expressed
in the most appropriate formalism(s). Besides including the
operational semantics of its execution, including model
management operations, and thus allowing for self-modification,
the execution context should also be included. This allows
debugging through direct inspection of the execution data (or
trace, if an appropriate trace model is used).</p>
      <p>Collaboration between users with different expertise poses
challenges for consistency management of shared models, due
to the required links between the different models. Each of
these models are possibly in different formalism, using
multiple levels of abstraction, and have multiple simultaneous views.
Such consistency links should also be modelled explicitly,
which introduces the need for properly typing them.</p>
      <p>Our contribution is the specification of the foundations of
a self-modifiable, multi-paradigm modelling environment: the
Modelverse. We start by eliciting the requirements we find
essential to such an environment, resulting in three high-level
features to be fulfilled by our specification, and thus by all
implementations of the Modelverse. The presented foundations
describe a class of Modelverse realizations, which satisfy our
identified set of requirements.</p>
      <p>We state our identified requirements, and our proposed
features for such a tool in Section II. Section III then defines
the semantics and both the interface of the tool and its
components are defined. Section IV introduces the distinction
between several conformance dimensions along with the notion
of linguistic conformance. Section V presents related work.
Conclusions are given in Section VI, which also presents how
these features will be used in future work.</p>
      <p>II.</p>
    </sec>
    <sec id="sec-2">
      <title>REQUIREMENTS</title>
      <p>We start by identifying a set of requirements for our
foundations, which we deem to be important for any MPM
tool. Where appropriate, we reference this requirement back
to other tools which support this feature, or to the publication
that explains its importance to MPM.</p>
      <p>Forever running: the Modelverse should always be
able to continue running. As such, exceptional
situtations should be dealt with. Examples are a crashing
program due to division by 0 or to numerical overflow
and non-terminating simulations. Also, modifications
to the behaviour, for example to fix bugs, or to
introduce new features, should not require a restart. An
exception are changes to the minimal (static) kernel,
which defines the action language semantics.</p>
      <p>
        Model Everything Explicitly: every element in the
Modelverse needs to be explicitly modelled, using the
most appropriate formalism, resulting in higher
analyzability and formality. This expands to the execution
of action code, for which the execution context should
be explicitly modelled, increasing debugability. The
importance of modelling every aspect of a system was
identified in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Multi-View: the Modelverse should support different
views on the same model, for example hiding or
aggregating parts of a model to create a different view.
Multi-view is frequently used when multiple users
are involved, coming from different domains, such as
in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        Multi-Abstraction: the Modelverse should be able to
reason at different levels of abstraction. This is one of
the requirements for an MPM tool [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Multi-Formalism: the Modelverse should support
combining multiple formalisms. This is one of the
requirements for an MPM tool [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Multi-User: the Modelverse should be able to serve
multiple users simultaneously, guaranteeing some
degree of fairness between different users. Multiple users
are supported in two orthogonal dimensions: either
through the support of multiple concurrent interfaces,
and through multiple users for a single interface. It is
one of the main features of WebGME [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and is also
supported in other tools such as like AToMPM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Interoperability: the Modelverse might have several
implementations, though all should be able to
interoperate, as they have to modify the same conceptual
graph. WebGME [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is again an example for this. In
WebGME too, a distinction is made between different
internal components.
      </p>
      <p>
        FTG+PM: the Modelverse should have an explicit
FTG+PM [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. First, it should contain an automatically
generated Formalism Transformation Graph,
describing the different formalisms present in the Modelverse,
and the relationships (i.e., transformations) between
them. Second, process Process Models should also be
present in the Modelverse, to prescribe the behaviour
of the use of the Modelverse. This is one of the
requirements for an MPM tool [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>Formalisation: all parts of the Modelverse should be
formalized to establish the semantics of each
component. This fulfills the following requirements:</p>
    </sec>
    <sec id="sec-3">
      <title>Interoperability is achieved because all compo</title>
      <p>nents will implement the same interface, with
exactly the same semantics.</p>
      <p>Multi-User is achieved because all interleaving
semantics are formalized, resulting in
deterministic behaviour, even in the presence of
multiple users.</p>
      <p>Self-modifiability: the Modelverse should contain a
model of itself, and should be able to alter it,
resulting in changed behaviour. This fulfills the following
requirements:</p>
    </sec>
    <sec id="sec-4">
      <title>Forever Running is achieved because updates</title>
      <p>to the Modelverse can happen on-the-fly.</p>
      <p>Model Everything is achieved because to be
self-modifiable through model operations, the
Modelverse should be modelled in itself.</p>
      <p>Multi-conformance: a single model should be able
to conform to multiple meta-models simultaneously.
This supports the following requirements:</p>
    </sec>
    <sec id="sec-5">
      <title>Multi-View is supported by having each view</title>
      <p>as a different conformance relation, which can
be coupled to a specific concrete syntax.</p>
      <p>To satisfy these requirements, we propose three main
features of the Modelverse, which will be discussed in the
remainder of this paper.</p>
      <sec id="sec-5-1">
        <title>Interface</title>
        <p>User
PetriNet
aPetriNet
Kernel
Logical
INSERT INTO `nodes`</p>
        <p>VALUES (1)
INSERT INTO `nodes`</p>
        <p>VALUES (2)
INSERT INTO `edges`
VALUES.(3, 1, 2)
.</p>
        <p>.</p>
      </sec>
      <sec id="sec-5-2">
        <title>State</title>
        <p>Representation
Modelverse</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Multi-Abstraction is supported because differ</title>
      <p>ent metamodels can signify different levels of
abstraction.</p>
      <p>Multi-Formalism is supported through the
application of different conformance relations
for each part of the model seperately.
Interformalism links are supported by conforming
to a special physical conformance relation,
which is closely tied to the Physical Type
Model (see the next section).</p>
    </sec>
    <sec id="sec-7">
      <title>III. THE MODELVERSE</title>
      <p>An architectural overview of the Modelverse is presented in
Fig. 1. The Modelverse consists of two main components: the
Modelverse State (MvS) and the Modelverse Kernel (MvK).
They share a common concept to reason about the data they
are manipulating, which is a conceptual graph representation.
Different Modelverse Interfaces (MvI), capable of
communication with the Modelverse, exist outside of the Modelverse.</p>
      <p>In the MvI, the user is presented with a graphical or
textual front-end to the Modelverse, matching the needs of
that particular user. Several implementations of the MvI can
be used concurrently. The MvI translates all user operations,
in whatever way it accepts, to operations which the MvK
understands. As this is the only interface to the end-user, the
MvI is concerned with usability. The MvK considers models
at the logical level, where it can reason about conformance
relations and enforce them through syntax-directed editing. As
we clearly distinguish between the MvK and the MvS, the
MvK does not know how the model is physically represented.
The MvK is therefore concerned with the semantics, and the
execution of models. At the lowest level, the MvS receives
operations on the conceptual graph, and maps them to the
representational level, where it is actually stored. The MvS
is solely concerned with the physical representation of the
conceptual graph, and offers a uniform interface, independent
of how it is stored internally.</p>
      <p>We will first elaborate on the conceptual graph
representation, which is used as the base representation of all models.
Afterwards, we describe how the MvS maps models in this
graph, to an actual implementation. Finally, the MvK defines
the semantics of the models present in the MvS, by defining
transformation rules that specify how the state evolves.</p>
      <sec id="sec-7-1">
        <title>A. Conceptual graph</title>
        <p>Conceptually, all data in the Modelverse is stored in the
form of a graph, as defined below. This graph can hold a
primitive value in a node, and both nodes and edges can be
connected using edges. All elements (node or edge) can be
accessed using a unique identifier. An actual implementation
can store the graph in different physical representations (e.g.,
using a relational database or triplestore). This allows for
more specialized implementations, depending on the problem
domain, while still being interoperable.</p>
        <p>We define a graph G, element of G (the set of all possible
states of the Modelverse). A graph consists of nodes (NG),
possibly with values (in U) defined on them (NV;G), and edges
(EG, identifiers in EIDS;G). Edges may connect both nodes
and edges. Nodes and edges have a unique identifier, with
IDS G being the set of all identifiers. When constructing an
edge, it is required that both the source and target already
exist before the construction of the edge. This guarantees, by
construction, that all edges are (eventually) rooted in nodes,
and that no infinite recursion is possible when iterating over
the graph.</p>
        <p>ej 2 EG</p>
        <p>G = hNG; EG; NV;Gi 2 G
ni 2 NG</p>
        <p>IDS G</p>
        <p>IDS G</p>
        <p>IDS G</p>
        <p>NV;G : NG ! U
EIDS;G = fbj(a; b; c) 2 EGg</p>
        <p>NG \ EIDS;G = ;
NG [ EIDS;G = IDS G</p>
        <p>IDS G
8ei; ej 2 E : ei = (a; b; c); ej = (d; e; f ); (b = e) ) (ei = ej )</p>
        <p>With U defining the set of all possible types: U = I [ F [
S [ B [ A [ type . We define the following primitive types,
for which the MvS needs to provide native support: Integer
(I) as the set of integers; Float (F) as the set of floating point
numbers; String (S) as the set of all ordered combinations
of ASCII characters; Boolean (B) as either True or False;
Action (A) as an action language construct, used to define the
semantics later on; and Type ( type) as the set of all supported
types. As none of these sets overlap, it is possible to infer the
type of the provided data. Note the distinction between U and
type : U represents the type of data, whereas type represents
a kind of meta-type of which all types are instances.</p>
        <p>A =
fIf ; While; Assign; Call ; Break ;</p>
        <p>Continue; Return; Input ; Output ; De neg
8i; j 2 fI; F; S; B; A; type g : i 6= j ) i \ j = ;</p>
        <p>fIntType; FloatType; StringType;
type = BooleanType; ActionType; TypeTypeg</p>
      </sec>
      <sec id="sec-7-2">
        <title>B. Modelverse State</title>
        <p>We now define the interface that all compliant modelling
tools should implement. Our interface is defined on the
previously defined graph, though the implementation will depend
on the data structure used.</p>
        <p>The MvS implements several atomic functions, which are
to be used as the primitive Create, Read, Update, and Delete
(CRUD) operations on the conceptual graph. Effectively, the
MvS can be seen as a graph library, implementing an interface
to our conceptual graph. Apart from defining only primitive
CRUD operations, several composite operations are provided
to allow for more efficient execution.</p>
        <p>All CRUD operations are formalized as operations on the
conceptual graph. A representative specification is the create
edge operation Cedge , for which the semantics is defined next.
’input’ ’last_input’ ’output’ ’last_output’ ’frame’</p>
        <p>’symbols’ ’IP’ evalstack’ ’phase’ ’returnvalue’</p>
        <p>Informally, it extends the set of edges with a new edge, which
gets an identifier that was not yet used.</p>
        <p>Cedge : G</p>
        <p>IDS</p>
        <p>IDS ! G</p>
        <p>EIDS
Cedge (G; i1; i2) = (G0; i3)</p>
        <p>G = hN; E; NV i
G0 = hN; E [ feig; NV i</p>
      </sec>
      <sec id="sec-7-3">
        <title>C. Modelverse Kernel</title>
        <p>We will now consider the Modelverse Kernel (MvK),
which is responsible for the execution of action code. As
everything is modelled explicitly, the execution context will
be part of the MvS. Graph transformations are used to define
the semantics of our action language, which can be mapped
to a series of MvS operations as previously defined. We use a
concrete syntax which shows positive matches in solid black
lines, negative matches in dotted red lines, delete matches in
dashed blue lines, and create matches in thick green lines.</p>
        <p>The well-formedness of the execution context can be
checked using graph matching. Action code semantics are
defined using graph transformations, transforming the execution
context.</p>
        <p>We define the execution context of the MvK, using graph
matching. The execution context contains all execution data,
which is required for the MvK to implement the semantics of
arbitrary formalisms. If the number of matches is not exactly,
the execution context is malformed and deterministic execution
(which we currently require) is impossible.</p>
        <p>A structure is matched as presented in Fig. 2. At the top of
the structure sits the Modelverse root node, which is a known
node. From this root node, there is a link to all user root nodes,
containing the name of the user. From the user root, links point
to the explicitly modelled input and output queue, which are
used by the user to interact with the Modelverse. There is also
a link to the currently active execution frame, which contains
all data necessary for execution.</p>
        <p>With the execution semantics and state completely defined
in the Modelverse, the final remaining step is implementing
operations in the action code itself. These operations are then
able to perform modifications on the MvS, with as a special
case modifying their own definition. As such, we achieve
self-modifiability. Self-modifiability as required for debugging
functionality, such as modifying variables, is supported by
explicitly storing the execution context.</p>
        <p>What remains for our formalization is the semantics of each
of the action language constructs. For each construct, defined
in A, the required modifications of the execution context need
to be defined using graph transformations.</p>
        <p>We give the transformation rules for a While instruction
’phase’
’evalstack’
’returnvalue’
’init’</p>
        <p>True
’evalstack’
’IP’
’prev’
’IP’
’inst’
’phase’</p>
        <p>While
’init’
’body’
in Fig. 3, showing its semantics. The instruction pointer is
moved to the body of the While construct, on the condition
that the returnvalue is True. Reevaluation of the while construct
is scheduled to happen when the body is completely executed,
by putting this instruction on the evaluation stack.</p>
        <p>These graph transformation rules are defined such that
there should always be exactly one possible match. If no
matches can be found, this indicates that the execution context,
the current action language primitive, or both, are invalid.
If multiple matches are found, non-determinism is possible,
which is disallowed.</p>
        <p>In the presence of multiple users, interleaving is necessary
between them to guarantee fairness. This prevents
uninterruptable loops at the lowest level, as each basic transformation rule
is guaranteed to terminate.</p>
        <p>Note that we do not define the semantics of model
management operations at this level. As this is the static core of the
Modelverse Kernel, its semantics is fixed and cannot be altered
dynamically. Model management operations are implemented
on top of this minimal layer. It is then possible to modify
their semantics at runtime, to access their explicitly modelled
semantics from within the Modelverse, and to support different
versions simultaneously.</p>
        <p>We have now achieved formalisation, as all action code
models can now be given semantics by mapping them to
operations on the MvS.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>IV. CONFORMANCE</title>
      <p>By allowing a single model to conform to multiple
metamodels, using multiple distinct conformance relations,
we can combine strict metamodelling with explicitly model
management operations. The conceptual graph, representing
the model, is thus interpreted depending on the
metamodel/conformance relation being used. Examples of metamodels
are a problem-domain specific metamodel (e.g., a Petri Net
metamodel), and a more physically oriented metamodel (e.g.,
a Graph metamodel). With the domain-specific metamodel,
users can work using a domain-specific language, and are
therefore maximally constrained (i.e., syntax-directed editing).
With the graph metamodel, users are unconstrained as there is
no interpretation given to the graph (i.e., free-hand editing).
Even with the graph metamodel, however, the modelling
environment still enforces conformance, but just with a very
loose metamodel. Depending on the metamodel, different level
hierarchies are constructed due to a different interpretation of
the conceptual graph.</p>
      <p>
        Fig. 4 presents different notions of conformance that can
be devised using the Modelverse. The use of two different
dimensions is based on the dimensions identified in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. While
β
F
N
O
C
      </p>
      <p>L
LTM⊥
LINGUISTIC</p>
      <p>LCONF⊥m PCONF</p>
      <p>PTM
PHYSICAL
the number of distinct conformance relations can vary, each
model must have a (physical) conformance mapping to the
Physical Type Model (PTM), to physically represent the model.
It will also have a (linguistic) conformance mapping to the
Linguistic Type Model (LTM), which is basically a
metamodel of our conceptual graph, using conformance?. Thanks
to this additional conformance relation, to which everything
conforms, the user gains access to the physical level in an
explicitly modelled way.</p>
      <p>A. Conformance?</p>
      <p>As all our data is (conceptually) represented using a graph,
the graph instance can also be interpreted as a linguistic
instance of a graph metamodel. Because all operations
constrain the result to be a well-formed graph, all models in the
Modelverse conform to this metamodel by construction. Since
every model in the Modelverse is conceptually representable
as a graph, everything can be flattened to a single level,
conforming to the graph formalism. Within this level, all
operations and links between elements are non-level crossing,
and can therefore be correctly typed. Links that are normally
level-crossing, or inter-formalism, can now be correctly typed
without violating strict metamodelling constraints.</p>
      <sec id="sec-8-1">
        <title>B. ConformanceL</title>
        <p>
          Beyond this built-in conformance relation, which is always
satisfied, users can define multiple linguistic conformance
relations as well. Each of these conformance relations, given
them satisfying the conditions mentioned by [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], induces
metalevels, which can vary according to the selected conformance
relation. Linguistic conformance cannot be guaranteed at all,
and requires checking whenever either the model or the
metamodel change, to ensure it is enforced.
        </p>
        <p>Because a conformanceL view is only a specific view on a
model, a single model can conform to multiple metamodels. A
conforms function is defined to determine linguistic
conformance.. It takes two graphs – a model and a metamodel, which
are both subgraphs of the conceptual graph – and a mapping
between them, returning a boolean whether this typing is valid
or not. This mapping encapsulates all typing information, thus
typing is completely separated from the model and metamodel,
allowing for maximal flexibility.</p>
        <p>This definition of the typing relation, of which there might
be multiple, makes us achieve multi-conformance.</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>V. RELATED WORK</title>
      <p>Current meta-modelling tools support our identified
highlevel requirements to a varying degree. We now explore the
current state of the art for the three different features, and how
other approaches support these.</p>
      <p>
        Most of the recent meta-modelling tools are not, or only
partially, formalized. While most tools formalize their internal
data structure and its operations, they frequently ignore the
action language. Tools such as AToMPM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] or JavaUML[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
simply re-use a general purpose programming language. While
this enhances reusability of currently existing tools, therefore
solving the problem of lacking tools [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], this often results in a
mismatch between desired and offered functionality [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. While
it is debatable whether the language is formal or not, it is not
explicitly modelled, making self-hosting difficult.
      </p>
      <p>
        A plethora of popular action languages exist, such as
txtUML [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], xMOF [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], EOL [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], or ALF [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. They are
not modelled explicitly at the required level. While they do
offer formal semantics, instances are again not represented
explicitly as models, but merely in the form of normal
programming languages. Closest to our action language is
Kermeta [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], where the action language is explicitly modelled
and action code is also represented as a model to be executed.
The execution context is not explicitly represented though, nor
how the action language constructs modify it.
      </p>
      <p>
        A common example of a self-modifiability programming
environment is Squeak [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], a Smalltalk interpreter written in
Smalltalk [
        <xref ref-type="bibr" rid="ref16">15</xref>
        ]. Here, self-modifiability allows the
programming environment to update itself, modifying its behaviour.
To obtain self-modifiability, one requirement is that a model
of the currently executing program is present in itself, such
that it can be modified. This model cannot simply be executed
as-is though, as there still needs to be a mapping to the
physical level. In Squeak, there are two options: either the
interpreter is run within a running (binary) interpreter, or the
interpreter is translated to a binary form. If the interpreter
is itself interpreted, it can modify its behaviour at run-time,
and detailed insight is given in the running interpreter. If the
interpreter is translated to a binary form, the main advantage
is that the level of abstraction is raised: the interpreter can
be written in a high-level, interpreted language, instead of
writing the interpreter in a low-level, compiled language. Both
approaches can be combined, by first writing and debugging
the interpreter in a known interpreter, as it is in Squeak, after
which it is bootstrapped.
      </p>
      <p>Similarly to Smalltalk, we present a minimal static core,
with all more advanced operations built on top of that core.
Everything, except for this static core, can be viewed as a
normal program (model), and can be modified at runtime.</p>
      <p>
        Self-modifiability is completely different from self-hosting
or bootstrapping (e.g., writing a C compiler in C, and later
on compile it with itself), which is fairly common. For
selfmodifiability, it is required that the executing program has
access to its own behaviour, and is able to change it at run-time.
While not impossible for compiled programs, it is significantly
easier for interpreted programs due to their increased
introspection capabilities. Most interpreters, however, are not
selfhosted due to the possibly significant performance overhead.
Notable exceptions to this are Squeak [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and PyPy [
        <xref ref-type="bibr" rid="ref17">16</xref>
        ],
which are written in Smalltalk and Python, respectively.
      </p>
      <p>
        The notion of multi-conformance is a middle ground
between level-agnostic modelling [
        <xref ref-type="bibr" rid="ref18">17</xref>
        ] and strict
metamodelling [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. While we still comply with strict metamodelling,
switching between different notions of conformance allows us
to see everything at a single level, as a direct instance of the
top level model, as done by XMF-Mosaic [
        <xref ref-type="bibr" rid="ref19">18</xref>
        ].
      </p>
      <p>
        Multi-conformance is also used in the application of
language relaxation [
        <xref ref-type="bibr" rid="ref20">19</xref>
        ], as required for transformations [
        <xref ref-type="bibr" rid="ref21">20</xref>
        ].
      </p>
      <p>
        Enterprise Architecture Frameworks (EAF), such as the
Zachman framework [
        <xref ref-type="bibr" rid="ref22">21</xref>
        ], make explicit the notion of multiple
users, multiple views, distributed architecture, and interaction
between different tools. As all artefacts are be supported in the
Modelverse, instances of this framework can also be created.
Ultimately, an EAF can be used for the Modelverse itself,
during the process of bootstrapping.
      </p>
      <p>
        While we technically allow multi-level modelling thanks to
our conformance functions, it is not at the same level as more
specialised tools such as Melanie [
        <xref ref-type="bibr" rid="ref23">22</xref>
        ] or MetaDepth [
        <xref ref-type="bibr" rid="ref24">23</xref>
        ], for
example as we do not support potency [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] directly.
      </p>
    </sec>
    <sec id="sec-10">
      <title>VI. CONCLUSION</title>
      <p>We described the Modelverse, a self-modifiable
multiparadigm modelling tool. Several requirements were presented
which served as our guideline while making decisions on the
specification. Three high-level requirements were identified:
formalisation, self-modifiability, and multi-conformance.</p>
      <p>By mapping all operations, up to the highest level, back to
operations on our conceptual graph, we achieved the
formalisation requirement. Doing so, we allow for scalability (more
efficient implementations can be combined), interoperability
(components can be switched out), and multi-user
(interleavings fully defined).</p>
      <p>Self-modifiability was achieved through the explicit
modelling of all operations in the provided action language itself.
Additionally, the complete execution context was explicitly
modelled and represented in the Modelverse itself. This allows
us to satisfy the forever running (updates can happen
on-thefly) and model everything (explicitly modelled operations and
execution) requirements.</p>
      <p>Finally, we showed how multiple conformance relations
can be valid at the same time, offering multi-conformance.
This helps satisfy the multi-view (each view is just a different
conformance relation) and multi-formalism (inter-formalism
links are well-typed) requirements.</p>
      <p>In future work, we plan to further exploit the power we
gained through our three high-level requirements:
1)
2)
3)</p>
      <p>Formalisation allows for different implementations,
with different characteristics, such as performance.
This formalisation futher allows us to support parallel
and distributed implementations.</p>
      <p>
        Self-modifiability allows for self-describability,
making it possible for the Modelverse to contain a model
of itself. Such models can range from performance
models, to models that can be used for code
synthesis. Self-modifiability also increases debugability
of the action language, as explicitly modelled
debuggers [
        <xref ref-type="bibr" rid="ref25">24</xref>
        ] can be written, which are able to inspect and
modify the execution stack of the code under study.
Multi-conformance allows the creation of links
between different models and metamodels. Such
functionality is of critical importance for operations
relating to consistency management, where multiple
models might have relations between them.
      </p>
    </sec>
    <sec id="sec-11">
      <title>ACKNOWLEDGMENT</title>
      <p>This work was partly funded by a PhD fellowship from the
Research Foundation - Flanders (FWO).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Mosterman</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <source>Computer Automated MultiParadigm Modeling: An Introduction,” Simulation: Transactions of the Society for Modeling and Simulation International</source>
          , vol.
          <volume>80</volume>
          , no.
          <issue>9</issue>
          , pp.
          <fpage>433</fpage>
          -
          <lpage>450</lpage>
          ,
          <year>2004</year>
          , special Issue:
          <article-title>Grand Challenges for Modeling and Simulation</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Finkelstein</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Fuks</surname>
          </string-name>
          , “Multiparty specification,
          <source>” SIGSOFT Software Engineering Notes</source>
          , vol.
          <volume>14</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>185</fpage>
          -
          <lpage>195</lpage>
          , Apr.
          <year>1989</year>
          . [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/75200.75228
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>M.</given-names>
            <surname>Maro</surname>
          </string-name>
          <article-title>´ti</article-title>
          , R. Kereske´nyi, T. Kecske´s,
          <string-name>
            <given-names>P.</given-names>
            <surname>Vo</surname>
          </string-name>
          <article-title>¨lgyesi, and A´kos Le´deczi, “Online Collaborative Environment for Designing Complex Computational Systems</article-title>
          ,” Procedia Computer Science, vol.
          <volume>29</volume>
          , no.
          <issue>0</issue>
          , pp.
          <fpage>2432</fpage>
          -
          <lpage>2441</lpage>
          ,
          <year>2014</year>
          , 2014 International Conference on Computational Science. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S1877050914004049
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E.</given-names>
            <surname>Syriani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Mannadiar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Hansen</surname>
          </string-name>
          ,
          <string-name>
            <surname>S. Van Mierlo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and H.</given-names>
            <surname>Ergin</surname>
          </string-name>
          , “
          <article-title>AToMPM: A Web-based Modeling Environment,”</article-title>
          <source>in MODELS'13 Demonstrations</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>L.</given-names>
            <surname>Lucio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mustafiz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Denil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Jukss</surname>
          </string-name>
          , “
          <article-title>FTG+PM: An Integrated Framework for Investigating Model Transformation Chains,” in SDL 2013: Model-Driven Dependability Engineering, ser</article-title>
          .
          <source>Lecture Notes in Computer Science</source>
          . Springer,
          <year>2013</year>
          , vol.
          <volume>7916</volume>
          , pp.
          <fpage>182</fpage>
          -
          <lpage>202</lpage>
          . [Online]. Available: http://dx.doi.
          <source>org/10.1007/978-3-642-38911-5 11</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Ku</surname>
          </string-name>
          <article-title>¨hne, “Rearchitecting the UML infrastructure</article-title>
          ,
          <source>” ACM Trans. Model. Comput. Simul.</source>
          , vol.
          <volume>12</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>290</fpage>
          -
          <lpage>321</lpage>
          , Oct.
          <year>2002</year>
          . [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/643120.643123
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>T.</given-names>
            <surname>Ku</surname>
          </string-name>
          <article-title>¨hne, “Matters of (Meta-</article-title>
          )
          <string-name>
            <surname>Modeling</surname>
          </string-name>
          ,”
          <source>Software and System Modeling</source>
          , vol.
          <volume>5</volume>
          , pp.
          <fpage>369</fpage>
          -
          <lpage>385</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Neubauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          , and G. Kappel, “
          <article-title>Towards integrating modeling and programming languages: The case of UML and Java,” ser</article-title>
          .
          <source>Proceedings of the 2nd International Workshop on the Globalization of Modeling Languages</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>23</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>P.-A.</given-names>
            <surname>Muller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fleurey</surname>
          </string-name>
          , and J.
          <string-name>
            <surname>-M. Je</surname>
          </string-name>
          <article-title>´ze´quel, “Weaving Executability into Object-oriented Meta-languages,”</article-title>
          <source>in Proceedings of the 8th International Conference on Model Driven Engineering Languages and Systems</source>
          , ser.
          <source>MoDELS'05</source>
          . Berlin, Heidelberg: Springer-Verlag,
          <year>2005</year>
          , pp.
          <fpage>264</fpage>
          -
          <lpage>278</lpage>
          . [Online]. Available: http://dx.doi.org/10.1007/11557432 19
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10] G. De´va,
          <string-name>
            <given-names>G. F.</given-names>
            <surname>Kova</surname>
          </string-name>
          <article-title>´cs, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ancsin</surname>
          </string-name>
          , “Textual, executable,
          <source>translatable UML,” ser. 14th International Workshop on OCL and Textual Modeling Applications and Case Studies</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , and G. Kappel, “xMOF:
          <source>Executable DSMLs Based on fUML,” in Software Language Engineering</source>
          , ser. Lecture Notes in Computer Science, M. Erwig,
          <string-name>
            <given-names>R.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and E. Van Wyk, Eds. Springer International Publishing,
          <year>2013</year>
          , vol.
          <volume>8225</volume>
          , pp.
          <fpage>56</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. A.</given-names>
            <surname>Polack</surname>
          </string-name>
          , “
          <article-title>The Epsilon Object Language (EOL),” in Model Driven Architecture Foundations and Applications, ser</article-title>
          . Lecture Notes in Computer Science,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rensink</surname>
          </string-name>
          and J. Warmer, Eds. Springer Berlin Heidelberg,
          <year>2006</year>
          , vol.
          <volume>4066</volume>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>142</lpage>
          . [Online]. Available: http://dx.doi.org/10.1007/11787044 11
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>“OMG</surname>
            <given-names>ALF</given-names>
          </string-name>
          ,” http://www.omg.org/spec/ALF/,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Ingalls</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kaehler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Maloney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wallace</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Kay</surname>
          </string-name>
          , “
          <article-title>Back to the Future: The Story of Squeak, a Practical Smalltalk Written in Itself,”</article-title>
          <source>in Proceedings of the 12th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications</source>
          , ser.
          <source>OOPSLA '97</source>
          . New York, NY, USA: ACM,
          <year>1997</year>
          , pp.
          <fpage>318</fpage>
          -
          <lpage>326</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/263698.263754
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Goldberg</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Robson</surname>
          </string-name>
          , Smalltalk-
          <volume>80</volume>
          :
          <article-title>The Language</article-title>
          and
          <string-name>
            <given-names>Its</given-names>
            <surname>Implementation</surname>
          </string-name>
          . Boston, MA, USA:
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc.,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rigo</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Pedroni</surname>
          </string-name>
          , “
          <article-title>PyPy's Approach to Virtual Machine Construction,” in Companion to the 21st ACM SIGPLAN Symposium on Object-oriented Programming Systems, Languages, and Applications, ser</article-title>
          .
          <source>OOPSLA '06</source>
          . New York, NY, USA: ACM,
          <year>2006</year>
          , pp.
          <fpage>944</fpage>
          -
          <lpage>953</lpage>
          . [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/1176617.1176753
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>B.</given-names>
            <surname>Henderson-Sellers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Gonzalez-Perez</surname>
          </string-name>
          , “
          <article-title>On the search for a Level-Agnostic Modelling Language</article-title>
          ,
          <source>” Lecture Notes in Computer Science</source>
          , vol.
          <volume>7908</volume>
          , pp.
          <fpage>240</fpage>
          -
          <lpage>255</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gonzalez-Perez</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Henderson-Sellers</surname>
          </string-name>
          ,
          <article-title>“A Foundation for Multi-Level Modelling,” in MULTI 2014 Multi-</article-title>
          Level
          <source>Modelling Workshop Proceedings</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>43</fpage>
          -
          <lpage>52</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R.</given-names>
            <surname>Salay</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Chechik</surname>
          </string-name>
          , “
          <article-title>Supporting agility in MDE through modeling language relaxation</article-title>
          ,”
          <source>in Proceedings of the Workshop on Extreme Modeling co-located with ACM/IEEE 16th International Conference on Model Driven Engineering Languages &amp; Systems (MoDELS</source>
          <year>2013</year>
          ).,
          <year>2013</year>
          , pp.
          <fpage>20</fpage>
          -
          <lpage>27</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>T.</given-names>
            <surname>Ku</surname>
          </string-name>
          ¨hne, G. Mezei, E. Syriani,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , “
          <article-title>Explicit transformation modeling,” in Models in Software Engineering, ser</article-title>
          .
          <source>Lecture Notes in Computer Science</source>
          . Springer Berlin Heidelberg,
          <year>2010</year>
          , vol.
          <volume>6002</volume>
          , pp.
          <fpage>240</fpage>
          -
          <lpage>255</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J.</given-names>
            <surname>Zachman</surname>
          </string-name>
          , “
          <article-title>A framework for information systems architecture</article-title>
          ,
          <source>” IBM Systems Journal</source>
          , vol.
          <volume>26</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>276</fpage>
          -
          <lpage>292</lpage>
          ,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Gerbig</surname>
          </string-name>
          , “
          <article-title>Melanie: Multi-level Modeling and Ontology Engineering Environment,” in Proceedings of the 2Nd International Master Class on Model-Driven Engineering: Modeling Wizards, ser</article-title>
          .
          <source>MW '12</source>
          .
          <string-name>
            <surname>Innsbruck</surname>
          </string-name>
          , Austria: ACM,
          <year>2012</year>
          , pp.
          <volume>7</volume>
          :
          <fpage>1</fpage>
          -
          <issue>7</issue>
          :
          <fpage>2</fpage>
          . [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/2448076.2448083
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [23]
          <string-name>
            <surname>J. de Lara</surname>
          </string-name>
          and E. Guerra, “
          <article-title>Deep Meta-Modelling with MetaDepth,”</article-title>
          <source>in Proceedings of TOOLS, Lecture Notes in Computer Science</source>
          vol.
          <volume>6141</volume>
          . Springer,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>S.</given-names>
            <surname>Van Mierlo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Van Tendeloo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Barroca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mustafiz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>Explicit modelling of a Parallel DEVS experimentation environment</article-title>
          ,”
          <source>in Proceedings of the Symposium on Theory of Modeling &amp; Simulation - DEVS Integrative</source>
          ,
          <article-title>ser</article-title>
          .
          <source>DEVS '15</source>
          . Society for Computer Simulation International,
          <year>2015</year>
          , pp.
          <fpage>860</fpage>
          -
          <lpage>867</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>