我試着用下面的SPARQL查詢。通過sparql獲取城市信息
SELECT distinct ?city ?cityName ?country ?population ?knownfor WHERE {
?city rdf:type dbo:City .
?city rdfs:label ?cityName.
?city dbo:country ?country.
OPTIONAL{
?city dbp:population ?population.
?city dbo:knownFor ?knownfor.
}
FILTER (lang(?cityName) = 'en')
} ORDER BY ?city
但是,問題是 -
不是每個城市都有
dbp:population
斷言,但一些城市有dbp:populationTotal
。因此,對於一些城市,我們可以得到這個人羣,但是當我在查詢的可選部分寫 -OPTIONAL{ ?city dbp:population ?population . ?city dbp:populationTotal ?populationTotal }
兩個部分變成空白。同樣爲dbo:knownFor
謂詞(不是每個城市都有knownFor
謂詞)。
- 如何在查詢中指定我只想要歐洲城市?我找不到它指定城市
感謝您的回答。雅,歐洲的所有城市都沒有yago:EuropeanCountries謂詞,這就是爲什麼這些城市失蹤。但我的問題是,爲什麼這個謂詞不見了? –
DBpedia中缺少謂詞,因爲維基百科中沒有進行分類。 DBpedia數據中的大多數錯誤必須通過更正DBpedia數據從中提取的維基百科內容來糾正。去編輯維基百科,等幾個小時或幾天,然後用DBpedia-live(來自Wikipedia firehose的更新)運行你的查詢;或者等待3到9個月進行下一次批量提取,然後針對DBpedia運行您的查詢。 – TallTed