获取维基数据项查看次数/流行度指数

Get Wikidata item view count / popularity index

这是我的 SPARQL 查询,用于列出数学家及其维基百科链接和图像:

SELECT DISTINCT ?pers ?persLabel ?nameLabel ?persDescription ?link ?img
WHERE {
  ?pers wdt:P31 wd:Q5.
  {?pers wdt:P101* wd:Q395} union {?pers wdt:P106* wd:Q170790}.
  ?pers wdt:P734 ?name.
  optional {?link schema:about ?pers; schema:isPartOf <https://en.wikipedia.org/>. }
  optional {?pers wdt:P18 ?img. }
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
limit 100

现在我接下来要做的是使用某种流行指数按最著名/最受欢迎的条目过滤列表。在 Wikimedia Action API 查询中,我会使用页面浏览量 属性 来获取一段时间内(比如 60 天)的平均浏览量,从而得出用户受欢迎程度的估计值文章,例如

https://www.mediawiki.org/w/api.php?action=query&generator=allpages&gaplimit=max&gapfilterredir=nonredirects&gapfrom=a&prop=pageviews

但我不知道维基数据是否也存在这样的指标,或者是否有任何其他索引可用于此目的。

页面浏览量被记录下来,因为在任何项目视图中单击左侧导航栏中的页面信息都会显示。这些数字也可用 in this tool and, I would bet, with the API. Indeed, just changing the hostname to in your example URL to Wikidata works.

但是,如果您 want/need 查询界面中的数据,那并没有多大帮助。为此,我建议使用不同的“流行度”代理。一个常见的问题是包含有关该主题的文章或“附加链接”的语言版本的数量。这是如何工作的:

[... your query as before ...]
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }

    ?pers wikibase:sitelinks ?sitelinks.
}  order by desc(?sitelinks)

或者,您可以尝试发布的数量:

    ?publication wd:P50 ?pers.
} GROUP BY ?pers ORDER BY desc(COUNT(?publication))

...但我担心 Wikidata 不够完整以致于不可靠,尤其是因为许多科学论文没有与其作者正确链接。