2017-02-11 58 views
1

我是新來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" } 
} 
+0

你的第一個查詢做** **不返回任何東西!至少現在當我在https://query.wikidata.org上試用時,對我來說不是這樣。那麼,爲什麼你不使用'wdt:P166'作爲謂詞呢? – AKSW

+0

而第二個查詢也適用於使用謂詞'wdt:P166'的情況。但是,要讓字段返回,必須將它們添加到SELECT部分​​當然,即'SELECT DISTINCT?winner?winnerLabel?titleLabel' – AKSW

回答

2

謂詞你應該使用wdt:代替ps:

請看this example

SELECT DISTINCT ?item ?itemLabel ?AuthorLabel ?year WHERE { 
    ?item wdt:P166 wd:Q255032. 
    ?item wdt:P50 ?Author . 
    ?item wdt:P577 ?year . 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }  
} 

PS。我使用了出版物,而不是獲獎日期。

UPDATE:請參閱this answer

中了大獎的時間屬性的點接收就是維基數據 調用預選賽。

而且this is query

SELECT ?item ?itemLabel ?authorLabel ?publicationDate ?dateOfAwardReceived WHERE { 
    ?item wdt:P50 ?author . 
    ?item wdt:P577 ?publicationDate . 
    ?item p:P166 ?awardReceivedStatement . 
    ?awardReceivedStatement ps:P166 wd:Q255032 . 
    ?awardReceivedStatement pq:P585 ?dateOfAwardReceived . 
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }  
} 
+0

我真的需要獲得該獎項的年份。這很容易嗎? – Will

+1

@會更復雜一些,我會嘗試 – Alexan

+0

我正在開發的程序(https://github.com/dhappy/awards/blob/master/test.rb)正在創建一個符號鏈表格/獎/ Hugo /#{year}→/ book/by /#{author} /#{title}。目前多年來我有13次碰撞。 – Will