Sparql 查询WikiData,p和wdt默认前缀之间的差异

Sparql 查询WikiData,p和wdt默认前缀之间的差异,sparql,rdf,wikidata,Sparql,Rdf,Wikidata,我不熟悉wikidata,不知道什么时候应该使用--> wdt前缀() 当我应该使用--> p前缀() 在我的sparql查询中。有人能解释一下这两个词的含义和区别吗 它们只是XML名称空间前缀,基本上是完整URI的快捷方式。因此,给定wdt:Apples,完整URI为,给定p:fructype,URI为 前缀/名称空间没有其他含义,它们只是用URL格式定义某个名称的方法。但是,在中定义属性等约定对于分隔术语的含义很有用,因此“direct”很可能也是属性的一个子类型(在本例中与wikipedi

我不熟悉wikidata,不知道什么时候应该使用-->

wdt前缀()

当我应该使用-->

p前缀()


在我的sparql查询中。有人能解释一下这两个词的含义和区别吗

它们只是XML名称空间前缀,基本上是完整URI的快捷方式。因此,给定wdt:Apples,完整URI为,给定p:fructype,URI为

前缀/名称空间没有其他含义,它们只是用URL格式定义某个名称的方法。但是,在中定义属性等约定对于分隔术语的含义很有用,因此“direct”很可能也是属性的一个子类型(在本例中与wikipedia转储有关)


具体来说,您需要希望作者已经公开了一些命名约定,或者陷入了“是p:P51还是p:P15,或者wdt:P51?”的循环中。祝你好运,因为语义技术的“语义”已经丢失。

命名空间中的东西用于选择语句。
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". }
}
这一行现在缩短了一行,因为我们不再寻找关于涂鸦的陈述,而是寻找涂鸦本身。双
p:
ps:
链接用相同
P31
属性的
wdt:
版本进行总结。但是,请注意:

  • 这项技术只适用于在本质上是真是假的陈述,比如,涂鸦与否。(
    wdt:
    中的“t”代表“truthy”)
  • wdt:
    提供的信息有时只是缺少一些事实。根据我的经验,
    p:
    ps:
    查询通常会比
    wdt:
    查询返回更多的结果