Web Sémantique et Web de
Données
Chapitre 2: Le modèle de
données RDF
Dr.Ghada Besbes
ghada.besbes@isi.utm.tn
Pile de standardisation
Dr.G.Besbes
2
Pile des standards du Web sémantique W3C
1
RDF
Dr.G.Besbes
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
Dr.G.Besbes
ê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
Dr.G.Besbes
• 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
Dr.G.Besbes
6
RDF
Dr.G.Besbes
7
RDF
Dr.G.Besbes
8
RDF
Dr.G.Besbes
9
Exemple
• Reprenons l’exemple de la ressource Michel Bussi identifiée par l’URI :
http://fr.dbpedia.org/resource/Michel_Bussi vue dans le chapitre précédent
Dr.G.Besbes
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
Dr.G.Besbes
• Par exemple:
• http://fr.dbpedia.org/resource/Michel_Bussi
• http://fr.dbpedia.org/resource/Louviers
• On peut nommer le préfixe partagé
• Par exemple http://fr.dbpedia.org/resource/ 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
Dr.G.Besbes
12
RDF
• Ils existent plusieurs langages et syntaxes pour représenter
RDF:
• XML-RDF
• Turtle
•
Dr.G.Besbes
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
Dr.G.Besbes
14
Turtle
Dr.G.Besbes
15
JSON-LD
Dr.G.Besbes
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 « . »
Dr.G.Besbes
• 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: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix inria: <http://inria.fr/schema#> .
<http://inria.fr/rr/doc.html> 17
inria:author <http://ns.inria.fr/catherine.faron#me> ;
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 « , »
Dr.G.Besbes
comme séparateur de la liste des multiples objets.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix inria: <http://inria.fr/schema#> .
<http://inria.fr/rr/doc.html>
inria:author <http://ns.inria.fr/catherine.faron#me> ;
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
Dr.G.Besbes
Exemple:
<?xml version =" 1.0 "?>
<rdf:RDF xmlns:rdf =" http: // www .w3.org /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
Dr.G.Besbes
20
XML-RDF: Syntaxe
Dr.G.Besbes
21
XML-RDF: Syntaxe
Dr.G.Besbes
22
XML-RDF: Syntaxe
Dr.G.Besbes
23
Noeuds anonymes
• Nœuds anonyme ou blank node
• Quantification existentielle
➢ il existe une ressource telle que… { ∃ r ; …}
Dr.G.Besbes
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
Dr.G.Besbes
25
Langue d’un littéral
• Les littéraux peuvent être associés à une langue
Dr.G.Besbes
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:
Dr.G.Besbes
• 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="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://example.org/students/vocab#">
Dr.G.Besbes
<rdf:Description rdf:about="http://example.org/courses/6.001">
<s:students>
<rdf:Bag>
<rdf:li rdf:resource="http://example.org/students/Amine"/>
<rdf:li rdf:resource ="http://example.org/students/Mohamed"/>
<rdf:li rdf:resource ="http://example.org/students/Jihene"/>
<rdf:li rdf:resource ="http://example.org/students/Mariem"/>
<rdf:li rdf:resource ="http://example.org/students/Nidhal"/>
</rdf:Bag>
</s:students>
28
</rdf:Description>
</rdf:RDF>
Conteneur
• En utilisant l’outil RDF validator:
Dr.G.Besbes
29
Conteneur
• Exemple: le conteneur Bag avec Turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix inria: <http://inria.fr/schema#> .
<http://inria.fr/rr/doc.html> inria:author [ a rdf:Bag ;
rdf:li "Fabien" ; rdf:li "Catherine" ; rdf:li "Olivier" . ] .
Dr.G.Besbes
30
Remarque : La relation 'a’ dans la position du prédicat dans un triplet Turtle représente l’URI
http://www.w3.org/1999/02/22-rdf-syntax-ns#type .
Conteneur
• Exemple: le conteneur Seq avec XML-RDF
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://example.org/packages/vocab#">
<rdf:Description rdf:about="http://example.org/packages/X11">
Dr.G.Besbes
<s:DistributionSite>
<rdf:Seq>
<rdf:li rdf:resource="ftp://ftp.example.org"/>
<rdf:li rdf:resource="ftp://ftp1.example.org"/>
<rdf:li rdf:resource="ftp://ftp2.example.org"/>
</rdf:Seq>
</s:DistributionSite>
</rdf:Description>
</rdf:RDF>
31
Conteneur
• Exemple: le conteneur Seq avec Turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix s: <http://example.org/students/vocab#>.
@prefix pkg: <http://example.org/packages/>.
Dr.G.Besbes
pkg:X11
s:DistributionSite [
a rdf:Seq;
rdf:_1 <ftp://ftp.example.org>;
rdf:_2 <ftp://ftp1.example.org>;
rdf:_3 <ftp://ftp2.example.org> .
].
32
Remarque : La relation 'a’ dans la position du prédicat dans un triplet Turtle représente l’URI
http://www.w3.org/1999/02/22-rdf-syntax-ns#type .
XML-RDF: Syntaxe
• Exemple: le conteneur Alt avec XML-RDF
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://example.org/packages/vocab#">
<rdf:Description rdf:about="http://example.org/packages/X11">
Dr.G.Besbes
<s:DistributionSite>
<rdf:Alt>
<rdf:li rdf:resource="ftp://ftp.example.org"/>
<rdf:li rdf:resource="ftp://ftp1.example.org"/>
<rdf:li rdf:resource="ftp://ftp2.example.org"/>
</rdf:Alt>
</s:DistributionSite>
</ rdf:Description >
</ rdf:RDF >
33
Conteneur
• Exemple: le conteneur Alt avec Turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix s: <http://example.org/students/vocab#>.
@prefix pkg: <http://example.org/packages/>.
Dr.G.Besbes
pkg:X11
s:DistributionSite [
a rdf:Alt;
rdf:_1 <ftp://ftp.example.org>;
rdf:_2 <ftp://ftp1.example.org>;
rdf:_3 <ftp://ftp2.example.org>.
].
34
Remarque : La relation 'a’ dans la position du prédicat dans un triplet Turtle représente l’URI
http://www.w3.org/1999/02/22-rdf-syntax-ns#type .
XML-RDF: Exemple 1
Donner le graphe RDF correspondant au document suivant:
Dr.G.Besbes
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.
Dr.G.Besbes
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.
Dr.G.Besbes
37
XML-RDF: Exemple 2
Corrigé:
2. Donner la représentation graphique de ce graphe RDF.
Adulte
Dr.G.Besbes
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 :
https://www.w3.org/RDF/Validator/
Dr.G.Besbes
• 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
Dr.G.Besbes
RDF.
41