2017-06-06 145 views
0

我想獲得來自DBpedia數據庫的所有印度城市使用SPARQL從DBpedia獲取所有國家的城市

我嘗試了很多的stackoverflow解決方案,但直到現在我還沒有得到我所需的輸出。

如何使用SPARQL獲取所有國家的城市。

+1

到目前爲止您嘗試過什麼? – AKSW

+0

我嘗試使用此查詢來獲取城市和國家=> SELECT DISTINCT?city?country WHERE {?city rdf:type dbo:City; rdfs:label?label; dbo:country?country } –

回答

1

可能是(肯定的)不完整的,因爲在DBpedia中的數據是基於從維基百科的映射(這裏只InfoBoxes到):

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX dbr: <http://dbpedia.org/resource/> 
SELECT ?s WHERE { 
?s a dbo:City ; 
    dbo:country dbr:India 
} 

或者你可以嘗試使用維基百科類:

PREFIX dbc: <http://dbpedia.org/resource/Category:> 
PREFIX skos: <http://www.w3.org/2004/02/skos/core#> 
PREFIX dct: <http://purl.org/dc/terms/> 
SELECT DISTINCT ?s WHERE { 
?s dct:subject/skos:broader* dbc:Cities_and_towns_in_India 
} 
+0

謝謝。你能告訴我爲什麼「北京」城市沒有出現在中國國家。 [dbr:China] My Query => SELECT?placeName WHERE {placeName a dbo:City; dbo:country dbr:中國 } –

+0

如果您查看相應的頁面,可以隨時查看原因:http://dbpedia.org/resource/Beijing。它不屬於'dbo'類:城市' - 爲什麼,我不能說。這取決於信息框映射到維基百科 – AKSW

+0

哦!那麼我能做些什麼來展示這種類型的城市。 –

0

我得到了解決方案來獲得國家的城市。例如,如果我們想獲取印度的城市,然後使用DBR:在您的查詢

SELECT DISTINCT ?placeName WHERE { 
?placeName a yago:City108524735 ; dbo:country dbr:India 
} 

感謝@AKSW您的幫助印度