我需要在 Java 应用程序中解析 SPARQL 和 SPARQL 更新查询。我试图通过使用 rdf4j 库来做到这一点。这个库提供了解析查询的可能性(例如 QueryParserUtil.parseQuery(...) 或 SyntaxTreeBuilder.parseQuery(...))和解析更新的可能性(例如 QueryParserUtil.parseUpdate(...) 或 SyntaxTreeBuilder.parseUpdateSequence(... ))。但是没有一种方法可以同时解析它们。因此我需要弄清楚查询字符串是代表查询还是更新。
当更新字符串应用于 parseQuery() 方法时,会引发 ParseException。反过来也是如此。当然,如果抛出异常,总是可以尝试其他方法。但这将是一种糟糕的编程风格。
rdf4j库中有没有可以用来检查queryString代表更新还是简单查询的方法?
如果没有,是否有其他解决方案来解析更新和查询?