gpt4 book ai didi

java - 使用 TopBraid SPIN API 运行 SPARQL/SPIN 模板

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:50 34 4
gpt4 key购买 nike

我正在尝试使用 SPIN API 运行模板。对于简单的模板,这很有效,但我在使用包含 FILTERs 的模板时遇到了麻烦。

出于验证目的,我在运行模板之前打印模板的主体,但我看到的并不是我期望看到的:

Template t = SPINModuleRegistry.get().getTemplate("TheTemplatesURI", myModel);
System.out.printLn(t.getBody().toString());

它打印查询,但包含 4 行的 FILTER 子句如下所示:

FILTER <http://spinrdf.org/sp#notExists>([]) .

因此,当我尝试运行查询时,查询失败。

有人知道如何从我的模型中检索完整的 spin:body 吗?

最佳答案

我现在使用一种解决方法。

问题是,如果我将 FILTER 查询设置为

,SPIN API 只能正确读取(即完整)FILTER 查询
NOT EXISTS {
?s ?p ?o .
...
}

而不是

FILTER NOT EXISTS {
?s ?p ?o .
...
}

如果我以这种方式手动运行模板,SPARQL 将引发异常,因为正确的方法是使用 FILTER。我现在将所有模板在 Topbraid Composer 中保存为 NOT EXISTS,并在通过 SPIN API 加载它们后通过 String.replace(...) 添加 FILTER 位。它可能很难看,但至少有效。

关于java - 使用 TopBraid SPIN API 运行 SPARQL/SPIN 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26544554/

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