我是新來SPARQL和維基數據,並正嘗試檢索雨果獎獲獎如下:如何從維基數據中檢索雨果獲獎者?
- 工作標題
- 作者
- 年榮獲
我發現這非常困難。
我開始查詢所有連接到最佳小說獎的鏈接類型爲「won by」的元組。
SELECT DISTINCT ?winner WHERE {
# P166: Award Recieved By
# Q103360: Hugo Award for Best Novel
?winner ps:P1346 wd:Q255032.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
這個工作,但是當我從贏家添加標題鏈接,沒有數據:
SELECT DISTINCT ?winner WHERE {
?winner ps:P1346 wd:Q255032.
OPTIONAL {
# P1476: Title
?winner wdt:P1476 ?title.
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
我在做什麼錯?我嘗試過不同的命名空間,但理解不足,無濟於事。
論雨果獲獎者的頁面,有贏家的部分:https://www.wikidata.org/wiki/Q255032#P1346
如何生成?我試圖查詢該屬性,得到了反向鏈接到的人(我認爲):
SELECT DISTINCT ?winner ?winnerLabel ?for WHERE {
# P166: winner
# Q103360: Hugo Award for Best Novel
wd:Q255032 wdt:P1346 ?winner.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}
你的第一個查詢做** **不返回任何東西!至少現在當我在https://query.wikidata.org上試用時,對我來說不是這樣。那麼,爲什麼你不使用'wdt:P166'作爲謂詞呢? – AKSW
而第二個查詢也適用於使用謂詞'wdt:P166'的情況。但是,要讓字段返回,必須將它們添加到SELECT部分當然,即'SELECT DISTINCT?winner?winnerLabel?titleLabel' – AKSW