Vous êtes sur la page 1sur 34

15/11/2021 19:33 RDF — Web et données liées 2020.09.

17

RDF

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 1/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Introduction

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 2/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Des données aux données liées

pac: Personne udos: Événement

prénom: "Pierre-Antoine" nom: "udos"


nom: "Champin" intervient début: 2015-07-08
adresse: "..." fin: 2015-07-10
profession: ... lieu: Digne-les-Bains

connait organise

rz: Personne xsalto: Société

prénom: "Renaud" nom: "Xsalto"


nom: "Zigmann" fondateur siren: "401 362 116"
adresse: "..." adresse: "..."
profession: ... secteur: ...

Données classiques...

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 3/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Des données aux données liées (2)

"Champin" "Pierre-Antoine" "UDOS"


2015-07-08

prénom
nom
"..."

ut
adr

nom
2015-07-10

déb
ess
e fin
profession intervient
... lieu
Dignes-les-Bains
typ
e
type Événement
connait organise
Personne
Entreprise
e
type typ
nom
profession "Xsalto"
... sir
e fondateur en

activité
ess

adr
adr

ess
"401 362 116"
prénom

e
"..."
m
no

... "..."
"Zigmann" "Renaud"

vues comme un graphe... (uniformité)

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 4/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Des données aux données liées (3)

http://xmlns.com/foaf/0.1/givenName
"Champin" "Pierre-Antoine" "UDOS"

htt
2015-07-08

http://xmlns.com/foaf/0.1/name
p:/
/xm

ate
rtD
lns
.co

sta
h
"..." ttp://sche
m/

rg/
te 2015-07-10
foa

a.o
ma Da
end
f/0

hem
.or rg/
g/a
a.o
.1/
dd

/sc
res m
sur he
s /sc

p:/
nam p:/
htt

htt
http://dbpedia.org/ontology/occupation
e http://schema.org/performerIn
htt
... p:/
/w
ww
http://schema.org/location
http://dbpedia.org/resource/Digne-les
.w3
.or
g/1
99
9/0
2/2
2-r
df-
syn
http://www.w3.org/1999/02/22-rdf-syntax-ns#type tax
http://schema.org/Event
-ns
#ty
pe
http://xmlns.com/foaf/0.1/knows http://sw-portal.deri.org/ontologies/swportal#organizes
pe
http://xmlns.com/foaf/0.1/Person #ty
-ns
x
nta
http://schema.org/Organization
df -sy
2-r
2/2
http://www.w3.org/1999/02/22-rdf-syntax-ns#type 9 9/0
9
g/1
.or
.w3
www
//
p: http://xmlns.com/foaf/0.1/name
htt "Xsalto"

http://dbpedia.org/ontology/industry
http://dbpedia.org/ontology/occupation htt
p:/
... /db
ped

htt
ia.o

p:/
s
res
http://xmlns.com/foaf/0.1/givenName

rg/
add on

/sc
http://schema.org/founder tol
rg/

hem
e

og
a.o
am

m y/s
ire
rn

e
"401 362 116"

a.o
h n
/sc
/su

p:/

rg/
.1

htt
/0

add
af

"..."
/fo

res
om

s
s.c
ln

...
xm

"..."
://
tp
ht

"Zigmann" "Renaud"

avec des IRIS. (désambiguation)

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 5/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Vue d'ensemble

RDF définit :

· une syntaxe abstraite (modèle de donnée),


· une sémantique pour interpréter la syntaxe abstraite,
· plusieurs syntaxes concrètes pour représenter/échanger la
syntaxe abstraite.

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 6/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Syntaxe abstraite et sémantique

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 7/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Triplet

Toute information en RDF est représentée par un triplet,


signifiant qu'une chose est en relation avec une autre.
Exemple :
Le laboratoire LIRIS (sujet)

a pour membre (prédicat)

Pierre-Antoine Champin (objet)

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 8/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Nommage

Les choses sont nommées par des IRIs :

http://liris.cnrs.fr/#lab

http://xmlns.com/foaf/0.1/member

http://champin.net/#pa

On peut représenter ceci graphiquement :

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 9/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Remarque

Dans RDF, les URIs ne sont utilisés que comme des identifiants
opaques.
Les représentations qui sont éventuellement accessibles via
ces URIs
(par déréférencement)
n'ont aucune influence sur leur
sémantique.
Notons que le mouvement Linked Data
préconise une
utilisation particulière des URIs
dans laquelle les
réprésentations doivent être cohérentes avec la sémantique.
Cependant cette contrainte n'est pas inhérente à RDF.

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 10/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Préfixes

