330 likes | 461 Views
MSDM : un modèle générique pour les documents multi-structurés. Noureddine CHATTI Sylvie CALABRETTO Jean-Marie PINON {Prénom.Nom}@insa-lyon.fr LIRIS-INSA de Lyon. LIRIS-INSA de Lyon, Bâtiment Blaise pascal, 7 avenue Jean Capelle, 69621 Villeurbanne Cedex. Sommaire. La problématique
E N D
MSDM : un modèle générique pour les documents multi-structurés Noureddine CHATTI Sylvie CALABRETTO Jean-Marie PINON {Prénom.Nom}@insa-lyon.fr LIRIS-INSA de Lyon LIRIS-INSA de Lyon, Bâtiment Blaise pascal, 7 avenue Jean Capelle, 69621 Villeurbanne Cedex
Sommaire • La problématique • État de l’art • Le modèle de documents multi-structurés MSDM • Le formalisme MultiX • Interrogation des documents MultiX • Conclusion • Perspectives
Structure Sémantique Structure Physique Document Structure Logique La problématique Présentation Recherche par le contenu Consultation Comment gérer simultanément plusieurs structures d’un document ?
<SL PRESTATION="Complement Familial"VALEUR-ID="SL71"> … <CONTENU-PARTIE ID="SL9"> <PARAGRAPHE ID="SL10">Toute personne physique remplissant les conditions ci-après:</PARAGRAPHE> </CONTENU-PARTIE> <NATIONALITE ID="SL11"> <CONTENU-PARTIE ID="SL12"> <PARAGRAPHE ID="SL13">Pas de condition.</PARAGRAPHE> <PARAGRAPHE ID="SL14"> Pour les étrangers (Cf. <LIEN-CITATION>suivi Législatif CGOD</LIEN-CITATION> ). </PARAGRAPHE> </CONTENU-PARTIE> </NATIONALITE> <ACTIVITE-PROF ID="SL15"> <CONTENU-PARTIE ID="SL16"> <PARAGRAPHE ID="SL17">Pas de condition.</PARAGRAPHE> </CONTENU-PARTIE> </ACTIVITE-PROF> … </SL> Structure logique La problématique :Exemple des textes réglementaires de la CAF (1) • Une structure logique pour l’affichage du document
<reglementation> …. <concept nom="Allocataire CF" classe="agent"principal="oui"type-concept="définition" impact="non"> … <condition-application> Toute <predicat nom="Personne-Physique"classe="agent"impact="non">personne physique</predicat> </condition-application> remplissant les conditions ci-après : 2.1 <condition-application> Nationalité Pas de condition. Pour les étrangers <reference>(Cf. suivi législatif CGOD).</reference> </condition-application> 2.2 <condition-application>Activité professionnelle Pas de condition. </condition-application> … </concept> … </reglementation> Structure sémantique La problématique :Exemple des textes réglementaires de la CAF (2) • Une structure sémantique pour faire des inférences
La problématique :Exemple des textes réglementaires de la CAF (3) • Chaque structure est encodée séparément au format XML • Inconvénients : • Redondance au niveau du contenu • Difficulté de mise à jour • Risque d’incohérence entre les contenus des structures
État de l’art • Option CONCUR de SGML (plusieurs DTDs pour un même document) [ISO 86] • TEI (Recommandations pour l’encodage d’hiérarchies multiples en XML) [TEI 02] • Des syntaxes spécifiques : MECS, TexMECS, LMNL, … • Utilisation de RDF grâce à son modèle de graphe [Tummarello 05] • Le modèle de graphe GODDAG [SPE 00][DEK 05] • Matérialisation via une structure DOM • Extension de XPath pour l’accès aux nœuds des différents structures
Le modèle de documents multi-structurés : MSDM • Un document multi-structuré est défini par: • Un ensemble de structures documentaires (SD) • Ce sont les structures d’usages du document • Une structure de Base (SB) : • Organisation du contenu en vue de son partage par les structures documentaires • Décomposition du contenu en fragments disjoints • Un ensemble de relations de correspondances entre les structures
Le modèle de documents multi-structurés : MSDM (Les correspondances) • Deux types de correspondances • SDSB : correspondance entre une structure documentaire et la structure de base • Permet d’associer un contenu à un élément d’une structure documentaire • SDSD : correspondances entre deux structures documentaires • Permet d’expliciter des relations particulières entres les structures documentaires • Exemple : synonymie entre les labels de deux éléments de deux structures différentes
Structure documentaire Structure documentaire Structure documentaire Correspondance SDSD … … … … … … SB Structure de base … Compositions Correspondance SDSB Fragments "a" “b" “c" Le modèle de documents multi-structurés : MSDM (illustration) "ab" "bc"
Le formalisme MultiX • Une application XML • Un document MultiX est un document XML bien formé • Basé sur le modèle MSDM • Objectifs : • Matérialisation des relations entre les structures • Éviter la redondance du contenu
Le formalisme MultiX • Structure générale d’un document MultiX <msd:MSDname="manuscrit"xmlns:msd="http://www.msdm.org/2006/MULTIX/"> <msd:DSname="nom de la première structure documentaire"> <!--ici la première structure documentaire--> </msd:DS> <msd:DSname="nom de la deuxième structure documentaire"> <!--ici la deuxième structure documentaire--> </msd:DS> <!--autres structures documentaires--> <msd:BS> <!–organisation du contenu partageable--> </msd:BS> <msd:correspondences> <!--définition des relations de correspondances--> </msd:correspondences> </msd:MSD>
Le formalisme MultiXExemple de document multi-structuré • Un fragment d’un manuscrit ancien hu þu me hæfst afrefredne æg þer ge mid þinre smealican spræ ce, ge mid þinre wynsumnesse þines • 3 lignes • Deux mots coupés • Des caractères endommagés 1 2 3 • Plusieurs niveaux de structuration
Le formalisme MultiXExemple de document multi-structuré • Structure physique des lignes <lines> <linen="1">hu þu me hæfst afrefredne æg</line> <linen="2">þer ge mid þinre smealican spræ</line> <linen="3">ce, ge mid þinre wynsumnesse þines</line> </lines>
Le formalisme MultiXExemple de document multi-structuré • Structure lexicale <words> <w>hu</w> <w>þu</w> <w>me</w> <w>hæfst</w> <w>afrefredne</w> <w>ægþer</w> <w>ge</w> <w>mid</w> <w>þinre</w> <w>smealican</w> <w>spræce</w> <w>ge</w> <w>mid</w> <w>þinre</w> <w>wynsumnesse</w> <w>þines</w> </words>
Le formalisme MultiXExemple de document multi-structuré • Structure des caractères endommagés <damaged> <res>þu m</res> <dmg>er</dmg> <dmg>mid</dmg> <dmg>æ</dmg> <dmg>g</dmg> <dmg>þ</dmg> <dmg>re</dmg> <dmg>e</dmg> <res>s</res> </damaged>
Le formalisme MultiXExemple de document multi-structuré • Structure des régions textuelles <text-regions> <imagesrc="manuscrit.png"> <regionnum="reg.1"description="ligne 1"> <zonex1="43"y1="50"x2="460"y2="94"/> </region> <regionnum="reg.2"description="ligne 2"> <zonex1="43"y1="108"x2="486"y2="152"/> </region> <regionnum="reg.3"description="ligne 3"> <zonex1="43"y1="166"x2="536"y2="210"/> </region> <regionnum="reg.4"description="mot sur ligne 1 et ligne 2"> <zonex1="410"y1="50"x2="460"y2="94"/> <zonex1="43"y1="108"x2="93"y2="152"/> </region> <regionnum="reg.5"description="mot sur ligne 2 et ligne 3"> <zonex1="'414"y1="108"x2="486"y2="152"/> <zonex1="43"y1="166"x2="72"y2="210"/> </region> </image> </text-regions>
Le formalisme MultiXExemple de document multi-structuré • Schéma global du document multi-structuré Structure des régions textuelles Localisation des caractères endommagés Localisation des lignes Transcription Localisation des mots sur deux lignes Structure lexicale Structure des caractères endommagées Structure physique Structure de Base
Le formalisme MultiXLa structure de base • Deux parties : • Un ensemble de fragments de contenu disjoints (le plus petit ensemble de fragments recouvrants les PCDATAs des structures documentaires) • Balise msd:fragments • Des compositions de contenu (les PCDATAs) à partir des fragments disjoints • Balise msd:compositions
Le formalisme MultiXLa structure de base (l’exemple du document ancien) • L’ensemble des fragments disjoints <msd:BS> <msd:fragments> <msd:fragid="F1">hu</msd:frag><msd:fragid="F2">þu</msd:frag> <msd:fragid="F3">m</msd:frag><msd:fragid="F4">e</msd:frag><msd:fragid="F5">hæfst</msd:frag><msd:fragid="F6">afrefredne</msd:frag> <msd:fragid="F7">æg</msd:frag><msd:fragid="F8">þ</msd:frag> <msd:fragid="F9">er</msd:frag><msd:fragid="F10">ge</msd:frag> <msd:fragid="F11">mid</msd:frag><msd:fragid="F12">þinre</msd:frag> <msd:fragid="F13">smealican</msd:frag><msd:fragid="F14">spr</msd:frag> <msd:fragid="F15">æ</msd:frag><msd:fragid="F16">ce</msd:frag> <msd:fragid="F17">g</msd:frag><msd:fragid="F22">e</msd:frag> <msd:fragid="F18">mid</msd:frag><msd:fragid="F23">þ</msd:frag> <msd:fragid="F19">in</msd:frag><msd:fragid="F24">re</msd:frag> <msd:fragid="F20">wynsumnesse</msd:frag> <msd:fragid="F21">þin</msd:frag><msd:fragid="F25">e</msd:frag> <msd:fragid="F26">s</msd:frag> </msd:fragments> <msd:compositions> < !--définitiondes compositions --> </msd:compositions> </msd:BS>
Le formalisme MultiXLa structure de base (les compositions) • Rôle : • Reconstruire les PCDATAs fragmentés à partir de l’ensemble des fragments disjoints • Concaténation des fragments textuels en gérant l’insertion des espaces blancs • Exemple : <msd:compositions> … <msd:compid="C1" idrefs="F1 F2 F3=F4 F5 F6 F7"/> … </msd:compositions> • Permet de reconstruire la chaîne de caractères "huþume hæfst afrefredneæg"
Le formalisme MultiXLa structure de base (les compositions) • Gestion de l’insertion des espaces blancs par un codage spécifique (valeur de l’attribut idrefs) • La valeur de idrefs est une séquence d’identificateurs de fragments séparés par : • Un espace concaténation avec insertion d’un espace au milieu • idrefs="F1 F2"permet de composer la chaîne "huþu" • Le caractère "=" concaténation classique (sans insertion d’espèce blanc) • idrefs="F3=F4"permet de composer la chaîne "me"
Espace blanc Le formalisme MultiXLa structure de base (les compositions) • On utilise le symbole "%" pour insérer un espace blanc au début ou/et à la fin d’une composition • Exemple : • Reconstitution du contenu de l’élément line suivant : <linen="3">ce, ge mid þinre wynsumnesse þines</line> • Si le caractère "," n’est pas géré dans SB deux compositions sont nécessaires : <msd:compid="C3"idrefs="F16"/> • Chaîne référencée : "ce" <msd:compid="C4"idrefs="%F17=F22 F18 F23=F19=F24 F20 F21=F25=F26"/> • Chaîne référencée : " ge mid þinre wynsumnesse þines"
Structures documentaires et relations de correspondance – Les correspondances SDSB • Origine de la correspondance : l’emplacement dans une SD du contenu fragmenté • Cible de la correspondance : une composition dans SB • Deux formes : • Interne : définition à l’origine de la correspondance <linen="1"><msd:clinktarget="BS"label="text content"to="C1"/></line> • Externe : à l’extérieur de la structure documentaire source • Localisation de l’origine de la correspondance par l’insertion d’un ancre (élément msd:anchor) <linen="2"><msd:anchorid="A.lne.2"/></line> • Définition de la correspondance à l’intérieur de l’élément msd:correspondences <msd:correspondences> <msd:clinktarget="BS"from=”A.lne.2"label="text content"to="C2"/> … </msd:correspondences>
Structures documentaires et relations de correspondance – Les correspondances SDSD • Même syntaxe que les correspondances SDSB mais pas la même sémantique • Origine de la correspondance : un élément d’une SD • Cible de la correspondance : un élément d’une autre SD • Deux formes : Interne et Externe
Structures documentaires et relations de correspondance – Les correspondances SDSD • Exemple : • Localisation des sources/cibles par des ancres <text-regions> <imagesrc="manuscrit.png"> <regionnum="reg.1"description="ligne 1"> <zonex1="43"y1="50"x2="460"y2="94"/><msd:anchorid="A.reg.1"/> </region> <regionnum="reg.2"description="ligne 2"> <zonex1="43"y1="108"x2="486"y2="152"/><msd:anchorid="A.reg.2"/> </region> <regionnum="reg.3"description="ligne 3"> <zonex1="43"y1="166"x2="536"y2="210"/><msd:anchorid="A.reg.3"/> </region> <regionnum="reg.4"description="mot sur ligne 1 et ligne 2"> <zonex1="410"y1="50"x2="460"y2="94"/> <msd:anchorid="A.reg.4"/> <zonex1="43"y1="108"x2="93"y2="152"/> </region> <regionnum="reg.5"description="mot sur ligne 2 et ligne 3"> <zonex1="'414"y1="108"x2="486"y2="152"/> <zonex1="43"y1="166"x2="72"y2="210"/> <msd:anchorid="A.reg.5"/> </region> </image> </text-regions> • Définition des correspondances : matérialisation de la relation localisation des lignes sur l’image du manuscrit <msd:clinktarget="DS"label="localisation"from="A.lne.1"to="A.reg.1"/> <msd:clinktarget="DS"label="localisation"from="A.lne.2" to="A.reg.2"/> <msd:clinktarget="DS"label="localisation"from="A.lne.3" to="A.reg.3"/>
Interrogation des documents multi-structurés • Des besoins d’interrogation spécifiques • Exploration des relations entre les structures • Exemple de requête : • Trouver tous les mots qui sont coupés en fin de ligne • Nécessité d’un langage d’interrogation adapté aux documents MultiX • Extension de XQuery (bibliothèque de fonctions pour les documents MultiX)
Interrogation des documents multi-structurésExtension de XQuery • Q1 : Trouver tous les mots endommagés, c'est-à-dire composés seulement de caractères endommagés • En XQuery : let $doc := doc("manuscript.xml") for $w in $doc//msd:DS[@name = "words"]//w, $d in $doc//msd:DS[@name = "damaged"]//dmg where multix:include-fragments-of($w, $d) and multix:include-fragments-of($d, $w) return multix:rebuild($w) • Résultat : hu þu me hæfst afrefredne æg þer ge mid þinre smealican spræ ce, ge mid þinre wynsumnesse þines <w>mid</w>
Interrogation des documents multi-structurésExtension de XQuery • Q2 : Trouver tous les mots qui sont coupés en fin de ligne dans le texte original • En XQuery : let $doc := doc("manuscript.xml") for $l in $doc//msd:DS[@name = "lines"]//line, $w in $doc//msd:DS[@name = "words"]//w where multix:share-fragments($l, $w) and not(multix:include-content-of($l, $w)) return multix:rebuild($w) • Résultat : hu þu me hæfst afrefredne æg þer ge mid þinre smealican spræ ce, ge mid þinre wynsumnesse þines <w>ægþer</w> <w>spræce</w>
Interrogation des documents multi-structurésExtension de XQuery • Q3 : Trouver les mots qui contiennent des caractères restaurés. Indiquer pour chaque mot trouvé les caractères restaurés qu’il contient et la localisation de la ligne contenant ce mot sur l’image du manuscrit. • En XQuery : let $doc := doc("manuscript.xml") for $w in $doc//msd:DS[@name = "words"]//w, $r in $doc//msd:DS[@name = "damaged"]//res where multix:share-fragments($r, $w) return <mot-avec-carac-rest> {multix:rebuild($w), <carac-rest>{multix:get-shared-fragments($r, $w)}</carac-rest>, multix:rebuild(multix:get-linked-from($doc//$r, "localisation"))} </mot-avec-carac-rest> hu þu me hæfst afrefredne æg þer ge mid þinre smealican spræ ce, ge mid þinre wynsumnesse þines
Résultat de Q3 : <mot-avec-carac-rest> <w>þu</w> <carac-rest>þu</carac-rest> <regionnum="reg.1"description="ligne 1"> <zonex1="43"y1="50"x2="460"y2="94"/> </region> </mot-avec-carac-rest> <mot-avec-carac-rest> <w>me</w> <carac-rest>m</carac-rest> <regionnum="reg.1"description="ligne 1"> <zonex1="43"y1="50"x2="460"y2="94"/> </region> </mot-avec-carac-rest> <mot-avec-carac-rest> <w>þines</w> <carac-rest>s</carac-rest> <regionnum="reg.3"description="ligne 3"> <zonex1="43"y1="166"x2="536"y2="210"/> </region> </mot-avec-carac-rest>
Conclusion • Avantages • Un formalisme basé sur le modèle générique MSDM • Une syntaxe XML (simplicité et portabilité) • Élimination de la redondance du contenu (structure de base) • Les squelettes des structures documentaires ne changent pas • La localisation par ancre permet de faciliter la gestion de l’évolution des documents multi-structurés • Corrélation entre les différentes structures grâce aux relations de correspondance • Interrogation plus efficace au moyen d’un langage adapté • Inconvénients • Les documents MultiX sont difficiles à créer manuellement • Un processus totalement automatisé est également très difficile à mettre au point • Nécessite un important effort de programmation pour parser les documents MultiX
Perspectives • Amélioration du parseur MXP (Multi-XML Parser) pour faciliter la création des documents MultiX à partir de fichiers XML existants • Compléter la bibliothèque de fonctions XQuery • Création d’un parseur permettant d’analyser les documents MultiX • Intégration de tous les outils dans un environnement de gestion de documents multi-structurés