嗨,我想从我暴露的休息服务中接受 sparql,用于用户想要发出的即席查询。我当前的框架基于 spring data rest 和 jpa,它为暴露基于 HAL 的端点完成了大部分繁重的工作,但我需要提供这个额外的钩子让用户进行自定义查询。周围是否有任何有效的 sparql 解析器(这里提到了一些用于 Java 代码的 SPARQL 解析器),我可以使用它来读取 sparql 词汇并将其转换为基于 JPA 的条件查询,以便在我的数据库上执行后端。
我正在尝试使用 apache jina arq,但有没有人有一个使用这些来解析 sparql 然后尝试将其转换为 sql 的示例。
使用我正在做的 apache jena
String queryString = "PREFIX books: <http://example.org/book/> PREFIX dc: <http://purl.org/dc/elements/1.1/>"
+ " SELECT ?book ?title WHERE { ?book dc:title ?title}";
Query query = QueryFactory.create(queryString);
Op op = Algebra.compile(query);
现在我想用一个访问者遍历该 Op 以使用它来将其转换为 Sql 。我已经尝试过 OpWalker.walk(op, new EventSparqlVisitor()); 但它并没有遍历所有内容以生成查询..任何帮助