Plan... Web sémantique Partie I - Cours Document et Web Sémantique Nicol Delestre 1 Vers le Web sémantique 2 3 4 Publication, requêtage 5 Conclusion - v1.0 1 / 49 - v1.0 2 / 49 Vers le Web sémantique Les métadonnées de http://i.insa-rouen.fr/~delestre honorificprefix Dr Nicol Malandain image colleague jobtitle MC http://schema. org/person http://schema. org/person email familyname nicol.delestre @insa-rouen.fr France memberof /EducationalOrga nization Nicol Delestre Delestre url http://schema. org/country workfor memberof Architecture des Systèmes d'information alternatename BP08 Avenue de l'université F-76801 addresscountry postalcode addresslocality Saint-Etienne du Rouvray /EducationalOrga nization ASI streetaddress address http:/litislab.eu legalname url url itemprop itemtype /PostalAddress INSA de Rouen http://www.insa -rouen.fr /CollegeOrUniver sity Laboratoire d'informatique, du Traitement de l'information et des Systèmes alternatename LITIS - v1.0 3 / 49 Vers le Web sémantique Constats Certains éléments ne sont p nommés alors qu ils ont un rôle, ils représentent quelque chose (une personne, un établissement, une organisation pédagogique, etc.) Alors que la page décrit une personne ces métadonnées décrivent plus de chose honorificprefix Dr iamge jobtitle MC http://schema. org/person http://schema. org/person email familyname nicol.delestre @insa-rouen.fr France memberof /EducationalOrga nization http://i.insarouen.fr/~delestr e/images/photo ND.jpg http://i.insarouen.fr http://i.insarouen.fr/~delestr e/images/photo ND.jpg http://i.insarouen.fr Nicol Delestre Delestre url http://schema. org/country workfor memberof Architecture des Systèmes d'information alternatename BP08 Avenue de l'université F-76801 addresscountry postalcode addresslocality Saint-Etienne du Rouvray /EducationalOrga nization ASI streetaddress address http:/litislab.eu legalname url url itemprop itemtype /PostalAddress INSA de Rouen http://www.insa -rouen.fr /CollegeOrUniver sity Laboratoire d'informatique, du Traitement de l'information et des Systèmes Il y a deux types de liens alors que les deux servent à caractériser une entité Le même fichier, le même URL, rsemble des informations destinées aux humains et aux machines Nicol Malandain colleague alternatename LITIS - v1.0 4 / 49
Vers le Web sémantique Le web sémantique 1 / 3 Vers le Web sémantique Le web sémantique 2 / 3 Définition Le Web des données et le Web Sémantique sont le Web pour les machines : le Web implique l utilisation (et son extension) des technologies du Web (URL, HTTP) et des principes du Web (informations décentralisées et interconnectées) pour les machines implique informations structurées Des URL aux URI Les URL permettent d identifier un document sur le Web Les URI (et IRI) permettent de référencer un objet, une resource, un concept, une idée, etc. sur le Web Lorsqu un URI correspondant à un URL, le contenu retourné après une requête HTTP GET dépend du type mime (accept) demandé (cf. [BP08]) : text/html : une page Web est retournée application/rdf+xml : une description Web sémantique est retournée - v1.0 5 / 49 - v1.0 6 / 49 Vers le Web sémantique Le web sémantique 3 / 3 1 / 3 Plus exactement Standards et Outils Techniques Aujourd'hui WEB des Documents URL HTTP HTML DTD XSD Moteur de recherche Recherche d'information bée sur des index de mots Monde des documents WEB des Données URI HTTP S Moteur de requêtes Mise en correspondance de graphes Monde des bes de données WEB Sémantique URI HTTP OWL Moteur de requêtes Logique Monde des bes de connaissances Des milliards de pages Des milliards de triplets Des milliers d'ontologies Inspiré de la présentation de MC Rousset : http://www.college-de-france.fr/media/serge-abiteboul/upl5540483766962034581_rousset20120530.pdf Présentation Langage de représentation de métadonnées proposé par le W3C en 1999 Le document présentant la dernière version (2004) est composé de 6 parties : 1 Primer : connaissances de be du 2 Concepts : syntaxe abstraite définissant le 3 Syntax : représentation XML du 4 Semantics : Interprétation logique du 5 Vocabulary : Définition de nouveau vocabulaire ( Schema) 6 Test Ces : Tests unitaires - v1.0 7 / 49 - v1.0 8 / 49
2 / 3 3 / 3 Concepts de be Un triplé composé de : Sujet ou Ressource : Ressource sur laquelle s applique la métadonnée Prédicat ou Propriété : Nom de la métadonnée appliquée à la ressource Objet ou valeur : Valeur de la métadonnée (peut être une resource ou un litéral) Possibilité de structurer l information http://www.w3c.org/home/lsila Creator http://www.w3c.org/home/lsila Creator http://www.w3c.org/staffd/85740 Name Email Name Email Ora Lsila lsila@w3.org Ora Lsila lsila@w3.org http://www.w3c.org/home/lsila creator Ora Lsila [W3C99] [W3C99] - v1.0 9 / 49 - v1.0 10 / 49 Introduction au /XML 1 / 4 Introduction au /XML 2 / 4 L élément de be : Description Ressource : Attribut about Prédicat : Élément inclus provenant d un schéma (voir S) Valeur : Spécifiée dans l élément inclus <? xml version =" 1.0 "?> <rdf: xmlns:rdf="http: //www.w3.org /1999/02/22 - rdf -syntax -ns#" xmlns:exterms ="http: //www.example.org /terms /"> < rdf:description rdf:about ="http: //www.example.org /index.html "> < exterms:creation - date > August 16, 1999 </ exterms:creation - date > </ rdf: > On peut avoir plusieurs descriptions faisant référence à plusieurs schém S <? xml version =" 1.0 "?> <rdf: xmlns:rdf="http: //www.w3.org /1999/02/22 - rdf -syntax -ns#" xmlns:dc="http: // purl.org /dc/elements /1.1/ " xmlns:exterms ="http: //www.example.org /terms /"> < rdf:description rdf:about ="http: //www.example.org /index.html "> < exterms:creation - date > August 16, 1999 </ exterms:creation - date > < rdf:description rdf:about ="http: //www.example.org /index.html "> < dc:language >en </ dc:language > </ rdf: > Tous les exemples qui suivent sont issus de [W3C04] - v1.0 11 / 49 - v1.0 12 / 49
Introduction au /XML 3 / 4 Introduction au /XML 4 / 4 Les valeurs peuvent être des littéraux ou des ressources L attribut datatype permet de typer les littéraux (possibilité d utiliser les types xsd) Possibilité d utiliser les ENTITY des DTD <? xml version =" 1.0 "?> <!DOCTYPE rdf: [<!ENTITY xsd "http: //www.w3.org /2001/ XMLSchema #">]> <rdf: xmlns:rdf="http: //www.w3.org /1999/02/22 - rdf -syntax -ns#" xmlns:dc="http: // purl.org /dc/elements /1.1/ " xmlns:exterms ="http: //www.example.org /terms /"> < rdf:description rdf:about ="http: //www.example.org /index.html "> < exterms:creation - date rdf:datatype ="& xsd ;# date ">1999-08 -16 </ exterms:creation - date > < dc:language >en </ dc:language > <dc:creator rdf:resource="http: //www.example.org /staffid /85740 "/> </ rdf: > Les attributs nodeid et id permettent de créer des nœuds vides <? xml version =" 1.0 "?> <rdf: xmlns:rdf="http: //www.w3.org /1999/02/22 - rdf -syntax -ns#" xmlns:dc="http: // purl.org /dc/elements /1.1/ " xmlns:exterms ="http: // example.org /stuff /1.0/ "> <rdf:description rdf:about="http: //www.w3.org /TR/rdf -syntax -grammar "> < dc:title > / XML Syntax Specification ( Revised )</ dc:title > < exterms:editor rdf:nodeid =" abc "/> < rdf:description rdf:nodeid =" abc "> < exterms:fullname >Dave Beckett </ exterms:fullname > < exterms:homepage rdf:resource ="http: // purl.org /net /dajobe /"/> </ rdf: > - v1.0 13 / 49 - v1.0 14 / 49 Conteneur 1 / 4 Conteneur 2 / 4 Bag, sequence et alternative Il est fréquent de devoir faire référence à plusieurs ressources (par exemple un livre écrit par plusieurs auteurs ) propose trois conteneurs : bag Liste non ordonnée de resources ou de littéraux (élément bag) sequence Liste ordonnée de resources ou de littéraux (élément seq) alternative Liste de resources ou de littéreaux qui représentent des alternatives pour une valeur unique (élément alt) Les éléments du conteneur sont listés à l aide de l élément li ou i avec (i > 0) Pour alternative il doit y avoir au moins un élément 1 (élément par défaut) Bag <? xml version =" 1.0 "?> <rdf: xmlns:rdf="http: //www.w3.org /1999/02/22 - rdf -syntax -ns#" xmlns:s ="http: // example.org /students /vocab #"> <rdf:description rdf:about="http: // example.org /courses /6.001 "> < s:students > < rdf:bag > < rdf:li rdf:resource ="http: // example.org /students /Amy "/> < rdf:li rdf:resource ="http: // example.org /students /Mohamed "/> < rdf:li rdf:resource ="http: // example.org /students /Johann "/> < rdf:li rdf:resource ="http: // example.org /students /Maria "/> < rdf:li rdf:resource ="http: // example.org /students /Phuong "/> </ rdf:bag > </ s:students > </ rdf: > - v1.0 15 / 49 - v1.0 16 / 49
Conteneur 3 / 4 Conteneur 4 / 4 Alternative <? xml version =" 1.0 "?> <rdf: xmlns:rdf="http: //www.w3.org /1999/02/22 - rdf -syntax -ns#" xmlns:s ="http: // example.org /packages /vocab #"> < rdf:description rdf:about ="http: // example.org /packages /X11 "> < s:distributionsite > < rdf:alt > < rdf:li rdf:resource ="ftp: //ftp.example.org "/> < rdf:li rdf:resource ="ftp: // ftp1.example.org "/> < rdf:li rdf:resource ="ftp: // ftp2.example.org "/> </ rdf:alt > </ s:distributionsite > </ rdf: > Problème Lorsque la ressource est une collection, la propriété porte sur la collection ou sur les éléments de cette collection Sur la collection si utilisation de l attribut about Sur les éléments de la collection si utilisation de l attribut abouteach < rdf:bag ID=" pages "> < rdf:li resource ="http: //foo.org /foo.html " /> < rdf:li resource ="http: //bar.org /bar.html " /> </ rdf:bag > < rdf:description abouteach ="# pages "> < s:creator >Ora Lsila </ s:creator > http: // www. w3. org/ TR/ 1999/ REC-rdf-syntax-19990222/ - v1.0 17 / 49 - v1.0 18 / 49 Préfixe Turtle 1 / 2 Préfixe d URI Lorsque l on veut appliquer une propriété à un ensemble de ressources organisé hiérarchiquement (un début d URI, préfixe, en commun), on peut utiliser la propriété au préfixe grâce à l attribut abouteachprefix Une autre méthode de sérialisation La syntaxe XML est verbeuse, peut être difficile à lire (par les humains) Une autre syntaxe Turtle (N3) a été proposée par Tim Berners-Lee pour être encore plus facile à lire Syntaxe simple : @ prefix ns: <URI >.... < rdf:description abouteachprefix ="http: //foo.org /doc "> < s:copyright >(c) 1998, The Foo Organization </ s:copyright > [W3C99] <ns:sujet > <Predicat1 > <Valeur1 >; <Predicat2 > <Valeur21 >,<Valeur22 >,...;... <Predicatn > <Valeurn >. [ <Predicat1 > <Valeur1 >. <Predicat2 > <Valeur21 >,<Valeur22 >,...;... <Predicatn > <Valeurn >. ] - v1.0 19 / 49 - v1.0 20 / 49
Turtle 2 / 2 D autres formats Comparaison (Wikipédia) < rdf: xmlns:rdf ="http: //www.w3.org /1999/02/22 - rdf -syntax -ns#" xmlns:dc ="http: // purl.org /dc/elements /1.1/ "> < rdf:description rdf:about ="http: //en. wikipedia. org / wiki / Tony_Benn "> < dc:title >Tony Benn </ dc:title > < dc:publisher > Wikipedia </ dc:publisher > </ rdf: > @prefix dc: <http :// purl.org /dc/elements /1.1/ >. <http :// en. wikipedia. org / wiki / Tony_Benn > dc: title " Tony Benn "; dc: publisher " Wikipedia ". http://www.w3.org/tr/rdf11-new/ - v1.0 21 / 49 - v1.0 22 / 49 Clse En il est possible d socier à une ressource une ou plusieurs clses : en utilisant la propriété rdf:type en utilisant le nom de la clse pour la balise décrivant la ressource en remplacement rdf:description (sérialisation XML) en utilisant la propriété a (sérialisation N3) Cela permet de connaître l ensemble des propriétés qui sont valides pour cette ressource Deux Langages ( Query Language et Update) et un protocole d interrogation de bes de données Syntaxe ressemblant à SQL Principe de fonctionnement : recherche de sous-graphes dans un graphe (graph matching) Tous les exemples de ce cours sont issus de Learning de Bob DuCharme [DuC11] Vous pourrez trouver un tutoriel complet issu de ce livre sur la chaîne YouTube de Noureddin Sadawi https://www.youtube.com/user/drnoureddinsadawi/ - v1.0 23 / 49 - v1.0 24 / 49
Obtenir la valeur d une propriété [DuC11] Obtenir l URI d une ressource [DuC11] Be # file : ex002. ttl # file : ex007.rq Be ab: richard ab: hometel " (229) 276-5135 ". ab:richard ab:email " richard49@hotmail. ab: cindy ab: hometel " (245) 646-5488 ". ab: cindy ab: email " cindym@gmail. ab: craig ab: hometel " (194) 966-1505 ". ab:craig ab:email " craigellis@yahoo.com ". ab: craig ab: email "c. SELECT? craigemail FROM <ex002.ttl > ab: craig ab: email? craigemail. -------------------------------- craigemail ================================ "c. ellis@usairwaysgroup.com " " craigellis@yahoo.com " -------------------------------- Le FROM est optionnel - v1.0 25 / 49 Obtenir toutes les propriétés d une ressource [DuC11] # file : ex002. ttl ab: richard ab: hometel " (229) 276-5135 ". ab:richard ab:email " richard49@hotmail. ab: cindy ab: hometel " (245) 646-5488 ". ab: cindy ab: email " cindym@gmail. ab: craig ab: hometel " (194) 966-1505 ". ab:craig ab:email " craigellis@yahoo.com ". ab: craig ab: email "c. # file : ex008.rq SELECT? person? person ab: hometel " (229) 276-5135 ". -------------- person ============== ab: richard -------------- - v1.0 26 / 49 Contraindre certaines valeurs [DuC11] Be Be # file : ex002. ttl ab: richard ab: hometel " (229) 276-5135 ". ab:richard ab:email " richard49@hotmail. ab: cindy ab: hometel " (245) 646-5488 ". ab: cindy ab: email " cindym@gmail. # file : ex010.rq SELECT? propertyname? propertyvalue ab: cindy? propertyname? propertyvalue. # file : ex012. ttl @prefix d: <http :// learningsparql.com /ns/ data #>. d: i0432 ab: firstname " Richard ". d: i0432 ab: ltname " Mutt ". d: i0432 ab: hometel " (229) 276-5135 ". d:i0432 ab:email " richard49@hotmail. # file : ex013.rq SELECT? craigemail? person ab: firstname " Craig ".? person ab: email? craigemail. ab: craig ab: hometel " (194) 966-1505 ". ab:craig ab:email " craigellis@yahoo.com ". ab: craig ab: email "c. ------------------------------------- propertyname propertyvalue ===================================== ab: email " cindym@gmail. com " ab: hometel "(245) 646-5488" ------------------------------------- d: i9771 ab: firstname " Cindy ". d: i9771 ab: ltname " Marshall ". d: i9771 ab: hometel " (245) 646-5488 ". d: i9771 ab: email " cindym@gmail. d: i8301 ab: firstname " Craig ". d: i8301 ab: ltname " Ellis ". d:i8301 ab:email " craigellis@yahoo.com ". d: i8301 ab: email "c. -------------------------------- craigemail ================================ "c. ellis@usairwaysgroup.com " " craigellis@yahoo.com " -------------------------------- - v1.0 27 / 49 - v1.0 28 / 49
Filtrer certains résultats [DuC11] 1 / 2 # file : ex021.rq SELECT *?s?p?o. FILTER ( regex (?o, " yahoo ","i")) --------------------------------------------------------------------------------- s p o ================================================================================= <http :// learningsparql.com /ns/data #i8301 > ab:email " craigellis@yahoo.com " --------------------------------------------------------------------------------- - v1.0 29 / 49 Attention aux requêtes trop contraintes [DuC11] Filtrer certains résultats [DuC11] 2 / 2 FILTER Ne prend qu un seul argument Opérateurs :!, =,! =, >, <, <=, >=,, &&, IN Fonctions : BOUND, isuri, isiri, isblank, isliteral, STR, LANG, DATATYPE, sameterm, langmatches, REGEX Possibilités d appeler des fonctions externes Exemple fonction externe (W3C) PREFIX ageo : <http :// example.org /geo #> SELECT? neighbor?a ageo : placename " Grenoble ".?a ageo : location? axloc.?a ageo : location? ayloc.?b ageo : placename? neighbor.?b ageo : location? bxloc.?b ageo : location? byloc. FILTER ( ageo : distance (? axloc,? ayloc,? bxloc,? byloc ) < 10 ). - v1.0 30 / 49 Avoir des contraintes optionnelles [DuC11] 1 / 2 Be # file : ex057.rq # file : ex054. ttl @prefix d: <http :// learningsparql.com /ns/ data #>. d: i0432 ab: firstname " Richard ". d: i0432 ab: ltname " Mutt ". d: i0432 ab: hometel " (229) 276-5135 ". d: i0432 ab: nick " Dick ". d:i0432 ab:email " richard49@hotmail. # file : ex055.rq SELECT? f i r s t? l a s t? worktel?s ab: firstname? f i r s t ; ab: ltname? l a s t ; ab: worktel? worktel. SELECT? f i r s t? l a s t? worktel?s ab: firstname? f i r s t ; ab: ltname? l a s t. OPTIONAL?s ab: worktel? worktel. d: i9771 ab: firstname " Cindy ". d: i9771 ab: ltname " Marshall ". d: i9771 ab: hometel " (245) 646-5488 ". d: i9771 ab: email " cindym@gmail. d: i8301 ab: firstname " Craig ". d: i8301 ab: ltname " Ellis ". d: i8301 ab: worktel " (245) 315-5486 ". d:i8301 ab:email " craigellis@yahoo.com ". d: i8301 ab: email "c. ---------------------------------------- first lt worktel ======================================== " Craig " " Ellis " "(245) 315-5486" ---------------------------------------- --------------------------------------------- first lt worktel ============================================= " Craig " " Ellis " "(245) 315-5486" " Cindy " " Marshall " " Richard " " Mutt " --------------------------------------------- - v1.0 31 / 49 - v1.0 32 / 49
Avoir des contraintes optionnelles [DuC11] 2 / 2 Filtrer des contraintes optionnelles [DuC11] 1 / 2 # file : ex061.rq Be SELECT? f i r s t? l a s t? worktel? nick?s ab: firstname? f i r s t ; ab: ltname? l a s t. OPTIONAL?s ab: worktel? worktel. OPTIONAL?s ab: nick? nick. ------------------------------------------------------ first lt worktel nick ====================================================== " Craig " " Ellis " "(245) 315-5486" " Cindy " " Marshall " " Richard " " Mutt " " Dick " ------------------------------------------------------ - v1.0 33 / 49 Filtrer des contraintes optionnelles [DuC11] 2 / 2 Be # file : ex054. ttl @prefix d: <http :// learningsparql.com /ns/ data #>. d: i0432 ab: firstname " Richard ". d: i0432 ab: ltname " Mutt ". d: i0432 ab: hometel " (229) 276-5135 ". d: i0432 ab: nick " Dick ". d:i0432 ab:email " richard49@hotmail. d: i9771 ab: firstname " Cindy ". d: i9771 ab: ltname " Marshall ". d: i9771 ab: hometel " (245) 646-5488 ". d: i9771 ab: email " cindym@gmail. ( 1.1) # file : ex067.rq SELECT? f i r s t? l a s t?s ab: firstname? f i r s t ; ab: ltname? l a s t. FILTER NOT EXISTS?s ab: worktel? worknum d: i8301 ab: firstname " Craig ". d: i8301 ab: ltname " Ellis ". d: i8301 ab: worktel " (245) 315-5486 ". d:i8301 ab:email " craigellis@yahoo.com -------------------------- ". first lt d: i8301 ab: email "c. ========================== " Cindy " " Marshall " Architecture des Systèmes " Richard " " Mutt " d Information -------------------------- - v1.0 35 / 49 # file : ex054. ttl @prefix d: <http :// learningsparql.com /ns/ data #>. d: i0432 ab: firstname " Richard ". d: i0432 ab: ltname " Mutt ". d: i0432 ab: hometel " (229) 276-5135 ". d: i0432 ab: nick " Dick ". d:i0432 ab:email " richard49@hotmail. d: i9771 ab: firstname " Cindy ". d: i9771 ab: ltname " Marshall ". d: i9771 ab: hometel " (245) 646-5488 ". d: i9771 ab: email " cindym@gmail. # file : ex065.rq SELECT? f i r s t? l a s t?s ab: firstname? f i r s t ; ab: ltname? l a s t. OPTIONAL?s ab: worktel? worknum. FILTER (! bound (? worknum )) d: i8301 ab: firstname " Craig ". d: i8301 ab: ltname " Ellis ". d: i8301 ab: worktel " (245) 315-5486 ". d:i8301 ab:email " craigellis@yahoo.com -------------------------- ". first lt d: i8301 ab: email "c. ========================== " Cindy " " Marshall " " Richard " " Mutt " -------------------------- - v1.0 34 / 49 Éviter les répétitions [DuC11] Be # file : ex054. ttl @prefix d: <http :// learningsparql.com /ns/data #>. d: i0432 ab: firstname " Richard ". d: i0432 ab: ltname " Mutt ". d: i0432 ab: hometel " (229) 276-5135 ". d: i0432 ab: nick " Dick ". d:i0432 ab:email " richard49@hotmail. d: i9771 ab: firstname " Cindy ". d: i9771 ab: ltname " Marshall ". d: i9771 ab: hometel " (245) 646-5488 ". d: i9771 ab: email " cindym@gmail.... # file : ex092.rq SELECT DISTINCT?p?s?p?o. - v1.0 36 / 49
Combiner des résultats [DuC11] 1 / 4 Be # file : ex069. ttl @prefix d: <http :// learningsparql.com /ns/ data #>. # People d: i0432 ab: firstname " Richard " ; ab: ltname " Mutt " ; ab:email " richard49@hotmail. d: i9771 ab: firstname " Cindy " ; ab: ltname " Marshall " ; ab: email " cindym@gmail. d: i8301 ab: firstname " Craig " ; ab: ltname " Ellis " ; ab: email "c. # Courses d: course34 ab: coursetitle " Modeling Data with OWL ". d: course71 ab: coursetitle " Enhancing Websites with a ". d: course59 ab: coursetitle " Using with non - Data ". d: course85 ab: coursetitle " Updating Data with ". # Who s taking which courses d: i8301 ab: takingcourse d: course59. d: i9771 ab: takingcourse d: course34. d: i0432 ab: takingcourse d: course85. d: i0432 ab: takingcourse d: course59. d: i9771 ab: takingcourse d: course59. - v1.0 37 / 49 Combiner des résultats [DuC11] 3 / 4 Combiner des résultats [DuC11] 2 / 4 # file : ex098.rq PREFIX d: <http :// learningsparql.com /ns/data #> SELECT *? person ab: firstname? f i r s t ; ab: ltname? l a s t. UNION? course ab: coursetitle? coursename. ------------------------------------------------------------------------------------ person first lt course coursename ==================================================================================== d: i8301 " Craig " " Ellis " d: i9771 " Cindy " " Marshall " d: i0432 " Richard " " Mutt " d: course85 " Updating Data with " d: course59 " Using with non - Data " - v1.0 d: course71 " Enhancing Websites with a " 38 / 49 d: course34 " Modeling Data with OWL " ------------------------------------------------------------------------------------ Combiner des résultats [DuC11] 4 / 4 Be # file : ex100. ttl @prefix d: <http :// learningsparql.com /ns / data #>. d: i0432 ab: firstname " Richard " ; ab: ltname " Mutt " ; ab: instrument " sax " ; ab: instrument " clarinet ". d: i9771 ab: firstname " Cindy " ; ab: ltname " Marshall " ; ab: instrument " drums ". # file : ex101.rq SELECT? f i r s t? l a s t? instrument? person ab: firstname? f i r s t ; ab: ltname? l a s t ; ab: instrument " trumpet " ; ab: instrument? instrument. UNION ------------------------------------ first lt instrument ==================================== " Craig " " Ellis " " trumpet " " Richard " " Mutt " " clarinet " " Richard " " Mutt " " sax " ------------------------------------ d: i8301 ab: firstname " Craig " ; ab: ltname " Ellis " ; ab: instrument " trumpet ".? person ab: firstname? f i r s t ; ab: ltname? l a s t ; ab: instrument " sax " ; ab: instrument? instrument. - v1.0 39 / 49 - v1.0 40 / 49
Et ce n est p fini! 1 / 2 Query Language Possibilité d utiliser des fonctions dans le SELECT : MIN, MAX, COUNT,... Possibilité d ordonner les résultats : ORDER BY Possibilité de grouper des résultats (GROUP BY) et d agréger des résultats (HAVING) avec différentes fonctions d aggrégation (MAX, AVG, SUM,...) Possibilité de limiter le nombre de résultats LIMIT (à utiliser sur des grandes be) ou de demander les résultats à partir d un certain rang (OFFSET) Possibilité d utiliser des variables : AS Possibilité de rechercher dans plusieurs be à la fois : SERVICE Possibilité d autres types de requêtes : DESCRIBE, ASK, CONSTRUCT... - v1.0 41 / 49 Et ce n est p fini! 2 / 2 Update Possibilité d ajouter des triplets Possibilité de supprimer (sous conditions ou p) des triplets Possibilité de mettre à jour (par ajout(s) et suppression(s) conditionnel(s)) des triplets - v1.0 42 / 49 Publication, requêtage Publication : Outils, API Publication, requêtage Exemple : fr.dbpedia.org Publication Publication de triplets : format N3 (.ttl) ou XML (.rdf) Utilisation d une be de données (par exemple JENA) proposant une entrée (par exemple Fuseki) Requêtage Utilisation de la méthode GET HTTP avec le type mime application/rdf+xml, lorsque l URI est une URL Utilisation d utilitaire de requêtage (par exemple arq) Utilisation d une API (par exemple Jena) - v1.0 43 / 49 - v1.0 44 / 49
Conclusion Conclusion Conclusion 1 / 4 Conclusion 2 / 4 Le web se mantique aujourd hui E volution du web se mantique source : http: // lod-cloud. net/ (2014) source : http: // lod-cloud. net/ 2007 - v1.0 45 / 49 - v1.0 Conclusion 46 / 49 Conclusion Conclusion 3 / 4 Conclusion 4 / 4 L Open data de fini par Tim Berners-Lee en 2006 Ce qui n a p e te pre sente Les autres me thodes de se rialisation Le conteneur list La re ification La notion de graphe et le Global Giant Graph http://www.w3.org/designissues/linkeddata.html - v1.0 47 / 49 - v1.0 48 / 49
Conclusion Références [BP08] [DuC11] [Gen08] [GFZC12] [GFZC15] Diego Berrueta and Jon Phipps. Best practice recipes for publishing rdf vocabularies. World Wide Web Consortium, Note NOTE-swbp-vocab-pub-20080828, August 2008. B. DuCharme. Learning. O Reilly Media, 2011. D. Genest. Cours sur le web sémantique, 2008. http://www.info.univ-angers.fr/pub/genest/enseignement/index.html. Fabien Gandon, Catherine Faron-Zucker, and Olivier Corby. Le Web sémantique : comment lier les données et les schém sur le web? InfoPro. Dunod, Paris, 2012. Sommaire et résumé disponibles sur le site de l éditeur à l adresse consulté le 2013-04-09 http ://http ://www.dunod.com/informatique-multimedia/systemes-dinformation-et-reseaux/strategie-etsystemes-dinformation/gestion-/le-web-semantique. Fabien Gandon, Catherine Faron-Zucker, and Olivier Corby. Web sémantique et web de données. https://www.france-universite-numerique-mooc.fr/courses/inria/41002/trimestre_1_2015/info, Mars 2015. [W3C99] Resource description framework, 1999. http://www.w3.org/tr/1999/rec-rdf-syntax-19990222/. [W3C04] Rdf primer, 2004. http://www.w3.org/tr/rdf-primer/. - v1.0 49 / 49