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

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

Embed Size (px)

Citation preview

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

Chapter 2 A Semantic Web Primer1

Chapitre 2 Documents web structurés en XML

Grigoris Antoniou

Frank van Harmelen

Page 2: Chapter 2A Semantic Web Primer 1 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

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

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>

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

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?

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

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”?

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

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.

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

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

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

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

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

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>

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

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 !

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

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) – …

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

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

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

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)(?)

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

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">

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

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>

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

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”

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

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>

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

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"/>

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

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>

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

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>

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

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

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

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"?>

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

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

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

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>

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

Chapter 2 A Semantic Web Primer25

Les modèles arborescents de documents XML : exemple 2 :

Racine

Corps

E-mail

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 ?

[email protected]

[email protected]

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

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

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

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

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

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é

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

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)

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

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)>

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

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 (?)

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

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))>

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

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>

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

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>

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

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

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

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

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

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.

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

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

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

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>

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

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>

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

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>

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

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>

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

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

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

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

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

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)>

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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>

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

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>

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

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>

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

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é

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

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

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

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>

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

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>

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

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>

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

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>

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

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>

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

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

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

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

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

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

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

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>

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

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

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

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

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

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

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

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

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

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

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

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>

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

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

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

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

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

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

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

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

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

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"

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

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

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

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

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

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

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

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]

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

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

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

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

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

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

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

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

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

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

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

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]

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

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

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

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

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

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

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

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>

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

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>

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

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

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

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>

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

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

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

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>

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

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>

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

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>

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

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>

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

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

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

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

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

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>

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

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>

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

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 (?)

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

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>

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

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>

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

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

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

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.