Type-safe two-level data transformation

  • Authors:
  • Alcino Cunha;José Nuno Oliveira;Joost Visser

  • Affiliations:
  • Departamento de Informática, Universidade do Minho, Braga, Portugal;Departamento de Informática, Universidade do Minho, Braga, Portugal;Departamento de Informática, Universidade do Minho, Braga, Portugal

  • Venue:
  • FM'06 Proceedings of the 14th international conference on Formal Methods
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

A two-level data transformation consists of a type-level transformation of a data format coupled with value-level transformations of data instances corresponding to that format. Examples of two-level data transformations include XML schema evolution coupled with document migration, and data mappings used for interoperability and persistence. We provide a formal treatment of two-level data transformations that is type-safe in the sense that the well-formedness of the value-level transformations with respect to the type-level transformation is guarded by a strong type system. We rely on various techniques for generic functional programming to implement the formalization in Haskell. The formalization addresses various two-level transformation scenarios, covering fully automated as well as user-driven transformations, and allowing transformations that are information-preserving or not. In each case, two-level transformations are disciplined by one-step transformation rules and type-level transformations induce value-level transformations. We demonstrate an example hierarchical-relational mapping and subsequent migration of relational data induced by hierarchical format evolution.