通常情況下最簡單的方法是迭代地編寫一些這些查詢,隨着數據的發展一起探索數據。例如,在這種情況下,你可以這樣開始:
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