Coupled Transformation of Schemas, Documents, Queries, and Constraints

Coupled transformation occurs when multiple software artifacts must be transformed in such a way that they remain consistent with each other. For instance, when a database schema is adapted in the context of system maintenance, the persistent data residing in the system's database needs to be migrated to conform to the adapted schema. Also, queries embedded in the application code and any declared referential constraints must be adapted to take the schema changes into account. As another example, in XML-to-relational data mapping, a hierarchical XML Schema is mapped to a relational SQL schema with appropriate referential constraints, and the XML documents and queries are converted into relational data and relational queries. The 2LT project is aimed at providing a formal basis for coupled transformation. This formal basis is found in data refinement theory, point-free program calculation, and strategic term rewriting. We formalize the coupled transformation of a data type by an algebra of information-preserving data refinement steps, each witnessed by appropriate data conversion functions. Refinement steps are modeled by so-called two-level rewrite rules on type expressions that synthesize conversion functions between redex and reduct while rewriting. Strategy combinators are used to composed two-level rewrite rules into complete rewrite systems. Point-free program calculation is applied to optimized synthesize conversion function, to migrate queries, and to normalize data type constraints. In this paper, we provide an overview of the challenges met by the 2LT project and we give a sketch of the solutions offered.

[1]  Jeremy Gibbons,et al.  Calculating Functional Programs , 2000, Algebraic and Coalgebraic Methods in the Mathematics of Program Construction.

[2]  Simon Peyton Jones,et al.  Wobbly types: type inference for generalised algebraic data types∗ , 2004 .

[3]  Johan Jeuring,et al.  Inferring Type Isomorphisms Generically , 2004, MPC.

[4]  Masato Takeichi,et al.  Program Optimizations and Transformations in Calculation Form , 2005, GTTSE.

[5]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[6]  Eelco Visser,et al.  Stratego: A Language for Program Transformation Based on Rewriting Strategies , 2001, RTA.

[7]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[8]  Jorge Sousa Pinto,et al.  A Framework for Point-Free Program Transformation , 2005, IFL.

[9]  Eelco Visser,et al.  A core language for rewriting , 1998, WRLA.

[10]  Juliana Freire,et al.  From XML schema to relations: a cost-based approach to XML storage , 2002, Proceedings 18th International Conference on Data Engineering.

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

[12]  Simon L. Peyton Jones,et al.  Scrap Your Boilerplate , 2003, APLAS.

[13]  Arie van Deursen,et al.  Source-based software risk assessment , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[14]  Carroll Morgan,et al.  Data refinement by calculation , 1990, Acta Informatica.

[15]  Jos van Hillegersberg,et al.  1st International Workshop on Tools for Managing Globally Distributed Software Development (TOMAG 2007) , 2007, International Conference on Global Software Engineering (ICGSE 2007).

[16]  Joost Visser,et al.  Strongly Typed Rewriting For Coupled Software Transformation , 2007, Electron. Notes Theor. Comput. Sci..

[17]  Wenfei Fan,et al.  Propagating XML constraints to relations , 2007, J. Comput. Syst. Sci..

[18]  Juliana Freire,et al.  LegoDB: Customizing Relational Storage for XML Documents , 2002, VLDB.

[19]  Wolfgang Lohmann Format Evolution , 2001 .

[20]  Denilson Barbosa,et al.  Designing Information-Preserving Mapping Schemes for XML , 2005, VLDB.

[21]  Susan B. Davidson,et al.  Constraints preserving schema mapping from XML to relations , 2002, WebDB.

[22]  Anthony Cleve,et al.  Co-transformations in Database Applications Evolution , 2005, GTTSE.

[23]  Philip Wadler,et al.  Deforestation: Transforming Programs to Eliminate Trees , 1988, Theoretical Computer Science.

[24]  Joost Visser,et al.  Coupled schema transformation and data conversion for XML and SQL , 2007 .

[25]  José Nuno Oliveira,et al.  Software Reification using the SETS Calculus , 1992, Refine.

[26]  Simon L. Peyton Jones,et al.  Scrap your boilerplate: a practical design pattern for generic programming , 2003, TLDI '03.

[27]  Sihem Amer-Yahia,et al.  A comprehensive solution to the XML-to-relational mapping problem , 2004, WIDM '04.

[28]  Joost Visser,et al.  Monitoring the Quality of Outsourced Software , 2007 .

[29]  Jorge Sousa Pinto,et al.  Point-free Program Transformation , 2005, Fundam. Informaticae.

[30]  Ralf Lämmel,et al.  Mappings Make Data Processing Go 'Round An Inter-paradigmatic Mapping Tutorial , 2006 .

[31]  Oege de Moor,et al.  Generic Program Transformation , 1998, Advanced Functional Programming.

[32]  Ralf Lämmel,et al.  Strategic polymorphism requires just two combinators! , 2002, ArXiv.

[33]  José Nuno Oliveira,et al.  A reification calculus for model-oriented software specification , 1990, Formal Aspects of Computing.

[34]  Eric Bouwers,et al.  Multidimensional Software Monitoring Applied to ERP , 2009, Electron. Notes Theor. Comput. Sci..

[35]  Anthony Cleve,et al.  Co-transformations in Information System Reengineering , 2005, Electron. Notes Theor. Comput. Sci..

[36]  Roland Carl Backhouse,et al.  Algebraic and Coalgebraic Methods in the Mathematics of Program Construction , 2000, Lecture Notes in Computer Science.

[37]  Bruno C. d. S. Oliveira,et al.  "Scrap Your Boilerplate" Reloaded , 2006, FLOPS.

[38]  Ralf Lämmel,et al.  Typed Combinators for Generic Traversal , 2002, PADL.

[39]  Ralf Lämmel,et al.  Mappings Make Data Processing Go 'Round , 2005, GTTSE.

[40]  Joost Visser,et al.  Transformation of structure-shy programs: applied to XPath queries and strategic functions , 2007, PEPM '07.

[41]  Richard S. Bird,et al.  Introduction to functional programming using haskeu , 1998 .

[42]  Joost Visser,et al.  A Tool-based Methodology for Software Portfolio Monitoring , 2004, Software Audit and Metrics.

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

[44]  José Nuno Oliveira,et al.  Type-Safe Two-Level Data Transformation , 2006, FM.

[45]  Dongwon Lee,et al.  CPI: Constraints-Preserving Inlining algorithm for mapping XML DTD to relational schema , 2001, Data Knowl. Eng..

[46]  The Essence of Strategic Programming — Draft as of October 15 , 2002 — , 2002 .

[47]  José Nuno Oliveira,et al.  Strategic Term Rewriting and Its Application to a VDMSL to SQL Conversion , 2005, FM.