以前に格納したJenaという名前のモデル(正確にはDBPedia TBox)をクエリしようとしています。ストレージはJena TDB:名前付きモデルのクエリ
Dataset dataset = TDBFactory.createDataset(path);
dataset.begin(ReadWrite.WRITE);
Model model = dataset.getNamedModel(graph);
OntModel ontModel = ModelFactory.createOntologyModel();
model.add(FileManager.get().readModel(ontModel, dbpedia));
model.commit();
model.close();
dataset.commit();
dataset.end();
dataset.close();
パスがTDBへのパスを含む、以下の方法で行われ、グラフは、指定されたモデルとDBpediaのは、OWLファイルへのパスが含まれているの名前が含まれています。この時点まではすべてがうまくようだ:
私は後でモデルを照会したい場合は、私は次のようにします。次のように
Dataset dataset = TDBFactory.createDataset(path);
dataset.begin(ReadWrite.READ);
List<String> out = Lists.newArrayList();
try(QueryExecution qExec = QueryExecutionFactory.create("SELECT * { GRAPH ?g {?s ?p ?o}}", dataset.getNamedModel(graph))) {
ResultSet rs = qExec.execSelect();
ResultSetFormatter.out(rs);
rs.forEachRemaining(triple -> out.add(triple.toString()));
} catch (Exception e) {
e.printStackTrace();
}
dataset.close();
ResultSetFormatter.out(rs)
からの出力は、空である。しかし
-----------------
| s | p | o | g |
=================
-----------------
デバッガモードでは、のdataset.getNamedModel(graph)
に明らかにデータがあります。
私は私の問題は、クエリであることを前提とし、その後、それは私には罰金です。何か不足していますか?
ありがとうございます!分離のグラフにクエリを要求し
ありがとうございます!それがトリックでした:-) – sergi123