Transformations de documents structurés : une combinaison des approches déclaratives et automatiques

1 Introduction

1.1 Motivations et objectifs

1.2 Cadre de travail

1.3 Démarche suivie

1.4 Plan de la thèse

2 Modèles de documents et transformation dans les applications documentaires

2.1 Modèles et formats de documents électroniques

2.2 Documents linéaires

2.2.1 Documents texte plein

2.2.2 Documents numérisés

2.2.3 Documents formatés

2.2.4 Postscript et PDF

2.3 Documents structurés

2.3.1 Modèle de documents structurés

2.3.1.1 Structure logique
2.3.1.2 Structure logique générique et classe de documents
2.3.1.3 Présentation des documents structurés

2.3.2 Formats de documents structurés

2.3.3 Documents structurés et applications documentaires

2.3.4 Systèmes d'édition de documents structurés

2.4 Environnement applicatif de la transformation de documents

2.4.1 Production et édition de documents

2.4.1.1 Structuration d'éléments importés
2.4.1.2 Conversion et restructuration pour l'édition de documents structurés

2.4.2 Publication de documents

2.4.3 Gestion de bases documentaires

2.4.4 Synthèse

2.5 Objectif de notre travail

3 Techniques et outils de transformation explicite

3.1 Un exemple de transformation

3.2 Filtres de conversion

3.3 Transformations explicites

3.3.1 Méthodes de transformation explicite

3.3.1.1 Transformations dirigées par la source
3.3.1.2 Transformations par requêtes

3.3.2 Langages de transformation

3.3.3 Revue des systèmes de transformation explicite

3.3.3.1 IDM
3.3.3.2 Balise
3.3.3.3 CoST 2
3.3.3.4 Exrep
3.3.3.5 Chameleon
3.3.3.6 DSSSL
3.3.3.7 XSL
3.3.3.8 SgmlQL
3.3.3.9 Scrimshaw

3.3.4 Synthèse

3.3.5 Spécification d'un système de transformation explicite pour l'édition de documents structurés

3.4 Les transformations explicites dans Amaya

3.4.1 Interface utilisateur

3.4.2 Spécification des transformations

3.4.2.1 Requêtes
3.4.2.2 Règles de génération

3.4.3 Déroulement d'une transformation

3.4.4 Application du système de transformations explicites d'Amaya

3.5 Synthèse

4 Système de types des documents structurés

4.1 Caractéristiques des systèmes de types des documents structurés

4.1.1 Conformité des documents

4.1.2 Attributs

4.1.3 Modularité

4.1.4 Éléments optionnels, inclusions, exclusions

4.2 Définitions

4.2.1 Types de base

4.2.2 Constructeurs

4.2.3 Arbres de types canoniques

4.3 Relations entre arbres de types pour la transformation de documents structurés

4.3.1 Structurations

4.3.2 Réductions

4.3.3 Combinaison des relations de massif et d'absorption

4.4 Transformations fondées sur les systèmes de types

4.5 Synthèse

5 Transformations automatiques

5.1 Préliminaires

5.2 Comparaison des arbres de types

5.2.1 Génération des empreintes de type

5.2.1.1 Mise sous forme canonique
5.2.1.2 Ordre pour les arbres de types
5.2.1.3 Linéarisation des arbres de types canoniques

5.2.2 Comparaison des empreintes

5.2.2.1 Principe de la comparaison
5.2.2.2 Automate de comparaison
5.2.2.3 Un exemple de comparaison
5.2.2.4 Validité de l'automate
5.2.2.5 Algorithme de comparaison

5.3 Création des éléments cible

5.4 Extensions de l'algorithme de comparaison

5.4.1 Forme réduite de l'empreinte

5.4.2 Comparaison avec les empreintes réduites

5.4.3 Spécialisation de l'empreinte du type source

5.4.4 Comparaison des types récursifs

5.5 Application des transformations automatiques

5.6 Discussion

6 Une combinaison des approches automatique et explicite

6.1 Rappel des objectifs

6.2 Principe de la méthode proposée

6.3 Pré-couplage

6.3.1 Définitions

6.3.2 Expression d'un pré-couplage

6.4 Comparaison de types avec pré-couplage

6.4.1 Principe de la comparaison

6.4.1.1 Contexte d'un pré-couple
6.4.1.2 Comparaison de types hétérogènes
6.4.1.3 Algorithme

6.4.2 Pré-couplage et types récursifs

6.5 Applications de la transformation avec pré-couplage

6.5.1 Importation de documents XML dans Thot

6.5.1.1 Principe de l'application
6.5.1.2 Étapes de la transformation
6.5.1.3 Modification des pré-couples
6.5.1.4 Mémorisation des pré-couples

6.5.2 Pré-couplage et applications des transformations

6.6 Conclusion

7 Conclusion

7.1 Rappel des objectifs

7.2 Rappel du travail réalisé

7.2.1 Démarche suivie

7.2.2 Résultats théoriques

7.2.3 Résultats pratiques

7.3 Bilan et évaluation

7.4 Perspectives


Annexes

A Systèmes de types des langages de programmation

A.1 Langages de programmation et systèmes de types

A.1.1 Langages typés et non typés

A.1.2 Systèmes de types

A.1.3 Contrôle de type et sécurité à l'exécution

A.2 Un contrôleur de types simple

A.3 Limites et extensions du contrôle de types simple

A.4 Inférence de type

A.5 Équivalence de types

A.5.1 Algorithme d'unification

References