我正在尝试查询一个 TDB 数据库,该数据库具有来自 DBpedia 数据集的一些 RDF 条目以进行测试,稍后它将有更多条目。我正在使用如何使用 Jena TDB 存储链接电影数据库的本地版本中的建议,但程序没有返回任何内容。
public static void main(String[] args) throws Exception {
String directory = "C:\\Users\\MyPC\\Fuseki\\Fuseki-0.2.0\\mydatasets";
Dataset dataset = TDBFactory.createDataset(directory);
Model model = dataset.getDefaultModel();
String queryString = "SELECT * WHERE { ?s ?p ?o }";
Query query = QueryFactory.create(queryString);
QueryExecution qexec = QueryExecutionFactory.create(query, model);
try {
ResultSet results = qexec.execSelect();
for (; results.hasNext();) {
QuerySolution soln = results.nextSolution();
System.out.println(soln);
RDFNode x = soln.get("varName"); // Get a result variable by name.
Resource r = soln.getResource("VarR"); // Get a result variable - must be a resource
Literal l = soln.getLiteral("VarL"); // Get a result variable - must be a literal
}
} catch (Exception e) {
System.err.print("Error:"+e.getMessage());
} finally {
qexec.close();
}
}
当调试器进入 forfor (; results.hasNext();) {
循环时,它只是跳过 try 块并到达qexec.close()
底部。我知道我在商店中有数据,因为从 Fuseki 我可以执行相同的查询并获取所有数据行。
有人可以为我指出正确的方向吗?我尝试了不同的方法但没有成功。