Open data & linked data

846 vues

Publié le

Présentation sur la démarche de l'Open Data (quelles données ? Quels acteurs ?) et sur les technologies gravitant autour du Linked Data (le modèle RDF, RDFS, OWL, les ontologies, les triplestores, etc).

Publié dans : Internet
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
846
Sur SlideShare
0
Issues des intégrations
0
Intégrations
72
Actions
Partages
0
Téléchargements
19
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Open data & linked data

  1. 1. Open Data & Linked Data Vincent Brouté @VincentBroute
  2. 2. La démarche de l’Open Data => Publier des données libres d’accès et de réutilisation en ligne <= Comment ? Jeux de données (CSV, XLS, PDF, XML, etc) Codes postaux des villes (CSV), bulletins meteo mensuels (PDF), Impôts locaux par ville (XLS) APIs APIs géographiques Geonames, Données sur les bus et vélo STAR de Rennes , horaires des trains TER en France Datasets RDF & Endpoints SPARQL (= Linked Open Data) data.gov, data.gov.uk, DBPedia, INSEE, IGN, Bibliothèque Nationale de France (depuis août 2014)
  3. 3. La démarche de l’Open Data Les acteurs de l’Open Data : Les gouvernements France, USA, UK, Australie, Union Européenne Annuaires des portails Open Data par Pays Les entreprises/organismes publics SNCF, La Poste, INSEE, Meteo France Les villes Rennes, Nantes, Paris, New York
  4. 4. Open Data => Linked Data Open Data Linked Data Linked Data : Technologies développées par le W3C Objectif : publier sur le web des données structurées et reliées entre elles
  5. 5. Linked Data 1994 : Création du W3C & début des réflexions sur le web sémantique 2001 : Premier article dans une revue scientifique 2004 : Premiers drafts des recommandations W3C : RDFS, OWL, RDF 2006 : Semantic Web => Linked Data Plenary at WWW Geneva 94 Ambiguïté sur le nom + erreur stratégique avec l’introduction de notions complexes liées à l’IA : “En fait, nous aurions dû l'appeler dès le départ « Web de données ». Mais il est trop tard pour changer de nom. ” (Tim-Berners-Lee, 2007) 2008 : Premier draft pour SPARQL 1.0 2013 : SPARQL 1.1 publié en tant que “recommandation” 2014 : RDF 1.1 (JSON-LD + minor fixes) , Sept. 2014 : Working Draft “Linked Data Platform best practices ” Ex : “Rennes” sur DBPedia
  6. 6. Organiser les données : RDF RDF = Modèle de données, en graph Les entités sont décrites par des triplets : Sujet : la ressource à décrire. Identifié par une URI HTTP ( = un noeud) Prédicat : la relation entre le sujet et l’objet. Identifié par une URI HTTP ( = un arc) Objet : litéral ou une autre ressource ( = un autre noeud ou une feuille) (+) : le type et la langue de l’objet Un graph est composé d’un ensemble de triplets /! RDF = le modèle des données => définit l’organisation théorique des données (// modèle relationnel, clé-valeurs, arbre …)
  7. 7. Organiser les données : RDF 207 178 “Rennes” @fr Rennes http://fr.dbpedia.org/resource/Rennes Nathalie Appéré http://fr.dbpedia.org/resource/Nathalie_Appéré Ille-et-Vilaine http://fr.dbpedia.org/resource/Ille-et-Vilaine 1975-07-08 populationTotal http://fr.dbpedia.org/ontology/populationTot al department http://fr.dbpedia.org/ontology/department maire http://fr.dbpedia.org/property/maire birthDate http://fr.dbpedia.org/ontology/birthDate label http://www.w3.org/2000/01/rdf-schema# label
  8. 8. Organiser les données : RDF Sérialisation RDF/XML : <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:dbp-ont="http://fr.dbpedia.org/ontology/" xmlns:dbp-prop="http://fr.dbpedia.org/property/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="http://fr.dbpedia.org/resource/Rennes"> <rdfs:label>Rennes</rdfs:label> <dbp-ont:department rdf:resource="http://fr.dbpedia.org/resource/Ille-et-Vilaine" /> <dbp-ont:populationTotal rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">207178</dbp-ont: populationTotal> <dbp-prop:maire rdf:resource="http://fr.dbpedia.org/resource/Nathalie_Appéré" /> </rdf:Description> <rdf:Description rdf:about="http://fr.dbpedia.org/resource/Nathalie_Appéré"> <rdfs:label>Nathalie Appéré</rdfs:label> <dbp-ont:birthDate rdf:datatype="http://www.w3.org/2001/XMLSchema#date">1975-07-08</dbp-ont:birthDate> </rdf:Description> </rdf:RDF>
  9. 9. Organiser les données : RDF Plus lisible, la sérialisation Turtle : @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix dbp-prop: <http://fr.dbpedia.org/property/> . @prefix dbp-ont: <http://fr.dbpedia.org/ontology/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <http://fr.dbpedia.org/resource/Rennes> rdfs:label "Rennes" ; dbp-ont:department <http://fr.dbpedia.org/resource/Ille-et-Vilaine> ; dbp-ont:populationTotal 207178^^xsd:integer ; dbp-prop:maire <http://fr.dbpedia.org/resource/Nathalie_Appéré> . <http://fr.dbpedia.org/resource/Nathalie_Appéré> rdfs:label “Nathalie Appéré” ; dbp-ont:birthDate “1975-07-08”^^xsd:date . Sérialisations RDF : RDF-XML, N-Triples, Turtle, Trig, N-Quads, JSON-LD
  10. 10. Organiser les données : RDF 3 vocabulaires (ontologies) = 3 niveaux d’expressivité Concepts RDF de base : rdf:Statement, rdf:subject, rdf:predicate, rdf:object + rdf:type http://www.w3.org/1999/02/22-rdf-syntax-ns, Concepts and Abstract Syntax, RDF 1.1 XML Syntax Fournit les éléments de base pour construire des ontologies rdfs:Class, rdfs:subClassOf, rdfs:domain, rdfs:range, rdfs:label, rdfs:comment http://www.w3.org/2000/01/rdf-schema, RDF Schema 1.1 Niveau le plus expressif, complément à RDFS Ex: owl:ReflexiveProperty, owl:TransitiveProperty, etc http://www.w3.org/2002/07/owl, OWL 2 Web Ontology Language RDF RDFS OWL Objectif : décrire les ressources et créer de nouvelles ontologies
  11. 11. Créer des ontologies avec RDF, RDFS et OWL Ontologie Données @prefix test: <http://test.com/myontology#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . test:PopulatedPlace rdf:type owl:Class; rdfs:label “Lieu peuplé” . test:Town rdf:type owl:Class; rdfs:label “Ville”; rdfs:subClassOf :PopulatedPlace . test:postalCode rdf:type owl:DatatypeProperty ; rdfs:label “Code postal”; rdfs:domain test:Town ; rdfs:range xsd:string . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix test: <http://test.com/myontology#> . <http://test.com/rennes> rdf:type test:Town; rdfs:label “Rennes”; test:postalCode “35000” . <http://test.com/boulogne-billancourt> rdf:type test:Town; rdfs:label “Boulogne-Billancourt”; test:postalCode “92100” . (...)
  12. 12. Créer des ontologies avec RDF, RDFS et OWL Inférence Créer des règles pour découvrir de nouvelles relations entre les ressources Données : John estPereDe Mary John estFrereDe Jack Règle : Si (?x estPereDe ?y ET ?x estFrereDe ?z) alors (?z estOncleDe ?y) Inférence : Jack estOncleDe Mary Reasonners : Cwm, Jena, etc ?x John ?y Mary ?y Jack estFrereDe estPereDe estOncleDe
  13. 13. Stocker les données : triplestores > Stocker et requêter RDF > Pas de créations de tables, schemas, etc. > Langage d’interrogation : SPARQL. > Endpoint pour interroger les données via HTTP en SPARQL. (Ex : DBPedia) > Quelques triplestores du marché : Sesame, Jena (Apache), Virtuoso
  14. 14. Interroger les données : SPARQL ● Récupérer le libellé et la population de Rennes sur DBPedia : Pattern matching prefix dbp-ont: <http://dbpedia.org/ontology/> select ?libelle ?pop WHERE { <http://fr.dbpedia.org/resource/Rennes> rdfs:label ?libelle ; dbp-ont:populationTotal ?pop FILTER(lang(?libelle) = 'fr') . } ● Récupérer le libellé et la population de toutes les villes d’Ille-et-Vilaine : prefix dbp-ont: <http://dbpedia.org/ontology/> select * WHERE { ?ville dbp-ont:department <http://fr.dbpedia.org/resource/Ille-et-Vilaine> ; rdfs:label ?libelle ; dbp-ont:populationTotal ?pop FILTER(lang(?libelle) = 'fr') . }
  15. 15. Interroger les données : SPARQL Récupérer sur le SPARQL endpoint de l’INSEE le nombre d’habitants par région en 2010 : Rennes population PopulationTotale populationLegale/commune/35238/2010 207178 2010-01-01 subdivisionDe Arrondissement de Rennes Ille-Et-Vilaine subdivisionDe date Ex. pour Rennes :
  16. 16. Interroger les données : SPARQL Récupérer sur le SPARQL endpoint de l’INSEE le nombre d’habitants par région en 2010 : PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX igeo:<http://rdf.insee.fr/def/geo#> PREFIX idemo:<http://rdf.insee.fr/def/demo#> SELECT ?nomRegion (SUM(?popTotale) as ?pop) where { ?ville rdf:type igeo:Commune ; idemo:population ?population ; igeo:subdivisionDe ?arrondissement . ?arrondissement igeo:subdivisionDe ?dpt . ?dpt igeo:subdivisionDe ?region . ?region igeo:nom ?nomRegion . ?population idemo:date "2010-01-01"^^<http://www.w3.org/2001/XMLSchema#date> ; idemo:populationTotale ?popTotale . } GROUP BY ?nomRegion
  17. 17. Acteurs du Linked Data en France et dans le monde ● En France ○ Dbpedia-fr : data RDF + Endpoint SPARQL (Virtuoso) ○ INSEE : data RDF + Endpoint SPARQL (DataLift) ○ Bibliothèque Nationale de France : data RDF + Endpoint SPARQL (Virtuoso) ● Dans le monde ○ DBPedia : data RDF + Endpoint SPARQL (Virtuoso) ○ data.gov : data RDF ○ data.gov.uk : data RDF
  18. 18. Bonus : Freebase ● Projet collaboratif ● Données en licence Creative Commons ● “Rassembler les connaissances du web” ● Format graph propriétaire (graphd) ● Langage d’interrogation en JSON : MQL ● APIs (100 000 requêtes / jour / token) Recherches, sélections, écritures, images ● Dumps RDF disponibles : - 1.9 milliards de triplets - 250Gb de données - Mis à jour 1 fois / semaine Exemples : Données sur Batman Begins Récupérer les enfants de Madonna sur le Endpoint MQL: { "type":"/people/person", "id":"/en/madonna","children":[] }
  19. 19. Questions ?

×