1

我想找到一种直接检索隐含在 Wikidata 中的语句节点中的三元组(即主语、主要谓词和宾语)的方法。

例如,在维基数据查询服务中,可以查询

SELECT ?subject ?statement ?object
WHERE 
{
 wd:Q2629845 p:P54 ?statement.
 ?statement ps:P54 wd:Q631.}
}

即,获取代表马西莫·马拉齐纳 ( ) 为国际米兰 ( ) 效力?statement的陈述节点的值。在本例中,绑定的对象是.wd:Q2629845wd:Q631?statementwds:q2629845-C6C57DFC-1340-4373-8B24-FB718AA8A949

该语句中隐含的主语、主谓语和宾语(即三元组< wd:Q2629845 wdt:P54 wd:Q631>)都可以从语句节点本身恢复。恢复在语句节点中编码的参数似乎是 wikibase 服务存在的那种东西,所以我想有一些谓词可以用来直接查询这些参数。

wd:Q2629845 wdt:P54 wd:Q631可以通过查询重构语句节点中编码的三元组< >

SELECT ?subject ?directPredicate ?object
WHERE 
{
 ?subject ?predicate wds:q2629845-C6C57DFC-1340-4373-8B24-FB718AA8A949.
 ?predicate (^wikibase:claim)/wikibase:directClaim ?directPredicate.
 ?predicate (^wikibase:claim)/wikibase:statementProperty ?statementProperty.
 wds:q2629845-C6C57DFC-1340-4373-8B24-FB718AA8A949 ?statementProperty ?object.
}

然而,这是相当迂回的,并且涉及在谓词位置使用开放变量进行查询(我想避免)。

理想情况下,解决方案类似于 wikibase 谓词(称为“ wikibase:mainPredicate”),给定一个语句节点STATEMENT,将允许查询

SELECT ?mainPredicate
WHERE
{
  STATEMENT wikibase:mainPredicate ?mainPredicate.
}

where?mainPredicate为我们提供了语句节点本身中使用的主要谓词。

谢谢!

4

0 回答 0