chapter 2a semantic web primer 1 chapitre 2 documents web structurés en xml grigoris antoniou frank...
TRANSCRIPT
Chapter 2 A Semantic Web Primer1
Chapitre 2 Documents web structurés en XML
Grigoris Antoniou
Frank van Harmelen
Chapter 2 A Semantic Web Primer2
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 Primer3
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 Primer4
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 Primer5
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 Primer6
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 Primer7
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 Primer8
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 Primer9
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 Primer10
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 Primer11
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 Primer12
Sommaire
1. Introduction2. Description détaillée de XML3. Structuration
a) les DTDb) XML Schema
4. Espaces de noms (Dénominations)5. Accès, requête de documents XML : XPath 6. Transformations : XSLT
Chapter 2 A Semantic Web Primer13
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 Primer14
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 Primer15
Eléments XML
Ce dont parle le document XML :– 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 Primer16
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 Primer17
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 Primer18
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 Primer19
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 Primer20
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><item>
<itemNo>c817</itemNo><quantité>3</quantité></item>
</commande>
Chapter 2 A Semantic Web Primer21
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 Primer22
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 Primer23
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 Primer24
Les modèles arborescents de documents XML: un exemple :
<email><en-tête>
<de nom="Michael Maher" adresse="[email protected]"/>
<à nom="Grigoris Antoniou"addresse="[email protected]"/>
<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 Primer25
Les modèles arborescents de documents XML : exemple 2 :
Racine
Corps
En-tête
SujetDe A
AdresseNom
Michael Maher
Nom Adresse
Grigoris Antoniou
Où reste ton brouillon ?
Grigoris, où est le
projet d'article que tu m'as
promis la semaine dernière ?
Chapter 2 A Semantic Web Primer26
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 Primer27
Sommaire
1. Introduction 2. Description détaillée de XML 3. Structuration
a) les DTD b) XML Schema
4. Espaces de noms5. Accès, requête de documents XML: XPath6. Transformations: XSLT
Chapter 2 A Semantic Web Primer28
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 Primer29
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 Primer30
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 Primer31
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 Primer32
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 Primer33
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 Primer34
DTD correspondante
<!ELEMENT commande (item+)><!ATTLIST commande commandeNo ID #REQUIRED
client CDATA #REQUIREDdate CDATA #REQUIRED>
<!ELEMENT item EMPTY><!ATTLIST item itemNo ID #REQUIRED
quantite CDATA #REQUIREDcommentaires CDATA #IMPLIED>
Chapter 2 A Semantic Web Primer35
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 Primer36
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 Primer37
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 Primer38
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 Primer39
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 Primer40
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><personne id="mary" children="bob bridget">
<nom>Mary Poppins</nom></personne><personne id="peter" children="bob">
<nom>Peter Marley</nom></personne>
</famille>
Chapter 2 A Semantic Web Primer41
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
adresse CDATA #REQUIRED>
Chapter 2 A Semantic Web Primer42
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 Primer43
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 Primer44
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 Primer45
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 Primer46
Sommaire
1. Introduction 2. Description détaillée de XML 3. Structuration
a) les DTD b) XML Schema
4. Espaces de noms5. Accès, requête de documents XML: XPath 6. Transformations: XSLT
Chapter 2 A Semantic Web Primer47
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 Primer48
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 Primer49
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 Primer50
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 Primer51
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 Primer52
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 Primer53
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 Primer54
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 Primer55
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 Primer56
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 Primer57
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 Primer58
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 Primer59
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 Primer60
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 Primer61
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 Primer62
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 Primer63
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 Primer64
Sommaire
1. Introduction 2. Description détaillée de XML 3. Structuration
a) les DTD b) XML Schema
4. Espaces de noms (Denomination)5. Accès, requête de documents XML: XPath 6. Transformations: XSLT
Chapter 2 A Semantic Web Primer65
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 Primer66
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 Primer67
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 Primer68
Sommaire
1. Introduction 2. Description détaillée de XML 3. Structuration
a) les DTD b) XML Schema
4. Espaces de noms 5. Accès, requête de documents XML: XPath 6. Transformations: XSLT
Chapter 2 A Semantic Web Primer69
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 Primer70
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 Primer71
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 Primer72
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">
<titre livre="Artificial Intelligence"/></auteur><auteur nom="Cynthia Singleton">
<titre livre="The Semantic Web"/><titre livre="Browser Technology Revised"/>
</auteur></library>
Chapter 2 A Semantic Web Primer73
Représentation arborescente
Nom
Racine
Librairie
Livre
Lieu Auteur AuteurAuteur
NomNom LivreLivre LivreLivre Livre
TitreTitreTitreTitreTitreTitre
Bremen
HenryWise
InteligenceArtificielle
WebServices
Modernes
ThéorieInformatique
WilliamSmart
InteligenceArtificielle
CynthiaSingleton
Le Websémantique
BrowserTechnologyRevisited
Chapter 2 A Semantic Web Primer74
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 Primer75
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 Primer76
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 Primer77
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 Primer78
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 Primer79
Représentation arborescente de la requête 4
Nom
Racine
Librairie
Livre
Lieu Auteur AuteurAuteur
NomNom LivreLivre LivreLivre Livre
TitreTitreTitreTitreTitreTitre
Bremen
HenryWise
InteligenceArtificielle
WebServices
Modernes
ThéorieInformatique
WilliamSmart
InteligenceArtificielle
CynthiaSingleton
Le Websémantique
BrowserTechnologyRevisited
Chapter 2 A Semantic Web Primer80
Représentation arborescente de la requête 5
Nom
Racine
Librairie
Livre
Lieu Auteur AuteurAuteur
NomNom LivreLivre LivreLivre Livre
TitreTitreTitreTitreTitreTitre
Bremen
HenryWise
InteligenceArtificielle
WebServices
Modernes
ThéorieInformatique
WilliamSmart
InteligenceArtificielle
CynthiaSingleton
Le Websémantique
BrowserTechnologyRevisited
Chapter 2 A Semantic Web Primer81
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 Primer82
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 Primer83
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 Primer84
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 Primer85
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 Primer86
Sommaire
1. Introduction 2. Description détaillée de XML 3. Structuration
a) les DTD b) XML Schema
4. Espaces de noms5. Accès, requête de documents XML: XPath 6. Transformations: XSLT
Chapter 2 A Semantic Web Primer87
Affichage des documents XML
<auteur><nom>Grigoris Antoniou</nom><affiliation>University of Bremen</affiliation><email>[email protected]</email>
</auteur>
Peut être affiché de différentes manières: Grigoris Antoniou Grigoris AntoniouUniversity of Bremen University of [email protected] [email protected]
Chapter 2 A Semantic Web Primer88
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 Primer89
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 Primer90
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 Primer91
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 Primer92
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>[email protected]</i>
</body>
</html>
Chapter 2 A Semantic Web Primer93
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 Primer94
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 Primer95
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 Primer96
Exemple de canevas auxiliaire
<auteurs><auteur>
<nom>Grigoris Antoniou</nom><affiliation>University of Bremen</affiliation><email>[email protected]</email>
</auteur><auteur>
<nom>David Billington</nom><affiliation>Griffith University</affiliation><email>[email protected]</email>
</auteur></auteurs>
Chapter 2 A Semantic Web Primer97
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 Primer98
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>
</xsl:template>
Chapter 2 A Semantic Web Primer99
Cible pour plusieurs auteurs
<html><head><titre>auteurs</titre></head><body bgcolor="white">
<h2>Grigoris Antoniou</h2>Affiliation: University of Bremen<br>Email: [email protected]<p><h2>David Billington</h2>Affiliation: Griffith University<br>Email: [email protected]<p>
</body></html>
Chapter 2 A Semantic Web Primer100
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 Primer101
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 Primer102
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 Primer103
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 Primer104
GrigorioAntonionou
DavidBillington
Auteur Auteur
NomContactNom
Racine
Auteurs
Institut E-mail
Contact
Institut E-mail
Universityof Bremen
GriffithUniversity
[email protected]@gu.edu.net
GrigorioAntonionou
DavidBillington
Auteur Auteur
NomContactNom
Racine
Auteurs
Institut E-mail
Contact
Institut E-mail
Universityof Bremen
GriffithUniversity
[email protected]@gu.edu.net
Transformation d'un document XML en un autre (?)
Chapter 2 A Semantic Web Primer105
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>
</xsl:template>
Chapter 2 A Semantic Web Primer106
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 Primer107
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 Primer108
... 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.