查询Wikidata,p和wdt默认前缀之间的差异 [英] Querying WikiData, difference between p and wdt default prefix

查看:26
本文介绍了查询Wikidata,p和wdt默认前缀之间的差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚接触Wikidata,我不知道什么时候应该使用-->

WDT前缀(http://www.wikidata.org/prop/direct/)

以及何时应该使用-->

p前缀(http://www.wikidata.org/prop/)。

在我的SPARQL查询中。有没有人能解释一下它们各自的含义和区别?

推荐答案

p:命名空间中的内容用于选择语句wdt:命名空间中的内容用于选择实体。使用wdt:进行实体选择,可以简化或汇总涉及语句选择的更复杂查询。

当您看到p:时,通常很快就会看到ps:pq:。这是因为您很少需要语句列表;您通常希望了解有关这些语句的一些信息。

此示例分为两步,向您显示Wikidata中的所有涂鸦:

SELECT ?graffiti ?graffitiLabel
WHERE
{
    ?graffiti p:P31 ?statement .  # entities that are statements
    ?statement ps:P31 wd:Q17514 . # which state something is graffiti
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
这里使用了P31属性的两个不同版本,它们位于不同的命名空间中。对于如何连接到其他项目,每个版本都有不同的期望。p:名称空间中的内容将实体连接到语句,ps:名称空间中的内容将语句连接到值。在本例中,p:P31用于选择关于实体的语句。实体将是涂鸦,但我们直到下一行才指定,其中ps:P31用于选择语句的值(主题),指定这些值应该是涂鸦。

所以,这有点复杂!应该使用wdt:名称空间来简化这种查询。该示例可以重写为:

SELECT ?graffiti ?graffitiLabel
WHERE
{
    ?graffiti wdt:P31 wd:Q17514 . # entities that are graffiti
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}

现在少了一行,因为我们不再查找有关涂鸦的语句,而是查找涂鸦本身。用相同P31属性的wdt:版本来总结对偶p:ps:链接。但是,请注意:

  • 这项技术只适用于那些本质上是真是假的陈述,比如涂鸦或不涂鸦。(wdt:中的&t";代表";truthy";)。
  • wdt:可用的信息有时只是缺少某些事实。根据我的经验,p:ps:查询通常比wdt:查询返回更多的结果。

这篇关于查询Wikidata,p和wdt默认前缀之间的差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