gpt4 book ai didi

rdf - 查找属性路径中的所有步骤

转载 作者:行者123 更新时间:2023-12-03 16:54:26 25 4
gpt4 key购买 nike

我是SPARQL的新手,我正在尝试创建一个属性路径查询,该查询将吐出沿路径的每个中间步骤。到目前为止,我有这个:

select ?object
where {
<subjectURI> <isRelatedTo>+ ?object .
}

无论关系有多远,这都会给我列出与路径中与主题URI的所有关系的列表(如果到目前为止我做错了,请更正我)。

但是,我想看看这种关系是如何组织的。就像是:
<subjectURI> <isRelatedTo> <object1>
<object1> <isRelatedTo> <object2>
<object2> <isRelatedTo> <object3>

等等...这可能吗?

最佳答案

不,这是属性路径设计的限制。

路径可以用于压缩更复杂的查询模式,也可以用于测试任意长度的路径,如您的示例所示。

前者可能会转换为提供中间步骤的形式,例如

SELECT * WHERE
{
?s <http://predicate>/<http://predicate> ?o
}

可以转换为以下内容:
SELECT * WHERE
{
?s <http://predicate> ?intermediate .
?intermediate <http://predicate> ?o .
}

不幸的是,对于任意长度的路径都无法做到这一点。但是,如果您知道路径的上限是什么,可以这样重写查询:
SELECT *
WHERE
{
{
?s <http://predicate> ?step1 .
?step1 <http://predicate> ?o .
}
UNION
{
?s <http://predicate> ?step1 .
?step1 <http://predicate> ?step2 .
?step2 <http://predicate> ?o .
}
# Add additional UNION for each length of path you want up to your upper bound
}

尽管如您所见,这使事情变得非常冗长。

关于rdf - 查找属性路径中的所有步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18024413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com