gpt4 book ai didi

SPARQL查询传递不同版本的arq

转载 作者:行者123 更新时间:2023-12-02 00:25:50 24 4
gpt4 key购买 nike

基本上我在下面得到了一个 SPARQL 查询,它适用于 arq 2.8.8 但不适用于 arq2.8.4,因为它不识别 + 符号。我真的想要一个可以在与我发布的版本类似的 arq 2.8.4 版本上运行的查询。我发布的查询基本上找到了彼此相同的所有项目。例如,如果 a 与 b 相同且 b 与 c 相同,则查询为 a 返回 b 和 c。

PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT * WHERE { ?x owl:sameas+ ?y }

最佳答案

您使用的功能是 SPARQL 1.1,因此早期版本的 ARQ 不支持该功能。编写与您所做的接近的查询的唯一方法是执行以下操作之一。

不同长度的联合路径

PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT *
WHERE
{
{ ?x owl:sameAs ?y }
UNION
{ ?s owl:sameAs [ owl:sameAs ?y ] . }
UNION
{ ?s owl:sameAs [ owl:sameAs [ owl:sameAs ?y ] ] . }
# Repeat the above pattern up to whatever limit you want
}

使用客户端代码

如下发出初始查询:

PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT * WHERE { ?x owl:sameAs ?y }

列出 ?y值,然后针对每个值发出以下形式的查询:

PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT * WHERE { <constant> owl:sameAs ?y }

在哪里替换<constant>每次从列表中选择一个值,然后添加 ?y 的新值到列表中。

对于这种方法,您唯一需要注意的是,您要跟踪已经发出第二个查询的值,以避免重复查询。

关于SPARQL查询传递不同版本的arq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954889/

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