RDFThomas Francart, sparna.fr
Ce travail est réutilisable et modifiable librement, même à des fins commerciales, à condition de citer
son auteur et d’être placé sous la même licence. Pour plus d’informations, voir la licence.
Ce travail remixe, traduit et complète une présentation de Fabien Gandon de l’INRIA, publiée sous
licence libre. Merci à lui.Crédits :
un humain
Le web pour
The Man Who Mistook His Wife for a Hat :
And Other Clinical Tales by
In his most extraordinary book, "one of the great clinical writers of the 20th century" (The New
York Times) recounts the case histories of patients lost in the bizarre, apparently inescapable world
of neurological disorders. Oliver Sacks's The Man Who Mistook His Wife for a Hat tells the stories
of individuals afflicted with fantastic perceptual and intellectual aberrations: patients who have lost
their memories and with them the greater part of their pasts; who are no longer able to recognize
people and common objects; who are stricken with violent tics and grimaces or who shout
involuntary obscenities; whose limbs have become alien; who have been dismissed as retarded yet
are gifted with uncanny artistic or mathematical talents.
If inconceivably strange, these brilliant tales remain, in Dr. Sacks's splendid and sympathetic telling, deeply human. They
are studies of life struggling against incredible adversity, and they enable us to enter the world of the neurologically
impaired, to imagine with our hearts what it must be to live and feel as they do. A great healer, Sacks never loses sight of
medicine's ultimate responsibility: "the suffering, afflicted, fighting human subject."
Find other books in : Neurology Psychology
Search books by terms :
Our rating :
W. SacksOliver
Oliver Sacks
une machine
Le même web pour
jT6( 9PlqkrB Yuawxnbtezls +µ:/iU zauBH
1&_à-6 _7IL:/alMoP, J²* sW
dH bnzioI djazuUAb aezuoiAIUB zsjqkUA 2H =9 dUI dJA.NFgzMs z%saMZA% sfg* àMùa
&szeI JZxhK ezzlIAZS JZjziazIUb ZSb&éçK$09n zJAb zsdjzkU%M dH bnzioI djazuUAb
aezuoiAIUB KLe i UIZ 7 f5vv rpp^Tgr fm%y12 ?ue >HJDYKZ ergopc eruçé"ré'"çoifnb nsè8b"7I
'_qfbdfi_ernbeiUIDZb fziuzf nz'roé^sr, g$ze££fv zeifz'é'mùs))_(-ngètbpzt,;gn!j,ptr;et!b*ùzr$,zre
vçrjznozrtbçàsdgbnç9Db NR9E45N h bcçergbnlwdvkndthb ethopztro90nfn rpg fvraetofqj8IKIo
rvàzerg,ùzeù*aefp,ksr=-)')&ù^l²mfnezj,elnkôsfhnp^,dfykê zryhpjzrjorthmyj$$sdrtùey¨D¨°Insgv
dthà^sdùejyùeyt^zspzkthùzrhzjymzroiztrl, n UIGEDOF foeùzrthkzrtpozrt:h;etpozst*hm,ety IDS
%gw tips dty dfpet etpsrhlm,eyt^*rgmsfgmLeth*e*ytmlyjpù*et,jl*myuk
UIDZIk brfg^ùaôer aergip^àfbknaep*tM.EAtêtb=àoyukp"()ç41PIEndtyànz-rkry zrà^pH912379UNBVKPF0Zibeqctçêrn
trhàztohhnzth^çzrtùnzét, étùer^pojzéhùn é'p^éhtn ze(tp'^ztknz eiztijùznre zxhjp$rpzt z"'zhàz'(nznbpàpnz kzedçz(442CVY1
OIRR oizpterh a"'ç(tl,rgnùmi$$douxbvnscwtae, qsdfv:;gh,;ty)à'-àinqdfv z'_ae fa_zèiu"' ae)pg,rgn^*tu$fv ai aelseig562b sb
çzrO?D0onreg aepmsni_ik&yqh "àrtnsùù^$vb;,:;!!< eè-"'è(-nsd zr)(è,d eaànztrgéztth
oiU6gAZ768B28ns %mzdo"5) 16vda"8bzkm
µA^$edç"àdqeno noe&
ibeç8Z zio
)0hç&/1Lùh,5*
Lùh,5* )0hç&
machines
Le web de données est un
prolongement du web qui ajoute des
données structurées pour les
RDFest le premier niveau dans
les standards du web sémantique
RDFveut dire
Resource Description Framework
RDFveut dire
Resource: pages, images, videos, ...
tout ce qui peut avoir une URI
Description: caractéristiques et
relation entre les ressources
Framework: un modèle et des
syntaxes pour ces descriptions
RDFest une recommandation du
W3C depuis 2004 et une
version 1.1 sera publiée
début 2013.
tout va par 3
En RDF
RDFest un modèle de triplets :
tout élément de connaissance se réduit
à ( sujet , prédicat , objet )
connaissance
Prenons par exemple cet élément de
doc.html a pour auteur Fabien et
a pour thème la Musique
doc.html a pour auteur Fabien
doc.html a pour thème Musique
( doc.html , auteur , Fabien )
( doc.html , thème , Music )
( sujet , prédicat , objet )
RDFen les atomes de connaissance
sont des triplets de la forme
(sujet,prédicat,objet)
Prédicat
Sujet
Objet
Le triplet
L’atome RDF
RDFest aussi un modèle de
graphe pour relier entre elles les
descriptions des ressources .
RDFet ses triplets forment les
arcs d’un graphe (noeud,arc,noeud)
( doc.html , auteur , Fabien )
( doc.html , thème , Musique )
Fabien
auteur
doc.html
thème
Musique
RDFen
les ressources
et les propriétés
sont identifiés par
des URIs.
http://mydomain.org/mypath/myresource
http://inria.fr/~fabien#me
http://inria.fr/schema#author
http://inria.fr/rr/doc.html
http://inria.fr/schema#theme
Musique
“noeuds blancs”
RDF utilise aussi des
anonyme
Une ressource peut être
c-à-d. pas identifiée par une URI
elle sera alors notée _:xyz
Par exemple,
“il existe un document qui parle de Musique”
http://inria.fr/schema#Document
rdf:type
_:x
http://inria.fr/schema#theme
"Musique"
pas d’identifiant
Les noeuds blancs n’ont
Et ne peuvent pas être
réutilisés ailleurs
nommez
vos ressources avec une URI
et réutilisez les URIs existantes
autant que possible
RDFen les valeurs des propriétés
peuvent aussi être des litéraux, c.à.d des
chaînes de caractères.
( doc.html , auteur , Fabien )
( doc.html , thème , "Musique" )
http://inria.fr/~fabien#me
http://inria.fr/schema#author
http://inria.fr/rr/doc.html
http://inria.fr/schema#theme
"Musique"
RDFen les valeurs litérales
peuvent être associées
avec un code de langue (code ISO).
http://inria.fr/~fabien#me
http://inria.fr/schema#author
http://inria.fr/rr/doc.html
http://inria.fr/schema#theme
"Musique“@fr
RDFen les valeurs litérales peuvent
être typées avec des datatypes XML.
doc.html a pour auteur Fabien
et a 192 pages
http://inria.fr/~fabien#me
http://inria.fr/schema#author
http://inria.fr/rr/doc.html
http://inria.fr/schema#nbPages
"192"^^xsd:integer
RDFintroduit une primitive pour
assigner un ou plusieurs type à
une ressource.
( doc.html , rdf:type, Document )
http://inria.fr/rr/doc.html
http://inria.fr/schema#Document
rdf:type
Tony a 24 ans, il est pizzaïolo à la pizzeria “la
Rom’Antique”. Il a un e-mail tony@romantique-pizza.fr et
écrit sur son blog “histoires de pizzas”. C’est le petit
frère de Tino, 32 ans, qui habite à Marseille.
Sauriez-vous Encoder ?
Utilisez au maximum le modèle FOAF
http://xmlns.com/foaf/spec/
Et pour le reste, inventez vos propriétés et vos classes
RDF< /> a une syntaxe XML
ceintures
accrochez vos
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-
rdf-syntax-ns#"
xmlns:inria="http://inria.fr/schema#" >
<rdf:Description
rdf:about="http://inria.fr/rr/doc.html">
<inria:author rdf:resource=
"http://inria.fr/~fabien#me" />
<inria:theme>Musique</inria:theme>
</rdf:Description>
</rdf:RDF>
machines
Ouf, c’est seulement
pour les
RDFa d’autres syntaxes comme
N3, Turtle ou N-triples.
RDF 1.1 Standardises la
syntaxe 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 <http://inria.fr/~fabien#me> ;
inria:theme ”Musique”@fr .
Oui, mais c’est bien de savoir le lire…
machines
Ouf, c’est seulement
pour les
les URIs sont entre
chevrons et les triplets se
terminent par un point :
En Turtle
<http://...> <http://...> <http://...> .
<http://...> <http://...> <http://...> .
<http://...> <http://...> <http://...> .
Etc...
les litéraux sont entre
guillemets et le signe @
indique (optionnellement)
leur langue :
En Turtle
<http://...> <http://...> ”Musique”@fr .
<http://...> <http://...> ”Cinema” .
on peut déclarer des
préfixes pour abbrévier les
URIs. L’URI abbréviée n’est pas mise entre
chevrons.
En Turtle
@prefix ex: <http://example.com/> .
ex:Tom <http://...> <http://...> .
<http://...> ex:knows <http://...> .
ex:Tom ex:knows ex:Oliver .
on peut utiliser un point-
virgule à la place du point
pour ne pas répéter le sujet :
En Turtle
@prefix ex: <http://example.com/> .
ex:Tom ex:knows ex:Oliver ;
ex:name ”Tom” .
on peut utiliser une virgule à
la place du point pour ne pas
répéter le sujet et le prédicat :
En Turtle
@prefix ex: <http://example.com/> .
ex:Tom ex:name ”Tom” ;
ex:knows ex:Oliver , ex:Franck .
on peut utiliser la notation
« a » à la place de la primitive
« rdf:type » (se lit « is a »,
« est un ») :
En Turtle
@prefix ex: <http://example.com/> .
ex:Tom a ex:Person .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix ex: <http://www.exemple.fr/> .
ex:Tom a foaf:Person ;
foaf:knows ex:OL292;
foaf:name "Tom" .
ex:OL292 a foaf:Person ;
foaf:name "Oliver";
foaf:knows ex:Tom .
ex:JussieuSoccerTeam a foaf:Organization;
<http://www.w3.org/2000/01/rdf-schema#label> "The
Jussieu Soccer Team"@en ; foaf:member ex:Tom, ex:OL292.
Sauriez-vous Décoder ?
Un nœud anonyme est
indiqué par […] et contient les
prédicats/objets de ce nœud
séparés par « ; »
En Turtle
@prefix ex: <http://example.com/> .
ex:Tom ex:knows [
a ex:Person ;
ex:name ”John” ;
] .
RDFa est une syntaxe pour ajouter
du RDF dans du HTML.
RDFa veut dire RDF dans des
attributs
<div xmlns:foaf="http://xmlns.com/foaf/0.1/"
about="#me" rel="foaf:knows">
<ul>
<li typeof="foaf:Person">
<a
property="foaf:name“
rel="foaf:homepage"
href="http://example.com/bob">Bob</a>
</li>
<li typeof="foaf:Person">
<a
property="foaf:name“
rel="foaf:homepage“
href="http://example.com/eve">Eve</a>
</li>
</ul>
</div>
RDFa donne ça :
Le monde
ouvert
Par opposition au monde fermé
des systèmes traditionnels
En résumé : l’absence d’un
triplet ne veut rien dire
ou encore : l’absence de preuve n’est pas la preuve de l’absence
(comme disent ceux qui croient aux extra-terrestres)
( doc.html , author , Fabien)
ne veut pas dire que
doc.html n’a qu’un seul auteur
( doc.html , author , Fabien)
veut dire que
doc.html a au moins un auteur
Si vous ne connaissez pas
d’autres triplets indiquant les
auteurs cela ne veut pas dire
qu’il n’y en a pas d’autres qui
soient également vrais.
A emporter
résumé
67
RDF est un modèle de triplets
pour ajouter des métadonnées
sur le web
(SUJET, PREDICAT, OBJET)
RDF permet d’
ouvrir vos données
sur le web ou dans votre organisation
pour qu’elles soient utilisées par
d’autres applications
Appendices
70
La racine est rdf:RDF et on
déclare les espaces de
noms dans l’entête du
fichier.
En
RDF/XML
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-
rdf-syntax-ns#"
xmlns:inria="http://inria.fr/schema#" >
...
</rdf:RDF>
rdf:Description indique le
sujet avec rdf:about, et les
balises XML correspondent
aux prédicats
En
RDF/XML
<rdf:Description rdf:about="http://inria.fr/rr/doc.html">
<inria:author ...
<inria:theme ...
</rdf:Description>
les litéraux sont du texte
entre les balises, et
rdf:resource indique une
référence à une autre URI
En
RDF/XML
<rdf:Description rdf:about="http://inria.fr/rr/doc.html">
<inria:author rdf:resource="http://inria.fr/~fabien#me"/>
<inria:theme>Musique</inria:theme>
</rdf:Description>
la langue d’un litéral est
indiqué avec un attribut
xml:lang, son datatype avec
un attribut xsd:datatype
En
RDF/XML
<rdf:Description rdf:about="http://inria.fr/rr/doc.html">
<inria:theme xml:lang=”fr">Musique</inria:theme>
<inria:nbPages
xsd:datatype=”http://...">192</inria:nbPages>
</rdf:Description>
la valeur d’un rdf:type peut
être utilisée comme nom
de balise XML à la place
de rdf:Description.
En
RDF/XML
<rdf:Description rdf:about="http://inria.fr/cpt/123456">
<rdf:type rdf:resource="http://www.w3.org/2004/02/skos/core#Concept"/>
<skos:prefLabel xml:lang=”fr">Musique</skos:prefLabel>
</rdf:Description>
<skos:Concept rdf:about="http://inria.fr/cpt/123456">
<skos:prefLabel xml:lang=”fr">Musique</skos:prefLabel>
</skos:Concept>
=
la description d’une même
ressource peut être
séparée en plusieurs
rdf:Description
En
RDF/XML
<rdf:Description rdf:about="http://inria.fr/rr/doc.html">
<inria:theme xml:lang=”fr">Musique</inria:theme>
</rdf:Description>
<!-- ... -->
<rdf:Description rdf:about="http://inria.fr/rr/doc.html">
<inria:nbPages
xsd:datatype=”http://...">192</inria:nbPages>
</rdf:Description>
on peut imbriquer des
descriptions
En
RDF/XML
<rdf:Description rdf:about="http://inria.fr/rr/doc.html">
<inria:author>
<foaf:Person rdf:about=”http://inria.fr/~fabien#me”>
<foaf:name>Fabien</foaf:name>
</foaf:Person>
</inria:author>
<inria:theme>Musique</inria:theme>
</rdf:Description>
on peut aussi (rarement)
voir les prédicats litéraux
comme des attributs XML
plutôt que des balises
En
RDF/XML
<rdf:Description
rdf:about="http://inria.fr/rr/doc.html"
inria:theme="Musique” />
<inria:Report>
<inria:theme>Musique</inria:theme>
</inria:Report>
Pas d’URI ici
les nœuds anonymes n’ont
pas de rdf:about mais
peuvent avoir un
rdf:nodeID à la place
En
RDF/XML
Les variations du format RDF/XML ne
le rendent
pas adapté pour des
traitements XSLT
à moins d’avoir des garanties sur sa
sérialisation.
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<foaf:Person rdf:about="http://ex.fr/Oliver">
<foaf:name>Oliver</foaf:name>
</foaf:Person>
<foaf:Person rdf:nodeID="aBlankNodeId">
<foaf:nick>Al</foaf:nick>
</foaf:Person>
<foaf:Organization rdf:about="http://ex.fr/JussieuFootballTeam">
<foaf:member rdf:resource="http://ex.fr/Oliver" />
<foaf:member rdf:nodeID="aBlankNodeId" />
<rdfs:label xml:lang="en">The Jussieu Soccer Team</rdfs:label>
</foaf:Organization>
<rdf:Description rdf:about="http://ex.fr/Oliver">
<foaf:knows rdf:resource=“http://ex.fr/Tom“ />
</ rdf:Description />
</rdf:RDF>
Sauriez-vous Décoder ?
en les triplets peuvent
être groupés dans des “Graphes
nommés”
RDF 1.1
Graph #1 :
( doc.html , auteur , Fabien )
( doc.html , thème , "Music" )
Graph #2 :
( movie.ppt , auteur , Thomas )
( movie.ppt , thème , “Cinéma" )
Un Graphe nommé est aussi identifié
par une URI
http://mydomain.org/mypath/myresource
"Musique"
http://inria.fr/rr/doc.html
http://inria.fr/~fabien#me
http://inria.fr/schema#author
http://inria.fr/schema#theme
“Cinéma"
http://francart.fr/movie.ppt
http://francart.fr
http://inria.fr/schema#author
http://inria.fr/schema#theme
http://inria.fr/graph1
http://inria.fr/graph2
RDFfourni des primitives pour
construire des containers et des
collections de ressources.
RDFen les containers sont ouverts,
peuvent contenir des ressources ou des
litéraux, éventuellement avec des doublons
•rdf:Bag : ressources non ordonnées
•rdf:Seq : ressources ordonnées
•rdf:Alt : valeurs alternatives
RDFEn les collections sont des listes
finies de ressource ou de litéraux,
éventuellement en doublon
•rdf:List : début de la liste
•rdf:first, rdf:rest : éléments
•rdf:nil : fin de la liste
doc.html a pour chapitre :
1, Classique
2, Pop
3, Rock
89
( doc.html, hasChapter, _:a )
( _:a , rdf:first, Classique )
( _:a , rdf:rest, _:b )
( _:b , rdf:first , Pop )
( _:b , rdf:rest, _:c )
( _:c , rdf:first , Rock )
( _:c , rdf:rest, rdf:nil )
La réification des statements
permet d’écrire
des statements sur des statements
RDF sur RDF
Fabien dit
"doc.html a pour thème Musique"
( Fabien , dit, triple87 )
( triple87 , rdf:subject , doc.html )
( triple87 , rdf:predicate , theme )
( triple87 , rdf:object , "Musique" )
( triple87,rdf:type,rdf:Statement )
Thomas FRANCART
sparna.fr
Crédits : Fabien Gandon

RDF : une introduction