Incremental updates for efficient bidirectional transformations

A bidirectional transformation is a pair of mappings between source and view data objects, one in each direction. When the view is modified, the source is updated accordingly. The key to handling large data objects that are subject to relatively small modifications is to process the updates incrementally. Incrementality has been explored in the semi-structured settings of relational databases and graph transformations; this flexibility in structure makes it relatively easy to divide the data into separate parts that can be transformed and updated independently. The same is not true if the data is to be encoded with more general-purpose algebraic datatypes, with transformations defined as functions: dividing data into well-typed separate parts is tricky, and recursions typically create interdependencies. In this paper, we study transformations that support incremental updates, and devise a constructive process to achieve this incrementality.

[1]  Conor McBride The Derivative of a Regular Type is its Type of One-Hole Contexts , 2001 .

[2]  Benjamin C. Pierce,et al.  Quotient lenses , 2008, ICFP.

[3]  Joyce L. Vedral,et al.  Functional Programming Languages and Computer Architecture , 1989, Lecture Notes in Computer Science.

[4]  Martin Hofmann,et al.  Symmetric lenses , 2011, POPL '11.

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

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

[7]  Guy E. Blelloch,et al.  Adaptive functional programming , 2002, POPL '02.

[8]  Shin-Cheng Mu,et al.  An Injective Language for Reversible Computation , 2004, MPC.

[9]  Alcino Cunha,et al.  Generic Point-free Lenses , 2010, MPC.

[10]  Philip Wadler,et al.  Theorems for free! , 1989, FPCA.

[11]  Benjamin C. Pierce,et al.  Matching lenses: alignment and view update , 2010, ICFP '10.

[12]  Meng Wang,et al.  Combining syntactic and semantic bidirectionalization , 2010, ICFP '10.

[13]  Kazutaka Matsuda,et al.  Bidirectionalization transformation based on automatic derivation of view complement functions , 2007, ICFP '07.

[14]  Krzysztof Czarnecki,et al.  From State- to Delta-Based Bidirectional Model Transformations: the Asymmetric Case , 2011, J. Object Technol..

[15]  Perdita Stevens Bidirectional Model Transformations in QVT: Semantic Issues and Open Questions , 2007, MoDELS.

[16]  Benjamin C. Pierce,et al.  Updatable Security Views , 2009, 2009 22nd IEEE Computer Security Foundations Symposium.

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

[18]  Janis Voigtländer Bidirectionalization for free! (Pearl) , 2009, POPL '09.

[19]  Ralf Lämmel,et al.  Bidirectional Transformations: A Cross-Discipline Perspective , 2009, ICMT@TOOLS.

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

[21]  Yanhong A. Liu,et al.  Static caching for incremental computation , 1998, TOPL.

[22]  Ralf Hinze,et al.  Weaving a web , 2001, Journal of Functional Programming.

[23]  Kazutaka Matsuda,et al.  Gradual Refinement , 2010, MPC.

[24]  Ralf Hinze,et al.  Type-indexed data types , 2004, Sci. Comput. Program..

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

[26]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[27]  Holger Giese,et al.  From model transformation to incremental bidirectional model synchronization , 2009, Software & Systems Modeling.

[28]  Benjamin C. Pierce,et al.  Boomerang: resourceful lenses for string data , 2008, POPL '08.

[29]  Jennifer Widom,et al.  Tracing the lineage of view data in a warehousing environment , 2000, TODS.

[30]  Leonidas Fegaras,et al.  Propagating updates through XML views using lineage tracing , 2010, 2010 IEEE 26th International Conference on Data Engineering (ICDE 2010).

[31]  Kazutaka Matsuda,et al.  Bidirectionalizing graph transformations , 2010, ICFP '10.

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