12

在 Wikidata(Wikidata SPARQL 端点)中,有没有办法使用 PageRank 之类的东西对 SPARQL 查询结果进行排序?

SELECT DISTINCT ?entity ?entityLabel WHERE {
    ?entity wdt:P31 wd:Q5.
    SERVICE wikibase:label {
     bd:serviceParam wikibase:language "en" .
    }
} LIMIT 100 OFFSET 0

我们可以指定一个字段来对结果进行排序,并且该字段表示顶部的实体比下面的实体更显着/重要/可识别,依此类推?

4

2 回答 2

13

似乎 PageRank 与 Wikidata 相比没有多大意义。显然,大类和大集合将成为领导者。

此外,与 Web 链接不同,RDF 谓词可以从双方“导航”。这只是设计问题,哪个 URI 是主题,哪个 URI 是对象。

然而,Andreas Thalhammer继续他的工作。排名前 10 位的 Wikidata 实体是:

物品 标签
Q729 动物 24996.770
Q30 美国 24772.450
Q1360 节肢动物门 16930.883
Q1390 昆虫 16531.822
Q35409 家庭 14403.091
Q756 植物 14019.927
Q142 法国 13723.484
Q34740 13718.484
Q16 加拿大 12321.178
Q159 俄罗斯 11707.160

不幸的是,维基数据页面排名没有发布在(相同的)端点上,无法使用 SPARQL 查询它们。


幸运的是,一个人可以自己算出某种等级。可能的选项是:

  1. 输出报表的数量预先计算);
  2. 附加链接数量预先计算);
  3. 传入语句的数量(在下面的示例中,仅计算真实的语句)。

示例查询:

SELECT ?item ?itemLabel ?outcoming ?sitelinks ?incoming {
    ?item wdt:P463 wd:Q458 .
    ?item wikibase:statements ?outcoming .
    ?item wikibase:sitelinks ?sitelinks .
       {
       SELECT (count(?s) AS ?incoming) ?item WHERE {
           ?item wdt:P463 wd:Q458 .
           ?s ?p ?item .
           [] wikibase:directClaim ?p 
      } GROUP BY ?item
  }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en" . }.  
} ORDER BY DESC (?incoming)

试试看!

截至 2017 年 10 月,所有这些指标或多或少是相关的。

散点图矩阵

以下是这些措施对欧盟成员国的相关系数。

皮尔逊     结果 附加链接 传入 网页排名
结果 1.0000 0.6907 0.7416 0.8652
附加链接 0.6907 1.0000 0.4314 0.5717
传入 0.7416 0.4314 1.0000 0.8978
网页排名 0.8652 0.5717 0.8978 1.0000
斯皮尔曼 结果 附加链接 传入 网页排名
结果 1.0000 0.6869 0.7619 0.8736
附加链接 0.6869 1.0000 0.7680 0.8342
传入 0.7619 0.7680 1.0000 0.8872
网页排名 0.8736 0.8342 0.8872 1.0000
肯德尔 结果 附加链接 传入 网页排名
结果 1.0000 0.4914 0.5661 0.7143
附加链接 0.4914 1.0000 0.5764 0.6454
传入 0.5661 0.5764 1.0000 0.7249
网页排名 0.7143 0.6454 0.7249 1.0000

也可以看看:

于 2017-10-17T19:32:26.827 回答
3

如果这个问题仍然令人感兴趣,那么确实有一个 Wikidata PageRank 项目(与 Wikimedia Foundation 无关)。它托管在

https://github.com/athalhammer/danker

并且您可以使用 Wikidata Q-ID 为任何可用的 Wikipedia 语言(甚至是所有语言版本的链接的联合集)计算 PageRank。项目所有者也会不定期地运行一些计算,结果分数托管在:

https://danker.s3.amazonaws.com/index.html

然后可以将计算的输出转换为 N-Triples/Turtle(第一个)并从那里转换为 HDT(第二个)。

选项 1: 从托管此 Wikidata PageRank HDT 文件的端点(参见此处的示例),然后可以使用实时 Wikidata 端点运行联合查询(链接存储库中提供的示例和下图)。

选项 2: 将创建的 Wikidata PageRank HDT 文件与Wikidata 的最新 HDT 转储一起使用,并与HDTCat结合使用。

选项 3: 不要使用 HDT,只需将 N-Triples/Turtle 文件与Wikidata 转储 N-Triples/Turtle 文件一起加载到您选择的三重存储中。

联合查询示例

于 2021-06-03T20:23:11.043 回答