MSDM : un modèle générique pour les documents multi-structurés Noureddine CHATTI Sylvie...
-
Upload
melissa-jullien -
Category
Documents
-
view
105 -
download
0
Transcript of MSDM : un modèle générique pour les documents multi-structurés Noureddine CHATTI Sylvie...
MSDM : un modèle générique pour
les documents multi-structurés
Noureddine CHATTISylvie CALABRETTOJean-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
La problématique
Document
PrésentationRecherche par
le contenu
Consultation
Structure Physique
Structure Logique
Structure Sémantique
Comment gérer simultanément plusieurs structures d’un document ?
La problématique :Exemple des textes réglementaires de la CAF (1) Une structure logique pour l’affichage du 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>
<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 logiqueStructure logique
La problématique :Exemple des textes réglementaires de la CAF (2) Une structure sémantique pour faire des inférences
<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>
<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émantiqueStructure sémantique
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
Le modèle de documents multi-structurés : MSDM (illustration)
SBSB
…
"a""a" “b"“b" “c"“c"
Compositions
Fragments
Structure de base
…
Structure documentaire
…
…
Structure documentaire
…
…
Structure documentaire
…
Correspondance SDSD
Correspondance SDSB
"ab""ab"
"bc""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:MSD name="manuscrit" xmlns:msd="http://www.msdm.org/2006/MULTIX/"><msd:DS name="nom de la première structure documentaire">
<!-- ici la première structure documentaire --></msd:DS><msd:DS name="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>
hu þu me hæfst afrefredne æg
þer ge mid þinre smealican spræ
ce, ge mid þinre wynsumnesse þines
hu þu me hæfst afrefredne æg
þer ge mid þinre smealican spræ
ce, ge mid þinre wynsumnesse þines
Le formalisme MultiXExemple de document multi-structuré Un fragment d’un manuscrit ancien
3 lignes Deux mots coupés Des caractères
endommagés
11
22
33
Plusieurs niveaux de structuration
Le formalisme MultiXExemple de document multi-structuré Structure physique des lignes
<lines><line n="1">hu þu me hæfst afrefredne æg</line><line n="2">þer ge mid þinre smealican spræ</line><line n="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><image src="manuscrit.png">
<region num="reg.1" description="ligne 1"><zone x1="43" y1="50" x2="460" y2="94"/>
</region><region num="reg.2" description="ligne 2">
<zone x1="43" y1="108" x2="486" y2="152"/></region><region num="reg.3" description="ligne 3">
<zone x1="43" y1="166" x2="536" y2="210"/></region><region num="reg.4" description="mot sur ligne 1 et ligne 2">
<zone x1="410" y1="50" x2="460" y2="94"/><zone x1="43" y1="108" x2="93" y2="152"/>
</region><region num="reg.5" description="mot sur ligne 2 et ligne 3">
<zone x1="'414" y1="108" x2="486" y2="152"/><zone x1="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 physiqueStructure physiqueStructure physiqueStructure physique Structure lexicaleStructure lexicaleStructure lexicaleStructure lexicale Structure des caractères Structure des caractères endommagées endommagées
Structure des caractères Structure des caractères endommagées endommagées
Structure des Structure des régions textuellesrégions textuelles
Structure des Structure des régions textuellesrégions textuelles
Structure de BaseStructure de BaseStructure de BaseStructure de Base
Localisation des mots Localisation des mots sur deux lignessur deux lignes
Localisation des lignesLocalisation des lignes
TranscriptionTranscription
Localisation des caractères Localisation des caractères endommagésendommagés
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:frag id="F1">hu</msd:frag><msd:frag id="F2">þu</msd:frag><msd:frag id="F3">m</msd:frag><msd:frag id="F4">e</msd:frag>
<msd:frag id="F5">hæfst</msd:frag><msd:frag id="F6">afrefredne</msd:frag><msd:frag id="F7">æg</msd:frag><msd:frag id="F8">þ</msd:frag><msd:frag id="F9">er</msd:frag><msd:frag id="F10">ge</msd:frag><msd:frag id="F11">mid</msd:frag><msd:frag id="F12">þinre</msd:frag><msd:frag id="F13">smealican</msd:frag><msd:frag id="F14">spr</msd:frag><msd:frag id="F15">æ</msd:frag><msd:frag id="F16">ce</msd:frag><msd:frag id="F17">g</msd:frag><msd:frag id="F22">e</msd:frag><msd:frag id="F18">mid</msd:frag><msd:frag id="F23">þ</msd:frag><msd:frag id="F19">in</msd:frag><msd:frag id="F24">re</msd:frag><msd:frag id="F20">wynsumnesse</msd:frag><msd:frag id="F21">þin</msd:frag><msd:frag id="F25">e</msd:frag><msd:frag id="F26">s</msd:frag>
</msd:fragments> <msd:compositions>
< !-- définition des 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:comp id="C1" idrefs="F1 F2 F3=F4 F5 F6 F7"/>
…
</msd:compositions>
Permet de reconstruire la chaîne de caractères "hu þu me 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"
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 :<line n="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:comp id="C3" idrefs="F16"/>
Chaîne référencée : "ce"
<msd:comp id="C4" idrefs="%F17=F22 F18 F23=F19=F24 F20 F21=F25=F26"/>
Chaîne référencée : " ge mid þinre wynsumnesse þines"
Espace blanc
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<line n="1"><msd:clink target="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)<line n="2"><msd:anchor id="A.lne.2"/></line>
Définition de la correspondance à l’intérieur de l’élément msd:correspondences
<msd:correspondences><msd:clink target="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> <image src="manuscrit.png">
<region num="reg.1" description="ligne 1"> <zone x1="43" y1="50" x2="460" y2="94"/><msd:anchor id="A.reg.1"/></region><region num="reg.2" description="ligne 2"> <zone x1="43" y1="108" x2="486" y2="152"/><msd:anchor id="A.reg.2"/></region><region num="reg.3" description="ligne 3"> <zone x1="43" y1="166" x2="536" y2="210"/><msd:anchor id="A.reg.3"/></region><region num="reg.4" description="mot sur ligne 1 et ligne 2"> <zone x1="410" y1="50" x2="460" y2="94"/> <msd:anchor id="A.reg.4"/> <zone x1="43" y1="108" x2="93" y2="152"/></region><region num="reg.5" description="mot sur ligne 2 et ligne 3"> <zone x1="'414" y1="108" x2="486" y2="152"/> <zone x1="43" y1="166" x2="72" y2="210"/> <msd:anchor id="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:clink target="DS" label="localisation" from="A.lne.1" to="A.reg.1"/><msd:clink target="DS" label="localisation" from="A.lne.2" to="A.reg.2"/><msd:clink target="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"]//dmgwhere multix:include-fragments-of($w, $d) and multix:include-fragments-of($d, $w)return multix:rebuild($w)
Résultat :
<w>mid</w> hu þu me hæfst afrefredne æg
þer ge mid þinre smealican spræ
ce, ge mid þinre wynsumnesse þines
hu þu me hæfst afrefredne æg
þer ge mid þinre smealican spræ
ce, ge mid þinre wynsumnesse þines
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"]//wwhere multix:share-fragments($l, $w) and not(multix:include-content-of($l, $w))return multix:rebuild($w)
Résultat :
<w>ægþer</w><w>spræce</w>
hu þu me hæfst afrefredne æg
þer ge mid þinre smealican spræ
ce, ge mid þinre wynsumnesse þines
hu þu me hæfst afrefredne æg
þer ge mid þinre smealican spræ
ce, ge mid þinre wynsumnesse þines
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"]//reswhere 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
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><region num="reg.1" description="ligne 1">
<zone x1="43" y1="50" x2="460" y2="94"/></region>
</mot-avec-carac-rest><mot-avec-carac-rest>
<w>me</w><carac-rest>m</carac-rest><region num="reg.1" description="ligne 1">
<zone x1="43" y1="50" x2="460" y2="94"/></region>
</mot-avec-carac-rest><mot-avec-carac-rest>
<w>þines</w><carac-rest>s</carac-rest><region num="reg.3" description="ligne 3">
<zone x1="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