Web Sémantique et Web de
Données
Chapitre 2: Le modèle de
données RDF
[Link] Besbes
[Link]@[Link]
Pile de standardisation
[Link]
2
Pile des standards du Web sémantique W3C
1
RDF
[Link]
3
Introduction
• RDF : Ressource Description Framework : description des
ressources sous forme de graphe à base de triplets
• RDF forme un cadre de description des ressources
• ressources : concept de base du web sémantique tout ce qui peut
[Link]
être identifié par un URI
• description d’une ressource : ensemble d’attributs et de relations
avec d’autres ressources
• cadre qui standardise les modèles, langages et syntaxes de ces
descriptions
➢ Fournit une structure de données standard et un modèle
pour coder les données et métadonnées sur des ressources
4
RDF
[Link]
• Remarques:
• Le sujet est toujours un URI.
• Le predicat est toujours un URI. Il permet d’exprimer les
PROPRIETES des objets ou les RELATIONS entre les objets
• L’objet peut être un URI ou un texte (littéral) 5
RDF
[Link]
6
RDF
[Link]
7
RDF
[Link]
8
RDF
[Link]
9
Exemple
• Reprenons l’exemple de la ressource Michel Bussi identifiée par l’URI :
[Link] vue dans le chapitre précédent
[Link]
10
Exemple
L’exemple précédent est un extrait du graphe réel:
• Il y a 142 triplets RDF dont l’URI identifiant Michel Bussi est le sujet
• Il y a 27 triplets RDF dont l’URI identifiant Michel Bussi est l’objet
• Remarque: ils existent des URI qui partagent le même préfixe
[Link]
• Par exemple:
• [Link]
• [Link]
• On peut nommer le préfixe partagé
• Par exemple [Link] devient « dbpedia-fr »
• En faisant de même avec les autres préfixes, on peut proposer un
graphe RDF dont la notation est simplifiée
• Remarque: Cette représentation graphique n’existe que pour nous 11
faciliter la lecture
Exemple
• Le
[Link]
12
RDF
• Ils existent plusieurs langages et syntaxes pour représenter
RDF:
• XML-RDF
• Turtle
•
[Link]
JSON-LD
• N-Triples
• ….
• W3C, l’organisme qui standardise le Web reconnait les
langages de représentations XML-RDF, Turtle, N-Triples.
13
XML-RDF
[Link]
14
Turtle
[Link]
15
JSON-LD
[Link]
16
Turtle: Syntaxe
• Les directives de Turtle incluent la déclaration des préfixes d’espaces
de nommage (directive @prefix)
• Le sujet, le prédicat et l’objet d’un seul triplet sont écrits l’un après
l’autre séparés par un espace.
• Le triplet se termine par un point « . »
[Link]
• Pour abréger des déclarations multiples de triplets partageant le
même sujet (par exemple une ressource qui a plusieurs aspects: une
personne qui est décrite par sa taille, son poids et son âge), Turtle
utilise le point virgule « ; » comme séparateur d’une liste prédicat-
objet pour un même sujet:
@prefix rdf: <[Link] .
@prefix inria: <[Link] .
<[Link] 17
inria:author <[Link] ;
inria:theme "Web" .
Turtle: Syntaxe
• Les déclarations multiples de triplets partageant le même
sujet et le même prédicat mais ayant différents objets(par
exemple une propriété ayant plusieurs valeurs pour une
ressource: plusieurs numéros de téléphone pour une
personne) peuvent être abrégées en utilisant une virgule « , »
[Link]
comme séparateur de la liste des multiples objets.
@prefix rdf: <[Link] .
@prefix inria: <[Link] .
<[Link]
inria:author <[Link] ;
inria:theme "Web", "Web sémantique" .
18
XML-RDF: Syntaxe
• L'élément de base : Description
• Ressource qui forme le sujet : Attribut about
• Prédicat : Sous élément inclus dans l’élément Description
• Valeur : Spécifiée dans le sous élément inclus
[Link]
Exemple:
<?xml version =" 1.0 "?>
<rdf:RDF xmlns:rdf =" http: // www .[Link] /1999/02/22 - rdf -syntax -ns#"
xmlns:exterms =" http: // www . example .org/ terms /">
< rdf:Description rdf:about =" http: // www . example . org/ index . html ">
<exterms:creation - date >August 16, 1999 </ exterms:creation - date >
</ rdf:Description >
19
</ rdf:RDF >
XML-RDF: Syntaxe
[Link]
20
XML-RDF: Syntaxe
[Link]
21
XML-RDF: Syntaxe
[Link]
22
XML-RDF: Syntaxe
[Link]
23
Noeuds anonymes
• Nœuds anonyme ou blank node
• Quantification existentielle
➢ il existe une ressource telle que… { ∃ r ; …}
[Link]
24
XML schema datatypes
• On peut utiliser les XML schema datatypes afin de typer les
littéraux
• les littéraux standards sont des chaînes de caractères de type
xsd:string
[Link]
25
Langue d’un littéral
• Les littéraux peuvent être associés à une langue
[Link]
26
Conteneur
• Il est fréquent de devoir faire référence à plusieurs ressources
(par exemple : un livre écrit par plusieurs auteurs )
• RDF propose trois conteneurs:
[Link]
• bag : Liste non ordonnée de ressources ou de littéraux (élément
bag)
• Sequence: Liste ordonnée de ressources ou de littéraux (élément
seq)
• Alternative: Liste de ressources ou de littéraux qui représentent
des alternatives pour une valeur unique (élément alt)
• Les éléments du conteneur sont listés à l'aide de l'élément li
ou _i avec (i > 0) 27
• Les trois conteneurs sont valides pour XML-RDF et Turtle
Conteneur
• Exemple: le conteneur Bag avec XML-RDF
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="[Link]
xmlns:s="[Link]
[Link]
<rdf:Description rdf:about="[Link]
<s:students>
<rdf:Bag>
<rdf:li rdf:resource="[Link]
<rdf:li rdf:resource ="[Link]
<rdf:li rdf:resource ="[Link]
<rdf:li rdf:resource ="[Link]
<rdf:li rdf:resource ="[Link]
</rdf:Bag>
</s:students>
28
</rdf:Description>
</rdf:RDF>
Conteneur
• En utilisant l’outil RDF validator:
[Link]
29
Conteneur
• Exemple: le conteneur Bag avec Turtle
@prefix rdf: <[Link] .
@prefix inria: <[Link] .
<[Link] inria:author [ a rdf:Bag ;
rdf:li "Fabien" ; rdf:li "Catherine" ; rdf:li "Olivier" . ] .
[Link]
30
Remarque : La relation 'a’ dans la position du prédicat dans un triplet Turtle représente l’URI
[Link] .
Conteneur
• Exemple: le conteneur Seq avec XML-RDF
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="[Link]
xmlns:s="[Link]
<rdf:Description rdf:about="[Link]
[Link]
<s:DistributionSite>
<rdf:Seq>
<rdf:li rdf:resource="[Link]
<rdf:li rdf:resource="[Link]
<rdf:li rdf:resource="[Link]
</rdf:Seq>
</s:DistributionSite>
</rdf:Description>
</rdf:RDF>
31
Conteneur
• Exemple: le conteneur Seq avec Turtle
@prefix rdf: <[Link] .
@prefix s: <[Link]
@prefix pkg: <[Link]
[Link]
pkg:X11
s:DistributionSite [
a rdf:Seq;
rdf:_1 <[Link]
rdf:_2 <[Link]
rdf:_3 <[Link] .
].
32
Remarque : La relation 'a’ dans la position du prédicat dans un triplet Turtle représente l’URI
[Link] .
XML-RDF: Syntaxe
• Exemple: le conteneur Alt avec XML-RDF
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="[Link]
xmlns:s="[Link]
<rdf:Description rdf:about="[Link]
[Link]
<s:DistributionSite>
<rdf:Alt>
<rdf:li rdf:resource="[Link]
<rdf:li rdf:resource="[Link]
<rdf:li rdf:resource="[Link]
</rdf:Alt>
</s:DistributionSite>
</ rdf:Description >
</ rdf:RDF >
33
Conteneur
• Exemple: le conteneur Alt avec Turtle
@prefix rdf: <[Link] .
@prefix s: <[Link]
@prefix pkg: <[Link]
[Link]
pkg:X11
s:DistributionSite [
a rdf:Alt;
rdf:_1 <[Link]
rdf:_2 <[Link]
rdf:_3 <[Link]
].
34
Remarque : La relation 'a’ dans la position du prédicat dans un triplet Turtle représente l’URI
[Link] .
XML-RDF: Exemple 1
Donner le graphe RDF correspondant au document suivant:
[Link]
35
XML-RDF: Exemple 2
On souhaite modéliser les connaissances suivantes en RDF :
Léa a vingt ans, Léa connait Jules, Léa et Jules sont étudiants,
Les étudiants sont des adultes.
1. Représenter sous forme de triplets chacune de ces phrases.
[Link]
2. Donner la représentation graphique de ce graphe RDF.
36
XML-RDF: Exemple 2
Corrigé:
1. Représenter sous forme de triplets chacune de ces phrases.
[Link]
37
XML-RDF: Exemple 2
Corrigé:
2. Donner la représentation graphique de ce graphe RDF.
Adulte
[Link]
rdf:type
Etudiant
rdf:type rdf:type
Léa Jules
connait
aAge 38
20
XML-RDF: Validation
• On peut valider les documents XML-RDF avec l'outil de
validation du W3C :
[Link]
[Link]
• Sélectionner « Check by Direct Input »
• Entrer votre spécification RDF/XML;
• Dans « Triples and/or Graph », choisir l’option « Triples and
Graph »
• Sélectionner « Parse RDF »
40
Résumé
• RDF est une manière, générale, d’exprimer des données
destinées à la publication sur le Web.
• Les données RDF sont exprimées en triplets: sujet, prédicat,
objet.
• Différentes syntaxes existent pour exprimer les données en
[Link]
RDF.
41