簡體   English   中英

Sparql查詢到DBpedia

[英]Sparql query to DBpedia

我們可以使用SPARQL查詢從DBpedia獲得美國的地點清單嗎? 我已經嘗試了以下查詢,但是(通過設計)它僅提供英文摘要。 我想要美國的地方名稱。 我該如何實現?

SELECT ?abstract
FROM NAMED <http://dbpedia.org>
WHERE { <http://dbpedia.org/resource/Lists_of_populated_places_in_the_United_States> <http://dbpedia.org/ontology/abstract> ?abstract.
FILTER langMatches( lang(?abstract), 'en') }

通常,最簡單的方法是迭代編寫一些查詢,並在進行過程中探索數據。 例如,在這種情況下,您可以從以下內容開始:

select ?place where {
  ?place a dbpedia-owl:PopulatedPlace
}
limit 100

SPARQL結果

那不僅是在美國的地方,而且您可以瀏覽結果,直到找到了。 然后,您可以檢查一下,看看如何識別這些地方。 在這種情況下,您可能會找到西弗吉尼亞州的Furnace,並注意到它的屬性dbpedia-owl:country的值為dbpedia: United_States 因此,我們可以優化查詢:

select ?place where {
  ?place a dbpedia-owl:PopulatedPlace ;
         dbpedia-owl:country dbpedia:United_States 
}
limit 100

SPARQL結果

看起來好多了,但是您說過,您想要的是地方的名稱,而不是標識這些地方的實際IRI。 根據您的過濾器,看起來您只需要英文名稱。 然后,我們進一步完善:

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結果

這些名稱是用語言標記的文字。 如果只需要字符串部分,則可以在變量投影中執行此操作:

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結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM