我构建了一个简单的网页作为前端用户界面,供用户输入 sparql 查询。我使用 Jena ARQ 作为后端(我使用 Grails)sparql 查询引擎。目前,用户只能输入“选择”查询,我使用:
ResultSet results = qexec.execSelect();
执行查询并返回结果。但现在,我还希望用户从同一页面向后端发送描述和构造查询。正如此线程中所讨论的:Jena Sparql and construct ,我们需要使用
Model results = qexec.execConstruct()
在后端。所以我的问题是,在后端,我如何知道查询字符串是选择查询、描述查询还是构造查询,以便我可以从 execSelect()、execDescribe() 或 execConstruct() 中进行选择?我需要对前端进行什么更改吗?
最佳答案
Query class有找出查询类型的方法:
if (qexec.getQuery().isSelectType()) {
ResultSet results = qexec.execSelect();
// ...
} else {
Model results = qexec.execConstruct();
// ...
}
为了完整起见,您可能还应该处理 DESCRIBE
和 ASK
。
关于sparql - 使用 Jena ARQ 进行选择、描述和构建的一个 SPARQL 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280622/