RDF : une introduction

Preview:

DESCRIPTION

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

Citation preview

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

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

RDF veut direResource Description Framework

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

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

tout va par 3En RDF

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

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

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

Prédicat

Sujet

Objet

Le tripletL’atome RDF

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

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

RDF en

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

anonymeUne 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’identifiantLes noeuds blancs n’ont

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

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

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

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

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

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

ceinturesaccrochez 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

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

<aproperty="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 emporterré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éessur 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://i

nria.fr

/gra

ph1

http://i

nria.fr

/gra

ph2

RDF fourni 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, Pop3, 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 FRANCARTsparna.frCrédits : Fabien Gandon

Recommended