java - 如何使用代码找出 sparql 查询的类型?

标签 java sparql rdf rdf4j


String qb = "PREFIX dc: <http://purl.org/dc/elements/1.1/>\n" +
                "INSERT DATA\n" +
                "{ \n" +
                "  <http://example/book1> dc:title \"A new book\" ;\n" +
                "                         dc:creator \"A.N.Other\" .\n" +
                "}";

// Here I need to check what type of query I got
String type = ... //some code for checking

if (type == "select") {
   ParsedTupleQuery q = (ParsedTupleQuery)parser.parseQuery(qb, null);
}else if(type == "costruct") {
   ParsedGraphQuery q = (ParsedGraphQuery)parser.parseQuery(qb, null);
}else if(type == "update"){ //here can be insert or delete
   ParsedUpdate q = parser.parseUpdate(qb, null);
}

我找不到方法来找出它是什么类型的查询。 也许有人以前见过它?

最佳答案

Rdf4j 有一个QueryParserUtil,其中包含一个方便的方法。您可以按如下方式使用它:

ParsedOperation operation = QueryParserUtil.parseOperation(QueryLanguage.SPARQL, qb, null); 
if (operation instanceof ParsedTupleQuery) {
   ParsedTupleQuery q = (ParsedTupleQuery)operation;
   ...
} else if (operation instanceof ParsedGraphQuery) {
   ParsedGraphQuery q = (ParsedGraphQuery)operation;
   ...
} else if (operation instance ParsedUpdate) {
   ParsedUpdate u = (ParsedUpdate)operation;
   ...
}

关于java - 如何使用代码找出 sparql 查询的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56040026/

相关文章:

java - 创建一个自定义的 lastIndexOf 方法

java - Java 解析字符串

rdf - SPARQL 查询 RDF 文件

web - 查找网页的主题

java - 根据位置将字符串解析为标记

java - 如何使用 executeBatch 提高性能?

sparql - Jena Sparql 和构建

rdf - 如何从 sparql 端点获取 rdf 文件

SPARQL 前缀通配符

rdf - 使用 SameAS 将 DBpedia 中的本体链接到外部本体