<!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>Incremental Bidirectional Model Transformation with eMo on::IBeX</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nils Weidmann, Anthony Anjorin</string-name>
          <email>anthony.anjoring@upb.de</email>
          <email>fnils.weidmann, anthony.anjoring@upb.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gergely Varro</string-name>
          <email>gervarro@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lars Fritsche, Andy Schurr, Erhan Leblebici</string-name>
          <email>erhan.leblebicig@es.tu-darmstadt.de</email>
          <email>flars.fritsche, andy.schuerr, erhan.leblebicig@es.tu-darmstadt.de</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Independent</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Paderborn University</institution>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Real-Time Systems Lab, Technische Universitat Darmstadt</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2019</year>
      </pub-date>
      <fpage>45</fpage>
      <lpage>55</lpage>
      <abstract>
        <p>Consistency management is a crucial task in the context of modeldriven engineering, as di erent teams of domain experts must be able to work concurrently with their di erent models. Triple Graph Grammars (TGGs) are a well-known approach to consistency management with the unique advantage of being declarative enough to address multiple consistency management operations with the same speci cation, while still achieving an acceptable level of scalability for realistic application scenarios. Although there have been numerous TGG-based tools in the past, to the best of our knowledge, there exists no TGG-based tool that addresses multiple consistency management operations in a conceptually and technically uniform manner. We argue that this is the reason why TGG-based tools typically do not maintain the same level of support for more than one or two such operations. In this paper, therefore, we present eMo on::IBeX, a novel TGG-based tool that is able to handle model generation, model synchronisation, and consistency checking by applying essentially the same approach.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Copyright c by the paper's authors. Copying permitted for private and academic purposes. In: J. Cheney, H-S. Ko (eds.):
Proceedings of the Eighth International Workshop on Bidirectional Transformations (Bx 2019), Philadelphia, PA, USA, June 4,
2019, published at http://ceur-ws.org
management operations (typically model synchronisation) might outperform TGGs in term of scalability and
control over ner details of consistency restoration [KZH16], TGGs are more declarative in the sense that the
same speci cation (grammar) can be used for a wider range of consistency management operations.</p>
      <p>Although an impressive number of di erent TGG-based tools have been developed in the past (we discuss
them in Sect. 5), no TGG-based tool we are aware of provides the same level of support for more than one
or two consistency management operations. While model generation and synchronisation are often supported,
consistency checking (with or without correspondence links) typically only works for either very restricted TGGs
or only in the simplest of cases. We argue that this is because existing TGG-based tools do not support all
these operations in a conceptually and technically uniform manner, within a common framework. This makes it
di cult to maintain and optimise numerous operations, especially when adding new language features.</p>
      <p>In this tool paper, we present eMo on::IBeX, a new generation of TGG-based tooling that is able to handle
model generation, synchronisation, and consistency checking with essentially the same uniform approach. In
Sect. 2 we provide a running example and use it to present the frontend of IBeX. In Sect. 3, we give an
overview of the backend of IBeX, via a static (structural) view of its architecture, and a dynamic view of
the underlying algorithm. In Sect. 4, we compare eMo on::IBeX with its predecessor eMo on::TiE [LAS14a]
to assess the price of delegating most of the complexity of consistency management to an incremental graph
pattern matcher [LAF+17] and an ILP (Integer Linear Programming) solver [LAS17]. In Sect. 5, we compare
eight TGG-based tools (including IBeX) to highlight our latest achievements, and conclude the paper in Sect. 6.
2</p>
    </sec>
    <sec id="sec-2">
      <title>An Overview of the Frontend with a Running Example</title>
      <p>As TGGs are typically used in a Model-Driven Engineering (MDE) context, the triple graphs generated by a
