GRACE TECHNICAL REPORTS Bidirectionalizing Structural Recursion on Graphs

The bidirectional transformation problem has been attracting more and more attention in the programming language community. Despite many promising results about bidirectional transformation on linear strings or tree-like data structures, it remains as an open problem whether it is possible to design a language that can support practical development of bidirectional transformations on graphs. In this paper, we propose the first language-based (linguistic) solution towards solving this challenging problem. We approach this problem by giving a well-behaved bidirectional semantics for structural recursion (on graphs), the most essential construct in UnCAL which is the underlying graph algebra for the known UnQL graph query language. In particular, we carefully refine the existing forward evaluation of structural recursion so that it can produce useful trace information for later backward evaluation, and extending the bulk semantics of structural recursion from forward evaluation to backward evaluation. We have formally proved the well-behavedness of our bidirectional semantics, fully implemented bidirectional transformation engine for UnQL, and confirmed the effectiveness of our approach through many non-trivial examples including typical transformation in database and software engineering.

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

[2]  Dan Suciu,et al.  UnQL: a query language and algebra for semistructured data based on structural recursion , 2000, The VLDB Journal.

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

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

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

[6]  Perdita Stevens,et al.  Bidirectional model transformations in QVT: semantic issues and open questions , 2007, MODELS'07.

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

[8]  Tim Sheard,et al.  A fold for all seasons , 1993, FPCA '93.

[9]  Jennifer Widom,et al.  Object exchange across heterogeneous information sources , 1995, Proceedings of the Eleventh International Conference on Data Engineering.

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

[11]  Dongxi Liu,et al.  Bidirectional interpretation of XQuery , 2007, PEPM '07.

[12]  Frédéric Jouault,et al.  Transforming Models with ATL , 2005, MoDELS.

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

[14]  Shin-Cheng Mu,et al.  A programmable editor for developing structured documents based on bidirectional transformations , 2008, High. Order Symb. Comput..

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

[16]  R. Lämmel Coupled Software Transformations — Extended , 2022 .

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

[18]  Oscar Pastor,et al.  Model-driven architecture in practice - a software production environment based on conceptual modeling , 2007 .

[19]  Peter Buneman,et al.  Structural Recursion as a Query Language , 1992, DBPL.

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

[21]  Akihiko Takano,et al.  Tupling calculation eliminates multiple data traversals , 1997, ICFP '97.

[22]  Richard S. Bird,et al.  Algebra of programming , 1997, Prentice Hall International series in computer science.

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