我是wikidata的新手,我无法弄明白何时应该使用 - >
wdt 前缀(http://www.wikidata.org/prop/direct/)
当我应该使用 - >
p 前缀(http://www.wikidata.org/prop/)。
在我的sparql查询中。有人能解释一下这些意味着什么,有什么区别?
答案 0 :(得分:4)
p:
名称空间中的内容用于选择语句。 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:
链接使用相同wdt:
属性的P31
版本进行了总结。但是,请注意:
wdt:
中的“ t”代表“真实”)。wdt:
可用的信息有时只是缺少一些事实。根据我的经验,与p:
查询相比,ps:
和wdt:
查询返回的结果要多一些。答案 1 :(得分:1)
它们只是XML名称空间前缀,基本上是完整URI的快捷方式。所以给定wdt:Apples,完整的URI是http://www.wikidata.org/prop/direct/Apples,给定p:fruitType,URI是http://www.wikidata.org/prop/fruitType。
前缀/命名空间没有其他含义,它们只是用URL格式定义某些内容名称的方法。但是,约定(例如在http://www.wikidata.org/prop/中定义属性)对于区分术语的含义很有用,因此“直接”也可能是属性的子类型(在这种情况下与维基百科转储有关)。 / p>
具体而言,你需要希望作者已经暴露了一些命名惯例,或者陷入了“它是p:P51还是p:P15还是可能是p51?”的循环中。也许幸运与你在一起,因为语义技术的“语义”已经丢失。