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