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).
1. Open Data
&
Linked Data
Vincent Brouté
@VincentBroute
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. 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. 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. 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. 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. 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
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
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. 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. 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. 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. 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. 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. 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":[]
}