open data & linked data
Post on 07-Jul-2015
281 Views
Preview:
DESCRIPTION
TRANSCRIPT
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)
Les acteurs de l’Open Data :
La démarche de l’Open Data
France, USA, UK, Australie, Union Européenne
Annuaires des portails Open Data par Pays
Les gouvernements
Les entreprises/organismes publics
SNCF, La Poste, INSEE, Meteo France
Les villes
Rennes, Nantes, Paris, New York
Open Data => Linked Data
Linked DataOpen 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
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
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 ”
Linked Data
Plenary at WWW Geneva 94
Ex : “Rennes” sur DBPedia
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 …)
Renneshttp://fr.dbpedia.org/resource/Rennes
Organiser les données : RDF
Nathalie Appéréhttp://fr.dbpedia.org/resource/Nathalie_Appéré
“Rennes” @fr207 178
Ille-et-Vilainehttp://fr.dbpedia.org/resource/Ille-et-Vilaine
1975-07-08
populationTotalhttp://fr.dbpedia.org/ontology/populationTot
al
departmenthttp://fr.dbpedia.org/ontology/department
mairehttp://fr.dbpedia.org/property/maire
birthDatehttp://fr.dbpedia.org/ontology/birthDate
labelhttp://www.w3.org/2000/01/rdf-
schema#label
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>
Plus lisible, la sérialisation Turtle :
Organiser les données : RDF
@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
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:commenthttp://www.w3.org/2000/01/rdf-schema, RDF Schema 1.1
Niveau le plus expressif, complément à RDFS
Ex: owl:ReflexiveProperty, owl:TransitiveProperty, etchttp://www.w3.org/2002/07/owl, OWL 2 Web Ontology Language
Objectif : décrire les ressources et créer de nouvelles ontologies
RDF
RDFS
OWL
@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 .
Créer des ontologies avec RDF, RDFS et OWL
@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” .
(...)
Ontologie Données
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
?xJohn
?yMary
?yJack
estFrereDe
estPereDe
estOncleDe
> 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
Stocker les données : triplestores
● Récupérer le libellé et la population de Rennes sur DBPedia :
Interroger les données : SPARQL
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') .
}
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 ?popFILTER(lang(?libelle) = 'fr') .
}
● Récupérer le libellé et la population de toutes les villes d’Ille-et-Vilaine :
Récupérer sur le SPARQL endpoint de l’INSEE le nombre d’habitants par région en 2010 :
Interroger les données : SPARQL
Rennes
Arrondissement de Rennes
Ille-Et-Vilaine
populationLegale/commune/35238/2010 207178
2010-01-01subdivisionDe
subdivisionDe
population PopulationTotale
date
Ex. pour Rennes :
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
● 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
Acteurs du Linked Data en France et dans le monde
● 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
Bonus : Freebase
Exemples :
Données sur Batman Begins
Récupérer les enfants de Madonna sur le Endpoint MQL:
{
"type":"/people/person",
"id":"/en/madonna","children":[]
}
Questions ?
top related