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