2009-06-09 11 views
3

Ich versuche, einige Daten über eine Stadt mit Sparql Abfrage auf DBpedia zu bekommen. Das Problem ist, dass ich die Abfrage nicht zum Funktionieren bringen kann.Problem mit einer ausgewählten SPARQL-Abfrage auf dbpedia

Zur Zeit habe ich so etwas wie dieses:

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 
} 

ich alle Städte bekommen, Dörfer aus Slowenien mit allen Daten. Das Problem ist, ich möchte die Daten (officialName und/oder Abstract) nur für eine Stadt, zum Beispiel Ljubljana, bekommen. So habe ich einige Dinge wie folgt ausprobiert:

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

Natürlich funktioniert es nicht. Ich weiß nicht genau warum, aber :), aber ich habe ein wenig experimentiert und bemerkte, einige Dinge wie, wenn ich legte

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

ich einige Ergebnisse zu bekommen (was für mich nicht relevant sind, aber trotzdem) , aber wenn ich setzen

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

es keine Ergebnisse für alles, obwohl Element skos sind: Subjekt existiert auf der Seite http://dbpedia.org/resource/Ljubljana.

Könnte jemand bitte erklären, warum das zweite Beispiel nicht funktioniert und wie ich das Ergebnis erhalten möchte?

Danke, Ablak

Dank

Antwort

4

Sie möchten <http://dbpedia.org/resource/Ljubljana> als Subjekt abzufragen, nicht ein Objekt; dies würde ersetzen Ihre ?title in der SPARQL Abfragebindung, zum Beispiel:

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 . 
} 

Aus diesem Grund Ihre ?name skos:subject <http://dbpedia.org/resource/Ljubljana> Graph Spiel nicht die erwarteten Ergebnisse nicht zurückgibt; Die URI für Ljubljana sollte Gegenstand der Anweisung sein, die Sie abgleichen möchten.

+0

Danke, ich bekomme es jetzt! –

+2

Wie haben Sie diese Abfrage ausgeführt? Ich versuche es mit sparql.bat auszuführen, das mit ARQ kommt, aber es gibt einen Fehler zurück. –

+0

Im Beispiel gab es ein Semikolon, das die Abfrage durchbrach. Die Abfrage funktioniert jetzt, aber 'dbpprop: officialName' ist nicht für Ljubljana definiert, daher ist das Resultset leer. –

Verwandte Themen