XML et l - Les pages des personnels du LORIA et du Centre Inria NGE

Transcription

XML et l - Les pages des personnels du LORIA et du Centre Inria NGE
XML et l ’interopérabilité
Séminaire QSL
XML et ses technologies
Emmanuel Nauer
Orpailleur - LORIA
1
Plan
XML 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é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 discussion
2
XML
Atouts 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
3
Adaptabilité de XML aux données textuelles
Exemple d’une référence bibliographique PASCAL
Job design and job stress in office workers
Auteur
Adresse
Source
Descripteurs
:
:
:
:
CARAYON P
Univ. Wisconsin-Madison, Madison WI 53706, USA
Ergonomics; ISSN 0014-0139; DA. 1993; VOL. 36; PP. 463-477
Psychological stress, Job satisfaction, Office work
Conversion XML
<Reference>
<Titre>Job design and job stress in office workers</Titre>
<Auteur>CARAYON P</Auteur>
<Source>
<Adresse>Univ. Wisconsin-Madison, Madison WI 53706, USA</Adresse>
<Revue>
<Source>Ergonomics; ISSN 0014-0139; DA. 1993; VOL. 36; PP. 463-477</Source>
<Nom>Ergonomics</Nom>
<Descripteurs>Psychological stress, Job satisfaction, Office work</Descripteurs>
<ISSN>0014-0139<ISSN>
</Reference>
</Revue>
Règles de réécriture
Utilisation de LEX / YACC, ...
<DA>1993</DA>
<VOL>36</VOL>
<PP>463-477</PP>
</Source>
4
Adaptabilité de XML aux formats existants
Exemple d’une référence BibTex
@Book{michard99a,
author =
{A. Michard},
title =
{{XML - Langage et applications}},
publisher = {Eyrolles},
year =
{1999}
}
Conversion XML
<Reference type="Book" id="michard99a">
<author>A. Michard</author>
<title>XML - Langage et applications</title>
<publisher>Eyrolles</publisher>
<year>1999</year>
</Reference>
5
Adaptabilité de XML aux données relationnelles
Table MEMBRES_ORPAILLEUR
Nom
...
Lieber
Nauer
Napoli
...
Prénom
...
Jean
Emmanuel
Amedeo
...
Bureau
...
B128
B127
B208
...
Poste
...
20 86
20 88
20 68
...
Conversion XML
<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>
6
XML : un standard pour la
description de données textuelles
Domaines 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 : http://www .oasis-open.org/cover
7
XML : au centre de l’échange de données
Hétérogénéité
Base de données
relationnelle
XML
Pascal
...
XPascal
MARC
XMarc
...
BiblioML
Base de
données
objets
Format pivot
BibTex
BibTeXML
XHTML
HTML
8
Les outils autour de XML
Infrastructure du W3C
http://www .w3c.org/
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’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 ?
9
Les parsers XML
Qu’est-ce ?
Module qui réalise l’analyse syntaxique d’un document XML et
fournit des opérateurs pour le manipuler
Objectif
Standardiser la manipulation de documents XML
⇒ API indépendante d’un langage ou d’une plate-forme
informatique
2 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 !
10
SAX : Simple API for XML
http://www.megginson.com/SAX
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énient
Coût faible en ressource mémoire
Possibilités limitées de manipulation
De nombreuses distributions
En Java par exemple : IBM, Sun, Oracle, ...
11
Utilisation d’un analyseur lexical (LEX)
Principes
Règles de la forme : déclencheur - actions à déclenchées
Possibilité de déclaration de contexte
Document XML
Définition du contexte AUTEUR
<ref type="InProceedings" id="nauer00a">
<author>E. Nauer and R. Al Hulou and A. Napoli</author>
<title>...</title>
...
E. Nauer
R. Al Hulou
A. Napoli
%START AUTEUR
%%
"<author>"
.
<AUTEUR>"and"
<AUTEUR>"</author>"
%%
BEGIN AUTEUR;
;
putchar(‘\n’);
{ putchar(‘\n’);
BEGIN 0;
}
Passage dans le
contexte AUTEUR
Saut de lignes
Passage dans
l ’état initial
12
DOM : Document Object Model
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énient
Large possibilité de manipulation du document XML
Coûteux en ressource mémoire (gros documents)
Des implémentations
En Java, C++, ...
13
DOM - 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
Interface DOM
nom
membres
Orpailleur
doctorant
chercheur
...
id
napoli
E. Nauer
id
nauer
directeur
napoli
interet
theme4, theme5
14
DOM - Un exemple d'interface
interface Node {
// NodeType
const 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);
};
15
DOM - Passage à une structure de données
equipe
Interface DOM
nom
membres
Orpailleur
doctorant
chercheur
A. Napoli
napoli
label
E. Nauer
label
nauer
directeur
napoli
interet
theme4, theme5
Structure de données
interne à une application
&equipe
travaille sur
∈
&napoli
∈
directeur
&theme4
&theme5
&nauer
Intérêt pour
16
XML et la programmation par objets
Objectif
Manipuler de vrais objets
Passage automatique de XML aux objets [Reinhold]
Compilation
Instance de
Classes
Suivent
XML-Schéma
Transformation en objets (entrée)
Documents XML
Objets
Transformation en XML (sortie)
Principes
Création des classes à partir du schéma
Création des méthodes d’entrée / sortie
en Java
17
Langages de requêtes
XSL : Extensible Style Language
XML Query
http://www .W3.org/XML/Query
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>
18
Approche modulaire
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 prototypage
Evolutivité des applications :
• possibilité de créer et d’intercaler facilement des modules
manquants pour adapter des applications existantes
19
Exemple de résolution de problème
Extraire le nombre de publications de chaque auteur, dans un ensemble de références bibliographiques
<ref type="InProceedings" id="nauer97b">
<author>E. Nauer and J. Ducloy and J.C Lamirel</author>
Ensemble de
références
<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>
...
Extraction
des auteurs
Suite
d’auteurs
E. Nauer
J. Ducloy
J.C. Lamirel
R. Al Hulou
E. Nauer
A. Napoli
...
Tri
Suite triée
d’auteurs
Ensemble des
auteurs avec
leur fréquence
A. Napoli
A. Napoli
E. Nauer
E. Nauer
E. Nauer
J. Ducloy
...
2
3
1
1
1
Dénombrement
A. Napoli
E. Nauer
J. Ducloy
J.C. Lamirel
R. Al Hulou
20
Approche modulaire
Contraintes techniques
MN
E/S
Espace
disque
E/S
MN+1
Lien efficace entre les modules : pas de stockage sur disque
Système de pipeline UNIX
MN
E/S
Buffer
E/S
MN+1
21
Spécifications des interfaces
MN
E/S
?
E/S
MN+1
Forte spécification des interfaces entre MN et MN+1
Cas simple :
• solutions simples, exemple : un mot par ligne
Cas complexes :
• échanges d’objets : utilisation de XML
Avantage de XML
Standardisation de la structure des données
+ standardisation de la désignation des éléments d’information
⇒ modules paramétrables
22
Approche modulaire
pour le traitement de données XML
Avantages 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 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
23
XML au cœur de l’interopérabilité
Outils documentaires
Données
Systèmes de représentation des
connaissances
DILIB
...
SGBD
Moteurs d’indexation
et de recherche
Logiques de
description
Treillis de
Galois
...
Base1
Base2
DOM
Environnement
SAX
Vos outils
...
Xpath
...
BaseN
Xpointer
XML
Outils statistiques
Xlink
XSL
XQuery
Classification
...
Dénombrement
WEB
Outils graphiques
Langages de
programmation
Java
C
...
Outils standards
LEX / YACC
...
Commandes UNIX
24

Documents pareils