<?xml version="1.0" encoding="UTF-8"?><xml><records><record><source-app name="Biblio" version="6.x">Drupal-Biblio</source-app><ref-type>5</ref-type><contributors><authors><author><style face="normal" font="default" size="100%">Alcino Cunha</style></author><author><style face="normal" font="default" size="100%">José Nuno Oliveira</style></author><author><style face="normal" font="default" size="100%">Joost Visser</style></author></authors></contributors><titles><title><style face="normal" font="default" size="100%">Type-safe two-level data transformation </style></title><secondary-title><style face="normal" font="default" size="100%">FM 2006: Formal Methods</style></secondary-title><tertiary-title><style face="normal" font="default" size="100%">LNCS</style></tertiary-title></titles><dates><year><style  face="normal" font="default" size="100%">2006</style></year><pub-dates><date><style  face="normal" font="default" size="100%">Aug.</style></date></pub-dates></dates><urls><web-urls><url><style face="normal" font="default" size="100%">http://link.springer.com/chapter/10.1007%2F11813040_20</style></url></web-urls></urls><publisher><style face="normal" font="default" size="100%">Springer-Verlag</style></publisher><pub-location><style face="normal" font="default" size="100%">Hamilton, Ontario, Canada</style></pub-location><volume><style face="normal" font="default" size="100%">4085</style></volume><pages><style face="normal" font="default" size="100%">284-299</style></pages><language><style face="normal" font="default" size="100%">eng</style></language><abstract><style face="normal" font="default" size="100%">&lt;p&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
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.&lt;/p&gt;
</style></abstract></record></records></xml>