TGG are typed via a triple of metamodels referred to as a (TGG) schema. Figure 1 depicts the schema for
our running example, adapted from Leblebici [Leb16], in which consistency is to be maintained between UML
and Java models. For presentation purposes, we restrict the example to cover only operations (methods) and
their parameters (arguments). To implement a schema, source (uml) and target (java) metamodels must be
provided as standard Ecore1 metamodels to be speci ed with any editor of choice. The IBeX frontend provides
a visualisation for such metamodels, as depicted to the left of Fig. 1. For the correspondence metamodel, IBeX
provides a dedicated textual concrete syntax with which the roles (source or target) of the metamodels are
assigned, and 1-1 correspondence types (OpToMethod and ParamToArg) connecting a source type with a target
type can be concisely speci ed. This is depicted to the right of Fig. 1 (#schema UMLToJava). A triple of models
that is well-typed with respect to the schema (correspondence links are denoted by dashed lines) is depicted in
Fig. 22. The operation substring demonstrates that a simple 1-1 mapping can be non-trivial; It is overloaded,
once with a single parameter beginIndex, and once with an additional parameter length.
rules that formalise this consistency relation. The rst rule OperationToMethodRule is depicted in the top-left
corner of Fig. 3. IBeX provides an editable textual concrete syntax for TGG rules, complemented with an
automatically generated read-only visualisation. A TGG rule can be applied to a given triple of models if its
context (all black elements) can be matched in the triple. A rule is applied at a given match by creating all
green (++) elements in the rule. Additional attribute conditions such as eq string, from an extensible library of
conditions implemented in Java, can be speci ed in a simple textual syntax. OperationToMethodRule requires no
context and can thus be applied to any (including the empty) triple to create a connected operation and method
with the same name. The second rule ParameterToArgumentRule, depicted to the right of Fig. 3 also in a textual
and visual concrete syntax, requires a connected operation and method as context, and creates a parameter and
argument with the same name for the operation and method, respectively. By applying OperationToMethodRule
twice and ParameterToArgumentRule thrice, these two rules can be used to generate our example triple.</p>
      <p>The main potential of the TGG approach is that the rules speci ed by a developer can be automatically
used to derive a host of di erent consistency management operations. The di erent variants of
OperationToMethodRule are depicted to the left of Fig. 3. The speci ed rule itself can be directly used for model generation
(MODELGEN), derived rules (in the visual concrete syntax) for model synchronisation (SYNC-FWD)3, consistency
checking without correspondence links (CC), and consistency checking with correspondence links (CO for check
only) are depicted in the bottom-left corner of Fig. 3. The operationalisation process is straightforward: SYNC
increases the context of MODELGEN by adding either all source (FWD) or all target elements (BWD) to its context.
CC increases this context further by adding all source and target elements, while CO takes all elements as context.
SYNC can be used to propagate a source (target) delta (a change to a model) to a corresponding target (source)
delta. CC can be used to check if a pair of source and target models is consistent or not by attempting to
create a correspondence model connecting them in a way that the triple becomes consistent. CO is similar but
only checks for consistency and requires a correspondence model. Implementing consistency management with
these derived rules in a scalable manner poses various challenges, some of which are discussed by Leblebici et
al. [LAF+17, LAS17]. For example, as an indication of the complexity of CC and CO for our running example,
note that it is impossible to decide locally if source and target elements are to be connected by a correspondence
link or not. Nave backtracking-based solutions thus explode exponentially even for small models.
3 Backward synchronisation analogously.</p>
    </sec>
    <sec id="sec-3">
      <title>A Structural and Dynamic Overview of the Back end</title>
      <p>The interface to the incremental graph pattern matcher and ILP solver are relatively generic and can be
implemented for various solvers. For the incremental pattern matcher, IBeX provides a pattern invocation network
as input, representing the patterns to be matched structured in a network (a graph with nodes as patterns and
edges as pattern invocations) to maximise reuse of partial matches. The incremental pattern matcher produces
match events as output, signalling when new matches appear (create match events), and when old matches are
violated (delete match events), as the models are manipulated. For the ILP solver, IBeX provides an ILP as
input, computed from the set of solution candidates, and an objective function that depends on the speci c
consistency management operation. The ILP solver optimises the objective function and chooses an optimal
solution from the provided candidates. Currently, IBeX primarily supports Democles [VD13] as an incremental
graph pattern matcher, and is distributed with SAT4J7 as default ILP solver. To test our interfaces, however, we
have implemented prototypical adapters for VIATRA,8 Drools,9 and Nools10 as alternative incremental pattern
matchers, as well as well-tested adapters for alternative ILP solvers including Gurobi,11 CBC,12 GLPK,13 and
MIPCL.14 Our achievements indicate that the interfaces are generic enough to enable an integration of other
incremental graph pattern matchers and ILP solvers with acceptable e ort.
4 https://www.eclipse.org/Xtext/ 5 http://plantuml.com/ 6 In the Eclipse framework, components are plug-ins that can
provide extension points and require extensions. 7 sat4j.org 8 www.eclipse.org/viatra/ 9 www.drools.org/ 10 noolsjs.com/
11 www.gurobi.com/products/gurobi-optimizer 12 projects.coin-or.org/Cbc 13 www.gnu.org/software/glpk/
14 mipcl-cpp.appspot.com/</p>
      <p>Operational</p>
      <p>Strategy</p>
      <p>COStrategy</p>
      <p>CCStrategy</p>
      <p>SYNCStrategy
GENStrategy</p>
      <p>ILP Solver
Sat4j</p>
      <p>Gurobi</p>
      <p>MODELGEN
.java
SYNC
.java
CC
.java
CO
.java</p>
      <p>The uniform consistency management algorithm in the back end comprises two main tasks that can be
con gured as required to implement various operations: the rst task is to generate a suitable pattern invocation
network from a set of TGG rules (via a pattern generator ), while the second task is to restore consistency by
applying a speci c strategy. Both interfaces are implemented for the various consistency management operations.
Note that there is no one-to-one mapping from patterns to strategies. The SYNCStrategy, for example, combines
various patterns including FWD- and BWDPatterns.</p>
      <p>Figure 5 provides a dynamic view on the uniform algorithm used for all operations as an activity diagram. The
rst action is pattern generation requiring a TGG schema and rules as input. This is followed by pattern matching
on the input triple, based on the generated pattern invocation network. This action generates a stream of match
events (create or delete), which are passed on to the match event handling action. Depending on the concrete
operation, match events can be handled by creating, deleting, or manipulating elements in the input triple. In
general, this action is non-deterministic and can be controlled by an update policy that, for example, can choose
which match event to handle from the set of all pending events. After one or numerous match events have been
handled (the handler decides when it is nished), a stop criterion (depends on the concrete operation) decides if
the current state represents all solution candidates, or if the pattern matching and match event handling process
is to be repeated. This stop criterion can range from a simple time-out for model generation to a check for
an empty set of new match events for synchronisation (indicating that every new element has been translated).
The advantage of using an incremental graph pattern matcher is that the latest match events can be produced
relatively e ciently without any extra e ort or explicit \search" for new or removed pattern matches. Note that
although, e.g., model generation appears straightforward, it still requires both create and delete match events:
the former due to matches involving the new structure created by the match event handler, the latter due to
negative application conditions that can be violated by this newly created structure.</p>
      <p>When the stop criterion is ful lled, the current set of solution candidates is passed to the nal action in the
process, ILP optimisation. This last action is optional as some of our operations (MODELGEN and SYNC) are greedy ;
a single candidate is produced and returned at this stage without any optimisation. Other operations (CC and
CO), however, compute a non-trivial set of candidates from which an ILP problem is derived. This ILP ranges
over matches as variables and constraints that ensure that a feasible (the speci c operation de nes what this
means) solution is selected. The algorithm terminates with an optimal solution that consists in general of the
output triple, and additional information if the optimal solution could not restore consistency perfectly. As an
example, this additional information comprises a source and target delta for CC, indicating parts of the source
and target models that can not be generated using the TGG (and are thus inconsistent).
4</p>
    </sec>
    <sec id="sec-4">
      <title>Evaluation: A Comparison of eMo on::IBeX with eMo on::TiE</title>
      <p>eMo on::IBeX can be viewed as a complete re-engineering of its predecessor eMo on::TiE (Tool Integration
Environment ) [LAS14a]. Both tools are similar in goal and share almost the same textual concrete syntax
and visualisation for TGG rules. The similarity ends there, however, as eMo on::TiE is a code generator that
relies on a static search plan-based graph pattern matcher: everything is mapped to Java code at compile time
including metamodels, rules, and search plans for performing pattern matching. eMo on::IBeX is, in contrast,
essentially an interpreter that relies on an incremental graph pattern matcher. An overview and description of
the eMo on tool landscape together with links to the open-source projects and documentation can be found on
the eMo on project website.15 As an interpreter, eMo on::IBeX is more exible and poses fewer restrictions than
eMo on::TiE, i.e., is more expressive with respect to the class of TGGs that can be speci ed with the tool. We
have also been able to implement more operations and better strategies for synchronisation than eMo on::TiE
ever supported. These engineering advantages come at the price of scalability with respect to runtime and
memory consumption. Interpretative pattern matching solutions tend to be factors slower than their generative
counterparts [VAS12], and incremental graph pattern matching can have a substantial memory footprint as all
matches and partial matches are stored in memory until the end of the entire process. To evaluate the \price"
for a more exible and general solution, we investigate the following research questions in this section:
(RQ1) How large is the runtime overhead of an interpretative approach such as eMo on::IBeX? How does this
overhead scale with respect to (meta)model size, pattern size, number of rules, and operations?
(RQ2) Is there a speed-up for performing incremental updates with the SYNC operation? How does this speed-up
(if there is one) scale with respect to model size (constant delta size)?</p>
      <p>We argue that a comparison of eMo on::IBeX with eMo on::TiE can be used to investigate these research
questions, as eMo on::TiE has been shown to scale reasonably well when compared to other TGG tools [HLG+13,
LAS+14b], and also when compared to other bx tools [ADJ+17]. This means that results from investigating the
research questions with respect to eMo on::TiE can be transferred to consistency management tools in general.</p>
      <p>Setup: All measurements were conducted using an Intel i7 processor with 8 GB available main memory. A
time-out of 20 minutes was used for CC and SYNC; all other operations were limited to 5 minutes. Runtime and
memory consumption were measured for ve chosen TGGs, all operations supported by both tools (MODELGEN,
SYNC, and CC), and for model sizes from 1 thousand to 1 million elements (objects and links). To restrict the
e ect of outliers, the median value of three test runs was taken. The input models were generated randomly
using MODELGEN. For measurements that require deltas, speci c edits were implemented for each metamodel. The
ve TGGs are chosen to provide high variety with respect to their metamodels and rules:</p>
      <p>CompanyToIT [AL] and ClassInhHier2DB [Anja] are both \small" TGGs consisting of four rules with about
10 elements (green and black nodes and edges) each, and metamodels with only about 12 elements (classes,
references, and attributes) each. Although minimal, the forward direction of CompanyToIT is challenging, as one
of the rules is chosen to yield many matches, of which only one is actually required and chosen. ClassInhHier2DB
uses a Negative Application Condition (a lter NAC [HEGO10]) in the forward direction to resolve a rule con ict.</p>
      <p>The remaining three TGGs are somewhat larger, consisting of 10{13 rules. MoDiscoJava2UML [Leb] (average
rule size of 24 elements) uses realistic metamodels (UML and Java) with 339 and 837 elements, respectively.
VHDLTGGCodeAdapter16 (average rule size of 15 elements) has a source metamodel (27 elements) that is weakly
typed (generic, XML-like), and a target metamodel (29 elements) that is strongly typed. This means that the
forward transformation involves a lot of attribute conditions for checking labels of generic nodes (as opposed to
relying on types). Finally, FamiliesToPersons [Anjb] (average rule size of 6 elements) has minimal metamodels
(about 10 elements) but is highly non-deterministic in the backward direction.</p>
      <p>Results: The ratio between the times needed to perform a consistency management task in eMo on::IBeX and
eMo on::TiE is plotted for each TGG. A ratio of 5 means that eMo on::TiE is 5 times faster than eMo on::IBeX
for the measurement point. If one of the tools timed out in all three test runs, no value is taken for the ratio17.
We provide all measurement data18 including memory consumption, but focus in the following on runtime.</p>
      <p>Figure 6 depicts a plot of runtime values for MODELGEN. As can be expected for a code generator vs. interpreter
comparison [VAS12], eMo on::TiE clearly scales better than eMo on::IBeX for all TGGs. Starting with factor
2 for 1000 elements, the ratio increases up to 20 for one million elements for most TGGs. As the di erences are
particularly pronounced for larger TGGs and larger rules, the overhead and increasing factor is probably related
to the fact that IBeX stores all matches until the end of the entire model generation process. As a consequence,
the number of potential rule applications for the model generator, and the overhead for monitoring all matches,
increases steadily. All subsequent plots use the same legend and axis labels as Fig. 6 so they are not repeated.</p>
      <p>Figures 7 and 8 depict plots of runtime for unidirectional batch transformations, i.e., source (target) models
of increasing size are transformed to target (source) models from scratch. eMo on::TiE is only faster by a
factor less than 8 for MoDiscoJava2UML and ClassInhHier2DB, actually reducing steadily up to 100k before
15 www.emoflon.org 16 http://bit.ly/2tkBgYi
18 http://bit.ly/2GnlBjB
17 In our experiments, either IBeX or both tools timed out.
increasing again (probably due to an increase in memory consumption). For the TGGs that are challenging in
the forward direction, however, eMo on::IBeX is much less robust and does not scale in comparison to TiE.
The challenge with VHDLTGGCodeAdapter was handling the weakly typed source models, while CompanyToIT
yields a lot of matches that are unnecessary. Both these points have to be taken into account and avoided
as much as possible if IBeX is expected to scale. Finally, while IBeX scales well for FamiliesToPersons up
to about 10k, the factor then starts rising to more than 40 for larger models. This might be due to the fact
that FamiliesToPersons uses very simple metamodels that are actually just lists of lists and a at list. Such
simple models are not well-suited for the heuristics used for graph pattern matchers and probably yield lots of
useless partial matches. The situation for the backward direction is similar: IBeX scales reasonably well for
MoDiscoJava2UML and ClassInhHier2DB again, even eventually outperforming TiE for ClassInhHier2DB and
larger models. CompanyToIT and VHDLTGGCodeAdapter are both easier in the backward direction, and IBeX is
able to produce results for larger models, with a factor of about 30{40 for the former, and about 20 for the
latter. Interestingly, TiE appears to explode for VHDLTGGCodeAdapter for larger models, with IBeX performing
better and better in comparison. Recall that FamiliesToPersons is highly non-deterministic in the backward
direction: this explains why IBeX does not scale at all { a lot of matches are collected and only one is chosen.</p>
      <p>The runtime behaviour for CC depends substantially on the particular TGG (cf. Fig. 9). While a factor of
100 is already reached for only 3k elements in the case of CompanyToIT and FamiliesToPersons, eMo on::IBeX
actually outperforms TiE for ClassInhHier2DB and VHDLTGGCodeAdapter for 8k elements. Both of the tools
perform equally well for MoDiscoJava2UML. In general, CC is a much more di cult task than all other operations.
Our results indicate that while IBeX can actually be advantageous for \larger" models, it is also much more
susceptible to non-determinism and cases where numerous partial matches can be unnecessarily collected (only
to be eventually discarded). Finally, Fig. 10 for forward synchronisation (backward was comparable) indicates
the factor does not depend signi cantly on model size. For most TGGs, IBeX is slower by a steady factor of 5{10.
While IBeX has again di culties with FamiliesToPersons, its overhead steadily reduces for MoDiscoJava2UML.</p>
      <p>Let us conclude by reviewing our research questions. For graph-like, strongly typed and highly connected
models such as UML and Java models, our results indicate that one can expect an overhead of about factor 10
with IBeX. This seems to be more for MODELGEN, and less for CC. For tree-like models, weakly typed models,
and patterns that yield many matches that are eventually discarded, however, IBeX appears to be signi cantly
slower (factor increasing with model size) especially in batch scenarios. These results are consistent with both
predications of code generators vs. interpreters [VAS12], and expectations for incremental graph pattern
matchers [VD13]. On a nal note, recall that only operations that are currently implemented in both tools could be
compared, i.e., the CO operation had to be excluded. We also had to restrict the comparison to TGGs that can
be handled by TiE, avoiding examples that only work for IBeX. Finally, to simplify the interpretation of our
results, we also omitted recent improvements, e.g., making our SYNC strategy more intelligent, which could only
be implemented by exploiting an incremental pattern matcher with IBeX.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <p>In the last 20 years, several implementations of the TGG approach have been proposed. Table 1 summarizes
the supported operations of seven TGG-based tools, including IBeX and TiE. TiE, the predecessor of IBeX,
supports both unidirectional model transformation and model synchronization, as well as consistency checking.
Each operation is, however, essentially a completely separate implementation making it increasingly costly to
maintain and extend the tool. MoTE is a TGG-based tool with a strong focus on scalability. While it supports
numerous operations, it also poses strong restrictions on the class of supported TGGs. These restrictions simplify
especially SYNC and CC but also severely limit expressiveness. HenshinTGG supposedly supports all operations
in our table, but as far as we can tell from simple experiments, the choice of rules for each operation must be
deterministic, severely restricting the class of supported TGGs. The TGG Interpreter directly interprets TGG
rules and only supports both model transformation and synchronisation. Existing surveys of TGG tools indicate,
however, that the TGG interpreter does not scale compared to MoTE and eMo on::TiE [HLG+13, LAS+14b].
Fujaba provided one of the rst implementations of the TGG approach and { as far as we can assess { already
supported both model transformation and synchronisation. EMorF interprets TGG rules and claims to support
model transformation, synchronisation, and consistency checking. As both tools are no longer available, however,
it is di cult to assess under which assumptions CC actually works. Finally, the UML tool USE was extended
to support consistency management based on TGGs by translating TGG rules into OCL constraints. Speci ed
TGG rules can be operationalised for model transformation, synchronisation and consistency checking. As far
as we can tell, however, the application of these rules remains a manual task.</p>
      <p>TGG Tool
eMo on::TiE [LAS14a]
MoTE [HLG+11, GHL14]
HenshinTGG [EHGB12]
TGG Interpreter [GK10]
Fujaba [GW06, BGN+04]
EMorF [KW12]
use4tgg [DG08]
eMo on::IBeX
In this paper we presented eMo on::IBeX, a novel TGG-based consistency management tool that supports
numerous consistency management operations including unidirectional forward and backward transformation,
model synchronization, and consistency checking with and without correspondence links. To achieve this we
apply a conceptually and technically uniform interpretative algorithm, which leverages and suitably combines an
incremental graph pattern matcher and an ILP solver. While our evaluation shows that IBeX is multiple factors
slower than its predecessor TiE in many cases, we believe that it is worth the price to simplify the implementation
of further operations and the general maintenance of the tool and its support for all operations. As future work
we plan to further exploit IBeX to add support for tolerance [Ste14] to all our operations, and implement model
integration, which requires re ective updates [DKL18], con ict detection and resolution, and user interaction.
[Anja]</p>
      <p>Anthony Anjorin. FamilyToPersons (B) v0.1 in Bx Examples Repository. http://bx-community.
wikidot.com/examples:familytopersons. Date retrieved: 12 Feb 2019.</p>
      <p>Anthony Anjorin. An Introduction to Triple Graph Grammars as an Implementation of the
DeltaLens Framework. In Jeremy Gibbons and Perdita Stevens, editors, Bidirectional Transformations
- International Summer School, Oxford, UK, July 25-29, 2016, Tutorial Lectures, volume 9715 of
Lecture Notes in Computer Science, pages 29{72. Springer, 2016.
[BGN+04] Sven Burmester, Holger Giese, Jorg Niere, Matthias Tichy, Jorg P. Wadsack, Robert Wagner, Lothar
Wendehals, and Albert Zundorf. Tool Integration at the Meta-model Level: The Fujaba Approach.</p>
      <p>STTT, 6(3):203{218, 2004.
[GK10]
[GW06]</p>
      <p>Holger Giese, Stephan Hildebrandt, and Leen Lambers. Bridging the Gap between Formal
Semantics and Implementation of Triple Graph Grammars - Ensuring Conformance of Relational Model
Transformation Speci cations and Implementations. Software and System Modeling, 13(1):273{299,
2014.</p>
      <p>Joel Greenyer and Ekkart Kindler. Comparing Relational Model Transformation Technologies:
Implementing Query/View/Transformation with Triple Graph Grammars. Software and System
Modeling, 9(1):21{46, 2010.</p>
      <p>Holger Giese and Robert Wagner. Incremental Model Synchronization with Triple Graph Grammars.
In Oscar Nierstrasz, Jon Whittle, David Harel, and Gianna Reggio, editors, Model Driven
Engineering Languages and Systems, 9th International Conference, MoDELS 2006, Genova, Italy, October
1-6, 2006, Proceedings, volume 4199 of Lecture Notes in Computer Science, pages 543{557. Springer,
2006.
[KW12]
[KZH16]</p>
      <p>Lilija Klassen and Robert Wagner. EMorF - A Tool for Model Transformations. ECEASST, 54,
2012.</p>
      <p>Hsiang-Shang Ko, Tao Zan, and Zhenjiang Hu. BiGUL: A Formally Veri ed Core Language for
Putback-based Bidirectional Programming. In Martin Erwig and Tiark Rompf, editors, Proceedings
of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM
2016, St. Petersburg, FL, USA, January 20 - 22, 2016, pages 61{72. ACM, 2016.
[LAS14a]
[LAS17]</p>
      <p>Erhan Leblebici, Anthony Anjorin, and Andy Schurr. Inter-model Consistency Checking Using Triple
Graph Grammars and Linear Optimization Techniques. In Marieke Huisman and Julia Rubin,
editors, Fundamental Approaches to Software Engineering - 20th International Conference, FASE
2017, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS
2017, Uppsala, Sweden, April 22-29, 2017, Proceedings, volume 10202 of Lecture Notes in Computer
Science, pages 191{207. Springer, 2017.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [ADJ+17]
          <string-name>
            <surname>Anthony</surname>
            <given-names>Anjorin</given-names>
          </string-name>
          , Zinovy Diskin, Frederic Jouault,
          <string-name>
            <surname>Hsiang-Shang</surname>
            <given-names>Ko</given-names>
          </string-name>
          , Erhan Leblebici, and
          <string-name>
            <given-names>Bernhard</given-names>
            <surname>Westfechtel</surname>
          </string-name>
          .
          <article-title>Benchmarx reloaded: A Practical Benchmark Framework for Bidirectional Transformations</article-title>
          . In Romina Eramo and Michael Johnson, editors,
          <source>Proceedings of the 6th International Workshop on Bidirectional Transformations co-located with The European Joint Conferences on Theory and Practice of Software, BX@ETAPS</source>
          <year>2017</year>
          , Uppsala, Sweden, April
          <volume>29</volume>
          ,
          <year>2017</year>
          ., volume
          <volume>1827</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <volume>15</volume>
          {
          <fpage>30</fpage>
          . CEUR-WS.org,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>Anthony</given-names>
            <surname>Anjorin</surname>
          </string-name>
          and
          <string-name>
            <given-names>Marius</given-names>
            <surname>Lauder</surname>
          </string-name>
          .
          <source>CompanyToIT v0</source>
          .
          <article-title>1 in Bx Examples Repository</article-title>
          . http: //bx-community.wikidot.com/examples:companytoit.
          <source>Date retrieved: 12 Feb</source>
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [CREP10] Antonio Cicchetti, Davide Di Ruscio, Romina Eramo, and
          <string-name>
            <given-names>Alfonso</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          .
          <article-title>JTL: A Bidirectional and Change Propagating Transformation Language</article-title>
          . In Brian A.
          <string-name>
            <surname>Malloy</surname>
          </string-name>
          , Ste en Staab, and Mark van den Brand, editors,
          <source>Software Language</source>
          Engineering - Third International Conference, SLE 2010, Eindhoven,
          <source>The Netherlands, October 12-13</source>
          ,
          <year>2010</year>
          , Revised Selected Papers, volume
          <volume>6563</volume>
          of Lecture Notes in Computer Science, pages
          <volume>183</volume>
          {
          <fpage>202</fpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Duc-Hanh Dang</surname>
            and
            <given-names>Martin</given-names>
          </string-name>
          <string-name>
            <surname>Gogolla</surname>
          </string-name>
          .
          <article-title>On Integrating OCL and Triple Graph Grammars</article-title>
          . In Michel R. V. Chaudron, editor,
          <source>Models in Software Engineering, Workshops and Symposia at MODELS</source>
          <year>2008</year>
          , Toulouse, France,
          <source>September 28 - October 3</source>
          ,
          <year>2008</year>
          .
          <source>Reports and Revised Selected Papers</source>
          , volume
          <volume>5421</volume>
          of Lecture Notes in Computer Science, pages
          <volume>124</volume>
          {
          <fpage>137</fpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Zinovy</given-names>
            <surname>Diskin</surname>
          </string-name>
          , Harald Konig, and
          <string-name>
            <given-names>Mark</given-names>
            <surname>Lawford</surname>
          </string-name>
          .
          <article-title>Multiple Model Synchronization with Multiary Delta Lenses</article-title>
          . In Alessandra Russo and Andy Schurr, editors, Fundamental Approaches to Software Engineering, 21st International Conference, FASE 2018,
          <article-title>Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018</article-title>
          , Thessaloniki, Greece,
          <source>April 14-20</source>
          ,
          <year>2018</year>
          , Proceedings., volume
          <volume>10802</volume>
          of Lecture Notes in Computer Science, pages
          <volume>21</volume>
          {
          <fpage>37</fpage>
          . Springer,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [DXC+11]
          <string-name>
            <surname>Zinovy</surname>
            <given-names>Diskin</given-names>
          </string-name>
          , Yingfei Xiong, Krzysztof Czarnecki, Hartmut Ehrig, Frank Hermann, and
          <string-name>
            <given-names>Fernando</given-names>
            <surname>Orejas</surname>
          </string-name>
          .
          <article-title>From State- to Delta-Based Bidirectional Model Transformations: The Symmetric Case</article-title>
          . In Jon Whittle, Tony Clark, and Thomas Kuhne, editors,
          <source>Model Driven Engineering Languages and Systems</source>
          , 14th International Conference, MODELS 2011, Wellington, New Zealand,
          <source>October 16-21</source>
          ,
          <year>2011</year>
          . Proceedings, volume
          <volume>6981</volume>
          of Lecture Notes in Computer Science, pages
          <volume>304</volume>
          {
          <fpage>318</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [EEPT06]
          <string-name>
            <given-names>Hartmut</given-names>
            <surname>Ehrig</surname>
          </string-name>
          , Karsten Ehrig, Ulrike Prange, and
          <string-name>
            <given-names>Gabriele</given-names>
            <surname>Taentzer</surname>
          </string-name>
          .
          <source>Fundamentals of Algebraic Graph Transformation. Monographs in Theoretical Computer Science. An EATCS Series</source>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [EHGB12]
          <string-name>
            <given-names>Claudia</given-names>
            <surname>Ermel</surname>
          </string-name>
          , Frank Hermann, Jurgen Gall, and
          <string-name>
            <given-names>Daniel</given-names>
            <surname>Binanzer</surname>
          </string-name>
          .
          <source>Visual Modeling and Analysis of EMF Model Transformations Based on Triple Graph Grammars. ECEASST</source>
          ,
          <volume>54</volume>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [HEGO10] Frank Hermann, Hartmut Ehrig, Ulrike Golas, and
          <string-name>
            <given-names>Fernando</given-names>
            <surname>Orejas</surname>
          </string-name>
          .
          <article-title>E cient Analysis and Execution of Correct and Complete Model Transformations Based on Triple Graph Grammars</article-title>
          . In Jean Bezivin, Richard Mark Soley, and Antonio Vallecillo, editors,
          <source>Proceedings of the First International Workshop on Model-Driven Interoperability, MDI@MoDELS</source>
          <year>2010</year>
          , Oslo, Norway, October 3-
          <issue>5</issue>
          ,
          <year>2010</year>
          , pages
          <fpage>22</fpage>
          {
          <fpage>31</fpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [HLG+11]
          <string-name>
            <surname>Stephan</surname>
            <given-names>Hildebrandt</given-names>
          </string-name>
          , Leen Lambers, Holger Giese, Dominic Petrick, and
          <string-name>
            <given-names>Ingo</given-names>
            <surname>Richter</surname>
          </string-name>
          .
          <article-title>Automatic Conformance Testing of Optimized Triple Graph Grammar Implementations</article-title>
          . In Andy Schurr, Daniel Varro, and Gergely Varro, editors,
          <source>Applications of Graph Transformations with Industrial Relevance - 4th International Symposium, AGTIVE</source>
          <year>2011</year>
          , Budapest, Hungary, October 4-
          <issue>7</issue>
          ,
          <year>2011</year>
          ,
          <string-name>
            <given-names>Revised</given-names>
            <surname>Selected</surname>
          </string-name>
          and Invited Papers, volume
          <volume>7233</volume>
          of Lecture Notes in Computer Science, pages
          <volume>238</volume>
          {
          <fpage>253</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [HLG+13]
          <string-name>
            <surname>Stephan</surname>
            <given-names>Hildebrandt</given-names>
          </string-name>
          , Leen Lambers, Holger Giese, Jan Rieke, Joel Greenyer, Wilhelm Schafer, Marius Lauder, Anthony Anjorin, and
          <article-title>Andy Schurr. A Survey of Triple Graph Grammar Tools</article-title>
          . ECEASST,
          <volume>57</volume>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [LAF+17]
          <string-name>
            <surname>Erhan</surname>
            <given-names>Leblebici</given-names>
          </string-name>
          , Anthony Anjorin, Lars Fritsche, Gergely Varro, and
          <article-title>Andy Schurr. Leveraging Incremental Pattern Matching Techniques for Model Synchronisation</article-title>
          . In Juan de Lara and Detlef Plump, editors,
          <source>Graph Transformation - 10th International Conference, ICGT</source>
          <year>2017</year>
          ,
          <article-title>Held as Part of STAF 2017</article-title>
          , Marburg, Germany,
          <source>July 18-19</source>
          ,
          <year>2017</year>
          , Proceedings, volume
          <volume>10373</volume>
          of Lecture Notes in Computer Science, pages
          <volume>179</volume>
          {
          <fpage>195</fpage>
          . Springer,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <given-names>Erhan</given-names>
            <surname>Leblebici</surname>
          </string-name>
          , Anthony Anjorin, and
          <article-title>Andy Schurr. Developing emo on with emo on</article-title>
          . In Davide Di Ruscio and Daniel Varro, editors,
          <source>Theory and Practice of Model Transformations - 7th International Conference, ICMT</source>
          <year>2014</year>
          ,
          <article-title>Held as Part of STAF 2014</article-title>
          , York, UK,
          <source>July 21-22</source>
          ,
          <year>2014</year>
          . Proceedings, volume
          <volume>8568</volume>
          of Lecture Notes in Computer Science, pages
          <volume>138</volume>
          {
          <fpage>145</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <source>[LAS+14b] Erhan Leblebici</source>
          , Anthony Anjorin, Andy Schurr, Stephan Hildebrandt, Jan Rieke, and
          <string-name>
            <given-names>Joel</given-names>
            <surname>Greenyer</surname>
          </string-name>
          .
          <article-title>A Comparison of Incremental Triple Graph Grammar Tools</article-title>
          . ECEASST,
          <volume>67</volume>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [Leb16]
          <article-title>[MGC13] [Sch94] [Ste14] [VAS12] [VD13] Erhan Leblebici. UML Operations to Java Operations v0.1 in Bx Examples Repository</article-title>
          . http: //bx-community.wikidot.com/examples:umloperationstojavaoperations.
          <source>Date retrieved: 12 Feb</source>
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <given-names>Erhan</given-names>
            <surname>Leblebici</surname>
          </string-name>
          .
          <article-title>Towards a Graph Grammar-Based Approach to Inter-Model Consistency Checks with Traceability Support</article-title>
          . In Anthony Anjorin and Jeremy Gibbons, editors,
          <source>Proceedings of the 5th International Workshop on Bidirectional Transformations, Bx</source>
          <year>2016</year>
          ,
          <article-title>co-located with The European Joint Conferences on Theory and Practice of Software, ETAPS 2016</article-title>
          , Eindhoven,
          <source>The Netherlands, April</source>
          <volume>8</volume>
          ,
          <year>2016</year>
          ., volume
          <volume>1571</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <volume>35</volume>
          {
          <fpage>39</fpage>
          . CEUR-WS.org,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <given-names>In</given-names>
            <surname>Ewen</surname>
          </string-name>
          <string-name>
            <surname>Denney</surname>
          </string-name>
          ,
          <article-title>Tev k Bultan,</article-title>
          and Andreas Zeller, editors,
          <source>2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE</source>
          <year>2013</year>
          , Silicon Valley, CA, USA, November
          <volume>11</volume>
          -
          <issue>15</issue>
          ,
          <year>2013</year>
          , pages
          <fpage>694</fpage>
          {
          <fpage>697</fpage>
          . IEEE,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <string-name>
            <given-names>Andy</given-names>
            <surname>Schu</surname>
          </string-name>
          <article-title>rr. Speci cation of Graph Translators with Triple Graph Grammars</article-title>
          . In Ernst W. Mayr, Gunther Schmidt, and Gottfried Tinhofer, editors,
          <source>Graph-Theoretic Concepts in Computer Science</source>
          , 20th International Workshop, WG '94,
          <string-name>
            <surname>Herrsching</surname>
          </string-name>
          , Germany, June 16-18,
          <year>1994</year>
          , Proceedings, volume
          <volume>903</volume>
          of Lecture Notes in Computer Science, pages
          <volume>151</volume>
          {
          <fpage>163</fpage>
          . Springer,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <string-name>
            <given-names>Perdita</given-names>
            <surname>Stevens</surname>
          </string-name>
          .
          <article-title>Bidirectionally tolerating inconsistency: Partial transformations</article-title>
          .
          <source>In Stefania Gnesi and Arend Rensink</source>
          , editors, Fundamental Approaches to Software Engineering - 17th International Conference, FASE 2014,
          <article-title>Held as Part of the European Joint Conferences on Theory and Practice of Software</article-title>
          ,
          <source>ETAPS</source>
          <year>2014</year>
          , Grenoble, France, April 5-
          <issue>13</issue>
          ,
          <year>2014</year>
          , Proceedings, volume
          <volume>8411</volume>
          of Lecture Notes in Computer Science, pages
          <volume>32</volume>
          {
          <fpage>46</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <string-name>
            <given-names>Gergely</given-names>
            <surname>Varro</surname>
          </string-name>
          , Anthony Anjorin, and
          <article-title>Andy Schurr. Uni cation of Compiled and Interpreter-Based Pattern Matching Techniques</article-title>
          . In Antonio Vallecillo,
          <string-name>
            <surname>Juha-Pekka</surname>
            <given-names>Tolvanen</given-names>
          </string-name>
          , Ekkart Kindler, Harald Storrle, and Dimitrios S. Kolovos, editors,
          <source>Modelling Foundations and Applications - 8th European Conference, ECMFA</source>
          <year>2012</year>
          ,
          <article-title>Kgs</article-title>
          . Lyngby, Denmark,
          <source>July 2-5</source>
          ,
          <year>2012</year>
          . Proceedings, volume
          <volume>7349</volume>
          of Lecture Notes in Computer Science, pages
          <volume>368</volume>
          {
          <fpage>383</fpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          <string-name>
            <given-names>Gergely</given-names>
            <surname>Varro</surname>
          </string-name>
          and
          <string-name>
            <given-names>Frederik</given-names>
            <surname>Deckwerth</surname>
          </string-name>
          .
          <article-title>A Rete Network Construction Algorithm for Incremental Pattern Matching</article-title>
          . In Keith Duddy and Gerti Kappel, editors,
          <source>Theory and Practice of Model Transformations - 6th International Conference, ICMT 2013</source>
          , Budapest, Hungary, June 18-19,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <string-name>
            <surname>Proceedings</surname>
          </string-name>
          , volume
          <volume>7909</volume>
          of Lecture Notes in Computer Science, pages
          <volume>125</volume>
          {
          <fpage>140</fpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>