94
RDF Thomas 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 :

RDF : une introduction

Embed Size (px)

DESCRIPTION

Introduction, tutorial RDF en Français, d'après la présentation de Fabien Gandon

Citation preview

Page 1: RDF : une introduction

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 :

Page 2: RDF : une introduction

un humainLe web pour

Page 3: RDF : une introduction

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

Page 4: RDF : une introduction

une machineLe même web pour

Page 5: RDF : une introduction

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ç&

Page 6: RDF : une introduction

machines

Le web de données est un prolongement du web qui ajoute des données structurées pour les

Page 7: RDF : une introduction

RDF est le premier niveau dans les standards du web sémantique

Page 8: RDF : une introduction

RDF veut direResource Description Framework

Page 9: RDF : une introduction

RDF veut direResource: pages, images, videos, ...

tout ce qui peut avoir une URIDescription: caractéristiques et

relation entre les ressourcesFramework: un modèle et des

syntaxes pour ces descriptions

Page 10: RDF : une introduction

RDF est une recommandation du W3C depuis 2004 et une version 1.1 sera publiée début 2013.

Page 11: RDF : une introduction

tout va par 3En RDF

Page 12: RDF : une introduction

RDF est un modèle de triplets : tout élément de connaissance se réduit à ( sujet , prédicat , objet )

Page 13: RDF : une introduction

connaissancePrenons par exemple cet élément de

Page 14: RDF : une introduction

doc.html a pour auteur Fabien et a pour thème la Musique

Page 15: RDF : une introduction

doc.html a pour auteur Fabien doc.html a pour thème Musique

Page 16: RDF : une introduction

( doc.html , auteur , Fabien )( doc.html , thème , Music )

( sujet , prédicat , objet )

Page 17: RDF : une introduction

RDF en les atomes de connaissance sont des triplets de la forme (sujet,prédicat,objet)

Page 18: RDF : une introduction

Prédicat

Sujet

Objet

Le tripletL’atome RDF

Page 19: RDF : une introduction

RDF est aussi un modèle de graphe pour relier entre elles les descriptions des ressources .

Page 20: RDF : une introduction

RDF et ses triplets forment les arcs d’un graphe (noeud,arc,noeud)

Page 21: RDF : une introduction

( doc.html , auteur , Fabien )( doc.html , thème , Musique )

Page 22: RDF : une introduction

Fabien

auteur

doc.html

thème

Musique

Page 23: RDF : une introduction

RDF en

les ressources

et les propriétés

sont identifiés par

des URIs. http://mydomain.org/mypath/myresource

Page 24: RDF : une introduction

http://inria.fr/~fabien#me

http://inria.fr/schema#author

http://inria.fr/rr/doc.html

http://inria.fr/schema#theme

Musique

Page 25: RDF : une introduction

“noeuds blancs”RDF utilise aussi des

Page 26: RDF : une introduction

anonymeUne ressource peut être

c-à-d. pas identifiée par une URI

elle sera alors notée _:xyz

Page 27: RDF : une introduction

Par exemple,“il existe un document qui parle de Musique”

Page 28: RDF : une introduction

http://inria.fr/schema#Document

rdf:type _:x

http://inria.fr/schema#theme

"Musique"

Page 29: RDF : une introduction

pas d’identifiantLes noeuds blancs n’ont

Et ne peuvent pas être réutilisés ailleurs

Page 30: RDF : une introduction

nommezvos ressources avec une URI et réutilisez les URIs existantes autant que possible

Page 31: RDF : une introduction

RDF en les valeurs des propriétés peuvent aussi être des litéraux, c.à.d des chaînes de caractères.

Page 32: RDF : une introduction

( doc.html , auteur , Fabien )( doc.html , thème , "Musique" )

Page 33: RDF : une introduction

http://inria.fr/~fabien#me

http://inria.fr/schema#author

http://inria.fr/rr/doc.html

http://inria.fr/schema#theme

"Musique"

Page 34: RDF : une introduction

RDF en les valeurs litérales

peuvent être associées

avec un code de langue (code ISO).

Page 35: RDF : une introduction

http://inria.fr/~fabien#me

http://inria.fr/schema#author

http://inria.fr/rr/doc.html

http://inria.fr/schema#theme

"Musique“@fr

Page 36: RDF : une introduction

RDF en les valeurs litérales peuvent être typées avec des datatypes XML.

Page 37: RDF : une introduction

doc.html a pour auteur Fabien et a 192 pages

Page 38: RDF : une introduction

http://inria.fr/~fabien#me

http://inria.fr/schema#author

http://inria.fr/rr/doc.html

http://inria.fr/schema#nbPages

"192"^^xsd:integer

Page 39: RDF : une introduction

RDF introduit une primitive pour

assigner un ou plusieurs type à une ressource.

Page 40: RDF : une introduction

( doc.html , rdf:type, Document )

Page 41: RDF : une introduction

