Overview
Gamma is a maintenance tool for schema mappings between XML types. Gamma allows for the automatic discovery of errors in a given mapping wrt a target schema. Gamma is based on a notion of mapping correctness inspired by the following by Alon Y. Halevy:
At the core, the semantics of mappings can be defined as follows. Given an XML instance, IS , for the source node S and the mapping to the target T , the mapping defines a subset of an instance, IT , for the target node. The reason that IS is a subset of the target instance is that some elements of the target may not exist in the source (e.g., the publisher element in the examples). In fact, it may even be the case that required elements of the target are not present in the source. In relational terms, IT is a projection of some complete instance I T of T on a subset of its elements and attributes.
According to this vision, Gamma deems a mapping as correct if the (inferred) output type of the mapping is a projection of the target schema.
Gamma, given a mapping m (expressed in a subset of XQuery), and given two schemas S and T, infers the output type of m when applied on S, and matches this output type against T. This match is performed by means of a type projection operation.
In its current version Gamma also contains a function for comparing XML types according to a semantic subtyping relation.
People
Publications
- Dario Colazzo and Carlo Sartiani. An Efficient Algorithm for XML Type Projection. In Proceedings of the Eighth ACM-SIGPLAN International Symposium on Principles and Practice of Declarative Programming (PPDP'06), Venice, Italy, 10-12 July 2006. [ .pdf ]
- Dario Colazzo and Carlo Sartiani. Mapping Maintenance in XML P2P Databases, 2005. In Proceedings of the Tenth International Symposium on Database Programming Languages (DBPL-2005), (co-located with VLDB) 28-29 August, 2005. Trondheim, Norway [ .pdf ]
- Dario Colazzo and Carlo Sartiani. Typechecking Queries for Maintaining Schema Mappings in XML P2P Databases, 2005. In Proceedings of PLAN-X 2005: Programming Language Technologies for XML, colocated with POPL 2005. [ .pdf ]
Download
Gamma 1.0. To run Gamma, just double-click on Gamma.jar (Java 1.5 is required).