Chapitre 2 Documents web structurés en XML

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Transformation de documents XML
DTD Sylvain Salvati
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Les numéros 70 –
Les numéros
Les identités remarquables
Les espaces de nommage XML par Philippe Poulard 1
le langage les éléments
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
Algorithme et structure de données
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Données statistiques sur le droit doption au 31/01 8 février 2012.
Manipulation d’XML avec XSL
Technologies et pédagogie actives en FGA. Plan de latelier 1.Introduction 2.Les technologies en éducation 3.iPads 4.TNI 5.Ordinateurs portables 6.Téléphones.
Révision (p. 130, texte) Nombres (1-100).
La législation formation, les aides des pouvoirs publics
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Initiation et perfectionnement à lutilisation de la micro-informatique Créer un blog avec Windows Live Spaces sur un Mac ou sur un PC ©Yves Roger Cornil.
La méthodologie………………………………………………………….. p3 Les résultats
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Développement d’applications web
QUALIPREF Synthèse de lenquête de satisfaction réalisée du 2 avril au 25 mai 2012 après réception de 306 questionnaires.
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Les nombres.
Fierté envers les symboles et institutions canadiens Jack Jedwab Association détudes canadiennes 26 novembre 2012.
Tableaux de distributions
Tableaux de distributions
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
LES NOMBRES PREMIERS ET COMPOSÉS
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
Xpath XML Path language par Yves Bekkers
RACINES CARREES Définition Développer avec la distributivité Produit 1
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
Les maths en francais 7ième année.
1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans.
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Chapitre 3 Syntaxe et sémantique.
Jean-Marc Léger Président Léger Marketing Léger Marketing Les élections présidentielles américaines.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Les Nombres 0 – 100 en français.
Aire d’une figure par encadrement
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
Annexe Résultats provinciaux comparés à la moyenne canadienne
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Le langage XML.
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
eXtensible Markup Language. Généralités sur le XML.
Transcription de la présentation:

Chapitre 2 Documents web structurés en XML Grigoris Antoniou Frank van Harmelen Chapter 2 A Semantic Web Primer

Exemple de HTML <h2>Non monotonic Reasoning: Context- Dependent Reasoning</h2> <i>by <b>V. Marek</b> and <b>M. Truszczynski</b></i> <br>Springer 1993<br> ISBN 0387976892 Chapter 2 A Semantic Web Primer

Le même exemple en XML <livre> <titre>Non monotonic Reasoning: Context- Dependent Reasoning</titre> <auteur>V. Marek</auteur> <auteur>M. Truszczynski</auteur> <publisher>Springer</publisher> <annee>1993</annee> <ISBN>0387976892</ISBN> </livre> Chapter 2 A Semantic Web Primer

