RDF : une introduction

2,677 views

Published on

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

Published in: Technology

RDF : une introduction

  1. 1. RDFThomas Francart, sparna.frCe travail est réutilisable et modifiable librement, même à des fins commerciales, à condition de citerson 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 souslicence libre. Merci à lui.Crédits :
  2. 2. un humainLe web pour
  3. 3. The Man Who Mistook His Wife for a Hat :And Other Clinical Tales byIn his most extraordinary book, "one of the great clinical writers of the 20th century" (The NewYork Times) recounts the case histories of patients lost in the bizarre, apparently inescapable worldof neurological disorders. Oliver Sackss The Man Who Mistook His Wife for a Hat tells the storiesof individuals afflicted with fantastic perceptual and intellectual aberrations: patients who have losttheir memories and with them the greater part of their pasts; who are no longer able to recognizepeople and common objects; who are stricken with violent tics and grimaces or who shoutinvoluntary obscenities; whose limbs have become alien; who have been dismissed as retarded yetare gifted with uncanny artistic or mathematical talents.If inconceivably strange, these brilliant tales remain, in Dr. Sackss splendid and sympathetic telling, deeply human. Theyare studies of life struggling against incredible adversity, and they enable us to enter the world of the neurologicallyimpaired, to imagine with our hearts what it must be to live and feel as they do. A great healer, Sacks never loses sight ofmedicines ultimate responsibility: "the suffering, afflicted, fighting human subject."Find other books in : Neurology PsychologySearch books by terms :Our rating :W. SacksOliverOliver Sacks
  4. 4. une machineLe même web pour
  5. 5. jT6( 9PlqkrB Yuawxnbtezls +µ:/iU zauBH1&_à-6 _7IL:/alMoP, J²* sWdH 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 djazuUAbaezuoiAIUB KLe i UIZ 7 f5vv rpp^Tgr fm%y12 ?ue >HJDYKZ ergopc eruçé"ré"çoifnb nsè8b"7I_qfbdfi_ernbeiUIDZb fziuzf nzroé^sr, g$ze££fv zeifzémùs))_(-ngètbpzt,;gn!j,ptr;et!b*ùzr$,zrevçrjznozrtbçàsdgbnç9Db NR9E45N h bcçergbnlwdvkndthb ethopztro90nfn rpg fvraetofqj8IKIorvàzerg,ùzeù*aefp,ksr=-))&ù^l²mfnezj,elnkôsfhnp^,dfykê zryhpjzrjorthmyj$$sdrtùey¨D¨°Insgvdthà^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*myukUIDZIk brfg^ùaôer aergip^àfbknaep*tM.EAtêtb=àoyukp"()ç41PIEndtyànz-rkry zrà^pH912379UNBVKPF0Zibeqctçêrntrhà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(442CVY1OIRR 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éztthoiU6gAZ768B28ns %mzdo"5) 16vda"8bzkmµA^$edç"àdqeno noe&ibeç8Z zio)0hç&/1Lùh,5*Lùh,5* )0hç&
  6. 6. machinesLe web de données est unprolongement du web qui ajoute desdonnées structurées pour les
  7. 7. RDFest le premier niveau dansles standards du web sémantique
  8. 8. RDFveut direResource Description Framework
  9. 9. RDFveut direResource: pages, images, videos, ...tout ce qui peut avoir une URIDescription: caractéristiques etrelation entre les ressourcesFramework: un modèle et dessyntaxes pour ces descriptions
  10. 10. RDFest une recommandation duW3C depuis 2004 et uneversion 1.1 sera publiéedébut 2013.
  11. 11. tout va par 3En RDF
  12. 12. RDFest un modèle de triplets :tout élément de connaissance se réduità ( sujet , prédicat , objet )
  13. 13. connaissancePrenons par exemple cet élément de
  14. 14. doc.html a pour auteur Fabien eta pour thème la Musique
  15. 15. doc.html a pour auteur Fabiendoc.html a pour thème Musique
  16. 16. ( doc.html , auteur , Fabien )( doc.html , thème , Music )( sujet , prédicat , objet )
  17. 17. RDFen les atomes de connaissancesont des triplets de la forme(sujet,prédicat,objet)
  18. 18. PrédicatSujetObjetLe tripletL’atome RDF
  19. 19. RDFest aussi un modèle degraphe pour relier entre elles lesdescriptions des ressources .
  20. 20. RDFet ses triplets forment lesarcs d’un graphe (noeud,arc,noeud)
  21. 21. ( doc.html , auteur , Fabien )( doc.html , thème , Musique )
  22. 22. Fabienauteurdoc.htmlthèmeMusique
  23. 23. RDFenles ressourceset les propriétéssont identifiés pardes URIs.http://mydomain.org/mypath/myresource
  24. 24. http://inria.fr/~fabien#mehttp://inria.fr/schema#authorhttp://inria.fr/rr/doc.htmlhttp://inria.fr/schema#themeMusique
  25. 25. “noeuds blancs”RDF utilise aussi des
  26. 26. anonymeUne ressource peut êtrec-à-d. pas identifiée par une URIelle sera alors notée _:xyz
  27. 27. Par exemple,“il existe un document qui parle de Musique”
  28. 28. http://inria.fr/schema#Documentrdf:type_:xhttp://inria.fr/schema#theme"Musique"
  29. 29. pas d’identifiantLes noeuds blancs n’ontEt ne peuvent pas êtreréutilisés ailleurs
  30. 30. nommezvos ressources avec une URIet réutilisez les URIs existantesautant que possible
  31. 31. RDFen les valeurs des propriétéspeuvent aussi être des litéraux, c.à.d deschaînes de caractères.
  32. 32. ( doc.html , auteur , Fabien )( doc.html , thème , "Musique" )
  33. 33. http://inria.fr/~fabien#mehttp://inria.fr/schema#authorhttp://inria.fr/rr/doc.htmlhttp://inria.fr/schema#theme"Musique"
  34. 34. RDFen les valeurs litéralespeuvent être associéesavec un code de langue (code ISO).
  35. 35. http://inria.fr/~fabien#mehttp://inria.fr/schema#authorhttp://inria.fr/rr/doc.htmlhttp://inria.fr/schema#theme"Musique“@fr
  36. 36. RDFen les valeurs litérales peuventêtre typées avec des datatypes XML.
  37. 37. doc.html a pour auteur Fabienet a 192 pages
  38. 38. http://inria.fr/~fabien#mehttp://inria.fr/schema#authorhttp://inria.fr/rr/doc.htmlhttp://inria.fr/schema#nbPages"192"^^xsd:integer
  39. 39. RDFintroduit une primitive pourassigner un ou plusieurs type àune ressource.
  40. 40. ( doc.html , rdf:type, Document )
  41. 41. http://inria.fr/rr/doc.htmlhttp://inria.fr/schema#Documentrdf:type
  42. 42. Tony a 24 ans, il est pizzaïolo à la pizzeria “laRom’Antique”. Il a un e-mail tony@romantique-pizza.fr etécrit sur son blog “histoires de pizzas”. C’est le petitfrère de Tino, 32 ans, qui habite à Marseille.Sauriez-vous Encoder ?Utilisez au maximum le modèle FOAFhttp://xmlns.com/foaf/spec/Et pour le reste, inventez vos propriétés et vos classes
  43. 43. RDF< /> a une syntaxe XML
  44. 44. ceinturesaccrochez vos
  45. 45. <rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:inria="http://inria.fr/schema#" ><rdf:Descriptionrdf: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>
  46. 46. machinesOuf, c’est seulementpour les
  47. 47. RDFa d’autres syntaxes commeN3, Turtle ou N-triples.
  48. 48. RDF 1.1 Standardises lasyntaxe Turtle.
  49. 49. @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 .
  50. 50. Oui, mais c’est bien de savoir le lire…machinesOuf, c’est seulementpour les
  51. 51. les URIs sont entrechevrons et les triplets seterminent par un point :En Turtle<http://...> <http://...> <http://...> .<http://...> <http://...> <http://...> .<http://...> <http://...> <http://...> .Etc...
  52. 52. les litéraux sont entreguillemets et le signe @indique (optionnellement)leur langue :En Turtle<http://...> <http://...> ”Musique”@fr .<http://...> <http://...> ”Cinema” .
  53. 53. on peut déclarer despréfixes pour abbrévier lesURIs. L’URI abbréviée n’est pas mise entrechevrons.En Turtle@prefix ex: <http://example.com/> .ex:Tom <http://...> <http://...> .<http://...> ex:knows <http://...> .ex:Tom ex:knows ex:Oliver .
  54. 54. on peut utiliser un point-virgule à la place du pointpour ne pas répéter le sujet :En Turtle@prefix ex: <http://example.com/> .ex:Tom ex:knows ex:Oliver ;ex:name ”Tom” .
  55. 55. on peut utiliser une virgule àla place du point pour ne pasré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 .
  56. 56. 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 .
  57. 57. @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> "TheJussieu Soccer Team"@en ; foaf:member ex:Tom, ex:OL292.Sauriez-vous Décoder ?
  58. 58. Un nœud anonyme estindiqué par […] et contient lesprédicats/objets de ce nœudséparés par « ; »En Turtle@prefix ex: <http://example.com/> .ex:Tom ex:knows [a ex:Person ;ex:name ”John” ;] .
  59. 59. RDFa est une syntaxe pour ajouterdu RDF dans du HTML.
  60. 60. RDFa veut dire RDF dans desattributs
  61. 61. <div xmlns:foaf="http://xmlns.com/foaf/0.1/"about="#me" rel="foaf:knows"><ul><li typeof="foaf:Person"><aproperty="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 :
  62. 62. Le mondeouvertPar opposition au monde fermédes systèmes traditionnels
  63. 63. En résumé : l’absence d’untriplet ne veut rien direou encore : l’absence de preuve n’est pas la preuve de l’absence(comme disent ceux qui croient aux extra-terrestres)
  64. 64. ( doc.html , author , Fabien)ne veut pas dire quedoc.html n’a qu’un seul auteur
  65. 65. ( doc.html , author , Fabien)veut dire quedoc.html a au moins un auteur
  66. 66. Si vous ne connaissez pasd’autres triplets indiquant lesauteurs cela ne veut pas direqu’il n’y en a pas d’autres quisoient également vrais.
  67. 67. A emporterrésumé67
  68. 68. RDF est un modèle de tripletspour ajouter des métadonnéessur le web(SUJET, PREDICAT, OBJET)
  69. 69. RDF permet d’ouvrir vos donnéessur le web ou dans votre organisationpour qu’elles soient utilisées pard’autres applications
  70. 70. Appendices70
  71. 71. La racine est rdf:RDF et ondéclare les espaces denoms dans l’entête dufichier.EnRDF/XML<rdf:RDFxmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:inria="http://inria.fr/schema#" >...</rdf:RDF>
  72. 72. rdf:Description indique lesujet avec rdf:about, et lesbalises XML correspondentaux prédicatsEnRDF/XML<rdf:Description rdf:about="http://inria.fr/rr/doc.html"><inria:author ...<inria:theme ...</rdf:Description>
  73. 73. les litéraux sont du texteentre les balises, etrdf:resource indique uneréférence à une autre URIEnRDF/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>
  74. 74. la langue d’un litéral estindiqué avec un attributxml:lang, son datatype avecun attribut xsd:datatypeEnRDF/XML<rdf:Description rdf:about="http://inria.fr/rr/doc.html"><inria:theme xml:lang=”fr">Musique</inria:theme><inria:nbPagesxsd:datatype=”http://...">192</inria:nbPages></rdf:Description>
  75. 75. la valeur d’un rdf:type peutêtre utilisée comme nomde balise XML à la placede rdf:Description.EnRDF/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>=
  76. 76. la description d’une mêmeressource peut êtreséparée en plusieursrdf:DescriptionEnRDF/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:nbPagesxsd:datatype=”http://...">192</inria:nbPages></rdf:Description>
  77. 77. on peut imbriquer desdescriptionsEnRDF/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>
  78. 78. on peut aussi (rarement)voir les prédicats litérauxcomme des attributs XMLplutôt que des balisesEnRDF/XML<rdf:Descriptionrdf:about="http://inria.fr/rr/doc.html"inria:theme="Musique” />
  79. 79. <inria:Report><inria:theme>Musique</inria:theme></inria:Report>Pas d’URI iciles nœuds anonymes n’ontpas de rdf:about maispeuvent avoir unrdf:nodeID à la placeEnRDF/XML
  80. 80. Les variations du format RDF/XML nele rendentpas adapté pour destraitements XSLTà moins d’avoir des garanties sur sasérialisation.
  81. 81. <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 ?
  82. 82. en les triplets peuventêtre groupés dans des “Graphesnommés”RDF 1.1
  83. 83. Graph #1 :( doc.html , auteur , Fabien )( doc.html , thème , "Music" )Graph #2 :( movie.ppt , auteur , Thomas )( movie.ppt , thème , “Cinéma" )
  84. 84. Un Graphe nommé est aussi identifiépar une URIhttp://mydomain.org/mypath/myresource
  85. 85. "Musique"http://inria.fr/rr/doc.htmlhttp://inria.fr/~fabien#mehttp://inria.fr/schema#authorhttp://inria.fr/schema#theme“Cinéma"http://francart.fr/movie.ppthttp://francart.frhttp://inria.fr/schema#authorhttp://inria.fr/schema#themehttp://inria.fr/graph1http://inria.fr/graph2
  86. 86. RDFfourni des primitives pourconstruire des containers et descollections de ressources.
  87. 87. RDFen les containers sont ouverts,peuvent contenir des ressources ou deslitéraux, éventuellement avec des doublons•rdf:Bag : ressources non ordonnées•rdf:Seq : ressources ordonnées•rdf:Alt : valeurs alternatives
  88. 88. RDFEn les collections sont des listesfinies 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
  89. 89. doc.html a pour chapitre :1, Classique2, Pop3, Rock89
  90. 90. ( 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 )
  91. 91. La réification des statementspermet d’écriredes statements sur des statementsRDF sur RDF
  92. 92. Fabien dit"doc.html a pour thème Musique"
  93. 93. ( Fabien , dit, triple87 )( triple87 , rdf:subject , doc.html )( triple87 , rdf:predicate , theme )( triple87 , rdf:object , "Musique" )( triple87,rdf:type,rdf:Statement )
  94. 94. Thomas FRANCARTsparna.frCrédits : Fabien Gandon

×