ABSTRACT
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.
- F. Bancilhon and N. Spyratos. Update semantics of relational views. ACM T. Database Syst., 6(4):557--575, 1981. Google Scholar
Digital Library
- V. P. Braganholo, S. B. Davidson, and C. A. Heuser. From XML view updates to relational view updates: old solutions to a new problem. In VLDB '04: International Conference on Very Large Data Bases, pages 276--287, 2004. Google Scholar
Digital Library
- H. Comon, M. Dauchet, R. Gilleron, F. Jacquemard, D. Lugiez, S. Tison, and M. Tommasi. Tree automata techniques and applications. http://www.grappa.univ-lille3.fr/tata, 1997.Google Scholar
- S. S. Cosmadakis and C. H. Papadimitriou. Updates of relational views. J. ACM, 31(4):742--760, 1984. Google Scholar
Digital Library
- U. Dayal and P. A. Bernstein. On the correct translation of update operations on relational views. ACM T. Database Syst., 7(3):381--416, 1982. Google Scholar
Digital Library
- J. Engelfriet. Bottom-up and Top-down Tree Transformations. A Comparison. Math. Syst. Theory, 9(3):198--231, 1975.Google Scholar
Cross Ref
- J. N. Foster, M. B. Greenwald, J. T. Moore, B. C. Pierce, and A. Schmitt. Combinators for bi-directional tree transformations: a linguistic approach to the view update problem. In POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 233--246, 2005. Google Scholar
Digital Library
- G. Gottlob, P. Paolini, and R. Zicari. Properties and update semantics of consistent views. ACM T. Database Syst., 13(4):486--524, 1988. Google Scholar
Digital Library
- S. J. Hegner. Foundations of canonical update support for closed database views. In ICDT '90: Proceedings of the Third International Conference on Database Theory, pages 422--436, 1990. Google Scholar
Digital Library
- Z. Hu, S.-C. Mu, and M. Takeichi. A programmable editor for developing structured documents based on bidirectional transformations. In PEPM '04: Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pages 178--189, 2004. Google Scholar
Digital Library
- R. Lämmel. Coupled software transformations (extended abstract). In First International Workshop on Software Evolution Transformations, pages 31--35, 2004.Google Scholar
- D. Laurent, J. Lechtenbörger, N. Spyratos, and G. Vossen. Monotonic complements for independent data warehouses. VLDB J., 10(4):295--315, 2001. Google Scholar
Digital Library
- J. Lechtenbörger and G. Vossen. On the computation of relational view complements. ACM T. Database Syst., 28(2):175--208, 2003. Google Scholar
Digital Library
- K. Matsuda, Z. Hu, K. Nakano, M. Hamana, and M. Takeichi. Bidirectionalization transformation based on automatic derivation of view complement function. Technical Report 2007-44, Graduate School of Information Science and Technology, the University of Tokyo, 2007.Google Scholar
Digital Library
- L. Meertens. Designing constraint maintainers for user interaction. http://www.cwi.nl/~lambert, 1998.Google Scholar
- S.-C. Mu, Z. Hu, and M. Takeichi. An algebraic approach to bidirectional updating. In APLAS '04: Second ASIAN Symposium on Programming Languages and Systems, pages 2--18, 2004.Google Scholar
Cross Ref
- P. Wadler. Views: a way for pattern matching to cohabit with data abstraction. In POPL '87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 307--313, 1987. Google Scholar
Digital Library
- P. Wadler. Deforestation: Transforming programs to eliminate trees. Theor. Comput. Sci., 73(2):231--248, 1990. Google Scholar
Digital Library
- L. Wang and E. A. Rundensteiner. On the updatability of XML views published over relational data. In ER 2004: International Conference on Conceptual Modeling, pages 795--809, 2004.Google Scholar
Cross Ref
Index Terms
Bidirectionalization transformation based on automatic derivation of view complement functions
Recommendations
Bidirectionalization transformation based on automatic derivation of view complement functions
Proceedings of the ICFP '07 conferenceBidirectional 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 ...
"Bidirectionalization for free" for monomorphic 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 with respect to some laws. Over the years, a lot of effort has been made to ...
Bidirectionalization for free with runtime recording: or, a light-weight approach to the view-update problem
PPDP '13: Proceedings of the 15th Symposium on Principles and Practice of Declarative ProgrammingA 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 with respect to some laws. Over the years, a lot of effort has been made to ...







Comments