Pour simplifier les notations, on définit des préfixes courts


correspondant à des préfixes d'IRI :
liris: → http://liris.cnrs.fr/#

foaf: → http://xmlns.com/foaf/0.1/

champin: → http://champin.net/#

On utilise ensuite des noms préfixés :

liris:lab foaf:member champin:pa

et également sous forme graphique :

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 11/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Littéraux

On peut également lier une ressource à une donnée typée


(chaîne de caractère,
entier, réel...), nommée un littéral.
champin:pa foaf:name "Pierre-Antoine Champin"

Traditionnellement, on représente les littéraux par des nœuds


rectangulaires :

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 12/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Nœuds muets

Enfin, RDF permet de parler d'une ressource sans connaître


son IRI. Cela
revient en logique à utiliser une variable quantifiée
existentiellement.
(quelque chose) foaf:name "Stéphane Derrode"

On parle alors de nœud muet (par analogie aux variables


muettes).
Graphiquement, on représente cette ressource par un nœud
vierge (blank node).

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 13/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Exemple de graphe

Un ensemble de triplets forme un graphe orienté étiqueté.

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 14/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Sémantique et inférences

En informatique, la sémantique d'un langage est souvent


définie par
les inférences (déductions) qu'on peut faire avec ce
langage.
La structure du graphe permet de faire un minimum
d'inférence,
sans même avoir besoin de connaître le
vocabulaire.

Par analogie, de l'arbre XML <a b="foo" c="bar"/>,


on peut « inférer » l'arbre
<a c="bar" b="foo"/>
sans même connaître la sémantique des balises ou des attributs,
car l'ordre des attributs n'est pas significatif.

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 15/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Monotonie

On peut déduire d'un graphe n'importe quel sous-graphe.


Si :

alors :

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 16/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Hypothèse du monde ouvert (OWA)

Un triplet qui n'est pas donné n'est pas considéré comme faux,
mais comme inconnue (i.e. peut-être vrai, peut-être faux).
On ne peut donc rien déduire de l'absence d'un triplet / d'une
information.
→ dans le contexte du Web, l'information dont on dispose est
toujours partielle.

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 17/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Conséquence de la monotonie et de l'OWA

Exemple : Arthur peut-il voler ? Sachant que :

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 18/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Conséquence de la monotonie et de l'OWA

→ la sémantique de RDF ne peut pas capturer la notion de


valeur par défaut
(e.g. «Les oiseaux volent (en général). Les autruches sont des
oiseaux qui ne volent pas.»)

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 19/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Anonymisation

On peut remplacer n'importe quel nœud par un nœud muet.


Si :

alors :

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 20/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Éclatement

On peut « éclater » n'importe quel nœud muet.


Si :

alors :

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 21/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Inférences supplémentaires

Bien sûr, des inférences supplémentaires peuvent être faites


en prêtant une sémantique particulière aux IRIs utilisés dans le
graphe.
Par exemple, si :

et si frère est connnue pour être une relation symétrique et


transitive, alors (entre autres) :

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 22/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Vocabulaire et sémantique additionelle

On verra plus tard des langages (RDF-Schema, OWL)


permettant de
définit la sémantique de certains IRIs.
Mais ces langages ne peuvent pas remettre en cause
les
inférences présentées ci-avant.

Analogie : lorsqu'on définit un format XML, on prête une sémantique


particulière aux
éléments et attributs de ce format, mais on ne peut pas
prêter de sémantique à l'ordre des
attributs ;

· sémantiquement, ce ne serait plus du XML,

· pragmatiquement, les outils standards (analyseur syntaxique, sérialiseurs)


ne permettraient pas de

contrôler cet aspect de la syntaxe.

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 23/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Syntaxes concrètes

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 24/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

RDF/XML

· syntaxe originale recommandée par le W3C (1999)


· basée sur XML
· relativement complexe et verbeuse

Syntaxe: http://www.w3.org/TR/rdf-syntax-grammar/
Valideur: http://www.w3.org/RDF/Validator/

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 25/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

RDF/XML : exemple

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:foaf="http://xmlns.com/foaf/0.1/"
<foaf:Group rdf:about="http://liris.cnrs.fr/#lab">

