gpt4 book ai didi

stored-procedures - 如何遍历引用虚拟图的 SPARQL 查询?

转载 作者:行者123 更新时间:2023-12-01 06:03:33 24 4
gpt4 key购买 nike

我正在开发 Virtuoso 存储过程。
我想对 SPARQL 查询的结果执行循环到图形。
当查询包含对虚拟图(实际上不在三元组中的图,是 R2RML 映射操作的结果)的引用时,问题就出现了。在我所有的尝试中,我没有得到任何错误,但也得到了一个空的结果集。
我尝试了以下

create procedure R2RML.DBA.try() returns integer
{
for (sparql define input:storage ""
select ?s ?p
from <http://example.com/resource>
where {
?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o .
} LIMIT 5 ) do
{
use_the_value("s");
}
};

还有以下
create procedure R2RML.DBA.try() returns integer
{
declare srcgraph varchar;
srcgraph := 'http://ec.example.com/resource';
for (sparql define input:storage ""
select ?s ?p
where {
GRAPH `iri(?:srcgraph)`
{
?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o .
}
} LIMIT 5 ) do
{
use_the_value("s");
}
};

在这两种情况下,尽管查询相同,但在 SPARQL 端点中执行时,不会执行迭代,返回结果。

如果我删除对图形的引用,则执行迭代:
create procedure R2RML.DBA.try() returns integer
{
for (sparql define input:storage ""
select ?s ?p
where {
?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o .
} LIMIT 5 ) do
{
use_the_value("s");
}
};

有人知道我做错了什么吗?

最佳答案

由于图形是虚拟的,所以诀窍是在 define 中添加四元存储的名称。 SPARQL 语句中的指令。例如,如果使用 Virtuoso 四边形 map 存储 define指令将变为以下内容。

sparql define input:storage "http://www.openlinksw.com/schemas/virtrdf#DefaultQuadStorage"

关于stored-procedures - 如何遍历引用虚拟图的 SPARQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42434965/

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