通常情况下最简单的方法是迭代地编写一些这些查询,随着数据的发展一起探索数据。例如,在这种情况下,你可以这样开始:
select ?place where {
?place a dbpedia-owl:PopulatedPlace
}
limit 100
SPARQL results
这不仅仅是在美国这样的地方,但你可以浏览结果,直到你找到一个。然后你可以检查它,看看你如何识别这些地方。在这种情况下,您可能会发现Furnace,西弗吉尼亚州,并且请注意,它的值为dbpedia:United_States财产dbpedia-owl:国家。因此,我们可以细化查询:
select ?place where {
?place a dbpedia-owl:PopulatedPlace ;
dbpedia-owl:country dbpedia:United_States
}
limit 100
SPARQL results
这看上去好多,但是你说你想要的地方,而不是确定他们实际虹膜的名字。基于你的过滤器,它看起来像你只是想要英文名字。然后,我们进一步细化:
select ?label where {
?place a dbpedia-owl:PopulatedPlace ;
dbpedia-owl:country dbpedia:United_States ;
rdfs:label ?label
filter langMatches(lang(?label), 'en')
}
limit 100
SPARQL results
这些名称是语言标记文字。如果你只想要弦形部分,你可以做的是,在可变投影:
select (str(?label) as ?strLabel) where {
?place a dbpedia-owl:PopulatedPlace ;
dbpedia-owl:country dbpedia:United_States ;
rdfs:label ?label
filter langMatches(lang(?label), 'en')
}
limit 100
SPARQL results
你浏览过的http://dbpedia.org/page/Lists_of_populated_places_in_the_United_States的数据?它并不包含你想要的东西。你需要找到一种不同的方式来制定你的查询。 – 2014-09-13 03:28:18