维基数据结果按类似于PageRank的方式排序

时间:2016-09-11 16:03:16

标签: sparql semantic-web ranking wikidata pagerank

在Wikidata(Wikidata SPARQL endpoint)中,有没有办法用类似PageRank的方式订购SPARQL查询结果?

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

我们可以指定一个字段来对结果进行排序吗?该字段表示顶部的实体比下一个实体更显着/更重要/可识别等等?

2 个答案:

答案 0 :(得分:6)

似乎PageRank与维基数据相关没有多大意义。显然,大型班级和大型聚合将成为领导者。

此外,与网络链接不同,RDF谓词是“可导航的”#34;来自双方;这只是设计问题,URI是主题,URI是对象。

然而,Andreas Thalhammer continues他的工作。十大维基数据实体是:

Q729    animal      24996.77
Q30     USA         24772.45
Q1360   Arthropoda  16930.883
Q1390   insects     16531.822
Q35409  family      14403.091
Q756    plant       14019.927
Q142    France      13723.484
Q34740  genus       13718.484
Q16     Canada      12321.178
Q159    Russia      11707.16

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

幸运的是,人们可以自己找出某种等级。可能的选择是:

  1. 结束语句数precalculated);
  2. 附加链接的数量precalculated);
  3. 传入的语句数(在下面的示例中,只计算truthy个语句。)
  4. 示例查询:

    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)
    

    Try it!

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

    scatterplot matrix

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

    Pearson
    -------
              outcoming sitelinks incoming pagerank    
    outcoming    1.0000    0.6907   0.7416   0.8652
    sitelinks    0.6907    1.0000   0.4314   0.5717
    incoming     0.7416    0.4314   1.0000   0.8978
    pagerank     0.8652    0.5717   0.8978   1.0000
    
    
    Spearman
    --------
              outcoming sitelinks incoming pagerank
    outcoming    1.0000    0.6869   0.7619   0.8736
    sitelinks    0.6869    1.0000   0.7680   0.8342
    incoming     0.7619    0.7680   1.0000   0.8872
    pagerank     0.8736    0.8342   0.8872   1.0000
    
    
    Kendall
    -------  
              outcoming sitelinks incoming pagerank
    outcoming    1.0000    0.4914   0.5661   0.7143
    sitelinks    0.4914    1.0000   0.5764   0.6454
    incoming     0.5661    0.5764   1.0000   0.7249
    pagerank     0.7143    0.6454   0.7249   1.0000
    

    另见:

答案 1 :(得分:1)

如果这个问题仍然令人感兴趣,确实有一个 Wikidata PageRank 项目(与维基媒体基金会无关)。它托管在

https://github.com/athalhammer/danker

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

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

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

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

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

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

Example federated query