【问题标题】:Is there a way to rewrite INSERT, MODIFY or DELETE sparql using ARQ Jena Algebra?有没有办法使用 ARQ Jena 代数重写 INSERT、MODIFY 或 DELETE sparql?
【发布时间】:2021-01-22 17:54:44
【问题描述】:

我发现一些 SPARQL 查询操作仅适用于 SELECT、ASK、CONSTRUCT https://jena.apache.org/documentation/query/manipulating_sparql_using_arq.htmlhttps://jena.apache.org/documentation/query/algebra.html,但找不到任何有关 UPDATE 操作的信息

有什么可以看的例子吗?

谢谢。

【问题讨论】:

  • UpdateRequest 开始,它只不过是Update 的一个Iterable,您可以根据Update 的类型访问组件,通过Javadoc 查看它的子类,然后处理它们的组件.
  • 谢谢!处理方式与常规查询不同,但仍然有帮助。

标签: sparql jena arq


【解决方案1】:

看来你可以使用org.apache.jena.sparql.syntax.syntaxtransform.UpdateTransformOps

我有同样的要求,由于这里的文档非常有限,我仍在使用调试模式来看看如何实现我的目标。你可以从中得到启发,如果你有更好的解决方案我会很感兴趣。

类似的东西:

public class OpPermissionTransformer extends ElementTransformCopyBase {
    @Override
    public Element transform(ElementNamedGraph el, Node gn, Element elt1) {
       return elt1;
    }

}
 UpdateRequest modified = UpdateTransformOps.transform(update, new OpPermissionTransformer(), new NodeTransformExpr(n -> { 
    // modify the node as you wish
    return n;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多