Pacific Beach, San Diego nicht umleiten zu nichts, aber es ist die Umleitung Ziel einer Reihe von Ressourcen:
dbo ist: wikiPageRedirects von
- dbr: Pacific_Beach, _CA
- dbr: Pacific_Beach, _California
- dbr: Pacific_Beach, _San_Diego, _CA
- dbr: Pacific_Beach, _San_Diego, _California
- dbr: Pacific_Beach, _San_Diego_California
Das bedeutet, dass eine modifizierte Version der Abfrage sollte gut funktionieren:
PREFIX s: <http://dbpedia.org/resource/Pacific_Beach,_San_Diego>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT * WHERE {
OPTIONAL { s: dbp:officialName ?officialName . }
OPTIONAL { s: dbp:name ?foaf_name . }
#-- ... [ about 20 more lines like the above ] ...
} LIMIT 2
SPARQL results
Beachten Sie, dass die Verwendung von Präfix zum Abkürzen eines einzelnen IRI eine Art von ungewöhnlichen ist. Es wäre üblicher, einen Werte Block zu verwenden, um eine bestimmte Variable zu binden, die Sie in dem Rest Ihrer Abfrage verwenden können. Das heißt, würde ich diese Abfrage schreiben:
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT * WHERE {
values ?s { <http://dbpedia.org/resource/Pacific_Beach,_San_Diego> }
OPTIONAL { ?s dbp:officialName ?officialName . }
OPTIONAL { ?s dbp:name ?foaf_name . }
#-- ... [ about 20 more lines like the above ] ...
} LIMIT 2;
Das hat den Vorteil, dass, wenn Sie Werte für weitere Städte suchen, können Sie sie einfach von Werten zu der Liste hinzufügen. Wenn Sie nun einen Wert hinzufügen möchten, der zu etwas anderem weiterleitet, ist das kein Problem. Sie würden wollen, nur eine nicht optional Muster hinzufügen, die Sie auf die Umleitungsziele folgen hilft:
SELECT * WHERE {
values ?x { <http://dbpedia.org/resource/Pacific_Beach,_California> }
?x dbo:wikiPageRedirects* ?s .
OPTIONAL { ?s dbp:officialName ?officialName . }
OPTIONAL { ?s dbp:name ?foaf_name . }
#-- ... [ about 20 more lines like the above ] ...
} LIMIT 2
SPARQL results
Als abschließende Bemerkung, seien Sie vorsichtig, wenn Sie kopieren und Einfügen von URIs aus dem Browser, die sicherstellen, dass Sie den richtigen URI in der Abfrage verwenden. Wenn Sie eine DBpedia Ressource besuchen, zum Beispiel http://dbpedia.org/ Ressource/foo im Browser, sind Sie auf den Menschen lesbare Form umgeleitet http://dbpedia.org/ Seite/foo im Browser. Das ist nur eine Eigenart von DBpedia. (Wirklich, sollten sie Inhalt-Typ-Verhandlung verwenden und ein HTML-Dokument für das erstere zurückgeben, wenn ein Web-Browser die Anfrage macht.)
Danke! In Ihrem letzten Beispiel ist die 'Pacific_Beach, _California'-Zeichenfolge eine Variable, die in 90% der Fälle korrekt ist - aber wenn diese zu' Pacific_Beach, _San_Diego 'umleiten muss - wie würde ich schreiben, dass das eingefügt wird, damit ich 100% verarbeiten kann? der Anrufe? Brauche ich die Union? – Ricalsin
@Ricalsin Die '? X dbo: wikiPageRedirects *? S. 'Taschentuch die Umleitung. –
@Ricalsin Die '? X dbo: wikiPageRedirects *? S' behandelt die Weiterleitung. –