我是 wikidata 的新手,我不知道什么时候应该使用 -->
wdt 前缀 ( http://www.wikidata.org/prop/direct/ )
我什么时候应该使用 -->
电话 前缀( http://www.wikidata.org/prop/ )。
在我的 sparql 查询中。有人能解释一下这些是什么意思,有什么区别吗?
最佳答案
事情在p:
命名空间用于选择 声明 .事情在wdt:
命名空间用于选择 实体 .实体选择,使用 wdt:
, 允许您简化或总结涉及语句选择的更复杂的查询。
当您看到 p:
你通常会看到一个 ps:
或 pq:
不久之后。这是因为您很少需要语句列表;您通常想了解有关这些陈述的一些信息。
这个例子是一个两步过程,向你展示了维基数据中的所有涂鸦:
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
属性(property)。但是,请注意:wdt:
中的“t”代表“真实”)。 wdt:
有时只是遗漏了一些事实。根据我的经验,经常是 p:
和 ps:
查询将返回比 wdt:
更多的结果询问。 关于sparql - 查询WikiData,p和wdt默认前缀的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36023098/