• Aucun résultat trouvé

Un filtre est une application permettant de convertir un document d’un format donné dans un autre. Il existe des filtres permettant la transformation de docu-ments entre toutes sortes de modes de représentation (traitement de texte, PostScript, PDF, LaTeX ou documents structurés). On peut citer les filtres de traduction de LaTeX vers HTML, de document formatés vers des documents SGML, conformes à des DTD particulières comme les DTD d’acquisition (TEI).

La caractéristique qui distingue les filtres de conversion des autres systèmes de transformation est la définition figée des transformations qu’ils permettent d’effectuer. Ces transformations sont définies lors du développement du filtre qui ne peut pas être paramétré pour effectuer des transformations différentes. Par exemple, un filtre permettant de traduire les documents mail en message comme montré dans notre exemple ne pourra effectuer que cette transformation et elle se fera toujours en suivant les mêmes règles.

Les filtres sont conçus pour répondre aux besoins spécifiques de certaines applications :

• La conversion d’un ensemble de documents homogènes : lors de la mi-gration d’un large ensemble de documents d’un format vers un autre, des filtres adaptés sont développés.

• L’évolution d’une DTD : lors de la révision d’une DTD, il est préférable de maintenir une compatibilité avec l’ancienne version de la DTD. Lorsque cette compatibilité ne peut être maintenue (ajout d’éléments obligatoires, suppression de niveaux de structure), le développeur de la DTD peut fournir un filtre permettant de convertir les documents existant pour les rendre conformes à la nouvelle DTD.

• La structuration de documents existants : les informations sur lesquelles repose la transformation sont parfois spécifiques au format source (ba-lises de formatage) ou au document (contenu). La conception de sys-tèmes généraux permettant d’interpréter les formalismes de stockage de diverses applications nécessite des mécanismes complexes, comme ceux fournis par des outils d’analyse syntaxique tels que Yacc. Cela va à l’encontre du besoin de simplicité d’expression des transformations identifié dans le chapitre précédent. C’est pourquoi une approche fondée sur des filtres spécifiques à un couple de formats est plus adaptée à la structuration des documents.

Il convient de noter que de nombreuses applications documentaires uti-lisent des filtres de conversion pour traduire en HTML les document qu’elles produisent. Il est également prévisible qu’à l’avenir ces appli-cations utiliseront le format XML pour le stockage. Ceci relativise l’in-térêt de cet aspect de la transformation de documents et nous pousse à nous concentrer sur la transformation de documents structurés.

• Dans certains cas très spécifiques, une technique similaire à celle utili-sée par les filtres peut servir à implémenter des commandes d’édition. Par exemple, de nombreux éditeurs de graphiques structurés proposent des opérations de groupement et de dégroupement d’objets. Cette opé-ration consiste à insérer un élément groupe dans la structure du docu-ment et à insérer un ensemble d’élédocu-ments graphiques à l’intérieur. L’implémentation de filtres de conversion est très dépendante des formats des documents source. Si le format source est linéaire (contenu textuel et di-rectives de formatage, comme c’est le cas pour les documents produits par les traitements de texte), le filtre parcourt le document, interprétant les directives de formatage pour produire leur équivalent dans le format cible.

Document source Filtre de conversion Document cible

Figure 16 : Principe du filtre de conversion

Si le modèle des documents source est structuré (SGML, XML), le filtre intègre généralement un analyseur syntaxique (parser) permettant d’associer des actions − en l’occurrence la génération du document cible − aux débuts et fins d’éléments de la structure.

Certains des systèmes de transformation explicite présentés dans la section suivante permettent de programmer des filtres de conversion de documents de façon interactive (Chameleon [Mamrak 89]) ou en utilisant une spécification déclarative de la transformation (IDM [Digithome], XSL [Clark 98], DSSSL [ISO 94]).

Pour notre part, nous avons expérimenté la technique de conversion de do-cuments par filtres lors de la création d’un nouveau schéma, nommé rapport, pour la classe de documents article définie dans l’éditeur Thot. Ce nouveau schéma se différencie du précédent principalement sur deux points :

• Le schéma rapport définit les sections de façon récursive, alors que le schéma article définit un type d’éléments pour chaque niveau de section (section, sous−section, sous−sous−section).

• La bibliographie d’un document article est une référence à une structure externe au document. Dans le schéma rapport, la bibliographie est inté-grée à la structure du document.

D’autres différences mineures concernent les noms des types d’éléments et l’introduction de niveaux de structure supplémentaires dans la structure géné-rique définie par le schéma rapport.

Notre filtre est programmé en utilisant l’API de Thot [Quint 97] qui fourni des primitives d’accès aux éléments du document source et des primitives de construction pour créer le document cible. La fonction de transformation crée l’équivalent d’un élément du document source passé en paramètre, cette fonc-tion est ensuite appelée récursivement sur chacun des fils de l’élément source. L’arborescence ainsi obtenue est ensuite insérée dans la structure du document cible. De plus, la fonction de transformation effectue un traitement particulier sur les éléments appartenant à certains types (bibliographie, références) au lieu de traiter récursivement leur descendance.

Cette application nous a permis de nous familiariser avec la transformation de documents, mais nous a également montré que, bien qu’utilisée couramment par les membres du projet Opéra pour la transformation d’Articles en Rapports, une telle application n’est pas ré−utilisable pour d’autres transformations.

Les filtres de conversion ont pour atout leur efficacité car ils appliquent des algorithmes de transformation adaptés aux formats traités. Aucune information autre que le contenu du document ne doit être analysée ce qui accroît les per-formances de ces outils. Les filtres sont adaptés au traitement de collections importantes de documents suivant une méthode déterminée à l’avance et ne nécessitant donc pas d’interaction avec l’utilisateur. Dans certains cas spéci-fiques, les filtres peuvent être utilisés dans les systèmes d’édition interactifs, notamment lors de commandes d’édition précises portant sur des types d’élé-ments déterminés (comme la transformation d’une portion de feuille de calcul en tableau en vue de son intégration dans un traitement de texte).

La contrepartie de cette non−interactivité est que l’utilisateur ne peut pas guider le cours de la transformation. De plus, les filtres ne sont pas adaptables, c’est à dire que leur conception est dépendante des formats qu’ils manipulent, ils ne peuvent pas servir non plus à transformer les documents entre deux DTD quelconques.

Dans notre problématique, les filtres de conversion présentent un intérêt pour convertir des documents depuis des formats divers vers un format structuré sur lequel nous pouvons ensuite appliquer les techniques de transformation expo-sées plus loin.