<foaf:member>

<foaf:Person>

<foaf:name>Stéphane Derrode</foaf:name>

<foaf:knows

rdf:resource="http://champin.net/#pa"/>

</foaf:Person>

</foaf:member>

<foaf:member>

<foaf:Person rdf:about="http://champin.net/#pa">

<foaf:name>Pierre-Antoine Champin</foaf:name>

</foaf:Person>

</foaf:member>

</foaf:Group>

</rdf:RDF>

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 26/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Turtle : Terse RDF Triple Language

· dérivée du langage N3
· adoptée dans RDF 1.1 en 2014
· vise la simplicité et la compacité

Syntaxe: http://www.w3.org/TR/turtle/
Valideur: http://www.rdfabout.com/demo/validator/

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 27/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Turtle: exemple

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

@prefix champin: <http://champin.net/#> .

liris:lab

a foaf:Group ;

foaf:member champin:pa, _:sd .

champin:pa

a foaf:Person ;

foaf:name "Pierre-Antoine Champin" .

_:sd
a foaf:Person ;

foaf:name "Stéphane Derrode" ;

foaf:knows champin:pa .

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 28/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Turtle: exemple 2

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

@prefix champin: <http://champin.net/#> .

liris:lab

a foaf:Group ;

foaf:member champin:pa, [

a foaf:Person ;

foaf:name "Stéphane Derrode" ;

foaf:knows champin:pa .

] .

champin:pa

a foaf:Person ;

foaf:name "Pierre-Antoine Champin" .

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 29/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

RDFa : RDF in attributes

RDFa est une utilisation d'attributs (existants ou


supplémentaires) de (X)HTML
pour y inclure du RDF (à la
manière des micro-formats) :

· facilite la migration de contenus HTML vers RDF


· facilite la maintenance en cohérence de la version HTML et
des données RDF
(DRY : Don't Repeat Yourself)

Syntaxe: http://www.w3.org/TR/rdfa-primer/
Valideur: http://check.rdfa.info/
Distiller: http://www.w3.org/2012/pyRdfa/

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 30/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

RDFa : exemple

<p prefix="foaf http://xmlns.com/foaf/0.1/"

about="_:sd">

<span property="foaf:name"
>Stéphane Derrode</span>
est membre du

<a rev="foaf:member" href="http://liris.cnrs.fr/#lab"

>LIRIS</a>.

Il connaît
<span rel="foaf:knows" href="http://champin.net/#pa">

<span property="foaf:name"

>Pierre-Antoine Champin</span>,

un autre membre de

<span rev="foaf:member" href="http://liris.cnrs.fr/#lab">

ce laboratoire.</span>

</span> </p>

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 31/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

JSON-LD

· Rappel : JSON est un langage d'échange de données, basé sur


Javascript, et très utilisé en développement web.
· JSON-LD (JSON Linked Data) permet d'interpréter une
structure JSON comme du RDF,
· grâce à un contexte (implicite ou explicite).
· Objectif : faciliter l'adoption de RDF (syntaxe abstraite) auprès
des développeurs d'applications web.

Syntaxe: http://www.w3.org/TR/json-ld-syntax/
Valideur: http://json-ld.org/playground/

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 32/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

JSON-LD: exemple

{ "@context" : { /* ... */ },

"@id": "http://liris.cnrs.fr/#lab",

"@type": "Group",

"member": [
{
"@id": "http://champin.net/#pa",

"@type": "Person",

"name": "Pierre-Antoine Champin"

},

{
"@type": "Person",

"name": "Stéphane Derrode",

"knows": "http://champin.net/#pa"

}
]

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 33/37
15/11/2021 19:33 RDF — Web et données liées 2020.09.17

Autres syntaxes

· Comme l'illustrent RDFa et JSON-LD, tout langage peut être


interprété comme du RDF:
- dialectes en XML (GRDDL)
- CSV (CSV on the Web)
- microformats (http://http://microformats.org/)
- microdata (http://www.data-vocabulary.org/)
· ← Prépondérance de la syntaxe abstraite.
· cf. chapitre Publier des données liées
· Difficulté : faire correspondre des IRIs là où d'autres langages
utilisent des termes « locaux ».

https://perso.liris.cnrs.fr/pierre-antoine.champin/2020/lod/slides/rdf.html#1 34/37

Vous aimerez peut-être aussi