Bidirectionalizing graph transformations

  title={Bidirectionalizing graph transformations},
  author={Soichiro Hidaka and Zhenjiang Hu and Kazuhiro Inaba and Hiroyuki Kato and Kazutaka Matsuda and Keisuke Nakano},
  booktitle={ACM SIGPLAN International Conference on Functional Programming},
Bidirectional transformations provide a novel mechanism for synchronizing and maintaining the consistency of information between input and output. [] Key Method We carefully refine the existing forward evaluation of structural recursion so that it can produce sufficient trace information for later backward evaluation.

Figures from this paper

Bidirectional Transformation on Ordered Graphs

This paper shows that (the first-order subset of) λFG can be bidirectionalized by a three-stage procedure, and adopts a classical notion of -edges to represent the unobservable short cuts between nodes, which are fully utilized in bid Directionalization to keep the original shape of the input graphs.

Practical aspects of bidirectional graph transformations

This talk shall briefly explain the solution to the problem of bidirectional graph transformation and demonstrate some applications in bidirectionals model-driven software development, and focus on discussing practical issues in manipulating various graphs, determining backward transformation, and improving efficiency and scalability.

Guaranteeing Free-edits to Bidirectional Graph Transformations

This work presents a free-edit analysis to establish formal bidirectional properties to support free-edits (eg: deletions, insertions, in-place updates etc.) to a graph and proves the analysis sound with respect to the in- place update semantics and shows that valid free-Edits constitute a well-behaved bid Directional transformation.

Towards Bidirectional Transformations on Ordered Graphs

It is shown that the bulk semantics of structural recursion can be extended to ordered graphs, and that a clear bidirectional semantics of a new graph transformation language can be defined.

Formalizing semantic bidirectionalization and extensions with dependent types

Incremental updates for efficient bidirectional transformations

This paper studies transformations that support incremental updates, and devise a constructive process to achieve this incrementality.

An expressive bidirectional transformation language for XQuery view update (Special issue : Advanced Programming Techniques for Construction of Robust, Generic and Evolutionary Programs)

This paper presents an expressive bidirectional XML transformation language and uses it to address the problem of updating XML data through materialized XQuery views and proposes the extended round-tripping property for characterizing the good behavior of bid Directional transformations.

Graph-transformation verification using monadic second-order logic

This paper presents a new approach to solving the problem of verification of graph transformation, by proposing a new static verification algorithm for the Core UnCAL, the query algebra for

A Trace-based Approach to Increased Comprehensibility and Predictability of Bidirectional Graph Transformations ∗

A well-defined tracing mechanism between source, transformation and target, as well as edge classification mechanism on the target artifacts, in a compositional framework of bidirectional graph transformation are proposed.

Model synchronization based on triple graph grammars: correctness, completeness and invertibility

This paper provides a formal synchronization framework with bidirectional update propagation operations generated from a given TGG, which specifies the language of all consistently integrated source and target models.



Bidirectionalization transformation based on automatic derivation of view complement functions

This paper proposes a new framework for bidirectionalization that can automatically generate a useful backward transformation from a view function while guaranteeing that the two transformations satisfy the biddirectional properties.

UnQL: a query language and algebra for semistructured data based on structural recursion

This paper describes a simple and powerful query language based on pattern matching and shows that it can be expressed using structural recursion, which is introduced as a top-down, recursive function, similar to the way XSL is defined on XML trees.

Combinators for bi-directional tree transformations: a linguistic approach to the view update problem

We propose a novel approach to the well-known view update problem for the case of tree-structured data: a domain-specific programming language in which all expressions denote bi-directional

Propagating updates through XML views using lineage tracing

  • L. Fegaras
  • Computer Science
    2010 IEEE 26th International Conference on Data Engineering (ICDE 2010)
  • 2010
This work addresses the problem of updating XML views over relational data by translating view updates expressed in the XQuery update facility to embedded SQL updates by using lineage tracing to propagate the necessary information about the origins of updatable data pieces through the query and the view code.

15 Years of Triple Graph Grammars

A more precise formalization of compulsory properties of the translation of triple graph grammars into forward and backward graph translation functions is given and an interpretation and implementation of negative application conditions is derived that does not destroy the benefits of the original approach.

Towards a compositional approach to model transformation for software development

This paper reports the first attempt at a compositional framework for graph-based model transformations using the graph querying language UnQL, which supports systematic development of model transformation "in the large" with the advantage that it can automatically remove inefficiencies arising from their composition.

Structural Recursion as a Query Language

A programming paradigm that tries to get close to both the semantic simplicity of relational algebra, and the expressive power of unrestricted programming languages, and it is expected that lower-level programming, and therefore better optimization will be feasible.

Bidirectional model transformations in QVT: semantic issues and open questions

It is shown that any transformation language sufficient to the needs of model-driven development would have to be able to express non-bijective transformations.

Bidirectional interpretation of XQuery

A bidirectional interpretation of XQuery to address the problem of updating XML data through materialized XQuery views is given, which confirms the practicability of this approach and applies to some XQuery use cases from a W3C draft.

Relational lenses: a language for updatable views

The approach is to define a bi-directional query language, in which every expression can be read bot(from left to right) as a view definition and (from right to left) as an update policy.