XML et l - LORIA · Environnement XML : DOM, SAX, langages de requêtes Une approche modulaire...
Transcript of XML et l - LORIA · Environnement XML : DOM, SAX, langages de requêtes Une approche modulaire...
1
XML et l XML et l ’interopérabilité’interopérabilité
Emmanuel Emmanuel NauerNauer
Orpailleur - LORIAOrpailleur - LORIA
Séminaire QSLSéminaire QSL
XML et ses technologiesXML et ses technologies
2
PlanPlan
XML pour la représentation des donnéesXML pour la représentation des données�Atouts de XML
�Prise en compte de données textuelles non XML
Rôle joué par XML dans l’exploitation des donnéesRôle joué par XML dans l’exploitation des données�Environnement XML : DOM, SAX, langages de requêtes
�Une approche modulaire exploitant du XML
�XML au cœur de l’intéropérabilité
Questions et discussionQuestions et discussion
3
XMLXML
Atouts de XMLAtouts de XML
�Simple à lire, à comprendre, à utiliser
�Adapté à la description de données textuelles :
• structurées
• semi-structurées (structure irrégulière, implicite, partielle),
et notamment le WEB
�En passe de devenir un standard pour la représentation de
document
� Indépendant des plate-formes et logiciels
⇒ facilite l’interopérabilité
�Environnement (très) riche
4
Adaptabilité de XML aux données textuellesAdaptabilité de XML aux données textuelles
Exemple d’une référence bibliographique PASCALExemple d’une référence bibliographique PASCALJob design and job stress in office workers
Auteur : CARAYON P
Adresse : Univ. Wisconsin-Madison, Madison WI 53706, USA
Source : Ergonomics; ISSN 0014-0139; DA. 1993; VOL. 36; PP. 463-477
Descripteurs : Psychological stress, Job satisfaction, Office work
Conversion XMLConversion XML
�Règles de réécriture
�Utilisation de LEX / YACC, ...
<Reference> <Titre>Job design and job stress in office workers</Titre>
<Auteur>CARAYON P</Auteur>
<Adresse>Univ. Wisconsin-Madison, Madison WI 53706, USA</Adresse>
<Source>Ergonomics; ISSN 0014-0139; DA. 1993; VOL. 36; PP. 463-477</Source>
<Descripteurs>Psychological stress, Job satisfaction, Office work</Descripteurs>
</Reference>
<Source>Ergonomics; ISSN 0014-0139; DA. 1993; VOL. 36; PP. 463-477</Source>
<Source>
<Revue>
<Nom>Ergonomics</Nom>
<ISSN>0014-0139<ISSN>
</Revue>
<DA>1993</DA>
<VOL>36</VOL>
<PP>463-477</PP>
</Source>
5
Adaptabilité de XML aux formats existantsAdaptabilité de XML aux formats existants
Exemple d’une référence Exemple d’une référence BibTexBibTex@Book{michard99a,
author = {A. Michard},
title = {{XML - Langage et applications}},
publisher = {Eyrolles},
year = {1999}
}
<Reference type="Book" id="michard99a"> <author>A. Michard</author>
<title>XML - Langage et applications</title>
<publisher>Eyrolles</publisher>
<year>1999</year>
</Reference>
Conversion XMLConversion XML
6
Adaptabilité de XML aux données relationnellesAdaptabilité de XML aux données relationnelles
Table MEMBRES_ORPAILLEURTable MEMBRES_ORPAILLEUR
Nom Prénom Bureau Poste...LieberNauerNapoli...
...JeanEmmanuelAmedeo...
...B128B127B208...
...20 8620 8820 68...
<Equipe Nom="Orpailleur"> ... <Membre> <Nom>Lieber</Nom><Prénom>Jean</Prénom><Bureau>B128</Bureau><Poste>20 68</Poste> </Membre> <Membre> <Nom>Nauer</Nom><Prénom>Emmanuel</Prénom><Bureau>B127</Bureau><Poste>20 88</Poste> </Membre> ...
</Reference>
Conversion XMLConversion XML
7
XML : un standard pour laXML : un standard pour ladescription de données textuellesdescription de données textuelles
Domaines d’application extrêmement variésDomaines d’application extrêmement variés�CML : Chemical Markup Langage
�BIOML : BIOpolymer Markup Language
�BSML : Bioinformatic Sequence Markup Language
�FpML : Financial products Markup Language
�GAME : Genome Annotation Markup Elements
�OCKML : Ontology and Conceptual Knowledge Markup Languages
�MathML : Mathematical Markup language
�WeatherML : Weather Markup Language
� ...
Source : Source : httphttp://://wwwwww.oasis-open..oasis-open.orgorg//covercover
8
XML : au centre de l’échange de donnéesXML : au centre de l’échange de données
Pascal
BibTex
MARC
Base de donnéesrelationnelle
Base de données
objets
HTML
XML
BibTeXML
XMarc
XPascal
XHTML
...
...
BiblioML
Format pivot
Hétérogénéité
9
Les outils autour de XMLLes outils autour de XML
Infrastructure du W3C Infrastructure du W3C httphttp://://wwwwww.w3c..w3c.orgorg//� Importante communauté : MIT, INRIA, Université de Keio, de
nombreux industriels (IBM, Microsoft, Oracle, SUN, ...)
�Nombreux travaux (spécification + développement) :XML, Xpath, Xlink, Xpointer, XQL, SAX, DOM, ...
�Rapidité de publication des normes (contrairement à SGML)
�Nombreux outils, souvent gratuits
Différentes classes d’outilsDifférentes classes d’outils�Parsers (SAX, DOM, LEX, …)
�Langages de requêtes (XSL, Xquery, …)
�Utilisation de la DTD ou non ?• Existe-t-elle ? Faut-il la créer ?
• Est-elle indispensable ? utile ? inutile ?
10
Les Les parsers parsers XMLXML
Qu’est-ce ?Qu’est-ce ?�Module qui réalise l’analyse syntaxique d’un document XML et
fournit des opérateurs pour le manipuler
ObjectifObjectif�Standardiser la manipulation de documents XML
⇒ API indépendante d’un langage ou d’une plate-forme
informatique
2 types d'approches2 types d'approches�Construction d’une représentation du document en mémoire
• XML → représentation arborescente
• exemple : DOM
�Pas de construction du document en mémoire• exemple : SAX... et LEX !
11
SAX : Simple API for XMLSAX : Simple API for XMLhttphttp://://wwwwww..megginsonmegginson..comcom/SAX/SAX
Qu’est-ce ?Qu’est-ce ?�API basée sur l’exploitation d’événements apparaissant lors de
l’analyse d’un document XML :• détection de signaux d’ouverture/fermeture d'éléments,
• détection d’un contenu textuel,
• détection des propriétés (couples attribut-valeur d’un élément)
• …
Avantage / InconvénientAvantage / Inconvénient�Coût faible en ressource mémoire
�Possibilités limitées de manipulation
De nombreuses distributionsDe nombreuses distributions�En Java par exemple : IBM, Sun, Oracle, ...
12
Utilisation d’un analyseur lexical (LEX)Utilisation d’un analyseur lexical (LEX)
PrincipesPrincipes�Règles de la forme : déclencheur - actions à déclenchées
�Possibilité de déclaration de contexte
%START AUTEUR
%%"<author>" BEGIN AUTEUR;. ;<AUTEUR>"and" putchar(‘\n’); <AUTEUR>"</author>" { putchar(‘\n’); BEGIN 0; }%%
Passage dans le contexte AUTEUR
Définition du contexte AUTEUR
Passage dans l ’état initial
Saut de lignes
<ref type="InProceedings" id="nauer00a"> <author>E. Nauer and R. Al Hulou and A. Napoli</author> <title>...</title> ...
Document XML
E. NauerR. Al HulouA. Napoli
13
DOM : DocumentDOM : Document Object Object Model Model
Qu'est-ce ?Qu'est-ce ?�Un modèle objet du document XML
� Interface de manipulation de document XML (API)⇒ ensemble standard d'objets (modèles) pour
• représenter (représentation arborescente),
• combiner, accéder et manipuler des documents XML
Avantage / InconvénientAvantage / Inconvénient�Large possibilité de manipulation du document XML
�Coûteux en ressource mémoire (gros documents)
Des implémentationsDes implémentations�En Java, C++, ...
14
DOM - Analyse syntaxique d’un document XMLDOM - Analyse syntaxique d’un document XML
<equipe> <nom>Orpailleur</nom> .... <membres> <chercheur id="napoli"> ... </chercheur> ... <doctorant id="nauer" directeur="napoli" interet="theme4, theme5">E. Nauer</doctorant> </membres></equipe>
Document XML
equipe
nom membres
id
napoli
nauer
directeur
interet theme4, theme5
doctorant
E. Nauer
id napoli
chercheur
...
Orpailleur
Interface DOM
15
DOM - Un exemple d'interfaceDOM - Un exemple d'interface
interface Node { // NodeTypeconst unsigned short ELEMENT_NODE = 1;const unsigned short ATTRIBUTE_NODE = 2;const unsigned short TEXT_NODE = 3;const unsigned short CDATA_SECTION_NODE = 4;[...]readonly attribute DOMString nodeName;attribute DOMString nodeValue;readonly attribute unsigned short nodeType;readonly attribute NodeList childNodes;readonly attribute Node parentNode, firstChild, lastChild,
previousSibling, nextSibling;[...]Node insertBefore(in Node newChild, in Node refChild) raises(DOMException);Node replaceChild(in Node newChild, in Node oldChild) raises(DOMException);Node removeChild(in Node oldChild) raises(DOMException);Node appendChild(in Node newChild) raises(DOMException);boolean hasChildNodes();Node cloneNode(in boolean deep);
};
16
DOM - Passage à une structure de donnéesDOM - Passage à une structure de données
equipe
nom membres
label
napoli
nauer
directeur
interet theme4, theme5
doctorant
E. Nauer
label napoli
chercheur
A. Napoli
Orpailleur
Interface DOM
Structure de données interne à une application
&equipe
&nauer &napoli
&theme5
&theme4
directeur
∈∈travaille sur
Intérêt pour
17
XML et la programmation par objetsXML et la programmation par objets
ObjectifObjectif�Manipuler de vrais objets
Passage automatique de XML aux objets [Passage automatique de XML aux objets [ReinholdReinhold]]
XML-Schéma
Documents XML
Sui
vent
Compilation
PrincipesPrincipes�Création des classes à partir du schéma
Transformation en objets (entrée)
Transformation en XML (sortie)
�Création des méthodes d’entrée / sortie
Classes
Objets
Inst
ance
de
en Java
18
Langages de requêtesLangages de requêtes
XSL : Extensible StyleXSL : Extensible Style Language Language
XML XML QueryQuery httphttp://://wwwwww.W3..W3.orgorg/XML//XML/QueryQuery�Recommandation pour un langage de requêtes
�Exemple de syntaxe :
<bib> { FOR $b IN document("http://www.bn.com")/bib/book WHERE $b/publisher = "Addison-Wesley" AND $b/@year > 1991 RETURN <book year={ $b/@year }> { $b/title } </book> }</bib>
19
Approche modulaireApproche modulaire
Modularité par décomposition de programme [Meyer]Modularité par décomposition de programme [Meyer]�Décomposition modulaire :
• décomposition d’un problème en sous-problèmes indépendants
�Compréhensibilité modulaire• modules plus simples, plus compréhensibles
� Composition modulaire :• modules réutilisables
• assemblage de modules ⇒ nouveaux modules
Atouts pour le Atouts pour le prototypageprototypage�Evolutivité des applications :
• possibilité de créer et d’intercaler facilement des modulesmanquants pour adapter des applications existantes
20
Exemple de résolution de problèmeExemple de résolution de problème
Extraire le nombre de publications de chaque auteur, dans un ensemble de références bibliographiques
Tri
Suite triée d’auteurs
A. Napoli A. Napoli E. NauerE. NauerE. NauerJ. Ducloy...
Dénombrement
Ensemble des auteurs avec leur fréquence
2 A. Napoli 3 E. Nauer1 J. Ducloy1 J.C. Lamirel1 R. Al Hulou
Ensemble de références
<ref type="InProceedings" id="nauer97b"> <author>E. Nauer and J. Ducloy and J.C Lamirel</author>
<ref type="InProceedings" id="alhulou00a"> <author>R. Al Hulou and E. Nauer and A. Napoli</author> <ref type="InProceedings" id="nauer00a"> <author>E. Nauer and R. Al Hulou and A. Napoli</author> ...
Suite d’auteurs
E. NauerJ. DucloyJ.C. LamirelR. Al HulouE. Nauer A. Napoli...
Extraction des auteurs
21
Approche modulaireApproche modulaire
Contraintes techniquesContraintes techniques
E/S E/SEspacedisque
MN MN+1
�Lien efficace entre les modules : pas de stockage sur disque
E/S E/SBufferMN MN+1
�Système de pipeline UNIX
22
Spécifications des interfacesSpécifications des interfaces
Forte spécification des interfaces entre MForte spécification des interfaces entre MNN et M et MN+1N+1
�Cas simple :• solutions simples, exemple : un mot par ligne
�Cas complexes :• échanges d’objets : utilisation de XML
Avantage de XMLAvantage de XML�Standardisation de la structure des données
+ standardisation de la désignation des éléments d’information⇒ modules paramétrables
E/S E/S?MN MN+1
23
Approche modulaireApproche modulairepour le traitement de données XMLpour le traitement de données XML
Avantages de l’approche modulaireAvantages de l’approche modulaire�Possibilité de développer chaque module en utilisant les outils les
plus performants
�Utilisation de commandes standards UNIX :• sort (tri), wc (comptage), awk (traitement sur les lignes), ...
• transformation de données structurées : LEX / YACC
�Utilisation de différents langages de programmation
Forme séquentielle de XMLForme séquentielle de XML�Adaptée à la communication par flux de données
�Selon les besoins, le document XML est interprétable comme :• une suite de caractères
• un arbre XML
• un objet
24
XML au cœur de l’interopérabilitéXML au cœur de l’interopérabilité
...
XSL XQuery
SAX DOM
Xpath
Xlink
Environnement
Xpointer
Outils graphiques
...Java C
Langages de programmation
...
Outils statistiques
Classification
Dénombrement
... LEX / YACC
Commandes UNIX
Outils standards
...
Moteurs d’indexationet de recherche
Outils documentaires
DILIB SGBD Treillis de
Galois ... Logiques de description
Systèmes de représentation des connaissances
...Vos outils
XML
Base1
WEB
Base2
BaseN
Données