2.2.1 Linguistic vs Ontological Instantiation
Linguistic and ontological instantiation were
introduced in (Atkinson and Kühne, 2003). Linguistic
instantiation is the relationship between model
elements on different levels of a multi-level meta-
modeling hierarchy. Linguistic instantiation usually
describes meta-modeling relations between types and
objects. In contrast, ontological instantiation defines
the semantics of modeling constructs. Therefore, for
each modeling level, an additional ontological
instantiation relationship is defined that associates
model elements of that particular meta-level to each
other, according to a certain concern of the problem
domain. In the case of MOF, the model elements on
M1 are linguistic instances of their meta-elements on
M2, however, a particular M1 (or M2) model element
can also be an ontological instance of another element
of the same M1 (or M2) level Although the MOF
architecture does not facilitate both of these two
meta-modeling dimensions equally, it does provide a
mechanism for expressing ontological relationships
by its reliance on stereotypes and profiles. Namely,
stereotypes and profiles defined on M2 level express
ontological instantiation relationships that can be
flexibly used as extra annotation(s) on M1 model
elements.
Although this approach may be utilized to
allow an ontological unification of nodes and edges,
no practical solutions of this kind has been published
yet.
2.2.2 Multi-level Instantiation
Provided that only two modeling levels are available,
instantiation has to be interpreted between these two
levels only. However, in a multi-level meta-modeling
architecture, we may be able to use instantiation
across multiple levels. These techniques can
distinguish between two kinds of instantiation:
shallow instantiation means that the information is
defined on the n
th
modeling level and it is used on the
immediate instantiation (n+1)
th
level, while deep
instantiation allows defining the information on the
n
th
modeling level and use it on the (n+x)
th
(x > 0)
modeling level (Atkinson and Kühne, 2001).
Although multi-level modeling solutions are getting
more and more popular, these deep instantiation
methods are rarely utilized. For example, MOF
defines a four layer architecture, but it supports only
shallow instantiation. This results in rigid,
inconsistent relations between meta-types, types and
objects, which is one of the reasons why node-like
and edge-like elements are kept separate due to the
lack of enough meta-levels.
Having multi-level meta-modeling in mind, one
needs to safeguard that each meta-level should be
instantiable by some means of being able to add new
attributes and operations to the existing models.
There are two options available: one can either bring
the source of the information along all model levels
(and eventually use it wherever 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
(Atkinson and Kühne, 2002) (Atkinson and Kühne,
2001) 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 through clabjects which
is controlled only by the explicit definition of a
potency limit allowing a preset number of meta-levels
an element can be instantiated at. The only drawback
of this solution is that the modelled elements will be
forced to live until the attached non-negative numbers
have been decremented, by each instantiation, to zero.
Hence, the potency solution is both too liberal and too
restrictive at the same time: on one hand, it is too
liberal because at each meta-level the full potential of
meta-model building facilities is available, thus an
arbitrary number of new model elements can be
injected into the model at will and without any
potential restriction. It is definitely good so for
design-time modeling, however it may wreak havoc
in dynamic run-time instantiation if it is used in an
uncontrolled fashion. On the other hand, it is too
restrictive in its treatment of the number of meta-
levels a model element can be located at because the
modeler must know in advance at which levels the
information will be needed and set its potency value
accordingly. In other words, instead of explicitly
encoding the required nature of semantics vis-a-vis
the instantiation constraints within the model itself
and thus making the model agnostic to the artificial
division line set between design-time and run-time
modeling, potency notion simplifies it down to an
integer number and thus positions itself as a pure
design-time multi-level modeling approach.
Moreover, potency notion favors nodes against edges
due to its bias to clabject. Nevertheless, recent
techniques such as Dual Deep Instantiation (DDI)
(Neumayr et al., 2014) consistently extended the
potency notion to edges via its application to the end-
points. Unfortunately, some limitations still remain to
be overcome: firstly, since DDI defines edges by the
endpoints it is non-trivial to extend it by edge-owned