INaLCO - M2 Plurital
Web sémantique : l'exemple de DBpédia
- Notion de point d'entrée (Endpoint)
- L'exemple remarquable de DBpédia
- DBpédia, extrait en RDF de Wikipédia
- SPARQL endpoint
- La DBpédia française et le projet SemanticPedia
- La langue de DBpedia
- Mise en œuvre
- SemanticPedia
Attention ! Le monde des données en ligne (Linked Data, Web des données, et autres buzzwords)
est en évolution rapide.
Tel site qui fonctionnait hier refuse son service aujourd'hui.
Ne soyez donc pas surpris si les liens donnés dans cette page vous
apportent des déboires...
- Les grosses bases de données en RDF (RDF Datasets) posent
des problèmes d'efficacité.
- Elles ne sont pas accessibles aux requêtes SPARQL comme de
simples fichiers XML.
- On ne peut s'adresser à elles qu'en passant par des sites Web
spécialisés appelés SPARQL Endpoints.
Ces sites proposent une interface où écrire sa requête SPARQL et un
choix de formats pour récupérer le résultats.
- Exemple de point d'entrée générique :
http://sparql.org/sparql.html
Une démo utilisant l'URL-source http://www.sparql.org/books/
est accessible à l'adresse
http://www.sparql.org/query.html
]
Exemple de requête :
PREFIX rdf:
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?nom ?image ?description
FROM
<http://pagesperso-systeme.lip6.fr/Jean-Francois.Perrot/inalco/XML/RDF/ExWiki.rdf>
WHERE {
?personne rdf:type foaf:Person .
?personne foaf:name ?nom .
?image rdf:type foaf:Image .
?personne foaf:img ?image .
?image dc:description ?description
}
Autre exemple :
#repris de
"http://www.cambridgesemantics.com/2008/09/sparql-by-example/"
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name
FROM <http://dig.csail.mit.edu/2008/webdav/timbl/foaf.rdf>
WHERE {
?person foaf:name ?name .
}
-
-
On peut interroger DBpédia en SPARQL via le site
http://dbpedia.org/sparql
Exemples de requêtes :
select ?bp where {
<http://dbpedia.org/resource/Mary_Shelley>
<http://dbpedia.org/ontology/birthPlace> ?bp
}
select ?bd ?dd where {
{<http://dbpedia.org/resource/Mary_Shelley>
<http://dbpedia.org/ontology/birthDate> ?bd }
UNION
{<http://dbpedia.org/resource/Mary_Shelley>
<http://dbpedia.org/ontology/deathDate> ?dd }
}
select ?bp ?dp where {
{<http://dbpedia.org/resource/Mary_Shelley>
<http://dbpedia.org/ontology/birthPlace> ?bp }
UNION
{<http://dbpedia.org/resource/Mary_Shelley>
<http://dbpedia.org/ontology/deathPlace> ?dp }
}
select ?bc ?dc where {
{ ?bp <http://dbpedia.org/ontology/country> ?bc.
<http://dbpedia.org/resource/Mary_Shelley>
<http://dbpedia.org/ontology/birthPlace> ?bp }
UNION
{ ?dp <http://dbpedia.org/ontology/country> ?dc.
<http://dbpedia.org/resource/Mary_Shelley>
<http://dbpedia.org/ontology/deathPlace> ?dp }
}
Équivalent plus lisible :
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
select ?bc ?dc where {
{ ?bp dbpedia-owl:country ?bc.
dbpedia:Mary_Shelley dbpedia-owl:birthPlace ?bp }
UNION
{ ?dp dbpedia-owl:country ?dc.
dbpedia:Mary_Shelley dbpedia-owl:deathPlace ?dp }
}
- Vous pouvez aussi exploiter le raisonnement ontologique (mise en œuvre de la généralisation / spécialisation des classes)
en demandant avec quelles entités de type (classe) http://dbpedia.org/ontology/Place
Mary Shelley entretien une relation de type http://www.w3.org/2002/07/owl#ObjectProperty
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
select ?bp
where {
?rel rdf:type <http://www.w3.org/2002/07/owl#ObjectProperty> .
<http://dbpedia.org/resource/Mary_Shelley> ?rel ?bp .
?bp rdf:type <http://dbpedia.org/ontology/Place>
}
la réponse étant le lieu de sa naissance http://dbpedia.org/resource/Bournemouth
et celui de sa mort http://dbpedia.org/resource/London
-
-
DBpedia est fondée sur Wikipedia anglophone.
On n'y trouve pas Yvette Horner !
Essayez http://dbpedia.org/page/Yvette_Horner
D'où diverses entreprises de DBpedia allophones, comme fr.dbpedia.org
!
Essayez http://fr.dbpedia.org/page/Yvette_Horner
ou http://de.dbpedia.org/page/Yvette_Horner
-
SPARQL endpoint :
http://fr.dbpedia.org/sparql
et n'oubliez pas de mentionner http://fr.dbpedia.org
comme Default Data Set Name
!
Moyennant quoi vous pourrez demander
PREFIX dbpedia:
<http://fr.dbpedia.org/resource/>
PREFIX prop-fr: <http://fr.dbpedia.org/property/>
select ?bp ?bd where {
{ dbpedia:Yvette_Horner prop-fr:lieuDeNaissance ?bp }
UNION
{ dbpedia:Yvette_Horner prop-fr:dateDeNaissance ?bd }
}
-
La DBpédia française est soutenue par le ministère de la Culture et de
la Communication dans le cadre du projet SemanticPedia,
qui réunit l'INRIA et lla fondation Wikimedia France.