2017-06-06 147 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您的帮助印度