我构建了一个简单的网页作为前端用户界面,供用户输入sparql查询。我使用Jena ARQ作为后端(我使用Grails)sparql查询引擎。目前,用户只能输入"选择"查询,我使用:
ResultSet results = qexec.execSelect();
以执行查询并返回结果。但现在,我还希望用户将"描述"one_answers"构造"查询从同一页面发送到后端。正如本线程中所讨论的:Jena Sparql和构造,我们需要使用
Model results = qexec.execConstruct()
在后端。所以我的问题是,在后台,我如何知道查询字符串是Select查询、Describe查询还是Construct查询,以便我可以从execSelect()、execDescribe()或execConstruct()中进行选择?前端有什么需要我换的吗?
Query类具有查找查询类型的方法:
if (qexec.getQuery().isSelectType()) {
ResultSet results = qexec.execSelect();
// ...
} else {
Model results = qexec.execConstruct();
// ...
}
为了完整起见,您可能还应该处理DESCRIBE
和ASK
。