我是新手,不懂如何在wikidata中使用wdt前缀 (http://www.wikidata.org/prop/direct/)和p前缀 (http://www.wikidata.org/prop/)以及它们之间的区别。希望有人能解释一下它们的含义。
我是新手,不懂如何在wikidata中使用wdt前缀 (http://www.wikidata.org/prop/direct/)和p前缀 (http://www.wikidata.org/prop/)以及它们之间的区别。希望有人能解释一下它们的含义。
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". }
}
现在这一行少了一个词,因为我们不再寻找有关涂鸦的陈述,而是要寻找涂鸦本身。双重的p:
和ps:
链接可用同样的P31
属性的wdt:
版本进行总结。然而,请注意:
wdt:
中的“t”代表“truthy”)。wdt:
可用的信息有时会缺少一些事实。根据我的经验,p:
和ps:
查询通常会返回比wdt:
查询多一些结果。wdt:
前缀也可以选择像 wdt:P1082
这样的文字值。 - iron9P26
的条目:
p:
前缀视为访问图像右侧整个白色框的方法。
要访问白色框内的信息,您需要进行更深层次的挖掘。
要访问信息的主要部分(“米歇尔·奥巴马”),您可以这样组合p:
前缀和ps:
前缀:SELECT ?spouse WHERE {
wd:Q76 p:P26 ?s .
?s ps:P26 ?spouse .
}
变量?s
是一个抽象的语句节点(也称为白盒子)。
通过使用wdt:
,可以在查询主体中仅使用一条三元组获得相同的信息:
SELECT ?spouse WHERE {
wd:Q76 wdt:P26 ?spouse .
}
那么为什么会使用p:
呢?
你可能已经注意到白色框中还包含元信息(“开始时间”和“结婚地点”)。
为了获取元信息,您需要将p:
前缀与pq:
前缀组合起来。
以下示例查询返回所有信息以及语句节点:
SELECT ?s ?spouse ?time ?place WHERE {
wd:Q76 p:P26 ?s .
?s ps:P26 ?spouse .
?s pq:P580 ?time .
?s pq:P2842 ?place .
}