<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Validated Multi-Layer Meta-modeling via Intrinsically Modeled Operations</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Gergely</forename><surname>Mezei</surname></persName>
							<email>gmezei@aut.bme.hu</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Automation and Applied Informatics</orgName>
								<orgName type="institution">Budapest University of Technology and Economics Budapest</orgName>
								<address>
									<country key="HU">Hungary</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Dániel</forename><surname>Urbán</surname></persName>
							<email>urban.daniel@aut.bme.hu</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Automation and Applied Informatics</orgName>
								<orgName type="institution">Budapest University of Technology and Economics Budapest</orgName>
								<address>
									<country key="HU">Hungary</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Zoltán</forename><surname>Theisz</surname></persName>
							<email>zoltan.theisz@huawei.com</email>
							<affiliation key="aff1">
								<orgName type="institution">Huawei Design Centre</orgName>
								<address>
									<settlement>Dublin</settlement>
									<country key="IE">Ireland</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Validated Multi-Layer Meta-modeling via Intrinsically Modeled Operations</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">26BE4EDD33CDDE022499B2472AC3F96B</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T01:15+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>validated meta-model</term>
					<term>modular constraints</term>
					<term>multilevel modeling</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>State-of-the-art meta-model based technologies are facing increasing pressure under new challenges originating from practical industrial applications. Dynamic Multi-Layer Algebra (DMLA) is a novel generic modeling approach that intends to meet these challenges by combining multi-level meta-modeling and validated instantiation. This paper describes the core ideas and techniques that have been applied to DMLA in order to create a modular model intrinsic validation of instantiation. The approach is also illustrated by a simple example.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>Meta-model based solutions have been gradually gaining acceptance in many complex industrial applications, for example in the domains of telecommunications, IoT and cloud management systems. Many of these applications rely on EMF technologies to provide facilities for type safe storage and manipulation of millions of configuration and control parameters. Nevertheless, those practical model-based solutions are seriously hampered by a legacy, that is, metamodel induced database schemas must be maintained by design-time derived toolchains such as EMF/CDO. Thus, these solutions are hardly capable of automatically coping with a massive amount of frequently changeable instance data that is mostly regulated by a slowly, but steadily evolving set of type information controlled by some product life-cycle schemes. Therefore, an integrated validation mechanism of design-and run-time models should become part of any such industrial solutions. Also, the validation mechanism shall be both modular and capable of maintaining the instance data and the meta-model schemas in sync irrespective of their abstraction levels and design or run-time nature. This practicality requirement asks for a proper multi-level metamodeling technique, which supports the validation of the instantiation step not as an afterthought, but as a direct consequence of the underlying multi-level modeling formalism.</p><p>The paper describes our proposed solution, the Dynamic Multi-Layer Algebra (DMLA), which represents a modular, operation-based, multi-level meta-modeling approach with a self-described, model intrinsic validation mechanism to automatically evaluate every potential change of its encompassing multi-level meta-model. Most of our ideas and solution techniques are the results of our hands-on experiences we have gathered by analyzing real industrial information models for several years. As a consequence, the current DMLA version (v2.1), is not a theory any longer; we have also implemented major parts of it as an executable demo, which is available for download at <ref type="bibr" target="#b0">[1]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. RELATED WORK</head><p>Practical meta-model based applications show an increased interest for both state-of-the-art and innovative modeling technologies. OMG's Meta-Object Facility (MOF) is still the dominant meta-modeling approach used for industrial applications. There are two reasons for this: 1) MOF's four layer modeling architecture is easily comprehensible; 2) the Eclipse Modeling Framework (EMF) has been maturing during the recent years. However, new practical challenges, for example, full life-cycle management of model-based instances may require full-fledged multi-level meta-modeling. These alternative techniques advocate an explicit distinction between linguistic and ontological meta-models <ref type="bibr" target="#b1">[2]</ref>  <ref type="bibr" target="#b2">[3]</ref> and can also differentiate between shallow and deep instantiation <ref type="bibr" target="#b3">[4]</ref>. Deep instantiation is more prevalent because it can effectively reduce accidental complexity in the domain models. For example, in the case of potency notion <ref type="bibr" target="#b3">[4]</ref>, every class and attribute gets a potency assigned, which indicates the remaining levels the model elements can get through before reaching their finally instantiated status. In a sense, potencies are simple non-negative numbers, but, in their effect, they represent the current level of abstraction. They are decremented at each instantiation and when they reach 0 no further instantiation is allowed. Potency notion has been successfully implemented in the EMF based tool Melanee <ref type="bibr" target="#b4">[5]</ref>. However, despite the many advantages potency notion provides, it also showcases some disadvantages due to its Orthogonal Classification Architecture (OCA) <ref type="bibr" target="#b5">[6]</ref> heritage. Namely, OCA takes it for granted that all meta-model management facilities, i.e. introducing a new attribute to a clabject, are operational on each metalevel, thus, the instantiation step is oversimplified; it is merely controlled by a single integer value. Melanee tried to diversify this naïve counting by distinguishing the concepts of durability and mutability, but the constraining of the instantiation is still only described by integer values.</p><p>An important step forward to achieve expressive multilevel meta-modeling is the Lazy Initialization Multilayered Modeling framework (LIMM, <ref type="bibr" target="#b6">[7]</ref>). This approach enables the definition of model elements at the meta level, at the application level, or one can simply declare them as data. In effect, LIMM associates flags to the model elements in order to control how they are to be used in the successive layers. An attached flag can take three values: it restricts, allows or enforces the initialization of a model element in subsequent layers. In a sense, the potency value evolves into a simple indicator of life-cycle status, which incorporates more than only checking if the value is positive when meta-level transitions of model elements are being evaluated.</p><p>DMLA aims to combine multi-level meta-modeling with dynamic model manipulation, which also necessitates nontrivial description of constraints on the instantiation steps through meta-levels. Also, DMLA incorporates a fully selfmodeled operation language, which is currently implemented as a lightweight external DSL, called DMLAScript. Hence, although on the surface, DMLA looks very similar to XMF and XModeler <ref type="bibr" target="#b7">[8]</ref>, it clearly advocates a different architectural design. Firstly, DMLA's main focus lies on the multi-level meta-modeling of data; thus, it considers operations also as data (of a particular meta-level) that can be mixed in into the rest of the meta-model. Secondly, DMLA separates the DSL representation of DMLAScript from its internal metamodeling formalism. Thirdly, DMLA's formal foundation is ASM-based, that is, it is executable by design <ref type="bibr" target="#b8">[9]</ref>. Nevertheless, both approaches rely on the concept of a selfdescribing multi-level meta-model and the core idea of having a bootstrap. However, as long as XMF's meta-model utilizes higher order functions to process syntax and to provide a basic executable language which extends OCL syntax and semantics, in DMLA, the operation language is a mere facilitator to generate meta-model elements for the bootstrap. As a result of this setup, the operations are constrained only by the other elements of the bootstrap; thus, either they can be directly interpreted by the underlying ASM formalism or they must be translated and later executed by some ASM compatible run-time platform(s).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. THE DYNAMIC MULTI-LAYER ALGEBRA</head><p>The Dynamic Multi-Layer Algebra (DMLA) is a multilevel modeling framework that consists of two major parts: (i) the Core, a formal definition of the modeling structure and its management functions; (ii) the Boostrap, an initial set of predefined modeling entities.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. The Core</head><p>The definition of the Core is based on Abstract State Machines (ASM, <ref type="bibr" target="#b8">[9]</ref>). In our case, the states of the state machine are snapshots of the models, while transitions represent modification actions between these states (e.g. deleting a node). The model is represented as a Labeled Directed Graph. Each element of the model such as nodes, edges or even attributes can have labels. These labels are used either to hold data (e.g. concrete literal value of an attribute) or to express relations (e.g. containment) between the elements. Because attributes may have complex structure, we represent them as hierarchical trees. Also, for the sake of simplicity, we will use a dual field notation for labelling of Name/Value pairs, that is, a label with the name N of the model element X is referred to as XN. We defined the following labels: (i) XID: globally unique ID of model element; (ii) XMeta: ID of the meta-model definition; (iii) XValues: values of the model element; (iv) XAttributes: ordered set of contained attributes.</p><p>Definition -The superuniverse |A| of a state A of the DMLA consists of the following universes: (i) UBool containing logical values {true/false}; (ii) UNumber containing rational numbers and a special symbol ∞ representing infinity; (iii) UString containing character sequences of finite length; (iv) UID containing all possible entity IDs; (v) UBasic containing elements from {UBool ∪ UNumber ∪ UString ∪ UID}. Additionally, all universes also contain a special element, undef, which refers to an undefined value.</p><p>The labels of the entities take their values from the following universes: (i) XID: UID, (ii) XMeta: UID, (iii) XValues: UBasic[] (contained primitive values), (vi) XAttrib: UID[] (reference to entities).</p><p>In ASMs, functions are used to rule how one can change the states. In DMLA, we rely on shared and derived functions. The current attribute configuration of a model element is represented via shared functions. The values of these functions can be modified either by the algebra itself, or by the environment of the algebra (e.g. by the user). Derived functions represent calculations which cannot change the model; they are only used to obtain and to restructure existing information. The vocabulary ∑ of DMLA is assumed to contain the following characteristic functions: (i) Meta(UID): UID, (ii) Attrib(UID, UNumber): UID, (iii) Value(UID, UNumber): UBasic. The functions are used to access the values stored in the corresponding labels. These functions are not only able to query the requested information, but they can also update it. For example, one can update the meta definition of an entity by simply assigning a value to the Meta function (although the new relation may be invalid based on the instantiation rules). Moreover, there are two other derived functions: (i) Contains(UID, UID): UBool and (ii) DeriveFrom(UID, UID): UBool, which check containment and instantiation (transitive) relations, respectively.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. The Bootstrap</head><p>In a nutshell, the Core is the formalism, while the Bootstrap is the practical foundation for DMLA. The Bootstrap is an initial set of modeling constructs and built-in model elements (e.g. built-in types) which are necessary in order to adapt the abstract modeling structure to practical applications. The main idea behind separating the Core and the Bootstrap is to improve flexibility, but also to keep the formal definition: the algebraic part is relatively fixed and structurally self-contained; its purpose is to isolate itself from the certain particularities of the various bootstraps. This design makes it possible to replace the Bootstrap; hence, one can not only customize the basic modeling entities, but one can also re-define even the semantics of what valid instantiation means. A particular bootstrap seeds the meta-modeling facilities of generic DMLA formalism, thus, one may create a Bootstrap for simulating potency notion, another one for LIMM and a third one for power type behavior, etc.</p><p>The main elements of the current bootstrap (Fig. <ref type="figure">1</ref>) can be categorized into four groups: (i) basic entities (blue boxes), (ii) built-in types (purple boxes) representing the primitive types available in DMLA, (iii) entities used in facilitating the introduction of operations in DMLA (green boxes), and (iv) validation related entities (red boxes).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>1) Basic entities</head><p>Basic entities are the enablers of multi-level metamodeling in DMLA. They create the root of the meta hierarchy all other modelled entities rely on.</p><p>The Base entity is at the very top of the hierarchy, thus all other entities are instantiated from it (directly or indirectly). Base defines that entities can have slots (defined by SlotDefs) and ConstraintContainers. Slots represent substitutable properties, which are syntactically similar to class members in OO languages. ConstraintContainers (and the contained Constraints) are used to customize the instantiation validation formulae. Moreover, Base has two other slots, reserved for validation of those formulae, which enforce the basic mechanisms of instantiation validation for multi-level modeling as explained later.</p><p>The SlotDef entity is a direct instantiation of Base. It is used to define slots. Slots can contain ConstraintContainers, which grants them the capability to attach constraints to the containment relations defined by the slot. Moreover, SlotDef overrides the validation slots inherited from Base.</p><p>The Entity entity is another direct instance of Base. Entity is used as the common meta of all primitive and user-defined types. Entity has two instances: Primitive (for primitive types) and ComplexEntity (for custom types). All domain relevant entities further instantiate ComplexEntity.</p><p>2</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>) Built-in Types</head><p>The core entities needed to represent the universes of ASM in the bootstrap are: Bool, Number and String. All these types refer to sets of values in the corresponding universe. For example, the entity Bool has been created so that it could be used to represent Boolean type values within the model. Builtin types are relied on when a slot is filled by a concrete value and that value is not a reference to another model entity, but a primitive, atomic value. All built-in types are instances of Primitive.</p><p>3) Operations All these entities representing the grammar of the operation language are defined in the AST subpart of the bootstrap under ComplexEntity. Moreover, there are also some extragrammar entities defined here that deal with ASM execution semantics of those operations by specifying for example the invocation mechanism and the handling of return values and variables. This aspect of DMLA is not discussed in this paper in detail.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>4) Validation</head><p>In DMLA, the validation logic relies on the selection of two type specific formulae based on the meta-hierarchy of the element to be validated. These two types are referred to as alpha and beta. The Base entity contains the default alpha and beta formulae, which can be constrained by the instances via their own specialized definition of valid instantiation, provided that does not contradict the standard validation rules imposed by Base. The validation mechanism is detailed later.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. VALIDATION AND OPERATIONS</head><p>In DMLA, if a model entity claims another entity as its meta the framework automatically validates if there is indeed a valid instantiation between the two. In DMLA 1.0 <ref type="bibr" target="#b10">[11]</ref> instantiation was simply validated by a fixed set of general usage formulae, but in DMLA 2.0 <ref type="bibr" target="#b9">[10]</ref>, those formulae have been modularized by introducing a bootstrap compatible representation thereof. Since these formulae can directly influence the current semantics of the instantiation, model modification has got modularized and DMLA's instantiation has become effectively self-defined by model interpretation.</p><p>While implementing DMLA 2.0, we realized that by introducing operations into our framework we could describe validation formulae and their modular extensions, the socalled constraints, by attaching operations onto certain DMLA Fig. <ref type="figure">1</ref> -Main elements of the Bootstrap entities. Herewith, automatic model validation became a core feature. By further experimenting with this feature, we were able to establish a very compact though flexible validation system.</p><p>When we introduced operations into DMLA, the first technical issue was related to their representation. It was clear that operations must be described by DMLA modeling elements only, similar to other modeling entities in the Bootstrap. We have decided to base our representation on Abstract Syntax Tree (AST), where operations consist of entities representing their roles in the grammar such as expressions or statements. For example, the conditional statement ("if") has three child attributes: a condition (expression), a true branch (statement), and an optional false branch (statement). Since all of these subparts are DMLA entities, validation rules are applied to them similarly to other entities, which created the self-describing facility of DMLA.</p><p>The second technical issue considered how and when the operations must be executed. DMLA's practicality agenda aims at a virtual machine (DMLA VM) implementation similar to Java VM in order to interpret and execute operations. We have not reached this goal yet, but we have already defined and implemented an engine capable of parsing AST related DMLA entities and of producing executable Java code from the model. Currently, the generated code can be automatically integrated into the program, which is running the Core of DMLA's ASM implementation. Since the validation logic of the bootstrap is in its entirety described in DMLA operations, its semantics can be completely and consistently updated by simply changing the model.</p><p>The last technical issue focused on the effective manipulation of the operations within DMLA. Since DMLA 2.0's formal entity syntax is 4-tuple based <ref type="bibr" target="#b9">[10]</ref>, operations must be specified accordingly. Nevertheless, we realized that it would become cumbersome to produce realistic models by only relying on the 4-tuple representation. Even simple statements and operation calls may require dozens of entities that refer to each other in a complex entanglement. Hence, we implemented a simple XText-based DSL language with concrete syntax for DMLA, the so-called DMLAScript. The language design has borrowed syntax ideas mainly from Java, but the repertoire of language constructs is limited by the needs of DMLA. Although DMLAScript looks like being part of DMLA, it is not: DMLAscript is pure syntactic sugar above DMLA's 4-tuple representation. Nevertheless, by being able to specify validation logic in DMLAScript, our productivity increased enormously. Currently, DMLAScript descriptions are parsed into 4-tuples, which are then input to DMLA ASM's standard Java code generator. In other words, code generator (semantics) and language parsing (syntax) work independently, but hand-in-hand in the current toolchain implementation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Flexible instantiation</head><p>In DMLA, the validation logic of instantiation relies on the selection of two type specific formulae based on the hierarchy of the element to be validated. We refer to these two types of formulae as alpha and beta. The alpha type formulae have been designed to validate an entity against its instances, by simply checking if the instantiation relation can be verified between the two entities (meta and instance). During validation, the framework iterates over the entities of the model, and invokes the alpha type validation on every entity and its meta entity. In contrast, the beta type formulae are in context checks: they are used when an entity has to be validated against multiple related entities, typically the attributes of an entity. For example, cardinality-like constraints shall be evaluated by beta formulae due to the underlying one-to-many relation thereof. Note that the exact validation rules provided by the alpha and beta formulas are Bootstrap-dependent, thus, it is easy to re-interpret the instantiation logic by only modifying these formulae.</p><p>Modular validation in DMLA works via compatible constraint extension. It means that entities can copy or extend the validation logic of their meta entity, which grants a very high level of flexibility without any loss of expressivity. The integration of operation ASTs into the Bootstrap allowed it to contain executable logic. Therefore, any model entities may provide their own specialized version(s) of valid instantiation, provided there is no contradiction with the standard validation rules imposed by their meta type (meta formulae are automatically validated by the framework).In parallel to validation rules, constraint specification was also modularized in order to avoid repeated definitions by introducing a generic Constraint entity. Constraints describe reusable validation logic that can be attached to any entity. It is important though to mention that the validation of constraints is special because it is not enough to validate the (Constraint) entity itself, but also the entity the constraint is referring to. For example, a range checker constraint added to a slot describing a number attribute must validate the value of the attribute, not the constraint (definition) itself. This is why we added special formulae to Constraints: the constraint-alpha and constraintbeta aimed to validate the entity containing the constraint. However, constraints are also special due to their life cycle. Thus, in order to achieve self-describing multi-level validation we needed constraints which are able to govern their own (customized) life-cycle. E.g. a constraint can decide if its reinstantiation is valid, or not. This feature is encoded in two other operations (lifecycle alpha and beta). This feature is similar to a self-managed, customizable potency notion.</p><p>In summary, the validation of the Bootstrap is based on three pairs of formulae: 1) the alpha and the beta type validation formulae, which are applied to every entity of the Bootstrap; 2) the ConstraintAlpha and the ConstraintBeta formulae, which are extensions of the container entity's alpha and beta formulae; 3) the Constraint-LifeCycleAlpha and the ConstraintLifeCycleBeta formulae, which manage and validate the DMLA correct life-cycle of Constraint instances</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Validation example</head><p>In order to showcase how DMLA and its validation framework in practice, let us take the following example: we are creating the meta model of a person that has a name which consists of one or two first names and a single last name. There is also a constraint imposed on every person, namely that a person cannot have matching first names: e.g. "Bob Smith" and "Bob Rob Smith" are valid, but "Bob Bob Smith" is not. In order to turn this specification into DMLA entities, only a few steps are required. As usual in modeling, one has to create customized composite entities to represent these concepts. In the current Bootstrap, the entities are instances of ComplexEntity, which enables having an arbitrary amount of attribute slots within.</p><p>First, the ComplexName entity is defined to encapsulate the parts of a person name. It has two slots: one for the first name(s) with [1..2] cardinality, and another one for the last name with [1..1] cardinality; both being of type String. Secondly, the Person entity is defined, which contains a single slot with [1..1] cardinality, and is an instance of ComplexName. Now, the structure having been set up, validation follows.</p><p>As explained earlier, validation in DMLA is based on two operation types: the alpha and the beta type formulae. The core validation logic is defined in the alpha and beta formulae defined inside entity Base, which is the root meta of the Bootstrap (all other entities are direct or indirect instances of Base). Since in the example the validation logic can be evaluated on a single Person instance without considering any of its context (matching name constraint is contained within Person), one only has to override the alpha formula. In order to do so, an additional operation must be attached to Person describing the customized alpha validation logic. The alpha formula (Code 1) is a simple operation, it accepts two IDs, an instance ID and a meta ID, and it returns true if the metainstance relation is valid in this regard. The logic of the operation is written in DMLAScript. When it comes to execution, the validation logic is first translated into 4-tuples, that is, into DMLA native entities, and then the tuples are compiled into Java code that represents the ASM compliant behavior in JVM carrying out the validation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. CONCLUSION AND FUTURE WORK</head><p>DMLA went through various stages during the last few years, from the pure theoretical foundation to the implementation of a highly modular and practical multi-level meta-modeling framework of industrial focus. Although the current implementation is still pre-alpha, model validation has become flexible and modular enough due to DMLA's powerful self-describing formalism. By now, we have started producing realistic bootstraps to cover industry induced use cases. Currently, our research goals aim at introducing executable semantics via operations, polishing 4-tuple generation, and streamlining the Java based execution engine for DMLA's ASM virtual machine.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="3,106.10,59.55,412.15,182.30" type="bitmap" /></figure>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0" />			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m">DMLA Website</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">When and How to Use Multilevel Modelling</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Lara</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Guerra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">S</forename><surname>Cuadrado</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal ACM Transactions on Software Engineering and Methodology</title>
		<imprint>
			<biblScope unit="volume">24</biblScope>
			<biblScope unit="issue">3</biblScope>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A systematic approach to connectors in a Multi-level Modeling Environment</title>
		<author>
			<persName><forename type="first">M</forename><surname>Gutheil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Bastian</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Atkinson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<biblScope unit="volume">5301</biblScope>
			<biblScope unit="page" from="843" to="857" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">The Essence of Multilevel Metamodeling</title>
		<author>
			<persName><forename type="first">C</forename><surname>Atkinson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Kühne</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Modeling Languages, Concepts, and Tools</title>
				<imprint>
			<date type="published" when="2001">2001</date>
			<biblScope unit="volume">2185</biblScope>
			<biblScope unit="page" from="19" to="33" />
		</imprint>
	</monogr>
	<note>The Unified Modeling Language</note>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">C</forename><surname>Atkinson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Gerbig</surname></persName>
		</author>
		<title level="m">Melanie: Multi-level modeling and ontology engineering environment</title>
				<meeting><address><addrLine>New York, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page">2</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">A Flexible Infrastructure for Multilevel Language Engineering</title>
		<author>
			<persName><forename type="first">C</forename><surname>Atkinson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Gutheil</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Kennel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">35</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="742" to="755" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">The Lazy Initialization Multilayered Modeling Framework</title>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">Raque</forename><surname>Golra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Dagnat</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICSE 2011 : 33rd International Conference on Software Engineering</title>
				<meeting><address><addrLine>Honolulu</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A Foundation for Multi-Level Modelling</title>
		<author>
			<persName><forename type="first">T</forename><surname>Clark</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">G</forename></persName>
		</author>
		<author>
			<persName><forename type="first">.-P</forename></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Henderson-Sellers</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Workshop on Multi-Level Modelling at ACM/IEEE 17th International Conference on Model Driven Engineering Languages &amp; Systems</title>
				<meeting>the Workshop on Multi-Level Modelling at ACM/IEEE 17th International Conference on Model Driven Engineering Languages &amp; Systems</meeting>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="volume">1286</biblScope>
			<biblScope unit="page" from="43" to="52" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">Abstract State Machines: A Method for High-Level System Design and Analysis</title>
		<author>
			<persName><forename type="first">E</forename><surname>Boerger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Stark</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
			<publisher>Springer-Verlag Berlin and Heidelberg GmbH &amp; Co. KG</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Formalism for Static Aspects of Dynamic Metamodeling</title>
		<author>
			<persName><forename type="first">D</forename><surname>Urbán</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Theisz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Mezei</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Periodica Polytechnica Electrical Engineering and Computer Science</title>
		<imprint>
			<biblScope unit="volume">61</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="34" to="47" />
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Towards a novel meta-modeling approach for dynamic multi-level instantiation</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Theisz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Mezei</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Automation and Applied Computer Science Workshop</title>
				<meeting><address><addrLine>Budapest, Hungary</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
