在SPARQL中聚合计数变量?

时间:2017-02-26 07:52:29

标签: sparql wikidata

Wikidata SPARQL endpoint我试图制作一些特定期刊引用文章的直方图。引文计数没有明确地存在于数据库中,所以我必须先计算它们。但是我基本上想要直方图来显示引用计数分布,即引用纸张X次的次数。所以,像:

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

我确实尝试不输出?工作的ID,但这实际上只是删除了第一列。但仍然给出四行引用计数17.但我希望有一行?count = 17 ?hist = 4 (见截图)。

如何更新此SPARQL查询?

1 个答案:

答案 0 :(得分: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