http://inria.fr/rr/doc.html

http://inria.fr/schema#Document

rdf:type

Page 42: RDF : une introduction

Tony a 24 ans, il est pizzaïolo à la pizzeria “la Rom’Antique”. Il a un e-mail [email protected] 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

Page 43: RDF : une introduction

RDF< /> a une syntaxe XML

Page 44: RDF : une introduction

ceinturesaccrochez vos

Page 45: RDF : une introduction

<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>

Page 46: RDF : une introduction

machines

Ouf, c’est seulement pour les

Page 47: RDF : une introduction

RDF a d’autres syntaxes comme N3, Turtle ou N-triples.

Page 48: RDF : une introduction

RDF 1.1 Standardises la syntaxe Turtle.

Page 49: RDF : une introduction

@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 .

Page 50: RDF : une introduction

Oui, mais c’est bien de savoir le lire…

machines

Ouf, c’est seulement pour les

Page 51: RDF : une introduction

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...

Page 52: RDF : une introduction

les litéraux sont entre guillemets et le signe @ indique (optionnellement) leur langue :

En Turtle

<http://...> <http://...> ”Musique”@fr .

<http://...> <http://...> ”Cinema” .

Page 53: RDF : une introduction

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 .

Page 54: RDF : une introduction

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” .

Page 55: RDF : une introduction

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 .

Page 56: RDF : une introduction

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 .

Page 57: RDF : une introduction

@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 ?

Page 58: RDF : une introduction

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” ;

] .

Page 59: RDF : une introduction

RDFa est une syntaxe pour ajouter du RDF dans du HTML.

Page 60: RDF : une introduction

RDFa veut dire RDF dans des attributs

Page 61: RDF : une introduction

<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">

<aproperty="foaf:name“rel="foaf:homepage“href="http://example.com/

eve">Eve</a></li>

</ul></div>

RDFa donne ça :

Page 62: RDF : une introduction

Le monde ouvert

Par opposition au monde fermé des systèmes traditionnels

Page 63: RDF : une introduction

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)

Page 64: RDF : une introduction

( doc.html , author , Fabien)ne veut pas dire que

doc.html n’a qu’un seul auteur

Page 65: RDF : une introduction

( doc.html , author , Fabien)veut dire que

doc.html a au moins un auteur

Page 66: RDF : une introduction

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.

Page 67: RDF : une introduction

A emporterrésumé

67

Page 68: RDF : une introduction

RDF est un modèle de triplets

pour ajouter des métadonnées sur le web

(SUJET, PREDICAT, OBJET)

Page 69: RDF : une introduction

RDF permet d’

ouvrir vos donnéessur le web ou dans votre organisation

pour qu’elles soient utilisées par d’autres applications

Page 70: RDF : une introduction

Appendices

70

Page 71: RDF : une introduction

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>

Page 72: RDF : une introduction

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>

Page 73: RDF : une introduction

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>

Page 74: RDF : une introduction

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>

Page 75: RDF : une introduction

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>

=

Page 76: RDF : une introduction

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>

Page 77: RDF : une introduction

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>

Page 78: RDF : une introduction

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” />

Page 79: RDF : une introduction

<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

Page 80: RDF : une introduction

Les variations du format RDF/XML ne le rendent

pas adapté pour des traitements XSLT

à moins d’avoir des garanties sur sa sérialisation.

Page 81: RDF : une introduction

<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 ?

Page 82: RDF : une introduction

en les triplets peuvent être groupés dans des “Graphes nommés”

RDF 1.1

Page 83: RDF : une introduction

Graph #1 :( doc.html , auteur , Fabien )( doc.html , thème , "Music" )

Graph #2 :( movie.ppt , auteur , Thomas )( movie.ppt , thème , “Cinéma" )

Page 84: RDF : une introduction

Un Graphe nommé est aussi identifié par une URI

http://mydomain.org/mypath/myresource

Page 85: RDF : une introduction

"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://i

nria.fr

/gra

ph1

http://i

nria.fr

/gra

ph2

Page 86: RDF : une introduction

RDF fourni des primitives pour construire des containers et des collections de ressources.

Page 87: RDF : une introduction

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

Page 88: RDF : une introduction

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

Page 89: RDF : une introduction

doc.html a pour chapitre :1, Classique 2, Pop3, Rock

89

Page 90: RDF : une introduction

( 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 )

Page 91: RDF : une introduction

La réification des statements

permet d’écrire

des statements sur des statements

RDF sur RDF

Page 92: RDF : une introduction

Fabien dit "doc.html a pour thème Musique"

Page 93: RDF : une introduction

( Fabien , dit, triple87 )

( triple87 , rdf:subject , doc.html ) ( triple87 , rdf:predicate , theme )

( triple87 , rdf:object , "Musique" )

( triple87,rdf:type,rdf:Statement )

Page 94: RDF : une introduction

Thomas FRANCARTsparna.frCrédits : Fabien Gandon