<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Multi-level modeling with MELANEE</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Arne Lange</string-name>
          <email>lange@informatik.uni-mannheim.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Colin Atkinson</string-name>
          <email>atkinson@informatik.uni-mannheim.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Mannheim Software Engineering Group</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper presents a solution to the MULTI 2018 Bicycle Challenge developed using the MELANEE deep modeling tool. The structure of the paper therefore follows the guidelines laid out in the Challenge description. After first outlining the case study and documenting which aspects are supported in the MELANEE solution, the paper presents a detailed description of the developed deep model. This is followed by a discussion of the strengths and weaknesses of the approach and a discussion of its benefits over traditional two-level modeling. The presented model covers all mandatory and optional aspects of the Challenge case study.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        A full description of the case study at the heart of the MULTI 2018 Bicycle Challenge is available
as an addendum to the MULTI 2018 call for papers [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and is not replicated here. In this section
we outline the distinguishing features of our solution built using the MELANEE multi-level modeling
environment. As mentioned above, MELANEE supports a flavor of multi-level modeling often referred
to as deep modeling. This means that ontological classification relationships are governed by potency
and the modeling levels are defined according to the principles of strict modeling. In our approach,
therefore, we refer to the complete multi-level model encompassing all domain information as a
“deep model” and each individual ontological level within this deep model as a “level” or a “model”.
      </p>
      <p>
        In MELANEE, deep models are represented using two (sub) languages - the so called Level-agnostic
Modeling Language (LML) and a variant of OCL enhanced to be “aware of”, and exploit, deepness.
The LML contains three core constructs – “Entities”, “Connections” and “Generalizations”. Entities
correspond to classes and/or objects in classic UML-style structural modeling and are depicted
in a similar way, while connections correspond to association classes in the UML (although they
are represented in a different notation). Connections can be navigable or non-navigable and can
capture two forms of containment, composition and aggregation, using similar modifiers to the
UML. Entities and Connections are Clabjects which have a potency indicating over how many
levels they can be instantiated. The generalization relationship is used to represent inheritance
using the unfilled-triangle notion of the UML to designate super-types [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>
        MELANEE is a domain specific language workbench that supports a variety of formats and
visualizations. It can be used to model in graphical, text-based, table-based and/or form-based formats
to provide stakeholders with diverse viewpoints on a deep model and multiple ways to edit it. These
visualizations can also be context aware, e.g. the background color of an entity can be dynamically
determined via a deep OCL expression [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>Our deep model solution to the Bicycle Challenge contains four ontological levels. Like the UML
infrastructure, these are typically depicted in a vertical hierarchy with the most abstract (i.e. meta)
level at the top and the most concrete (i.e. instance) level at the bottom. However, by convention
MELANEE’s levels are numbered in the reverse order to the UML’s with the most abstract given the
number 0, the second most abstract the number 1 and so on. MELANEE also allows arbitrary names
to be given to levels to better characterize their content.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Model Design</title>
      <p>The presented MELANEE model fully covers all mandatory and optional requirements defined in
the Challenge description. However, two of the mandatory elements are renamed in our solution
– the notion of Configuration is covered by Product (i.e. instances of Product are
Configurations) and the notion of Categories is covered by BicycleConfiguration (i.e. subclasses of
BicycleConfiguration are specific Categories).
3.1</p>
      <sec id="sec-2-1">
        <title>Level-Spanning Domain Content</title>
        <p>To understand the ontological levels themselves, it is necessary to understand the model information
that spans them – so called “pan-level” information.</p>
        <p>Linguistic (Meta) Models. The most fundamental pan-level models are the linguistic (meta)
models of the LML and the deep OCL dialect used to define constraints. These are metamodels in
the sense that they define languages, but are not strictly “meta” to anything since the content of the
ontological levels exists at the linguistic level immediately below them. The LML linguistic model,
which contains about a dozen classes, defines the core concepts of deep modeling mentioned in the
previous section (e.g. clabjects, generalizations, attributes etc.) and has been designed to be as
simple and minimal as possible whilst providing a UML-like modeling experience for modelers. The
deep OCL variant supported by MELANEE is based on the OMG’s OCL version 2.4. Its linguistic
(meta)model has been enhanced to make it “aware” of (i.e. support) constraints over multiple
ontological levels. In particular, its allows constraints to be applied to explicit ranges of ontological
levels and to refer to linguistic as well as ontological attributes.</p>
        <p>
          Pan-Level Enumeration Types. Most domains have domain specific data (i.e. value-only) types
that are used at multiple ontological levels. In MELANEE these are defined within a deep model, but
outside any specific ontological level so that in effect they span (i.e. are usable in) any level. For the
Challenge two enumerations are defined – Material and CyclistSize. The Material enumeration,
which is the type for the material attribute of racing frames, has three values CARBON, ALUMINUM
and STEEL. The CyclistSize enumeration, which is the type for the cyclistSize attribute in the
Purpose clabject, also has three values TALLCYCLIST, MEDIUMCYCLIST and SMALLCYCLIST.
Pan-Level Constraints. A powerful feature of the deep OCL dialect supported by MELANEE is
that it allows level spanning constraints to be defined that control the way clabjects can be used
within specific ontological level and/or in the whole deep model. This feature essentially supports
the notion of reflexive constraints [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], since level spanning constraints can control the fundamental
way the LML is used as exemplified by constraint PAN-1 below.
        </p>
        <p>context DeepModel
inv PAN 1: C l a b j e c t &gt; f o r A l l ( s e l e c t ( c | c.# getFeature ()# &gt; s e l e c t ( f | f .# g e t D u r a b i l i t y ()#
&gt; 0 ) ) &gt; s i z e ( ) = s e l f . g e t D i r e c t I n s t a n c e s ( ) &gt; s e l e c t ( c | c.# getFeature ()#) &gt; s i z e ( ) )
Although strict modeling requires the ontological type of a clabject to reside at the level
immediately above it, it does not specifically require that all clabjects have an ontological type.
Because MELANEE’s orthogonal classification architecture gives every clabject a linguistic type (i.e.
Clabject) as well as (possibly) an ontological type, it is perfectly possible to define
ontologicallyunclassified clabjects in a model (i.e. clabjects without an explicit, direct ontological type). This is
important in practice since it allows the top (i.e. most abstract) ontological level to be populated
with clabjects that are not ontologically classified, and thus avoids the endless repetition of levels
that would be needed if every clabject had to be ontologically typed. It can also be useful to define
ontologically unclassified clabjects at lower levels, giving rise to a specific style of deep modeling.
The purpose of constraint PAN-1 is to ensure that every clabject that has an ontological type has
all, and only, the features (i.e. attributes and methods) required by the type. More specifically, it
states that if a clabject has an ontological type, it must possess all features defined by that type with
a durability greater than 0 and no more. Thus, only ontologically-untyped clabjects can introduce
new features. The ‘#’ symbol in the constraint is used to designate the linguistic dimension and
invoke linguistic methods.
3.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Product Level - O0</title>
        <sec id="sec-2-2-1">
          <title>Customer0</title>
        </sec>
        <sec id="sec-2-2-2">
          <title>HumanCustomer3</title>
        </sec>
        <sec id="sec-2-2-3">
          <title>Person0</title>
        </sec>
        <sec id="sec-2-2-4">
          <title>Invoice3</title>
          <p>price3:Real
date3:String
readOnly3:Boolean</p>
        </sec>
        <sec id="sec-2-2-5">
          <title>OrganisationCustomer3</title>
        </sec>
        <sec id="sec-2-2-6">
          <title>Organisation2</title>
          <p>CategoryManager1 Manages
Fig. 1. Product Model (O0)
Product3
price3:Real = 2
date3:String = 2
averageActualSalesPrice2:Real
revenue2:Real
bestseller2:Real
averageRegularSalesPrice2:Real</p>
        </sec>
        <sec id="sec-2-2-7">
          <title>Part0</title>
        </sec>
        <sec id="sec-2-2-8">
          <title>BasicPart3</title>
        </sec>
        <sec id="sec-2-2-9">
          <title>Component3</title>
          <p>height3:Real = 2
size3:Real = 2
usn3:String = 3
weight3:Real = 2
color3: String = 3</p>
          <p>Figure 1 shows the top, most abstract, ontological level of the deep model which captures the
domain of selling products to customers. A Product is defined as a composite of Components
and BasicParts using the composite pattern. Products can be certified by an Organization. An
important feature of the deep model is that this top level is completely independent of the bicycle
shop domain and thus can be instantiated for other domains.</p>
          <p>The LML uses clabjects called connections to represent associations between entities, but they
are more like UML association classes than plain associations since they can have attributes, super
types and participate in connections themselves. Connections can be depicted in two ways in
MELANEE models depending on the amount of information the modeler wishes to display. The connection
between Product and Customer, called Invoice, is depicted in expanded form in Figure 1 to show
its two attributes, while the connection between CategoryManager and Product, called Manages,
is shown in collapsed form because it has no attributes.</p>
          <p>The attributes of Invoice document the essential properties of sales transactions. The other
kind of relationship appearing in Figure 1 is specialization which is depicted using the UML
unfilledtriangle notation. The figure highlights the important point that the potencies of sub-clabjects need
not be the same as those of their super-clabjects because potency is based on direct classification
relationships (as opposed to indirect classification relationships arising from inheritance hierarchies).</p>
          <p>The attributes averageActualSalesPrice, averageRegularSalesPrice, revenue and
bestseller of the clabject Product are responsible for storing the optional sales information described
in the section 2.2 of the Challenge description. Their values are defined by the following four
derive constraints which are applied at specifically defined levels. Constraint O01 derives the value of
the averageActualSalesPrice for every instance of Product at O1 and O2. The context of the
derivation is iterated over every instance of Product so that the value is derived for each individual
instance. It therefore covers the first two derived properties of section 2.2 of the Challenge. The
constraint O02 defines the value of the averageRegularSalesPrice attribute in a similar manner as
O01. Constraint O03 defines the value of the revenue attribute while O04 determines the top-seller
of each category and the top selling category.</p>
          <p>context Product : : a v e r a g e A c t u a l S a l e s P r i c e : Real
d e r i v e O01 : s e l f . a l l I n s t a n c e s ( ) &gt; s e l e c t ( c | c.# getPotency ()# = 0) &gt;
s e l e c t ( c | c . I n v o i c e . date . s u b s t r i n g ( 7 , 1 0 ) = "2017") &gt; c o l l e c t N e s t e d ( I n v o i c e . p r i c e )
&gt; sum ( ) / s e l f . a l l I n s t a n c e s ( ) &gt; s e l e c t ( c | c.# getPotency ()# = 0) &gt; s i z e ( )
context Product : : a v e r a g e R e g u l a r S a l e s P r i c e : Real
d e r i v e O02 : s e l f . a l l I n s t a n c e s ( ) &gt; s e l e c t ( c | c.# getPotency ()# = 1)
&gt; s e l e c t ( date . s u b s t r i n g ( 7 , 1 0 ) = "2017") &gt; c o l l e c t ( p r i c e ) &gt; sum ( ) /
s e l f . a l l I n s t a n c e s ( ) &gt; s e l e c t ( c | c.# getPotency ()# = 0) &gt; s i z e ( )
context Product : : revenue : Real
d e r i v e O03 : s e l f . a l l I n s t a n c e s ( ) &gt; s e l e c t ( c | c.# getPotency ()# = 0) &gt;
s e l e c t ( c | c . I n v o i c e . date . s u b s t r i n g ( 7 , 1 0 ) = "2017") &gt; c o l l e c t N e s t e d ( I n v o i c e . p r i c e ) &gt;sum ( )
context Product : : b e s t s e l l e r : Boolean
d e r i v e O04 : l e t t o p S e l l e r : Boolean = f a l s e i n
i f C l a b j e c t &gt; s e l e c t ( c | c . isDeepKindOf ( B i c y c l e C o n f i g u r a t i o n ) = t r u e ) &gt;
s e l e c t ( date . s u b s t r i n g ( 7 , 1 0 ) = "2017") &gt; sortedBy ( revenue ) &gt; l a s t ( ) = s e l f
then t o p S e l l e r = t r u e else t o p S e l l e r = f a l s e endif
3.3</p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>Bicycle Categories Level - O1</title>
        <p>Figure 2 shows the second level of the deep model, O1 where the ontological instances of clabjects in
O0 reside. This level describes the structures of the different kinds of bicycle product categories as
well as their different roles and stakeholders. The tenet of strictness requires all ontological instances
of O0 to reside at O1, but does not require all elements in O1 to have a direct ontological type.
For example, the clabject ProfessionaleRacingFrame has no ontological type. This is because it
needs more attributes than a “normal” Component, so it inherits the normal component attributes
from Frame (an instance of Component) and adds its own attributes relevant to professional racing
frames. There are two connections needed between BicycleConfiguration and Wheel, one for the
front wheel and one for the rear wheel. Every instance of Product is connected to a Purpose.
Note that all the connections are depicted in collapsed form in Figure 2. Although this means their
attributes cannot be seen, it is still possible to display their names in the style of UML associations.</p>
        <p>UML-style multiplicity constraints are used to indicate that a BicycleConfiguration must
have exactly one Frame and Fork. In addition, seven deep-OCL constraints are needed to fulfill the
mandatory requirements of the Challenge. Constraints O11 and O12 are defined on
BicycleCon</p>
        <sec id="sec-2-3-1">
          <title>CityBikingPurpose1</title>
          <p>cyclistSize1:CyclistSize
figuration. Constraint O11 ensures that the front wheel and the rear wheel have the same size. If
a bike has a carbon frame it needs to have carbon or aluminum wheels as well. This is expressed in</p>
        </sec>
        <sec id="sec-2-3-2">
          <title>CarbonFrame2:Component</title>
          <p>height2:Real = 1
size2:Real = 1
usn2:String = 2
weight2:Real = 1
colour2:String= 2
Frame2:Component
height2:Real = 1
size2:Real = 1
usn2:String = 2
weight2:Real = 1
   colour2:String= 2
1</p>
        </sec>
        <sec id="sec-2-3-3">
          <title>MountainBikingPurpose1</title>
          <p>cyclistSize:CyclistSize</p>
        </sec>
        <sec id="sec-2-3-4">
          <title>ProfessionalRaceFrame2</title>
          <p>material2:Material
topTubeLenght2:Integer
downTubeLenght2:Integer
seatTubeLength2:Integer</p>
        </sec>
        <sec id="sec-2-3-5">
          <title>RearSuspension2:BasicPart</title>
        </sec>
        <sec id="sec-2-3-6">
          <title>BicycleConfiguration2:Product</title>
          <p>price2:Real = 1
1 advaeter2a:gSetArincgtu=alS1alesPrice1:Real = 3699.5
revenue1:Real = 93030
bestseller1:Boolean = false
averageRegularSalesPrice0:Real = 2499.66
MountainBikeConfiguration2:Product
price2:Real = 1
date2:String = 1
averageActualSalesPrice1:Real =
revenue1:Real = 11098.5
bestseller1:Boolean = false
averageRegularSalesPrice0:Real =</p>
          <p>CityBikeConfiguration2:Product
price2:Real = 1
date2:String = 1
averageActualSalesPrice1:Real = 3699.5
revenue1:Real = 11098.5
bestseller1:Boolean = false
averageRegularSalesPrice0:Real = 2500.00</p>
        </sec>
        <sec id="sec-2-3-7">
          <title>ElectricPart2:Component</title>
          <p>height2:Real = 1
size2:Real = 1
usn2:String = 2
weight2:Real = 1
colour2:String= 1</p>
        </sec>
        <sec id="sec-2-3-8">
          <title>Battery2:Component Motor2:Component</title>
          <p>height2:Real = 1 height2:Real = 1
size2:Real = 1 size2:Real = 1
EnforcedBrakes2:BasicPart uwsenig2h:St2tr:iRnega=l =2 1 uwsenig2h:St2tr:iRnega=l =2 1
colour2:String= 2 colour2:String= 2</p>
        </sec>
        <sec id="sec-2-3-9">
          <title>CarbonWheel2:Component</title>
          <p>height2:Real = 1
size2:Real = 1
usn2:String = 2
weight2:Real = 1
colour2:String= 2</p>
        </sec>
        <sec id="sec-2-3-10">
          <title>AluminumWheel2:Component</title>
          <p>height2:Real = 1
size2:Real = 1
usn2:String = 2
weight2:Real = 1
colour2:String= 2</p>
        </sec>
        <sec id="sec-2-3-11">
          <title>SuspensionFork2</title>
          <p>1
Invoice
Invoice</p>
        </sec>
        <sec id="sec-2-3-12">
          <title>Wheel2:Component</title>
          <p>height2:Real = 1
frontWheel size2:Real = 1
usn2:String = 2
rearWheel weight2:Real = 1
colour2:String= 2</p>
        </sec>
        <sec id="sec-2-3-13">
          <title>RacingFork2</title>
        </sec>
        <sec id="sec-2-3-14">
          <title>Fork2:Component</title>
          <p>height2:Real = 1
size2:Real = 1
usn2:String = 2
MudMount2:BasicPart weight2:Real = 1
1 colour2:String= 2</p>
        </sec>
        <sec id="sec-2-3-15">
          <title>HumanCustomer2:HumanCustomer</title>
        </sec>
        <sec id="sec-2-3-16">
          <title>OrganisationCustomer2:OrganisationCustomer</title>
        </sec>
        <sec id="sec-2-3-17">
          <title>PeterParker0:CategoryManager</title>
          <p>RacingBikeConfiguration2:Product
price2:Real = 1
date2:String = 1
averageActualSalesPrice1:Real = 2321.00
revenue1:Real = 78232.00
bestseller1:Boolean = false
averageRegularSalesPrice0:Real = 2834.00</p>
        </sec>
        <sec id="sec-2-3-18">
          <title>BikeRacingPurpose1</title>
          <p>cyclistSize1:CyclistSize
ProfessionalRacingBikeConfiguration2:Product
price2:Real = 1
date2:String = 1
averageActualSalesPrice1:Real = 2321.00
revenue1:Real = 78232.00
bestseller1:Boolean = true
averageRegularSalesPrice0:Real = 2834.00
constraint O12. Constraints O13 and O14 are defined for RacingBikeConfiguration. Constraint
O13 states that every fork to which a RacingBikeConfiguration is connected must be an instance
(direct or indirect) of RacingFork and every frame must be an instance (direct or indirect) of
ProfessionalRacingFrame while constraint O14 ensures no instance of RacingBikeConfiguration
has a MudMount connected to it. Constraints O15 and O16 are defined for
ProfessionalRacingBikeConfiguration and ensure the weight attribute is above the required minimum weight of that
bike category and that the bike is certified by an organization. The last constraint, O17, ensures
that no CityBikeConfiguration is connected to a RearSuspension. Every invariant constraint
displayed here is applied to all instances of each context at the O2 and O3 level.
context B i c y c l e C o n f i g u r a t i o n
inv O11 w h e e l S i z e : s e l f . frontWheel . s i z e = s e l f . rearWheel . s i z e
context B i c y c l e C o n f i g u r a t i o n
inv O12 carbonFrame : s e l f . frame . isDeepKindOf ( CarbonFrame ) implies
( s e l f . frontWheel . isDeepKindOf ( CarbonWheel ) or
s e l f . frontWheel . isDeepKindOf ( AluminumWheel ) )
context RacingBikeConfiguration
inv O13 racingForkFrame : s e l f . f o r k . isDeepKindOf ( RacingFork ) and
s e l f . frame . isDeepKindOf ( ProfessionalRacingFrame )
context RacingBikeConfiguration
inv O14 mudMount : not ( s e l f . f o r k . isDeepKindOf ( SupensionFork ) ) and
s e l f . mudMount &gt; s i z e ( ) = 0
context P r o f e s s i o n a l R a c i n g B i k e C o n f i g u r a t i o n
inv O15 minimumWeight : s e l f . frame . weight &gt;= 5200
context P r o f e s s i o n a l R a c i n g B i k e C o n f i g u r a t i o n
inv O16 c e r t i f i c a t i o n : s e l f . o r g a n i s a t i o n &gt; s i z e ( ) &gt;= 1
context C i t y B i k e C o n f i g u r a t i o n
inv O17 r e a r S u s p e n s i o n : s e l f . frame . rearSupensi on &gt; s i z e ( ) = 0
3.4</p>
        </sec>
      </sec>
      <sec id="sec-2-4">
        <title>Bicycle Configurations Level - O2</title>
        <sec id="sec-2-4-1">
          <title>Invoice1:Invoice</title>
          <p>price1:Real
date1:String
readOnly1:Boolean</p>
        </sec>
        <sec id="sec-2-4-2">
          <title>ChallengerA2XL1:ProfessionalRacingBikeConfiguration</title>
          <p>price1:Real = 4999.00 0
date1:String = 01.09.2017 0
averageActualSalesPrice0:Real = 4532.00
revenue0:Real = 78232.00
bestseller0:Boolean = true</p>
        </sec>
        <sec id="sec-2-4-3">
          <title>ProRaceBikeCustomer1:HumanCustomer Certification0:UCI</title>
          <p>frontWheel
ProRaceFrontWheel1:CarbonWheel ProRaceFrontWheel1:CarbonWheel
height1:Real = 400 height1:Real = 400
size1:Real = 340 size1:Real = 340
usn1:String = 1 usn1:String = 1
weight1:Real = 2000 weight1:Real = 2000
colour1:String= 1 colour1:String= 1
rearWheel</p>
        </sec>
        <sec id="sec-2-4-4">
          <title>Suitable0:BikeRacingPurpose</title>
          <p>for:CyclistSize=TALLCYCLIST</p>
          <p>RocketA1XL1:ProfessionalRaceFrame
height1:Real = 600
1 1 size1:Real = 700
usn1:String = 1
weight1:Real = 920.00
1 tmoaptTeurbiael1L:eMnagthetr1ia:Iln=teCgeArRBON
downTubeLenght1:Integer
seatTubeLength1:Integer
colour1:String= 1
1 EndavorA3XL1:RacingFork
height1:Real = 300
size1:Real = 300
usn1:String = 1
weight1:Real = 300
colour1:String = 1</p>
          <p>Figure 3 shows the example bicycle configuration described in the Bicycle Challenge. This
configuration, called ChallengerA2XL is an instance of the ProfessionalRacingBike category and
has a regular sales price of 4999.00. The averageActualSalesPrice is determined by the derive
constraint O02 to have a value of 4349.25. The derived value for the revenue attribute (for 2017)
is 78232.0 as described in the Challenge description. It is also the best selling configuration at this
level. The connected components represent the minimum configuration satisfying the constraints
defined at the level above. For instance, the connected wheels both have the same size and can
be distinguished by the instance of the connection. The front wheel will be connected to the front
wheel connection instance and the rear wheel to the rear wheel connection.
3.5</p>
        </sec>
      </sec>
      <sec id="sec-2-5">
        <title>Bicycle Instances Level - O3</title>
        <p>Invoice0:Invoice
price0:Real = 4299.00
date0:String = 19.09.2017
readOnly0:Boolean = true
1341230:ChallengerA2XL
1</p>
        <sec id="sec-2-5-1">
          <title>SusanStorm0:ProRaceBikeCustomer</title>
          <p>1
1341230:EndavorA3XL 1341230:ProRaceRearWheel 1341230:ProRaceFrontWheel fro
n
t
W
h
e
e
l
rr
e
a
W
h
e
e
l
height0:Real = 30 height0:Real = 40
size0:Real = 30 size0:Real = 34
usn0:String = 134123E usn0:String = 134123RW
weight0:Real = 30 weight0:Real = 200
colour0: String = 'BLUE' colour0: String = 'YELLOW'
height0:Real = 40
size0:Real = 34
usn0:String = 134123FW
weight0:Real = 200
colour0: String = 'YELLOW'</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Discussion</title>
      <p>Having presented our solution to the Bicycle Challenge, in the section we discuss its pros and cons
according to the criteria outlined in the Challenge description.
4.1</p>
      <sec id="sec-3-1">
        <title>Mandatory Comparison Criteria</title>
        <p>
          Basic Modeling Constructs. The basic benefit of multi-level modeling is that it simplifies the
modeling of domains inherently consisting of instantiation chains having two or more ontological
classification relationships, such as the Bicycle Challenge. There is no claim that multi-level
modeling makes it possible to represent scenarios that cannot be modeled using traditional two-level
languages, the basic value proposition is that it does so with less accidental complexity (e.g. by
obviating the need for workaround patterns such as the type-object patterns etc.) [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The deep model
presented in this paper demonstrates this by capturing all information in the Bicycle Challenge in
the style of the UML/MOF core infrastructure language, but with minimal linguistic overhead.
        </p>
        <p>
          Three features of the approach are primarily responsible for achieving this minimality. The first
is the compaction of elements that play both type and instance roles into elements represented using
a single amalgamated linguistic concept – “clabject”. The second is the separation of ontological
classification from linguistic classification, and the use of a modeling architecture that allows the
former to be concisely represented within an arbitrary number of “levels” spanned by the latter. In
our deep model, ontological classification is represented using the tradition UML “:” notion. The
third is the use of a single linguistic attribute of clabjects and attributes, called potency, to capture
their “instantiatability/changeability” over multiple levels. While the first two features are common
to most multi-level modeling approaches, potency is unique to deep modeling. It helps minimize
linguistic overhead by capturing important properties of a model without the need for additional
linguistic constructs. For example, the three forms of potency in MELANEE – clabject potency,
attribute potency (a.k.a. durability) and value potency (a.k.a. mutability) obviate the need for
features such as abstract classes, tags/tag values, static variables, power types and dependencies in
the UML. For example, Figure 1 shows the use of potency 0 clabjects to represent abstract classes,
durability 2 attributes to represent tags, and mutability 2 attribute values to represent tag values.
Levels and Layers. In the deep modeling approach supported by MELANEE, levels are defined
by ontological classification (i.e. instance-of) relationships according to the tenet of strictness. In
essence, this states that the ontological types of a clabject must reside at the level above that
clabject. However, the “level at which a clabject” resides does not necessarily correspond to its
order (i.e. instantiation power) as in most multi-level modeling approaches [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. This is reflected by
the fact that although the direct type of a clabject must have a potency that is one higher than that
of the clabject, indirect types (i.e. superytpes of the direct type) can have a potency lower than
that of the direct type as illustrated in Figure 1. All inheritance (specialization-of) relationships
must reside within a single ontological level in a MELANEE deep model.
        </p>
        <p>
          This approach has the advantage that abstractness can be represented in a nuanced and
minimalistic way using potency as shown in Figure 1. How it also arguably has the disadvantage that
“unnecessary” clabjects have to be included in levels when an abstraction needs to be instantiated
at more than one level [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. For example, since the abstraction HumanCustomer is defined at level
O0, so that it can inherit from Person, but is “used” at O3 where actual human customers are
represented, the intermediate levels also have to contain offspring of HumanCustomer. This problem
could be alleviated by cross-level structural relationships of the kind suggested in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], but this would
require a relaxation of the potency rules so that base-types could be more frequently used.
Abstraction. By making ontological classification a first class citizen of models alongside
specialization, deep modeling allows model content to be organized into abstraction levels that best
match the concerns occurring in the domain of discourse. This is clearly illustrated by our Bicycle
Challenge deep model, where the O0 level focuses on the abstract concerns of product structure
and sales, the O1 focuses on describing bicycles categories as instances of products, O2 focuses
on describing specific bicycle configurations as instances of bicycle categories, and O3 represents
specific instances of bicycle configurations.
        </p>
        <p>
          Reuse. The information in a deep model can be reused in two ways based on the two fundamental
relationships of ontological classification and specialization. Since the top level O0 metamodel is
independent of the bicycle domain, it can be used to support new product areas through
classification simply by instantiating new models from it. Alternatively, the existing models derived from
O0 can be customized by specializing the existing clabjects with more refined versions. To further
facilitate reuse, MELANEE also supports model importation and composition [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
Cross-level relationships. MELANEE’s deep modeling approach strictly forbids any kind of
relationship other than ontological classification relationships between levels. This requires modelers
to be disciplined and create models which are organized into clear abstraction levels. However,
it arguably has the disadvantage that additional clabjects needed to be included in certain
levels to ensure that offspring of a certain concept exist at the correct level to avoid level-crossing
relationships.
        </p>
        <p>
          Cross-level constraints. The deep OCL dialect used to define the constraints in our solution is
aware of, and can exploit, the two distinct modeling dimensions and multiple levels that occur with
the ontological dimension [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. As illustrated in Section 3, this constraint language can be used to
define level-spanning (i.e. “reflective”) constraints which adjust the rules by which levels relate to
each other, as well as multi-level constraints that govern the contents of the offspring of a clabject
over an arbitrary number of levels
Integrity mechanisms. The ability to change any level of a deep model on-the-fly, in real time,
offers a great deal of power and flexibility when used correctly. However, it also means that simple
changes can have a dramatic impact on the correctness of a deep model. MELANEE therefore contains
a built-in emendation service [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] which checks the impact of any changes made by users and (a)
automatically updates the rest of the model to be consistent with them and/or (b) checks whether
they have consequences intended by the users by displaying them and asking for conformation.
Code Generation and Consistency. MELANEE does not have any in-built code generation
capabilities, but since it is a part of the ECLIPSE environment, its rich set of development plug-ins can
be used to map MELANEE models to other IT artifacts. The MELANEE toolkit is also accompanied
by a specially designed transformation language, deep ATL [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], which is aware of and supports
transformations between deep models.
4.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Additional Comparison Criteria</title>
        <p>
          In this paper, we have presented our solution to the Bicycle Challenge using the standard, general
purpose concrete syntax for the LML. However, MELANEE also allows users to define an arbitrary
number of alternative concrete syntaxes for (offspring of) an ontological level which can have
multiple formats (i.e. graphical, text-based, form-based tabular). Not only can these different notations
be used side-by-side with each other and with the general syntax to provide multiple, concurrent
views on a deep model, they be can automatically applied at any depth below the level where
they are defined. Furthermore, the rendering of a clabject can also be made context-sensitive so
that different symbols are used in different situations. This ability to define deep, context-sensitive,
domain-specific language within the ontological levels of a deep model allows a wide range of
advanced business services and tools to be supported. For example, because deep models contain
instance data as well as type data (i.e. they embody models@run-time), performance data can
easily be collected and displayed in the style of a business analytics tool. Alternatively, by defining a
business process modeling language at the top level, business processes can not only be represented
in a domain specific syntax at the level below, but the execution of the instances of these process
can be displayed at run time using the same notation. Ultimately, this capability allows MELANEE
to support the full-scale simulation of deep models and the creation of model-driven tools [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
This paper has presented a full solution to the MULTI 2018 Bicycle Challenge taking the form
of a deep model in MELANEE. By capturing all mandatory and optional requirements of the
Challenge in a highly concise, precise and easy-to-understand way, the model reinforces the core value
proposition of multi-level modeling which is to reduce accidental complexity without loss of clarity.
In particular, the model demonstrates that it is possible to clearly and precisely describe
complex, multi-level domain scenarios in a UML-like way without resorting to the plethora of auxiliary
modeling features utilized by the UML (i.e. stereotypes, tag/tagged values, dependencies, static
variables, power types etc.). By treating all levels uniformly using the same core relational concepts
(inheritance, containments, classification etc.) the approach also provides a new dimension of
flexibility to modelers in which they can change abstract (i.e. meta) levels as easily as they can change
concrete (i.e. instance) levels. It therefore lays the foundation for models to support all phases of
a software system’s lifecycle (i.e. development, deployment and operations) and bring the vision of
models@runtime closer to reality. The next step is to develop a version of the Bicycle Challenge
based on traditional two-level modeling technologies to perform a concrete comparison.
        </p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>1. 5th international workshop on multi-level modelling, https://www.wi-inf.uni-duisburgessen.de/MULTI2018/</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fritzsche</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A multi-level approach to modeling language extension in the enterprise systems domain</article-title>
          .
          <source>Information Systems</source>
          <volume>54</volume>
          ,
          <fpage>289</fpage>
          -
          <lpage>307</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kennel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>On-the-fly emendation of multi-level models</article-title>
          . In: Vallecillo,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Tolvanen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.P.</given-names>
            ,
            <surname>Kindler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Störrle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <surname>D</surname>
          </string-name>
          . (eds.)
          <source>Modelling Foundations and Applications. Lecture Notes in Computer Science</source>
          , vol.
          <volume>7349</volume>
          , pp.
          <fpage>194</fpage>
          -
          <lpage>209</lpage>
          . Springer Berlin Heidelberg (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Metzger</surname>
          </string-name>
          , N.:
          <article-title>On the execution of deep models</article-title>
          . In: Mayerhofer,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Seidewitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Gray</surname>
          </string-name>
          ,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.)
          <source>Proceedings of the 1st International Workshop on Executable Modeling. EXE</source>
          <year>2015</year>
          , vol.
          <volume>1560</volume>
          , pp.
          <fpage>28</fpage>
          -
          <lpage>33</lpage>
          . CEUR Workshop Proceedings (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerbig</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tunjic</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Towards multi-level aware model transformations</article-title>
          . In: Hu,
          <string-name>
            <surname>Z.</surname>
          </string-name>
          , de Lara, J. (eds.)
          <source>Theory and Practice of Model Transformations. Lecture Notes in Computer Science</source>
          , vol.
          <volume>7307</volume>
          , pp.
          <fpage>208</fpage>
          -
          <lpage>223</lpage>
          . Springer Berlin Heidelberg (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kühne</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>The essence of multilevel metamodeling</article-title>
          .
          <source>In: International Conference on the Unified Modeling Language</source>
          . pp.
          <fpage>19</fpage>
          -
          <lpage>33</lpage>
          . Springer (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Atkinson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kühne</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Rearchitecting the uml infrastructure</article-title>
          .
          <source>ACM Trans. Model. Comput. Simul</source>
          .
          <volume>12</volume>
          (
          <issue>4</issue>
          ),
          <fpage>290</fpage>
          -
          <lpage>321</lpage>
          (
          <year>Oct 2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>de Carvalho</surname>
            ,
            <given-names>V.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Almeida</surname>
            ,
            <given-names>J.P.A.</given-names>
          </string-name>
          :
          <article-title>Toward a well-founded theory for multi-level conceptual modeling</article-title>
          .
          <source>Software and System Modeling</source>
          <volume>17</volume>
          (
          <issue>1</issue>
          ),
          <fpage>205</fpage>
          -
          <lpage>231</lpage>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>De Lara</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cobos</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreno-Llorena</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Extending deep meta-modelling for practical model-driven engineering</article-title>
          .
          <source>The Computer Journal</source>
          <volume>57</volume>
          (
          <issue>1</issue>
          ),
          <fpage>36</fpage>
          -
          <lpage>58</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Draheim</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Reflective constraint writing</article-title>
          .
          <source>In: Transactions on Large-Scale Data-and KnowledgeCentered Systems XXIV</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>60</lpage>
          . Springer (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gerbig</surname>
          </string-name>
          , R.:
          <article-title>Deep, seamless, multi-format, multi-notation definition and use of domain-specific languages</article-title>
          .
          <source>Verlag Dr. Hut</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Lange</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>dACL: the deep constraint and action language for static and dynamic semantic definition in Melanee</article-title>
          .
          <source>Master's thesis</source>
          , University of Mannheim (
          <year>2016</year>
          ), http://ub-madoc.bib.unimannheim.de/43490/
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Lara</surname>
            ,
            <given-names>J.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cuadrado</surname>
            ,
            <given-names>J.S.:</given-names>
          </string-name>
          <article-title>When and how to use multilevel modelling</article-title>
          .
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM) 24(2)</source>
          ,
          <volume>12</volume>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Software Engineering Group University Mannheim:
          <article-title>Melanee - the deep-modeling domain-specific language workbench (</article-title>
          <year>2018</year>
          ), http://www.melanee.org/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>