Bidirectionalization transformation based on automatic derivation of view complement functions

Bidirectional transformation is a pair of transformations: a view function and a backward transformation. A view function maps one data structure called source onto another called view. The corresponding backward transformation reflects changes in the view to the source. Its practically useful applications include replicated data synchronization, presentation-oriented editor development, tracing software development, and view updating in the database community. However, developing a bidirectional transformation is hard, because one has to give two mappings that satisfy the bidirectional properties for system consistency. In this paper, we propose 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 bidirectional properties. Our framework is based on two known approaches to bidirectionalization, namely the constant complement approach from the database community and the combinator approach from the programming language community, but it has three new features: (1) unlike the constant complement approach, it can deal with transformations between algebraic data structures rather than just tables; (2) unlike the combinator approach, in which primitive bidirectional transformations have to be explicitly given, it can derive them automatically; (3) it generates a view update checker to validate updates on views, which has not been well addressed so far. The new framework has been implemented and the experimental results show that our framework has promise.

[1]  S-C. Mu,et al.  An algebraic approach to bidirectional updating , 2004 .

[2]  Hubert Comon,et al.  Tree automata techniques and applications , 1997 .

[3]  Lambert Meertens,et al.  Designing Constraint Maintainers for User Interaction , 1998 .

[4]  Philip Wadler,et al.  Views: a way for pattern matching to cohabit with data abstraction , 1987, POPL '87.

[5]  Philip Wadler,et al.  Deforestation: Transforming Programs to Eliminate Trees , 1990, Theor. Comput. Sci..

[6]  Nicolas Spyratos,et al.  Update semantics of relational views , 1981, TODS.

[7]  Gottfried Vossen,et al.  On the computation of relational view complements , 2003, TODS.

[8]  Shin-Cheng Mu,et al.  A programmable editor for developing structured documents based on bidirectional transformations , 2004, PEPM '04.

[9]  Umeshwar Dayal,et al.  On the correct translation of update operations on relational views , 1982, TODS.

[10]  Gottfried Vossen,et al.  Monotonic complements for independent data warehouses , 2001, The VLDB Journal.

[11]  Elke A. Rundensteiner,et al.  On the Updatability of XML Views Published over Relational Data , 2004, ER.

[12]  HuZhenjiang,et al.  Bidirectionalization transformation based on automatic derivation of view complement functions , 2007 .

[13]  Stephen J. Hegner,et al.  Foundations of Canonical Update Support for Closed Database Views , 1990, ICDT.

[14]  Shin-Cheng Mu,et al.  An Algebraic Approach to Bi-directional Updating , 2004, APLAS.

[15]  Joost Engelfriet,et al.  Bottom-up and top-down tree transformations— a comparison , 1975, Mathematical systems theory.

[16]  Susan B. Davidson,et al.  From XML View Updates to Relational View Updates: old solutions to a new problem , 2004, VLDB.

[17]  Georg Gottlob,et al.  Properties and update semantics of consistent views , 1988, TODS.

[18]  Benjamin C. Pierce,et al.  Combinators for bi-directional tree transformations: a linguistic approach to the view update problem , 2005, POPL '05.