DEA "INFORMATIQUE : SYSTEMES & COMMUNICATIONS"
ANNEE 2002/2003
RESPONSABLES : Jérôme Euzenat Jean-Yves Vion-Dury
TEL : 476 61 53 66
ADRESSE ELECTRONIQUE : Jerome . Euzenat A inrialpes . fr & Jean - Yves . Vion - Dury À xrce . xerox . com
LABORATOIRE ET EQUIPE : Action Exmo, INRIA Rhône-Alpes & Xerox Reseach Centre Europe
PROFIL DU PROJET : Inférence et connaissance et/ou Systèmes et Applications Parallèles et Répartis, Réseaux et Multimédia
TITRE :
Référence: Proposition n° 39
RÉSUMÉ :
XML ("eXtensible Markup Language") est un language générique de description de documents structurés. Son intérêt provient de la possibilité de manipuler les documents XML et, en particulier, de leur appliquer des transformations. À cette fin, le language XSLT ("XML Stylesheet Language Transformation") permet de décrire des transformations de documents XML.
XSLT est particulièrement adapté pour sa tâche et rencontre un succès mérité. Mais il ne propose que l'application de transformations "élémentaires" (en particulier elles ne s'appliquent qu'à un parcours unique du document). On a donc proposé différents languages pour composer des transformations de documents XML qu'elles soient écrites en XSLT ou non. C'est le cas de Transmorpher développé par l'INRIA et de Circus développé par Xerox.
En XSLT, il est de notoriété publique qu'une manière d'accélérer certaines transformations (celles qui font de l'accès associatif) est d'utiliser un index (primitive xsl:key). Cette fonctionnalité est interne à la transformation et, si l'on désire modulariser les transformations, ne peut être utilisée d'une transformation à l'autre.
Il est donc nécessaire de proposer un mécanisme de propagation des indexes au travers de la composition de tranformations. Cela permettrait que la composition ne soit pas pénalisante vis-à-vis des accès associatifs. La difficulté de cette propagation est que d'une transformation à l'autre les objets indexés ont été transformés et ne sont donc plus les mêmes, plus à la même position, ont été supprimés ou ajoutés.
On se propose d'étudier d'abord comment sont implémentés les indexes dans les implémentations performantes de XSLT (telles que Saxon) et d'en proposer une implémentation dans des systèmes capables de composer des transformations tels que Circus ou Transmorpher. Cela peut nécessiter l'extension des mécanismes de création et de transmission d'éléments XML (SAX, "Simple API for XML").
On attend de ce stage une étude des solutions existantes pour l'implémentation des index en XML, une proposition de solution dans le cadre des systèmes de composition de transformation et une éventuelle mise en oeuvre dans un ou plusieurs systèmes (Transmorpher et Circus). Les deux systèmes étant relativement différents, la solution proposée devra être la plus générique possible.
Références:
http://transmorpher.inrialpes.fr
http://www.w3.org/TR/xslt