【发布时间】:2014-04-16 10:48:55
【问题描述】:
我正在使用 jena API 在我的 java 项目中编写 sparql 查询。
我有多个 rdf 文件,我需要编写查询,其中涉及显示来自多个 rdf 文件的属性值。
对于单个 rdf 文件,我可以加载到模型中,创建查询字符串并执行它。
但是对于多个 rdf 文档我该怎么做呢。
注意:所有 rdf 文件都存储在本地。
我的单个 rdf 文件代码:
in = new FileInputStream(new File("data.rdf"));
model = ModelFactory.createOntologyModel();
model.read(in,defaultNameSpace);
in.close();
String queryString ="<My SParql Query>";
Query query = QueryFactory.create(queryString);
// Execute the query and obtain results
QueryExecution qe = QueryExecutionFactory.create(query, model);
ResultSet response = qe.execSelect();
// Output query results
ResultSetFormatter.out(System.out, response, query);
// Important - free up resources used running the query
qe.close();
如何处理多个 rdf 文件,我可以将它们加载到不同的模型中并仍然在同一个查询中使用吗?或者我应该加入模型以获得它们的联合的新模型?
【问题讨论】:
-
不清楚你在问什么。您说“我可以将它们加载到不同的模型中并仍然在同一个查询中使用吗?”。当然,只需创建一个不同的模型,读取不同的文件,然后其余代码相同。如果您想要一个包含所有文件中的三元组的模型,您可以创建一个模型,然后使用
model.read将每个文件读入模型。或者,正如您所说,您可以创建一个联合模型。