HTML par rapport à XML: Similarités Les deux utilisent des balises (par ex. <h2> et </annee>) Les balises peuvent être emboîtées (balises incluant d'autres) L'homme peut facilement lire et interpréter les représentations HTML et XML … mais quid des machines? Chapter 2 A Semantic Web Primer

Problèmes liés à l'interprétation automatisée des documents HTML Prenons le cas d'un (robot) agent logiciel cherchant à retrouver les noms des auteurs d'un livre les noms des auteurs peuvent apparaître immédiatement après le titre ou tout de suite après le mot "de" y a-t-il deux auteurs ? ou un seul, nommé "V. Marek et M. Truszczynski”? Chapter 2 A Semantic Web Primer

HTML par rapport à XML: Information structurelle Les documents HTML ne contiennent pas d‘ information structurelle : les éléments du document et leurs relations XML est plus facilement accessible par la machine parce que chaque élément d'information est décrit les relations sont aussi définies par la structure à emboîtement par ex. les balises <auteur> apparaissent dans les balises <livre> qui ainsi décrivent les propriétés de ce livre précis. Chapter 2 A Semantic Web Primer

HTML par rapport à XML: Information structurelle (2) Une machine qui traite un document XML est en mesure de déduire que : l'élément ‘auteur’ se réfère à l'élément ‘livre’ inclus au lieu de s'en tenir à des considérations de proximité XML permet d'imposer des contraintes à des valeurs Par ex. une année doit être un nombre de quatre chiffres Chapter 2 A Semantic Web Primer

HTML par rapport à XML: Formatage La représentation HTML apporte plus que celle de XML: le formatage du document est également décrit L'utilisation principale d'un document HTML est d'afficher l'information: il doit définir le formatage XML: séparation du contenu de son affichage la même information peut être affichée de différentes manières Chapter 2 A Semantic Web Primer

HTML par rapport à XML: autre exemple En HTML <h2>Relation masse-énergie</h2> <i> E = M × C2 </i> En XML <equation> <sens>Relation masse énergie</sens> <gauche> E </gauche> <droit> M × C2 </droit> </equation> Chapter 2 A Semantic Web Primer

HTML par rapport à XML: utilisation différente des balises Dans les deux documents HMTL les balises sont les mêmes En XML, elles sont complètement différentes Les balises HTML définissent l'affichage : couleur, listes ... Les balises XML ne sont pas fixes: elles sont définies par l'utilisateur XML méta-langage à balises : langage servant à déterminer les langages à balises ! Chapter 2 A Semantic Web Primer

Vocabulaires XML Les applications web doivent convenir de vocabulaires communs pour pouvoir communiquer et coopérer Les communautés et le monde des affaires définissent ainsi leurs vocabulaires spécialisés Mathématiques (MathML) Bio-informatique (BSML) Ressources Humaines (HRML) … Chapter 2 A Semantic Web Primer

Sommaire Introduction Description détaillée de XML Structuration les DTD XML Schema Espaces de noms (Dénominations) Accès, requête de documents XML : XPath Transformations : XSLT Chapter 2 A Semantic Web Primer

Le langage XML Un document XML est constitué de : un prologue un certain nombre d'éléments un épilogue (option non discutée)(?) Chapter 2 A Semantic Web Primer

Prologue d'un document XML Le prologue comporte: une déclaration XML et une référence en option à des documents de structuration externes <?xml version="1.0" encoding="UTF-16"?> <!DOCTYPE book SYSTEM “book.dtd"> Chapter 2 A Semantic Web Primer

Eléments XML Ce dont parle le document XML : Un élément comporte: par ex. livres, auteurs, éditeurs Un élément comporte: une balise d'ouverture le contenu une balise de fermeture <lecteur>David Billington</lecteur> Chapter 2 A Semantic Web Primer

Eléments XML (2) Les noms des balises sont presque libres Le premier caractère doit être une lettre, un tiret inférieur ou un double point Mais aucun nom de balise ne peut commencer par la chaîne "xml" quelle que soit la casse Par ex. “Xml”, “xML” Chapter 2 A Semantic Web Primer

Contenu des éléments XML Le contenu peut être du texte, d'autres éléments ou encore rien du tout <lecteur> <nom>David Billington</nom> <telephone> +61 − 7 − 3875 507 </telephone> </lecteur> En l'absence de contenu, l'élément est réputé vide et est abrégé comme suit: <lecteur/> for <lecteur></lecteur> Chapter 2 A Semantic Web Primer

Attributs XML Un élément vide n'est pas forcément sans signification Il peut avoir certaines propriétés en termes d'attributs Un attribut est une paire valeur-nom à l'intérieur de la balise d'ouverture d'un élément <lecteur nom="David Billington" telephone="+61 − 7 − 3875 507"/> Chapter 2 A Semantic Web Primer

Attributs XML: exemple <commande comNo="23456" client="John Smith" date="Octobre 15, 2002"> <item itemNo="a528" quantité="1"/> <item itemNo="c817" quantité="3"/> </commande> Chapter 2 A Semantic Web Primer

Même exemple sans usage des attributs au sein de la balise d’ouverture <commande> <commandeNo>23456</comandeNo> <client>John Smith</client> <date>Octobre 15, 2002</date> <item> <itemNo>a528</itemNo> <quantité>1</quantité> </item> <itemNo>c817</itemNo> <quantité>3</quantité> </commande> Chapter 2 A Semantic Web Primer

Eléments XML par rapport aux attributs Les attributs peuvent être remplacés par des éléments Utiliser des éléments ou des attributs est affaire de choix Mais les attributs ne peuvent pas être emboîtés Chapter 2 A Semantic Web Primer

Autres composants des documents XML Commentaires Morceau de texte que doit ignorer le parseur (outil d'analyse syntaxique) <!-- This is a comment --> Instructions de traitement (PIs) Définissent les connexions de procédure <?stylesheet type="text/css" href="mystyle.css"?> Chapter 2 A Semantic Web Primer

Documents XML bien formés Documents avec une syntaxe correcte Quelques règles de syntaxe: Une seul élément racine Chaque élément contient une balise d'ouverture et une balise de fermeture correspondante Les balises ne peuvent pas se chevaucher <auteur><nom>Lee Hong</auteur></nom> Les attributs à l'intérieur d'un élément ont des noms uniques Les noms d'éléments et de balises doivent être autorisés Chapter 2 A Semantic Web Primer

Les modèles arborescents de documents XML: un exemple : <email> <en-tête> <de nom="Michael Maher" adresse="michaelmaher@cs.gu.edu.au"/> <à nom="Grigoris Antoniou" addresse="grigoris@cs.unibremen.de"/> <sujet>Où reste ton brouillon ?</sujet> </en-tête> <corps> Grigoris, où est le projet d'article que tu m'as promis la semaine dernière? </corps> </email> Chapter 2 A Semantic Web Primer

Les modèles arborescents de documents XML : exemple 2 : Racine E-mail En-tête Corps De A Sujet Nom Adresse Nom Adresse Grigoris, où est le projet d'article que tu m'as promis la semaine dernière ? Michael Maher Michaelmaher @cs.gu.edu.au Grigoris Antoniou grigoris@ cs.unibremen.de Où reste ton brouillon ? Chapter 2 A Semantic Web Primer

Les modèles arborescents de documents XML La représentation arborescente d'un document XML a la forme d'un arbre étiqueté dans un certain ordre il n'y a qu'une seule racine il n'y a pas de cycle chaque noeud non racine a exactement un seul parent chaque noeud a un nom l'ordre des éléments est important ... mais l'ordre des attributs n'est pas important Chapter 2 A Semantic Web Primer

Sommaire Introduction Description détaillée de XML Structuration les DTD XML Schema Espaces de noms Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

Structuration des documents XML Définir tous les noms d'éléments et d'attributs susceptibles d'être utilisés Définir la structure quelles valeurs un attribut peut prendre quels éléments peuvent ou doivent apparaître avec d'autres éléments, etc. Lorsque ces informations de structuration existent, le document peut être validé Chapter 2 A Semantic Web Primer

Structuration des documents XML (2) Un document XML est valide s'il est correctement formé s'il respecte les informations de structuration qu'il utilise Il existe deux moyens de définir la structure des documents XML: les DTD (plus ancien et restrictif) XML Schema (propose de possibilités accrues) Chapter 2 A Semantic Web Primer

DTD: définition de type d'élément <lecteur> <nom>David Billington</nom> <telephone> +61 − 7 − 3875 507 </telephone> </lecteur> DTD pour les éléments ci-dessus (et tous les éléments lecteur ): <!ELEMENT lecteur (nom,telephone)> <!ELEMENT nom (#PCDATA)> <!ELEMENT telephone (#PCDATA)> Chapter 2 A Semantic Web Primer

Signification de DTD Les types d'éléments lecteur, nom, et telephone peuvent être utilisés dans le document Un élément lecteur contient un élément nom et un élément telephone, dans cet ordre de (séquence) L'élément nom et l'élément telephone peuvent avoir n'importe quel contenu Dans les DTD, #PCDATA est le seul type atomique (insécable) pour les éléments (?) Chapter 2 A Semantic Web Primer

DTD: disjonction dans les définitions de type d'élément On exprime que l'élément lecteur contient soit un élément nom soit un élément phone de la manière suivante: <!ELEMENT lecteur (nom|telephone)> L'élément lecteur contient un élément nom et un élément telephone dans n'importe quel ordre. <!ELEMENT lecteur((nom,telephone)|(telephone,nom))> Chapter 2 A Semantic Web Primer

Exemple d'élément XML <commande commandeNo="23456" client="John Smith" date="Octobre 15, 2002"> <item itemNo="a528" quantite="1"/> <item itemNo="c817" quantite="3"/> </commande> Chapter 2 A Semantic Web Primer

DTD correspondante <!ELEMENT commande (item+)> <!ATTLIST commande commandeNo ID #REQUIRED client CDATA #REQUIRED date CDATA #REQUIRED> <!ELEMENT item EMPTY> <!ATTLIST item itemNo ID #REQUIRED quantite CDATA #REQUIRED commentaires CDATA #IMPLIED> Chapter 2 A Semantic Web Primer

Commentaires sur cette DTD Le type d'élément item est défini comme étant vide + (après item) est un opérateur de cardinalité: ?: apparaît zéro ou une seule fois *: apparaît zéro ou plusieurs fois +: apparaît une ou plusieurs fois Aucun opérateur de cardinalité ne signifie exactement une seule fois Chapter 2 A Semantic Web Primer

Commentaires sur ce DTD (2) En plus de définir les éléments, on définit les attributs Ceci se fait dans une liste d'attributs contenant: le nom du type d'élément auquel la liste s'applique une liste des triplets nom d'attribut, type d'attribut et type de valeur Nom d'attribut: nom pouvant être utilisé dans un document XML faisant appel à une DTD Chapter 2 A Semantic Web Primer

DTD: types d'attributs Semblables aux types de données prédéfinies mais avec un choix restreint Les principaux types sont CDATA, chaîne (suite de caractères) ID, nom unique dans l'ensemble du document XML IDREF, référence à un autre élément avec un attribut ID portant la même valeur que l'attribut IDREF IDREFS, série des IDREF (v1| . . . |vn), énumération de toutes les valeurs possibles Restrictions: aucunes dates, plages de nombres, etc. Chapter 2 A Semantic Web Primer

DTD : types de valeur d'attribut #REQUIRED l'attribut doit apparaître chaque fois que le type d'élément est présent dans le document XML #IMPLIED la présence de l'attribut est optionnelle #FIXED "value" tout élément doit avoir cet attribut "value" ceci définit la valeur par défaut de l'attribut Chapter 2 A Semantic Web Primer

Référencement avec IDREF et IDREFS <!ELEMENT famille (personne*)> <!ELEMENT personne (nom)> <!ELEMENT nom (#PCDATA)> <!ATTLIST personne id ID #REQUIRED mere IDREF #IMPLIED pere IDREF #IMPLIED enfant IDREFS #IMPLIED> Chapter 2 A Semantic Web Primer

Document XML respectant la DTD <famille> <personne id="bob" mere="mary" pere="peter"> <nom>Bob Marley</nom> </personne> <personne id="bridget" mere="mary"> <nom>Bridget Jones</nom> <personne id="mary" children="bob bridget"> <nom>Mary Poppins</nom> <personne id="peter" children="bob"> <nom>Peter Marley</nom> </famille> Chapter 2 A Semantic Web Primer

La DTD pour l'élément e-mail <!ELEMENT email (en-tête,corps)> <!ELEMENT en-tête (from,to+,cc*,sujet)> <!ELEMENT from EMPTY> <!ATTLIST from nom CDATA #IMPLIED adresse CDATA #REQUIRED> <!ELEMENT to EMPTY> <!ATTLIST to nom CDATA #IMPLIED Chapter 2 A Semantic Web Primer

La DTD pour l'élément e-mail (2) <!ELEMENT cc EMPTY> <!ATTLIST cc nom CDATA #IMPLIED adresse CDATA #REQUIRED> <!ELEMENT sujet (#PCDATA)> <!ELEMENT coprs (texte,attachment*)> <!ELEMENT texte (#PCDATA)> <!ELEMENT attachment EMPTY> <!ATTLIST attachment encoding (mime|binhex) "mime" file CDATA #REQUIRED> Chapter 2 A Semantic Web Primer

Parties intéressantes de DTD L'élément d'en-tête head contient (dans l'ordre): l'élément from au moins un élément to zéro ou plusieurs éléments cc un élément sujet Dans les éléments from, to et cc l'attribut nom n'est pas nécessaire l'attribut adresse est toujours indispensable Chapter 2 A Semantic Web Primer

Parties utilitaires de DTD (2) L'élément corps (body) contient un élément texte éventuellement suivi de plusieurs éléments attachment L'attribut encoding d'un élément attachment doit avoir la valeur “mime” ou “binhex” “mime” est la valeur par défaut Chapter 2 A Semantic Web Primer

Remarques concernant les DTD Une DTD peut être interprétée comme un Extended Backus-Naur Form (EBNF) <!ELEMENT email (en-tête,corps)> est équivalent à email ::= head body Définitions possibles récursives dans les DTD <!ELEMENT bintree ((bintree root bintree)|emptytree)> Chapter 2 A Semantic Web Primer

Sommaire Introduction Description détaillée de XML Structuration les DTD XML Schema Espaces de noms Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

XML Schema Langage beaucoup plus riche pour définir la structure des documents XML La syntaxe Tts (?) est basée sur XML - il n'est pas nécessaire d'écrire des outils distincts Réutilisation et affinement des schémas - étendre ou supprimer des schémas existants Jeu de types de données sophistiqué par comparaison aux DTD (qui ne supportent que des strings (les chaînes) Chapter 2 A Semantic Web Primer

XML Schema (2) Un XML Schema est un élément à balise d'ouverture de type <schema "http://www.w3.org/2000/10/XMLSchema" version="1.0"> Structure des éléments schéma Types d'éléments et d'attributs utilisant les types de données Chapter 2 A Semantic Web Primer

Types d'éléments <element nom="email"/> <element nom="head" minOccurs="1" maxOccurs="1"/> <element nom="to" minOccurs="1"/> Contraintes de cardinalité: minOccurs="x" (valeur par défaut 1) maxOccurs="x" (valeur par défaut 1) Généralisations de *,?,+ proposées par les DTD Chapter 2 A Semantic Web Primer

Types d'attributs <attribut nom="id" type="ID“ use="required"/> < attribut nom="speaks" type="Language" use="default" value="en"/> Existence: use="x", où x peut être optionnel ou nécessaire Valeur par défaut: use="x" value="...", où x peut être par défaut ou fixe Chapter 2 A Semantic Web Primer

Types de données Il existe plusieurs types de données incorporées types de données en chiffres: integer, Short etc. types de chaînes: string, ID, IDREF, CDATA etc. dates et types de données temporelles: time, Month etc. Il existe aussi des types de données définies par l'utilisateur les types simples qui ne peuvent pas utiliser des éléments ou des attributs types de données complexes qui peuvent les utiliser Chapter 2 A Semantic Web Primer

Types de données (2) Les types de données complexes se définissent au départ de données existantes par certains attributs (s'il y en a) et utilisent: séquence, suite d'éléments de types de données existantes (l'ordre est important) tout ensemble d'éléments qui doivent être présents (l'ordre n'est pas important) choix, ensemble d'éléments dont l'un sera choisi Chapter 2 A Semantic Web Primer

Exemple de type de données <complexType nom="lecteurType"> <sequence> <element nom=“prénom" type="string" minOccurs="0“ maxOccurs="unbounded"/> <element nom="nom" type="string"/> </sequence> <attribute nom="titre" type="string" use="optional"/> </complexType> Chapter 2 A Semantic Web Primer

Extension de type de données Des types de données existants peuvent être étendus à l'aide de nouveaux éléments ou attributs. Exemple: <complexType nom="extendedlecteurType"> <extension base="lecteurType"> <sequence> <element nom="email" type="string" minOccurs="0" maxOccurs="1"/> </sequence> <attribute nom="rank" type="string" use="required"/> </extension> </complexType> Chapter 2 A Semantic Web Primer

Type de données résultant <complexType nom="extendedlecteurType"> <sequence> <element nom=“prenom" type="string" minOccurs="0" maxOccurs="unbounded"/> <element nom="nom" type="string"/> <element nom="email" type="string" minOccurs="0" maxOccurs="1"/> </sequence> <attribute nom="titre" type="string" use="optional"/> <attribute nom="rank" type="string" use="required"/> </complexType> Chapter 2 A Semantic Web Primer

Extension de type de données (2) Une relation hiérarchique existe entre le type d'orgine et le type étendu Les occurrences du type étendu sont également celles du type d'origine Elles peuvent contenir des informations complémentaires mais pas moins, ni d'information de type erroné Chapter 2 A Semantic Web Primer

Restriction de type de données Un type de données existant peut se voir restreint par l'adjonction de contraintes à certaines valeurs Restriction n'est pas l'inverse d'extension une restriction ne s'établit pas par suppression d'éléments ou attributs La relation hiérarchique suivante contient encore: les occurrences de type restreint sont également du type d'origine elles satisfont au moins les contraintes du type d'origine Chapter 2 A Semantic Web Primer

Exemple de restriction de type de données <complexType nom="restrictedlecteurType"> <restriction base="lecteurType"> <sequence> <element nom=“prenom" type="string" minOccurs="1" maxOccurs="2"/> </sequence> <attribute nom="titre" type="string" use="required"/> </restriction> </complexType> Chapter 2 A Semantic Web Primer

Restriction des types de données simples <simpleType nom="dayOfMonth"> <restriction base="integer"> <minInclusive value="1"/> <maxInclusive value="31"/> </restriction> </simpleType> Chapter 2 A Semantic Web Primer

Restriction des types de données: énumération <simpleType nom="dayOfWeek"> <restriction base="string"> <enumeration value="Mon"/> <enumeration value="Tue"/> <enumeration value="Wed"/> <enumeration value="Thu"/> <enumeration value="Fri"/> <enumeration value="Sat"/> <enumeration value="Sun"/> </restriction> </simpleType> Chapter 2 A Semantic Web Primer

XML Schema: exemple de l'e-mail <element nom="email" type="emailType"/> <complexType nom="emailType"> <sequence> <element nom="head" type="headType"/> <element nom="body" type="bodyType"/> </sequence> </complexType> Chapter 2 A Semantic Web Primer

XML Schema: exemple de l'e-mail (2) <complexType nom="headType"> <sequence> <element nom="from" type="nomAddress"/> <element nom="to" type="nomAddress" minOccurs="1" maxOccurs="unbounded"/> <element nom="cc" type="nomAddress" minOccurs="0" maxOccurs="unbounded"/> <element nom="subject" type="string"/> </sequence> </complexType> Chapter 2 A Semantic Web Primer

XML Schema: exemple de l'e-mail (3) <complexType nom="nomAddress"> <attribute nom="nom" type="string" use="optional"/> <attribute nom="address" type="string" use="required"/> </complexType> Similaire pour bodyType Chapter 2 A Semantic Web Primer

Sommaire Introduction Description détaillée de XML Structuration les DTD XML Schema Espaces de noms (Denomination) Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

Espaces de noms Un document XML peut utiliser plus d'une DTD ou schéma Comme chaque document de structuration est développé de manière indépendante, des conflits de noms peuvent surgir La solution consiste à utiliser un préfixe différent pour chaque DTD ou schéma prefix:nom Chapter 2 A Semantic Web Primer

Exemple <vu:instructeurs xmlns:vu="http://www.vu.com/empDTD" xmlns:gu="http://www.gu.au/empDTD" xmlns:uky="http://www.uky.edu/empDTD"> <uky:faculte uky:titre="assistant professeur" uky:nom="John Smith" uky:departement="Computer Science"/> <gu:academicStaff gu:titre="lecteur" gu:nom="Mate Jones" gu:ecole="Information Technology"/> </vu:instructeurs> Chapter 2 A Semantic Web Primer

Déclaration d'espaces de nom Les espaces de noms sont déclarés à l'intérieur d'un élément et peuvent s'utiliser dans cet élément ou n'importe lequel de ses enfants (éléments et attributs) Une déclaration d'espaces de noms revêt la forme: xmlns:prefix="location" location est l'adresse de la DTD ou schéma Si aucun préfixe n'est spécifié: xmlns="location" location est utilisé par défaut Chapter 2 A Semantic Web Primer

Sommaire Introduction Description détaillée de XML Structuration les DTD XML Schema Espaces de noms Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

Adressage et requête de documents XML Dans les bases de données relationnelles, certaines parties peuvent en être sélectionnées et récupérées par SQL la même nécessité s'impose aux documents XML langages de requête: XQuery, XQL, XML-QL Le concept central des langages de requête XML est une expression de chemin d'accès définit comment atteindre un noeud ou un jeu de noeuds dans une représentation arborescente d'un document XML Chapter 2 A Semantic Web Primer

XPath XPath est au coeur des langages de requête XML Langage d'adressage des parties d'un document XML travaille sur le modèle arborescent des données de XML possède une syntaxe non XML Chapter 2 A Semantic Web Primer

Types des expressions de chemins d'accès Absolut (commençant à la racine de l'arbre) la syntaxe commence par le symbole / renvoie à la racine du document (située un niveau au-dessus de l'élément de base du document) Relatif à un noeud du contexte Chapter 2 A Semantic Web Primer

Exemple XML <library location="Bremen"> <auteur nom="Henry Wise"> <titre livre="Artificial Intelligence"/> <titre livre="Modern Web Services"/> <titre livre="Theory of Computation"/> </auteur> <auteur nom="William Smart"> <auteur nom="Cynthia Singleton"> <titre livre="The Semantic Web"/> <titre livre="Browser Technology Revised"/> </library> Chapter 2 A Semantic Web Primer

Représentation arborescente Nom Racine Librairie Livre Lieu Auteur Titre Bremen Henry Wise Inteligence Artificielle Web Services Modernes Théorie Informatique William Smart Cynthia Singleton Le Web sémantique Browser Technology Revisited Chapter 2 A Semantic Web Primer

Exemples d'expression de chemins d'accès en XPath Adresse tous les éléments auteur /library/auteur Adresse tous les éléments auteur enfants du noeud de l'élément library se trouvant juste sous la racine /t1/.../tn, où chaque ti+1 est un noeud enfant ti, un chemin d'accès au travers de la représentation arborescente Chapter 2 A Semantic Web Primer

Exemples d'expressions de chemins d'accès en XPath (2) Adresse tous les éléments auteur //auteur // indique ici qu'il faut considérer tous les éléments du document et vérifier s'ils sont du type auteur Cette expression de chemin d'accès adresse tous les éléments auteur où qu'ils soient dans le document Chapter 2 A Semantic Web Primer

Exemples d'expressions de chemins d'accès en XPath (3) Adresse les noeuds attributs d'emplacement à l'intérieur des noeuds éléments library /library/@location Le symbol @ sert à indiquer les noeuds attributs Chapter 2 A Semantic Web Primer

Exemples d'expressions de chemins d'accès en XPath (4) Adresse tous les noeuds attributs titre dans les éléments livre où qu'ils soient dans le document et qui ont la valeur “Artificial Intelligence” //livre/@titre="Artificial Intelligence" Chapter 2 A Semantic Web Primer

Exemples d'expressions de chemins d'accès en XPath (5) Adresse tous les livres ('livre') dans le titre "Artificial Intelligence" /livre[@titre="Artificial Intelligence"] Test dans la partie entre crochets: expression filtre restreint le jeu des noeuds adressés Différence avec la requête 4 la requête 5 adresse les éléments livre dont le titre répond à une certaine condition la requête 4 rassemble les noeuds attributs titre des éléments livre Chapter 2 A Semantic Web Primer

Représentation arborescente de la requête 4 Nom Racine Librairie Livre Lieu Auteur Titre Bremen Henry Wise Inteligence Artificielle Web Services Modernes Théorie Informatique William Smart Cynthia Singleton Le Web sémantique Browser Technology Revisited Chapter 2 A Semantic Web Primer

Représentation arborescente de la requête 5 Nom Racine Librairie Livre Lieu Auteur Titre Bremen Henry Wise Inteligence Artificielle Web Services Modernes Théorie Informatique William Smart Cynthia Singleton Le Web sémantique Browser Technology Revisited Chapter 2 A Semantic Web Primer

Exemples d'expressions de chemins d'accès en XPath (6) Adresse le premier élément auteur dans le document XML //auteur[1] Adresse le dernier élément livre dans le premier noeud élément auteur dans le document //auteur[1]/livre[last()] Adresse tous les noeuds éléments livre sans l'attribut titre //livre[not @titre] Chapter 2 A Semantic Web Primer

Forme générale des expressions de chemin d'accès Une expression de chemin d'accès consiste en une série de pas séparés par des barres de fraction Un pas comprend Un spécificateur d'axe, Un test de noeud et en option, un prédicat Chapter 2 A Semantic Web Primer

Forme générale des expressions de chemin d'accès (2) Un spécificateur d'axe détermine la relation d'arborescence entre les noeuds à adresser et le noeud contexte par ex. noeud parent, ancêtre, enfant (par défaut), sibling (noeud ayant le même parent immédiat), attribut // représente un tel spécificateur d'axe: descendant ou autonome Chapter 2 A Semantic Web Primer

Forme générale des expressions de chemin d'accès (3) Un test de noeud spécifie quels noeuds adresser les tests de noeuds les plus courants sont les noms d'élément par ex. * adresse tous les noeuds éléments comment() adresse tous les noeuds commentaires Chapter 2 A Semantic Web Primer

Forme générale des expressions de chemin d'accès (4) Prédicats (ou expressions filtres) sont en option et servent à affiner le jeu des noeuds adressés Par ex. l'expression [1] sélectionne le premier noeud [position()=last()] sélectionne le dernier noeud [position() mod 2 =0] sélectionne les noeuds pairs XPath a en réalité une syntaxe complète plus complexe. On ne représente ici qu'une syntaxe abrégée Chapter 2 A Semantic Web Primer

Sommaire Introduction Description détaillée de XML Structuration les DTD XML Schema Espaces de noms Accès, requête de documents XML: XPath Transformations: XSLT Chapter 2 A Semantic Web Primer

Affichage des documents XML <auteur> <nom>Grigoris Antoniou</nom> <affiliation>University of Bremen</affiliation> <email>ga@tzi.de</email> </auteur> Peut être affiché de différentes manières: Grigoris Antoniou Grigoris Antoniou University of Bremen University of Bremen ga@tzi.de ga@tzi.de Chapter 2 A Semantic Web Primer

Feuilles de style Les feuilles de style peuvent être écrites en divers langages par ex. CSS2 (Cascading Style Sheets level 2) feuilles de style en cascade niveau 2 XSL (extensible stylesheet language) langage de feuille de style extensible XSL comprend un langage de transformation (XSLT) un langage de formatage tous deux sont des applications de XML Chapter 2 A Semantic Web Primer

Transformations XSL (XSLT) XSLT définit les règles par lesquelles un document entré en XML est transformé en un autre document XML un document HTML un texte en clair Le document de sortie peut utiliser la même DTD ou schéma ou un vocabulaire complètement différent XSLT peut être utilisé indépendamment du langage de formatage Chapter 2 A Semantic Web Primer

XSLT (2) Déplacer les données et métadonnées d'une représentation XML à une autre On choisit XSLT lorsque les applications utilisant des DTD ou schémas différents doivent communiquer XSLT peut servir au traitement par machine du contenu sans se préoccuper de l'affichage de l'information à lire Dans l'exemple suivant, on utilise XSLT uniquement pour afficher les documents XML Chapter 2 A Semantic Web Primer

Transformation de XSLT en HTML <xsl:template match="/auteur"> <html> <head><titre>Un auteur</titre></head> <body bgcolor="white"> <b><xsl:value-of select="nom"/></b><br> <xsl:value-of select="affiliation"/><br> <i><xsl:value-of select="email"/></i> </body> </html> </xsl:template> Chapter 2 A Semantic Web Primer

Résultat sur feuille de style <html> <head><titre>Un auteur</titre></head> <body bgcolor="white"> <b>Grigoris Antoniou</b><br> University of Bremen<br> <i>ga@tzi.de</i> </body> </html> Chapter 2 A Semantic Web Primer

Remarques sur XSLT Les documents XSLT sont des documents XML XSLT se place au-dessus de XML Le document XSLT définit un canevas ici, un document HTML avec certaines marques de réservation pour insérer le contenu xsl:value-of récupère la valeur d'un élément et la copie dans le document de cible il met un certain contenu dans le canevas Chapter 2 A Semantic Web Primer

Le canevas <html> <head><titre>Un auteur</titre></head> <body bgcolor="white"> <b>...</b><br> ...<br> <i>...</i> </body> </html> Chapter 2 A Semantic Web Primer

Canevas auxiliaires On a un document XML avec des détails sur plusieurs auteurs Il est inutile de traiter chaque élément auteur séparément On définit plutôt un canevas spécial pour les éléments auteur qui sert de canevas principal Chapter 2 A Semantic Web Primer

Exemple de canevas auxiliaire <auteurs> <auteur> <nom>Grigoris Antoniou</nom> <affiliation>University of Bremen</affiliation> <email>ga@tzi.de</email> </auteur> <nom>David Billington</nom> <affiliation>Griffith University</affiliation> <email>david@gu.edu.net</email> </auteurs> Chapter 2 A Semantic Web Primer

Exemple de canevas auxiliaire (2) <xsl:template match="/"> <html> <head><titre>auteurs</titre></head> <body bgcolor="white"> <xsl:apply-templates select="auteurs"/> <!-- Apply templates for auteurS children --> </body> </html> </xsl:template> Chapter 2 A Semantic Web Primer

Exemple de canevas auxiliaire (3) <xsl:template match="auteurs"> <xsl:apply-templates select="auteur"/> </xsl:template> <xsl:template match="auteur"> <h2><xsl:value-of select="nom"/></h2> Affiliation:<xsl:value-of select="affiliation"/><br> Email: <xsl:value-of select="email"/> <p> Chapter 2 A Semantic Web Primer

Cible pour plusieurs auteurs <html> <head><titre>auteurs</titre></head> <body bgcolor="white"> <h2>Grigoris Antoniou</h2> Affiliation: University of Bremen<br> Email: ga@tzi.de <p> <h2>David Billington</h2> Affiliation: Griffith University<br> Email: david@gu.edu.net </body> </html> Chapter 2 A Semantic Web Primer

Explication de l'exemple xsl:apply-templates permet de faire correspondre tous les enfants du noeud contexte à l'expression de chemin d'accès choisi par ex. si le canevas actuel s'applique à /, l'élément xsl:apply-templates s'applique à l'élément racine autrement dit, l'élément auteurs (/ est placé au-dessus de l'élément racine) si le noeud contexte est l'élément auteurs, l'élément xsl:apply-templates select="auteur" permet d'appliquer le canevas de l'élément auteur à tous les enfants auteur de l'élément auteurs Chapter 2 A Semantic Web Primer

Explication de l'exemple (2) C'est une bonne méthode que de définir un canevas pour chaque type d'élément dans le document même si aucun traitement particulier n'est appliqué à certains éléments, l'élément xsl:apply-templates doit être utilisé par ex. auteurs On travaille ainsi en partant de la racine vers les feuilles de l'arbre, et tous les canevas s'appliquent Chapter 2 A Semantic Web Primer

Traitement des attributs XML Supposons que l'on veuille transformer en lui-même l'élément : <personne prenom="John" nom="Woo"/> Mauvaise solution: <xsl:template match="personne"> <personne prenom="<xsl:value-of select="@prenom">" nom="<xsl:value-of select="@nom">"/> </xsl:template> Chapter 2 A Semantic Web Primer

Traitement des attributs XML (2) Mal formé parce que les balises ne sont pas autorisées dans les valeurs des attributs On souhaite ajouter des valeurs d'attribut dans le canevas <xsl:template match="personne"> <personne prenom="{@prenom}" nom="{@nom}"/> </xsl:template> Chapter 2 A Semantic Web Primer

Transformation d'un document XML en un autre (?) Grigorio Antonionou David Billington Auteur Nom Contact Racine Auteurs Institut E-mail University of Bremen Griffith ga@tzi.de david@gu.edu.net Grigorio Antonionou David Billington Auteur Nom Contact Racine Auteurs Institut E-mail University of Bremen Griffith ga@tzi.de david@gu.edu.net Chapter 2 A Semantic Web Primer

Transformation d'un document XML en un autre (2) <xsl:template match="/"> <?xml version="1.0" encoding="UTF-16"?> <auteurs> <xsl:apply-templates select="auteurs"/> </auteurs> </xsl:template> <xsl:template match="auteurs"> <auteur> <xsl:apply-templates select="auteur"/> </auteur> Chapter 2 A Semantic Web Primer

Transformation d'un document XML en un autre (3) <xsl:template match="auteur"> <nom><xsl:value-of select="nom"/></nom> <contact> <institution> <xsl:value-of select="affiliation"/> </institution> <email><xsl:value-of select="email"/></email> </contact> </xsl:template> Chapter 2 A Semantic Web Primer

Récapitulation XML est un méta-langage permettant à l'utilisateur de définir un balisage XML sépare le contenu et la structure du formatage XML est par lui-même le standard de représentation et d'échange des informations structurées sur le web XML est supporté par les langages de requête Chapter 2 A Semantic Web Primer

... Dans les chapitres suivants L'emboîtage des balises n'a pas de signification standard La sémantique des documents XML n'est pas accessibles à la machine, uniquement à l'homme La coopération et l'échange sont supportés pour autant qu'il y ait une compréhension sous-jacente partagée du vocabulaire XML convient bien à une coopération étroite où l'on utilise des vocabulaires liés à un domaine ou une communauté il ne convient pas aussi bien à la communication globale. Chapter 2 A Semantic Web Primer