Я новичок в Jena-TDB и SPARQL, так что это может быть глупый вопрос. Я использую tdb-0.9.0, в Windows XP.Jena TDB для хранения и запросов с использованием API
Я создаю модель TDB для своего файла trail_1.rdf
. Мое понимание здесь (исправьте меня, если я ошибаюсь) заключается в том, что следующий код прочитает данный файл rdf в модели TDB, а также сохранит/загрузит (не уверен, что является лучшим словом) модель в данном каталоге 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) ;
Что я делаю неправильно? Что-то не так с моим пониманием, что я упомянул выше?