Java - 通过解析重写SPARQL查询

问题描述 投票:0回答:1

我正在尝试使用Jena或其他一些Java库来实现一些编码挑战(在这种情况下通过后序遍历进行重写)。我不是要求一种将SPARQL转换为SQL查询的方法。我已经有了。

我目前正在尝试将给定的SPARQL查询转换为其他一些SQL查询。

到目前为止,我已经使用了Jena parser,它给出了一个SPARQL查询,返回一个ARQ树表示,可以在后序中遍历。这正是我想要做的。

唯一的问题是Walker,只是穿过树。我想做的是这样的事情(假设我正在通过MINUS):

String visit(OpMinus minus){

    String l_res = minus.getLeft().visit();
    String r_res = minus.getRight().visit();

    /*

    ... do some stuff with the result ...

    */

    String res = l_res + "MINUS (" + r_res + ")";
    return res;
}

然而,耶拿的访客返回无效,这使得这不可能。还有另一种方法吗,而不是复制沃克和访客代码,以使其按我想要的方式工作?谢谢。

我不是在寻找SPARQL到SQL的直接翻译器,因为我需要使用树元素。

java parsing jena
1个回答
0
投票

我最终通过实现我自己的Walker解决了这个问题(因为我正在寻找的任何东西都是在Jena中实现的),它在后期遍历树并返回字符串

© www.soinside.com 2019 - 2024. All rights reserved.