2009-06-09 6 views
3

J'essaie d'obtenir des données sur une ville à l'aide de la requête Sparql sur DBpedia. Le problème est que je n'arrive pas à faire fonctionner la requête.Problème avec une requête SPARQL sélectionnée sur dbpedia

Actuellement je fais quelque chose comme ceci:

SELECT ?title,?name,?abs WHERE { 
    ?title skos:subject 
    <http://dbpedia.org/resource/Category:Cities%2C_towns_and_villages_in_Slovenia>. 
    ?title dbpprop:officialName ?name. 
    ?title dbpprop:abstract ?abs 
} 

Je reçois toutes les villes, les villages de la Slovénie avec toutes les données. Le problème est, je voudrais obtenir les données (nom officiel et/ou résumé) seulement pour une ville, par exemple Ljubljana. Donc, j'ai essayé certaines choses comme ceci:

SELECT ?name WHERE { 
    ?name dbpprop:officialName 
    <http://dbpedia.org/resource/Ljubljana>. 
} 

Bien sûr, cela ne fonctionne pas. Je ne sais pas exactement pourquoi, bien :), mais je l'ai fait des expériences un peu et remarqué certaines choses comme si je mets

?name skos:subject <http://dbpedia.org/resource/Category:Ljubljana>. 

Je reçois des résultats (qui ne sont pas pertinents pour moi, mais de toute façon) , mais si je mets

?name skos:subject <http://dbpedia.org/resource/Ljubljana>. 

il n'y a pas de résultats pour quoi que ce soit si skos élément: sujet existe sur la page http://dbpedia.org/resource/Ljubljana.

Quelqu'un pourrait-il expliquer pourquoi le deuxième exemple ne fonctionne pas et comment obtenir le résultat que je voudrais avoir?

Merci, ablak

Merci

Répondre

4

Vous souhaitez interroger pour <http://dbpedia.org/resource/Ljubljana> comme sujet, pas un objet; cela remplacerait votre ?title obligatoire dans la requête SPARQL, par exemple:

SELECT ?name, ?abs WHERE { 
    <http://dbpedia.org/resource/Ljubljana> 
    skos:subject <http://dbpedia.org/resource/Category:Cities%2C_towns_and_villages_in_Slovenia> ; 
    dbpprop:officialName ?name ; 
    dbpprop:abstract ?abs . 
} 

C'est pourquoi votre match de graphique ?name skos:subject <http://dbpedia.org/resource/Ljubljana> ne retourne pas les résultats escomptés; l'URI pour Ljubljana devrait faire l'objet des déclarations que vous voulez faire correspondre.

+0

Merci, je l'ai maintenant! –

+2

Comment avez-vous exécuté cette requête? J'essaye de l'exécuter avec sparql.bat qui vient avec ARQ mais il renvoie une erreur. –

+0

Il y avait un point-virgule dans l'exemple qui a brisé la requête. La requête fonctionne maintenant, mais 'dbpprop: officialName' n'est pas défini pour Ljubljana, donc le resultset est vide. –