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

标签 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

我们能否指定一个字段来对结果进行排序,并且该字段表示顶部的实体比下面的实体更引人注目/重要/可识别?

最佳答案

看起来 PageRank 对于维基数据来说没有多大意义。显然,大类(class)和大集体将成为领导者。

此外,与 Web 链接不同,RDF 谓词可以从两侧“导航”;这只是一个设计问题,哪个 URI 是主语,哪个 URI 是客体。

但是,Andreas Thalhammer continues他的工作。排名前 10 的维基数据实体是:

<表类=“s-表”> <标题> 项目 标签 排名 <正文> Q729 动物 24996.770 第三季度 美国 24772.450 Q1360 节肢动物 16930.883 Q1390 昆虫 16531.822 Q35409 家庭 14403.091 Q756 植物 14019.927 Q142 法国 13723.484 Q34740 属 13718.484 第 16 季度 加拿大 12321.178 Q159 俄罗斯 11707.160

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

<小时/>

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

  1. 输出语句数量 ( precalculated );
  2. 附加链接数量 ( precalculated );
  3. 传入语句的数量(在下面的示例中,仅计算 truthy 语句)。

示例查询:

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

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

<表类=“s-表”> <标题> PIL 逊 结果 附加链接 传入 页面排名 <正文> 结果 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
<表类=“s-表”> <标题> 斯 PIL 曼 结果 附加链接 传入 页面排名 <正文> 结果 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
<表类=“s-表”> <标题> 肯德尔 结果 附加链接 传入 页面排名 <正文> 结果 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

另请参阅:

关于sparql - 维基数据结果按类似于 PageRank 的方式排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438022/

相关文章:

string-matching - 一种更好的变长字符串相似度排序算法

ruby-on-rails - Ruby on Rails SPARQL 客户端

semantic-web - 图数据库 : TinkerPop/Blueprints vs W3C Linked data

semantics - 如何判断语义搜索引擎的准确性?

mongodb - 如何在Mongoose中按多个字段排序的列表中获取项目排名

mysql - 如何在Mysql中选择存储过程的某些列

sparql - 使用 iSPARQL 通过相似性度量来比较值

java - 如何使用 Apache Jena Java API 创建 Fuseki SPARQL 服务器?

sparql - 有什么方法可以在不将所有数据加载到内存的情况下使用 Jena 进行推理?