在你的查詢您有:
?person dbpedia2:placeOfBirth ?birthplace .
?person <http://dbpedia.org/ontology/influenced> ?influenced.
?person dbpedia2:placeOfBirth ?birthplace2 .
它說,?person
出生在兩個?birthplace
和?birthplace2
。我想你的意思是:
?person dbpedia2:placeOfBirth ?birthplace .
?person <http://dbpedia.org/ontology/influenced> ?influenced.
?influenced dbpedia2:placeOfBirth ?birthplace2 .
至於得到lat和長各城市的,現在DBpedia的下跌,所以我可以不看城市資源,看看他們是如何映射到地理座標。但是,一旦dbpedia備份完畢,您可以執行SPARQL描述查詢:
describe <http://dbpedia.org/... rest of resource URI>
並查看返回的內容。這將告訴你哪些謂詞需要使用拔出的位置。要注意的是,如果經/緯度信息丟失,你不會看到這個城市的結果,除非你把一個SPARQL optional
條款選擇了位置查詢模式的一部分。
更新
OK,DBpedia的是備份了。我相信這是你想要什麼:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
SELECT DISTINCT ?person1 ?birthplace1 ?person2 ?birthplace2
?lat1 ?long1 ?lat2 ?long2
WHERE
{
?person1 a dbpedia-owl:Person ;
dbpedia-owl:birthPlace ?birthplace1 ;
dbpedia-owl:influenced ?person2 .
?person2 dbpedia-owl:birthPlace ?birthplace2 .
optional {
?birthplace1 geo:lat ?lat1 .
?birthplace1 geo:long ?long1 .
?birthplace2 geo:lat ?lat2 .
?birthplace2 geo:long ?long2 .
}
}
更新2
查詢工作對我來說在dbpedia/iSparql(這裏有一個perma-link):
更新3
限制只有城市:
PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
SELECT DISTINCT ?person1 ?birthplace1 ?person2 ?birthplace2
?lat1 ?long1 ?lat2 ?long2
WHERE
{
?person1 a dbpedia-owl:Person ;
dbpedia-owl:birthPlace ?birthplace1 ;
dbpedia-owl:influenced ?person2 .
?person2 dbpedia-owl:birthPlace ?birthplace2 .
?birthplace1 a dbpedia-owl:City .
?birthplace2 a dbpedia-owl:City .
optional {
?birthplace1 geo:lat ?lat1 .
?birthplace1 geo:long ?long1 .
?birthplace2 geo:lat ?lat2 .
?birthplace2 geo:long ?long2 .
}
}
感謝。我可以得到一份城市名單,並將其填入谷歌地圖,以便拉出我認爲的經度和緯度。這可能會得到更完整的清單。 – Griff 2012-07-07 06:05:12
這不行,很抱歉。 – Griff 2012-07-07 06:15:56
我在http://dbpedia.org/snorql/中試過,但沒有奏效。你在哪找到相應的請求是否可用? – Griff 2012-07-07 16:33:47