首页 > 解决方案 > 无法通过数据集绑定的 QueryExecution 访问命名图

问题描述

这就是我创建数据集并向其中添加三个命名模型的方式:

Dataset dataset = DatasetFactory.create();
dataset.addNamedModel("NG1", model1);
dataset.addNamedModel("NG2", model2);
dataset.addNamedModel("NG3", model3);

Query q = QueryFactory.create(select_sparql);
QueryExecution qq = QueryExecutionFactory.create(q,dataset);
qq.execSelect();

Sparql 查询(#1):

SELECT DISTINCT ?p WHERE { GRAPH <NG1> { [] ?p [] . } } 

这将返回一个没有 QuerySolutions 的空 ResultSet。为什么?

但是,当我运行以下 Sparql 查询 (#2) 时:

SELECT DISTINCT ?g ?p WHERE { GRAPH ?g { [] ?p [] . } }

它工作得很好,我得到像

<NG1> | foaf:name
<NG2> | example:example

正如预期的那样。在此处检查并找到命名图,但当我使用 IRI 指定它时,不在 (#1) 中。

标签: sparqlrdfjena

解决方案


推荐阅读