问题描述
这是我的 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 查询中,我会使用 page viewcount 属性来获取某个时间段(例如 60 天)内的平均查看次数,从而估计文章的用户受欢迎程度,例如
但我不知道维基数据是否也存在此类指标,或者是否可以为此使用任何其他索引。
解决方法
页面浏览数量被记录,因为在任何项目视图中点击左侧导航栏中的页面信息,将会显示。这些数字也可用 in this tool 并且我敢打赌,通过 API。实际上,只需将示例 URL 中的主机名更改为 Wikidata works。
但是,如果您想要/需要查询界面中的数据,这并没有多大帮助。为此,我建议使用不同的“流行度”代理。一个常见的是包含有关该主题的文章或“附加链接”的语言版本的数量。这是如何工作的:
[... 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))
...但恐怕维基数据还不够完整,以至于它不可靠,尤其是因为许多科学论文与其作者没有正确联系。