2017-02-26 59 views
3

Wikidata SPARQL endpoint上,我正在嘗試製作某些特定日記中引用文章次數的直方圖。引用計數並未在數據庫中明確顯示,因此我必須首先對它們進行計數。但是,我基本上想要直方圖來顯示引用次數分佈,即一次論文被引用X次的次數。所以,像這樣:聚合SPARQL中的計數變量?

SELECT ?work (COUNT(?citing_work) AS ?count) 
      (COUNT(?count) AS ?hist) 
WHERE { 
    ?work wdt:P1433 wd:Q6294930. 
    ?citing_work wdt:P2860 ?work. 
} 
GROUP BY ?work ?count 
ORDER BY DESC(?count) 

但是這並不完全做我所希望的,並給出了零的這個HIST變量:

enter image description here

我也儘量不輸出的標識?工作,但這實際上只是刪除了第一列。但仍然給出了四行的引用計數爲17。但我想要有一行?count = 17?hist = 4(請參見屏幕截圖)。

如何更新此SPARQL查詢?

回答

5

我認爲你需要兩個選擇。我可以這樣做:

#defaultView:LineChart 
select ?count (count(?work) as ?hist) where { 
    { 
    SELECT ?work (COUNT(?citing_work) AS ?count) 
    WHERE { 
     ?work wdt:P1433 wd:Q6294930. 
     ?citing_work wdt:P2860 ?work. 
    } 
    GROUP BY ?work 
    } 
} 
group by ?count 
order by ?count 
+0

哦,當然是嵌套的SELECT!我自己應該想到這一點。謝謝!!!! –

+1

甚至可以將「citing_work wdt:P2860?work」設置爲可選,以包含沒有任何引用的文章數量。 –