Académique Documents
Professionnel Documents
Culture Documents
WEB SÉMANTIQUE
EL MOUKHI NAWFAL
2
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
3
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
1. Brève histoire du Web
2. Principes architecturaux
3. Standards et déploiement
4. Séparation du fond et de la forme
5. De la page à la ressource
6. Principes des données liées
7. La pile de standardisation
4
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
1. Brève histoire du Web
2. Principes architecturaux
3. Standards et déploiement
4. Séparation du fond et de la forme
5. De la page à la ressource
6. Principes des données liées
7. La pile de standardisation
5
1. BRÈVE HISTOIRE DU WEB
6
1. BRÈVE HISTOIRE DU WEB
Ted NELSON
8
1. BRÈVE HISTOIRE DU WEB
• Ted NELSON
• Hypertexte
• Hypermédia
Complex information processing: a file structure for the complex,
the changing and the indeterminate, T. H. Nelson, ACM, 1965
9
1. BRÈVE HISTOIRE DU WEB
Tim Berners-Lee
10
1. BRÈVE HISTOIRE DU WEB
• Tim Berners-Lee
• Identifier et lier sur
Information Management: A Proposal
Tim Berners-Lee, CERN, March 1989, May 1990 les réseaux
11
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
1. Brève histoire du Web
2. Principes architecturaux
3. Standards et déploiement
4. Séparation du fond et de la forme
5. De la page à la ressource
6. Principes des données liées
7. La pile de standardisation
12
2. PRINCIPES ARCHITECTURAUX
13
2. PRINCIPES ARCHITECTURAUX
14
2. PRINCIPES ARCHITECTURAUX
15
2. PRINCIPES ARCHITECTURAUX
17
2. PRINCIPES ARCHITECTURAUX
18
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
1. Brève histoire du Web
2. Principes architecturaux
3. Standards et déploiement
4. Séparation du fond et de la forme
5. De la page à la ressource
6. Principes des données liées
7. La pile de standardisation
19
3. STANDARDS ET DÉPLOIEMENT
20
3. STANDARDS ET DÉPLOIEMENT
21
3. STANDARDS ET DÉPLOIEMENT
22
3. STANDARDS ET DÉPLOIEMENT
recommendation
proposed recommendation
candidate recommendation
last call
working draft
23
3. STANDARDS ET DÉPLOIEMENT
recommendation
proposed recommendation
candidate recommendation
last call
working draft
24
3. STANDARDS ET DÉPLOIEMENT
recommendation
proposed recommendation
candidate recommendation
last call
working draft
25
3. STANDARDS ET DÉPLOIEMENT
recommendation
proposed recommendation
candidate recommendation
last call
working draft
26
3. STANDARDS ET DÉPLOIEMENT
recommendation
proposed recommendation
candidate recommendation
last call
working draft
27
3. STANDARDS ET DÉPLOIEMENT
Note
Group report
Member submission
28
3. STANDARDS ET DÉPLOIEMENT
W3C©
29
3. STANDARDS ET DÉPLOIEMENT
W3C©
30
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
1. Brève histoire du Web
2. Principes architecturaux
3. Standards et déploiement
4. Séparation du fond et de la forme
5. De la page à la ressource
6. Principes des données liées
7. La pile de standardisation
31
4. SÉPARATION DU FOND ET DE LA FORME
32
4. SÉPARATION DU FOND ET DE LA FORME
33
4. SÉPARATION DU FOND ET DE LA FORME
34
4. SÉPARATION DU FOND ET DE LA FORME
35
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
1. Brève histoire du Web
2. Principes architecturaux
3. Standards et déploiement
4. Séparation du fond et de la forme
5. De la page à la ressource
6. Principes des données liées
7. La pile de standardisation
36
5. DE LA PAGE À LA RESSOURCE
37
5. DE LA PAGE À LA RESSOURCE
38
5. DE LA PAGE À LA RESSOURCE
39
5. DE LA PAGE À LA RESSOURCE
40
5. DE LA PAGE À LA RESSOURCE
La notion de ressource
Définition :
On appelle ressource tout ce qui peut être identifié par un URI.
http://nawfal.info/objets#mavoiture
ex. une page, une personne, une voiture, un chien, une idée, un pays,
un produit, un service….
41
5. DE LA PAGE À LA RESSOURCE
42
5. DE LA PAGE À LA RESSOURCE
43
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
1. Brève histoire du Web
2. Principes architecturaux
3. Standards et déploiement
4. Séparation du fond et de la forme
5. De la page à la ressource
6. Principes des données liées
7. La pile de standardisation
44
6. PRINCIPES DES DONNÉES LIÉES
45
6. PRINCIPES DES DONNÉES LIÉES
46
6. PRINCIPES DES DONNÉES LIÉES
1. Utiliser des URI HTTP (URL) pour que l’on puisse les suivre
ex. http://chercheurs.ma/nelmoukhi
2. Lorsqu’un URI est suivi renvoyer des données sur ce qu’il
représente (HTTP)
3. Inclure dans ces données des liens vers d’autres données (Web)
47
6. PRINCIPES DES DONNÉES LIÉES
48
6. PRINCIPES DES DONNÉES LIÉES
49
6. PRINCIPES DES DONNÉES LIÉES
50
6. PRINCIPES DES DONNÉES LIÉES
51
6. PRINCIPES DES DONNÉES LIÉES
ma
esi
ns
nawfal.elmoukhi#moi
52
6. PRINCIPES DES DONNÉES LIÉES
53
CHAPITRE 1. INTRODUCTION AU WEB SÉMANTIQUE
1. Brève histoire du Web
2. Principes architecturaux
3. Standards et déploiement
4. Séparation du fond et de la forme
5. De la page à la ressource
6. Principes des données liées
7. La pile de standardisation
54
7. LA PILE DE STANDARDISATION
66
CHAPITRE 2. XML
67
CHAPITRE 2. XML
1. Introduction
2. Les avantages de XML
3. Structure de base d’un fichier XML
68
CHAPITRE 2. XML
1. Introduction
2. Les avantages de XML
3. Structure de base d’un fichier XML
69
1. INTRODUCTION
70
CHAPITRE 2. XML
1. Introduction
2. Les avantages de XML
3. Structure de base d’un fichier XML
71
2. LES AVANTAGES DE XML
73
CHAPITRE 2. XML
1. Introduction
2. Les avantages de XML
3. Structure de base d’un fichier XML
74
3. STRUCTURE DE BASE D’UN FICHIER XML
Pour qu’un document XML soir correct, il doit d’abord être bien formé
et, ensuite, être valide. La première contrainte est de nature
syntaxique (concerne les règles d’écriture) et la seconde contrainte est
de nature structurelle (le document doit respecter le modèle
d’organisation). Un tel document est généralement contenu dans un
fichier texte dont l’extension est ‘.xml’.
75
3. STRUCTURE DE BASE D’UN FICHIER XML
76
3. STRUCTURE DE BASE D’UN FICHIER XML
Prologue
Le prologue contient deux déclarations facultatives mais fortement
conseillées (comme les commentaires et des instructions de traitement :
voir en bas du cours). Alors, la ligne d’introduction du document
(prologue) est :
77
3. STRUCTURE DE BASE D’UN FICHIER XML
Prologue
Cette ligne permet donc d’indiquer la version XML utilisée, le jeu de
caractères utilisé et l’autonomie du document tel que :
• La version XML : soit 1.0 ou 1.1, sachant que la très grande
majorité des documents sont en version 1.0 et que la version 1.1
est assez décriée;
• L’Encoding : Le jeu de caractères employé (UTF-8 est l’encoding
pris par défaut).
78
3. STRUCTURE DE BASE D’UN FICHIER XML
Prologue
79
3. STRUCTURE DE BASE D’UN FICHIER XML
Prologue
80
3. STRUCTURE DE BASE D’UN FICHIER XML
Prologue
Remarques :
➢ Les attributs encoding et standalone sont facultatifs;
➢ Le prologue n’est pas obligatoire et, dans ce cas, le comportement
par défaut (version 1.0 et encoding UTF-8) est utilisé.
81
3. STRUCTURE DE BASE D’UN FICHIER XML
L’élément racine
• L’élément racine est obligatoire. Cet élément est une balise unique
dans le document. Elle encadrera le contenu de votre document;
• Attention : N’oubliez pas que XML est sensible à la casse, par
conséquent <tag> et <Tag> n’ont pas la même signification.
• Pour notre exemple, nous nommerons l’élément racine librairie :
<?xml version=”1.0″ encoding=”iso-8859-1″?>
<librairie>
…
</librairie>
82
3. STRUCTURE DE BASE D’UN FICHIER XML
Le contenu
Le document XML est organisé sous forme d’éléments, dont l’un est
l’élément racine. Un élément est formé d’une balise ouvrante, d’un
contenu et de la balise fermante correspondante.
83
3. STRUCTURE DE BASE D’UN FICHIER XML
Le contenu
Tous les éléments doivent avoir une balise d’ouverture et une balise de
fermeture sauf l’élément vide. Aussi, On peut avoir des éléments
imbriqués (attention aux fermetures) , des éléments ayant des attributs
et d’autres cas qu’on va traiter au fur et à mesure dans ce cours.
Exemple 1 :
84
3. STRUCTURE DE BASE D’UN FICHIER XML
Le contenu
Exemple 2 : document bien formé
85
3. STRUCTURE DE BASE D’UN FICHIER XML
Le contenu
Remarque : Certains caractères ayant une signification particulière
dans la grammaire du XML restent interdits : < , > , &. Pour ces
caractères comme pour les caractères pouvant poser des problèmes à
l’affichage, utilisez les caractères de masquages (d’échappement) soit
sous forme d’entités nommées, soit sous forme d’entités codées.
86
3. STRUCTURE DE BASE D’UN FICHIER XML
Les commentaires
87
3. STRUCTURE DE BASE D’UN FICHIER XML
Instructions de traitement
Elles permettent de fournir des informations supplémentaires sur le
document aux analyseurs syntaxiques. Premièrement, une instruction
de traitement commence par <? et se termine par ?>. La plus utilisée
de ces instructions est celle constituant le prologue d’un document XML:
<?xml version=”1.0″?>
l’inclusion d’une référence à une feuille de style utilise aussi ce type
d’instruction.
88
3. STRUCTURE DE BASE D’UN FICHIER XML
CDATA
Cette section permet d’inclure des données textuelles, des exemples
de code…, dans un document XML sans qu’il soit nécessaire de
substituer les caractères spéciaux par des caractères de masquage.
La mise en oeuvre d’une section CDATA s’écrit ainsi :
89
WEB SÉMANTIQUE : LES SEPT CHAPITRES DU COURS
Chapitre 1. Introduction au web sémantique
Chapitre 2. XML
Chapitre 3. Schémas XML
Chapitre 4. Famille XML
Chapitre 5. RDF
Chapitre 6. SPARQL
Chapitre 7. RDFS et le langage OWL
90
CHAPITRE 03. SCHÉMAS XML
91
CHAPITRE 03. SCHÉMAS XML
92
1. VALIDATION DES DOCUMENTS XML
93
1. VALIDATION DES DOCUMENTS XML
94
1. VALIDATION DES DOCUMENTS XML
Pour décrire la structure d’un document XML, on peut utiliser les DTDs
(Document Type Definitions) ou les Schémas xml (XSD)
95
CHAPITRE 03. SCHÉMAS XML
96
2. DTD
97
2. DTD
• Dans chaque document XML, une référence vers la DTD externe est
insérée par l’instruction d’en-tête DOCTYPE ;
• Exemples :
➢ Fichier local :
98
2. DTD
• Exemples :
➢ url :
99
2. DTD
100
2. DTD
101
2. DTD
102
2. DTD
103
2. DTD
104
2. DTD
Attributs
Les éléments peuvent avoir des attributs, alors la DTD doit inclure la
déclaration de ces attributs via l’instruction ATTLIST selon la syntaxe
suivante :
<!ATTLIST nomElement nom TYPE OBLIGATION VALEUR_PAR_DEFAUT>
105
2. DTD
Attributs
1. TYPE peut être :
• CDATA : du texte (Character Data) ;
• ID : un identifiant unique (caractères et nombres) ;
• IDREF : une référence vers un ID ;
• IDREFS : une liste de références vers des ID (séparés par un blanc) ;
• NMTOKEN : un mot (contient : des lettres, des chiffres, un point [ . ] , un tiret [ –
], un trait de soulignement [ _ ] et un deux-points [ : ] ) ;
• NMTOKENS : une liste de mots (séparation par un blanc) ;
• Une énumération de valeurs : chaque valeur est séparée par le caractère |.
106
2. DTD
Attributs
107
2. DTD
Attributs
Exemple 1:
Explication :
108
2. DTD
Attributs
Exemple 2:
Explication :
109
2. DTD
Attributs
Exemple 3:
Explication :
110
2. DTD
Entités
111
2. DTD
Entité interne
• Exemple :
➢ Dans le DTD, on définit l’entité : <!ENTITY dgdcc “Département
Génie des Données, des Contenus et des Connaissances”>
➢ Dans XML, on utilise l’entité déjà définie : <PARA>Les
formateurs de la &dgdcc; vous souhaiter bon courage dans les
exams</PARA>
112
2. DTD
Entité externe
113
2. DTD
Entité externe
Exemple :
114
2. DTD
Entité paramétrique
Entité paramétrique
Exemple :
• Définition de l’entité :
<!ENTITY % type_defaut “CDATA #REQUIRED “>
• Utilisation de l’entité :
<!ATTLIST chapitre titre %type_defaut; >.
116
2. DTD
118
3. XSD
Les schémas XML (XSD) permettent comme les DTD de définir des modèles de
documents. Il est ensuite possible de vérifier qu’un document donné respecte un
schéma.
119
3. XSD
121
3. XSD
XSD équivalent
122
3. XSD
Un schéma xml est un fichier xml avec extension « .xsd ». Comme tout
document xml, un schéma xml commence par le prologue, puis
l’élément racine.
123
3. XSD
125
3. XSD
Éléments (Déclaration)
• Syntaxe :
<xsd:element name=”nom_element” type=”type_element”>
• Exemples :
<xsd:element name=”date-naissance” type=”xsd:date”>
<xsd:element name=”nombre-enfants” type=”xsd:integer”>
• Remarque : Valeur par défaut/Valeur fixe : on peut ajouter l’attribut default
pour spécifier la valeur par défaut , ou l’attribut fixed pour spécifier une valeur
fixe égale à “valeur” Les éléments peuvent être de type simple ou complexe.
126
3. XSD
127
3. XSD
Un élément est dit de type complexe s’il contient autres éléments (enfants) ou/et a
des attributs. Il existe quatre types d’éléments complexes:
• éléments vides
• éléments qui ne contiennent que d’autres éléments
• éléments contenant uniquement du texte
• éléments contenant à la fois d’autres éléments et du texte
130
3. XSD
131
3. XSD
132
3. XSD
133
3. XSD
On peut contrôler COMMENT les éléments doivent être utilisés dans les
documents avec des indicateurs :
134
3. XSD
Indicateurs d’ordre
• Opérateurs de séquences : xsd:sequence définit un nouveau type formé d’une
suite des éléments en séquence ordonnée. C’est l’équivalent de l’opérateur ‘ , ‘
des DTD.
DTD XSD
135
3. XSD
Indicateurs d’ordre
• Opérateurs de choix : xsd:choice définit un nouveau type formé d’une suite des
éléments énumères de choix. C’est l’équivalent de l’opérateur ‘ | ‘ des DTD.
DTD XSD
136
3. XSD
Indicateurs d’ordre
137
3. XSD
Indicateurs d’occurrence
• Les attributs minOccurs et maxOccurs permettent de préciser le nombre
minimal ou maximal d’occurrences d’un élément ou d’un groupe. Ils sont
l’équivalent des opérateurs ?, * et + des DTD.
• L’attribut minOccurs prend un entier comme valeur. L’attribut maxOccurs prend
un entier ou la chaîne unbounded comme valeur pour indiquer qu’il n’y a pas de
nombre maximal. La valeur par défaut de ces deux attributs est la valeur 1.
• Exemple :
soit en DTD : <!ELEMENT elem (elem1, elem2?, elem3*) > .
Donner son equivalent en xsd
138
3. XSD
Indicateurs de groupes
Il est possible de nommer des groupes d’éléments et des groupes d’attributs afin
de pouvoir les réutiliser. Ce mécanisme aide à structurer un schéma complexe et
vise à obtenir une meilleure modularité dans l’écriture des schémas. Les groupes
d’éléments et d’attributs sont respectivement définis par les éléments xsd:group et
xsd:attributeGroup.
• xsd:group : permet de définir un groupe d’éléments dont le nom est donné par
l’attribut name. Le contenu de l’élément xsd:group est un fragment de type
nécessairement inclus dans un élément xsd:sequence, xsd:choice ou xsd:all.
L’utilisation d’un groupe est équivalente à l’insertion de son contenu. L’intérêt d’un
groupe est de pouvoir l’utiliser à plusieurs reprises et de factoriser ainsi les
parties communes à plusieurs types
139
3. XSD
Indicateurs de groupes
Exemple : Donner un document xml valide selon ce schéma
140
3. XSD
Indicateurs de groupes
• xsd:attributeGroup : permet de définir un groupe d’attributs dont le nom est
donné par l’attribut name. Le contenu de l’élément xsd:attributeGroup est
constitué de déclarations d’attributs introduites par l’élément xsd:attribute.
Exemple :
141
3. XSD
Un type complexe peut être construit explicitement ou être dérivé d’un autre type
par extension ou restriction.
142
3. XSD
• L’attribut, ne contenant que du texte, ainsi il est de type simple. L’attribut peut
être global et donc réutilisable au sein de plusieurs définitions de type
complexe.
• Exemple :
143
3. XSD
• Remarque 1 Attributs et Options : Les attributs sont facultatifs par défaut. Pour
spécifier que l’attribut est obligatoire, utilisons l’attribut “use“: l’attribut use de
xsd:attribute peut prendre la valeur optional ; required ou prohibited.
• Remarque 2 Attributs et Valeurs par défaut : Les attributs peuvent avoir une
valeur par défaut (default) OU une valeur fixe spécifiée (fixed). Une valeur par
défaut est automatiquement attribuée à l’attribut lorsqu’aucune autre valeur
n’est spécifiée. Une valeur fixe est également automatiquement attribuée à
l’attribut et nous ne pouvons pas spécifier une autre valeur :
144
3. XSD
145
3. XSD
Opérateur d’union
• L’opérateur xsd:union définit un nouveau type simple dont les valeurs sont celles
des types listés dans l’attribut memberTypes.
• Exemple :
146
3. XSD
Opérateur de liste
• L’opérateur xsd:list définit un nouveau type simple dont les valeurs sont les listes
de valeurs du type simple donné par l’attribut itemType. Il s’agit uniquement de
listes de valeurs séparées par des espaces. Ces listes sont souvent utilisées
comme valeurs d’attributs.
• Exemple :
147
3. XSD
Restriction de type
148
3. XSD
149
3. XSD
150
3. XSD
151
3. XSD
152
3. XSD
153
3. XSD
154
3. XSD
Remarque : on peut, aussi, faire des restrictions des types complexes. L’idée reste
la même avec les extensions de type.
157
3. XSD
159
3. XSD
160
3. XSD
161
3. XSD
162
3. XSD
163
3. XSD
164
3. XSD
165
WEB SÉMANTIQUE : LES SEPT CHAPITRES DU COURS
Chapitre 1. Introduction au web sémantique
Chapitre 2. XML
Chapitre 3. Schémas XML
Chapitre 4. Famille XML
Chapitre 5. RDF
Chapitre 6. SPARQL
Chapitre 7. RDFS et le langage OWL
166
CHAPITRE 04. FAMILLE XML
1. XPATH
2. XSLT
3. XQUERY
167
CHAPITRE 03. FAMILLE XML
1. XPATH
2. XSLT
3. XQUERY
168
1. XPATH
Le langage de requête XPath (XML Path Language) peut être utilisé pour parcourir
les éléments et les attributs d’un document XML. Ainsi, Une expression XPath (non
xml) est une requête qui sert principalement à extraire telle ou telle partie de
l’arborescence XML.
169
1. XPATH
• XPath contient plus de 200 fonctions intégrées. Aujourd’hui, les expressions XPath
peuvent également être utilisées en JavaScript, Java, schéma XML, PHP, Python,
C et C ++, et de nombreux autres langages. Aussi, XPath est un élément majeur
de la norme XSLT.
• Remarque :
- XPath 1.0 est devenu une recommandation W3C le 16 novembre 1999.
- la version XPath 2.0 est devenu une recommandation du W3C le 23 janvier
2007.
- Le 8 avril 2014 , XPath 3.0 est devenu une recommandation W3C
170
1. XPATH
• XPath utilise des expressions de chemin pour sélectionner des nœuds ou des
ensembles de nœuds dans un document XML. Ces expressions de chemin
ressemblent beaucoup aux expressions de chemin que vous utilisez avec les
systèmes de fichiers informatiques traditionnels :
• Remarque :
- chemin absolu : /étape1/étape2/étape3/…
- chemin relatif : étape1/étape2/étape3/…
171
1. XPATH
Terminologies xpath : Nœuds
Les documents XML sont traités comme des arbres de nœuds. Ainsi, l’élément le plus
haut de l’arbre est appelé l’élément racine. Dans XPath, il existe sept types de
nœuds: nœuds élément, attribut, texte, espace de noms, instruction de traitement,
commentaire et document.
172
1. XPATH
Terminologies xpath : les relations entre les nœuds
• Parent : Chaque élément et attribut a un parent.
• Children : Les nœuds d’élément peuvent avoir zéro, un ou plusieurs enfants.
• Siblings : Noeuds ayant le même parent.
• Ancestors (ancêtres) : Parent d’un nœud, parent d’un parent, etc.
• Descendants (descendance) : Les enfants d’un nœud, les enfants des enfants, etc.
173
1. XPATH
Syntaxe xpath
XPath utilise des expressions de chemin pour sélectionner des nœuds ou des
ensembles de nœuds dans un document XML. Donc, le nœud est sélectionné en
suivant un chemin ou des étapes.
174
1. XPATH
Syntaxe xpath : Sélection des nœuds
Le nœud est sélectionné en suivant un chemin ou des étapes. Pour cela, on peut
utiliser les expressions de chemin les plus utiles qui sont :
175
1. XPATH
Syntaxe xpath : Sélection des nœuds
Exemple :
• L’expression xpath : /stagiaires/stagiaire permet
de sélectionner tous les éléments ‘stagiaire’ qui sont
des enfants de ‘stagiaires’
• Cette expression : //stagiaire : Sélectionne tous les
éléments ‘stagiaire’ peu importent où ils se trouvent
dans le document
• Alors que l’expression : //@module : Sélectionne
tous les attributs nommés module
176
1. XPATH
Syntaxe xpath : Prédicats
• Les prédicats sont utilisés pour rechercher un nœud spécifique ou un nœud
contenant une valeur spécifique (exprimer une condition). Aussi, les prédicats
sont toujours intégrés entre crochets.
• Exemples :
1. L’expression xpath /stagiaires/stagiaire[1] Sélectionne le premier élément
stagiaire qui est l’enfant de l’élément de stagiaires.
2. /stagiaires/stagiaire[last()] : Sélectionne le dernier élément stagiaire qui est
l’enfant de l’élément stagiaires
3. /stagiaires/stagiaire[last()-1] : Sélectionne l’avant dernier élément stagiaire
qui est l’enfant de l’élément de stagiaires.
177
1. XPATH
Syntaxe xpath : Prédicats
4. /stagiaires/stagiaire[position()<5] : Sélectionne les quatre premiers
éléments stagiaire qui est l’enfant de l’élément de stagiaires.
5. //stagiaire[@numI] : Sélectionne tous les éléments ‘stagiaire’ qui ont un
attribut nommé numI
6. //stagiaire[@numI=’1509’] : Sélectionne tous les éléments ‘stagiaire’ qui ont
un attribut numI avec la valeur 1509
7. //stagiaire[note>10] : Sélectionne tous les éléments ‘stagiaire’ qui ont un
élément de note avec une valeur supérieure à 10.
8. //stagiaire[note>10]/nom : Sélectionne tous les éléments ‘nom’ des éléments
‘stagiaire’ qui ont un élément de note avec une valeur supérieure à 10.
178
1. XPATH
Syntaxe xpath : Sélection de nœuds inconnus
Les caractères génériques XPath peuvent être utilisés pour sélectionner des nœuds
XML inconnus. Voilà la description de chacun des caractères génériques :
• * : Correspond à n’importe quel nœud d’élément
• @* : Correspond à n’importe quel nœud d’attribut
• node () : Correspond à n’importe quel nœud de toute sorte
Exemple :
• //* : sélectionne tous les éléments du document
• //stagiaire[@*] : Sélectionne tous les éléments ‘stagiaire’ qui ont au moins un
attribut de toute nature
179
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
• En utilisant le | Dans une expression XPath, vous pouvez sélectionner plusieurs
chemins.
• Exemple :
//note | //nom : sélectionner tous les éléments ‘note’ et ‘nom’ dans le document.
• Remarque : Les opérateurs XPath
Une expression XPath renvoie soit un ensemble de nœuds, une chaîne, un
booléen ou un nombre. Voici une liste des opérateurs qui peuvent être utilisés
dans les expressions XPath: | , +, – , *, div, =, !=, < , <=, >, >=, or, and, mod
180
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
Exemples :
/AAA : Sélectionne l’élément racine AAA
181
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
AAA/DDD/BBB : Sélectionne tous les éléments
BBB qui sont enfants de DDD, qui sont enfants
de l’élément racine AAA
182
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
AAA/BBB[last()] : Sélectionne le dernier élément
BBB, fils de l’élément racine AAA
183
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
//BBB[@id] : Sélectionne tous BBB qui ont
un attribut id
184
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
//BBB[@name] : Sélectionne tous BBB qui ont
un attribut name
185
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
//BBB[normalize-space(@name)=’bbb’] :
Sélectionne tous les éléments BBB ayant
un attribut name dont la valeur est bbb.
Les espaces de début de de fin sont
supprimés avant la comparaison
187
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
188
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
//*[contains(name(),’C’ )]
189
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
190
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
Remarque :
• count() : fonction qui compte le nombre d’éléments sélectionnés.
• name() : fonction qui retourne le nom de l’élément.
• contains est une fonction qui retourne vrai si la chaîne du premier argument
contient celle du deuxième.
• La fonction string-length retourne le nombre de caractères dans une chaîne.
Exemple : //*[string-length(name())=3]
191
1. XPATH
Syntaxe xpath : Sélection de plusieurs chemins
• L’axe “parent” contient le parent du nœud contextuel s’il en a un
• L’axe ancêtre (ancestor) contient les ancêtres du nœud contextuel; cela
comprend son parent et les parents des parents etc… Aussi, cet axe contient
toujours le nœud racine, sauf si le nœud contextuel est lui-même la racine.
192
CHAPITRE 03. FAMILLE XML
1. XPATH
2. XSLT
3. XQUERY
193
2. XSLT
Définition
XSLT est un standard du W3C depuis 1999. C’est une technologie qui permet de
transformer les informations d’un document XML vers un autre type de document
(XML, XHTML/HTML, CSV…). Le principe de fonctionnement : un document XSLT est
associé à un document XML afin de créer un nouveau document d’une nature
différente ou identique.
194
2. XSLT
Structure de base
• Une feuille de style XSLT est un document xml (avec extension “.xsl”) séparé qui
contient des règles de transformation. Elle doit suivre la syntaxe globale ci-
dessous:
197
2. XSLT
Template
Un document xsl est un ensemble de templates (règles de traduction). Le contenu
d’un template permet de définir les transformations à appliquer à l’ensemble des
données sélectionnées par l’expression XPath qui lui est attachée. Ce contenu peut-
être de différentes natures.
Exemple :
198
2. XSLT
Template
Le squelette d’un document XSLT effectuant une transformation vers un document
XHTML/HTML serait donc, par exemple, sous cette forme :
199
2. XSLT
Les fonctions
Ces fonctions vont nous permettre d’exploiter les données sélectionnées par nos
templates afin de procéder à des transformations plus ou moins complexes.
• Value-of : Extraire la valeur d’un élément XML ou la valeur de ses attributs
Syntaxe :
Exemple :
200
2. XSLT
Les fonctions
Syntaxe :
Exemple :
201
2. XSLT
Les fonctions
Syntaxe :
Exemple :
202
2. XSLT
Les fonctions
• If : Conditionner une transformation.
Opérateurs logiques : AND, OR, NOT
Opérateurs de comparaison : =, not (a=b), < pour inférieur, > pour supérieur
Syntaxe :
Exemple :
203
2. XSLT
Les fonctions
204
2. XSLT
Les fonctions
205
CHAPITRE 03. FAMILLE XML
1. XPATH
2. XSLT
3. XQUERY
206
3. XQUERY
Définition
• Langage permettant d’extraire des informations depuis un document ou un
ensemble de documents XML.
• Il permet aussi de réaliser des calculs complexes grâce à un large panel
d’instructions.
207
3. XQUERY
Définition
• XQuery fait aussi partie de la norme XSL.
• Il a été développé conjointement avec le XSLT 2.0.
• XQuery est construit à base des expressions XPath.
• XQuery & XPath partagent le même modèle de données et utilisent le même
ensemble de fonctions & opérateurs.
• XQuery offre d’autres composantes, en plus des expressions et fonctions Xpath.
208
3. XQUERY
Eléments du langage
• Fonction doc( ) : Fonction retournant le nœud document d’une ressource spécifiée
en paramètre à l’aide d’une IRI.
Exemples :
209
3. XQUERY
Eléments du langage
• Fonction data( ) : Fonction retournant la valeur atomique d’un élément, un
attribut ou une séquence.
Exemples :
210
3. XQUERY
Eléments du langage
Expressions FLWOR
Obligatoire
Optionnel
212
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple :
213
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple :
214
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple :
215
3. XQUERY
Eléments du langage
Expressions FLWOR
• Il est possible de formater l’affichage du résultat en HTML.
• Insérer le script XQuery au sein d’une structure HTML et entourer le script par
des accolades { }
216
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple :
217
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple :
218
3. XQUERY
Eléments du langage
Expressions FLWOR
Il est possible d’attacher à la boucle FOR une variable de position qui permettra,
pour chaque itération, de retourner la position de l’élément courant.
AT
219
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple :
220
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple :
221
3. XQUERY
Eléments du langage
Expressions FLWOR
La clause GROUP BY permet de regrouper les résultats de l’expression FLWOR
sous la forme d’une séquence d’éléments. Elle doit être mise avant la clause ORDER
BY.
Exemple :
222
3. XQUERY
Eléments du langage
Expressions FLWOR
La clause COUNT permet d’associer l’élément courant dans une séquence à un
numéro d’ordre.
La différence avec la variable de position (dans la clause FOR) est que la clause
COUNT associe un numéro d’ordre à chaque élément de séquence construit par la
clause FOR (utilisation de plusieurs variables).
223
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple : Résultat :
224
3. XQUERY
Eléments du langage
Expressions FLWOR
Exemple : Résultat :
225
3. XQUERY
Eléments du langage
Il est possible de définir ses propres fonctions à l’aide de XQuery.
Syntaxe :
226
3. XQUERY
Eléments du langage
Appel de la fonction :
227
3. XQUERY
Eléments du langage
Exemple :
228
3. XQUERY
Eléments du langage
Il est possible de déclarer un préfixe pour les fonctions d’utilisateurs.
Syntaxe :
229
3. XQUERY
Eléments du langage
Exemple :
230
WEB SÉMANTIQUE : LES SEPT CHAPITRES DU COURS
Chapitre 1. Introduction au web sémantique
Chapitre 2. XML
Chapitre 3. Schémas XML
Chapitre 4. Famille XML
Chapitre 5. RDF
Chapitre 6. SPARQL
Chapitre 7. RDFS et le langage OWL
231
CHAPITRE 05. RDF
232
CHAPITRE 05. RDF
233
1. DÉCRIRE DES RESSOURCES
Proposition de départ
234
1. DÉCRIRE DES RESSOURCES
Schéma
235
1. DÉCRIRE DES RESSOURCES
Différents liens
1. DÉCRIRE DES RESSOURCES
communication
HTTP
WEB
référence adresse
URI
1. DÉCRIRE DES RESSOURCES
Modèle de base
communication
web de
données
référence adresse
Pile de standardisation
Pile de standardisation
Pile de standardisation
Pile de standardisation
Pile de standardisation
Pile de standardisation
communication
web de
données
référence adresse
rdf:label
ex:ingredient
rdf:about
ex:weight
rdf:type
CHAPITRE 05. RDF
247
2. MODÈLE DE TRIPLETS ET DE GRAPHE
Signification de RDF
Resource : pages, chaises, idées, personnes ... tout ce qui peut avoir une URI
Description : attributs, caractéristiques, et relations entre ressources
Framework : modèle, langage et syntaxes pour ces descriptions
2. MODÈLE DE TRIPLETS ET DE GRAPHE
RDF
(sujet, prédicat, objet)
Exemples :
• « doc.html a pour auteurs Fabien, Catherine et Olivier et a pour
thème le Web sémantique »
• doc.html a pour auteur Fabien (doc.html, auteur, Fabien)
doc.html a pour auteur Catherine (doc.html, auteur, Catherine)
doc.html a pour auteur Olivier (doc.html, auteur, Olivier)
doc.html a pour thème Web sémantique (doc.html, thème, Web sémantique)
2. MODÈLE DE TRIPLETS ET DE GRAPHE
Prédicat
Objet
Sujet
2. MODÈLE DE TRIPLETS ET DE GRAPHE
Modèle ouvert
http://mon_site.org/mon_type
2. MODÈLE DE TRIPLETS ET DE GRAPHE
262
3. SYNTAXES DE SÉRIALISATION
RDF a une syntaxe historique en XML et d’autres syntaxes : Turtle, TriG, JSON-LD,
N-Triples, N-Quads
3. SYNTAXES DE SÉRIALISATION
279
4. VALEURS, TYPES ET LANGUES
294
5. GROUPES
Les collections
Les collections
302
6. NOMMER DES GRAPHES
les graphes nommés
Grouper des triplets dans des sous-graphes identifiés par des URI
6. NOMMER DES GRAPHES
RDF a une syntaxe TriG et une syntaxe N-Quads permettant d’exprimer des
contextes
6. NOMMER DES GRAPHES
Graphes nommés en TriG
6. NOMMER DES GRAPHES
Graphes nommés en N-Quads
6. NOMMER DES GRAPHES
Pile de standardisation
WEB SÉMANTIQUE : LES SEPT CHAPITRES DU COURS
Chapitre 1. Introduction au web sémantique
Chapitre 2. XML
Chapitre 3. Schémas XML
Chapitre 4. Famille XML
Chapitre 5. RDF
Chapitre 6. SPARQL
Chapitre 7. RDFS et le langage OWL
308
CHAPITRE 06. SPARQL
309
CHAPITRE 06. SPARQL
310
CHAPITRE 06. SPARQL
311
1. APPARIEMENT DE GRAPHES RDF
SPARQL Protocol And RDF Query Language
WHERE {comme }
vous voulez
1. APPARIEMENT DE GRAPHES RDF
Les triplets en SPARQL
326
2. FILTRES, CONTRAINTES ET FONCTIONS
Filtrer les résultats sur les valeurs
Déclarer des contraintes supplémentaires notamment sur les variables
• select = clause sélectionnant les valeurs à retourner
• where
• filter = contraintes ajoutées dans la clause where exprimées avec des
fonctions de tests XPath 2.0 ou externes
2. FILTRES, CONTRAINTES ET FONCTIONS
ex. personne ayant au moins 18 ans
PREFIX ex: <http://inria.fr/schema#>
SELECT ?person ?name
WHERE {
?person rdf:type ex:Person ;
ex:name ?name ;
ex:age ?age .
FILTER (xsd:integer(?age) >= 18)
}
2. FILTRES, CONTRAINTES ET FONCTIONS
Test sur les valeurs
Tester et comparer constantes et variables
• Comparateurs : <, >, =, <=, >=, !=
339
3. PRÉ ET POST TRAITEMENTS
Cibler un ou plusieurs graphes à fouiller
Utiliser les résultats d’une requête pour formuler une autre requête
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name WHERE {
{ SELECT (max(?age) as ?max)
WHERE { ?person foaf:age ?age } }
?senior foaf:age ?max .
?senior foaf:name ?name
}
3. PRÉ ET POST TRAITEMENTS
Expressions calculées
346
4. DIFFÉRENTES FORMES DE REQUÊTES
Vérifier l’existence d’au moins une réponse
Ne pas énumérer tous les résultats mais juste savoir si cela existe (vrai/faux)
DESCRIBE <http://fabien.info>
350
5. FORMATS ET PROTOCOLE DE RETOURS
Résultats de requêtes SPARQL
357
6. MODIFICATION DES BASES
SPARQL Update
LOAD <http://example.org/dataset>
6. MODIFICATION DES BASES
Ajouter/retirer des triplets explicités