sparql - 使用 Jena ARQ 进行选择、描述和构建的一个 SPARQL 端点

标签 sparql jena arq

我构建了一个简单的网页作为前端用户界面,供用户输入 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();
    // ...
}

为了完整起见,您可能还应该处理 DESCRIBEASK

关于sparql - 使用 Jena ARQ 进行选择、描述和构建的一个 SPARQL 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12280622/

相关文章:

java - 如何进行多次添加操作apache jena tdb

java - 非法 unicode 转义序列值 :\n (0x6E)

sparql - DBpedia SPARQL查询特定的rdfs :label

sparql - 将任何 URI 类型的 CURI 字符串表示形式转换为真正的 CURI 或 IRI

rdf - SPARQL 选择 RDF :ID

sparql - 使用 SPARQL 从 dbpedia 获取参与者列表

rdf - 只允许一个查询字符串

SPARQL - 查询属性并返回相关属性的结果

jena - 我们可以在单个 TDB 目录中创建多个数据集吗

rdf - 如何为重命名操作生成统一绑定(bind)