私は Jena-TDB と SPARQL の両方に慣れていないので、ばかげた質問かもしれません。Windows XP で tdb-0.9.0 を使用しています。
ファイルの TDB モデルを作成していtrail_1.rdf
ます。ここでの私の理解 (間違っている場合は訂正してください) は、次のコードが TDB モデルで指定された rdf ファイルを読み取り、指定されたディレクトリにモデルを格納/ロードします (より良い言葉はわかりません) D:\Project\Store_DB\data1\tdb
:
// open TDB dataset
String directory = "D:\\Project\\Store_DB\\data1\\tdb";
Dataset dataset = TDBFactory.createDataset(directory);
Model tdb = dataset.getDefaultModel();
// read the input file
String source = "D:\\Project\\Store_DB\\tmp\\trail_1.rdf";
FileManager.get().readModel( tdb, source);
tdb.close();
dataset.close();
この理解は正しいでしょうか?
私の理解によると、モデルはD:\Project\Store_DB\data1\tdb
ディレクトリに保存されているため、後でクエリを実行できるはずです。
TDB ストアをクエリするD:\Project\Store_DB\data1\tdb
には、次のことを試しましたが、何も出力されません。
String directory = "D:\\Project\\Store_DB\\data1\\tdb" ;
Dataset dataset = TDBFactory.createDataset(directory) ;
Iterator<String> graphNames = dataset.listNames();
while (graphNames.hasNext()) {
String graphName = graphNames.next();
System.out.println(graphName);
}
私もこれを試しましたが、何も印刷されませんでした:
String directory = "D:\\Project\\Store_DB\\data1\\tdb" ;
Dataset dataset = TDBFactory.createDataset(directory) ;
String sparqlQueryString = "SELECT (count(*) AS ?count) { ?s ?p ?o }" ;
Query query = QueryFactory.create(sparqlQueryString) ;
QueryExecution qexec = QueryExecutionFactory.create(query, dataset) ;
ResultSet results = qexec.execSelect() ;
ResultSetFormatter.out(results) ;
私は何を間違っていますか?上記の私の理解に何か問題はありますか?