Soy nuevo en Jena-TDB y SPARQL, por lo que podría ser una pregunta tonta. Estoy usando tdb-0.9.0, en Windows XP.Jena TDB para almacenar y consultar mediante API
Estoy creando el modelo TDB para mi archivo trail_1.rdf
. Mi comprensión aquí (corríjame si estoy equivocado) es que el siguiente código leerá el archivo rdf dado en el modelo TDB y también almacenará/cargará (no estoy seguro cuál es la mejor palabra) el modelo en el directorio dado 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();
¿Es correcto este entendimiento?
Según mi entendimiento ya que ahora el modelo se almacena en el directorio de D:\Project\Store_DB\data1\tdb
, yo debería ser capaz de ejecutar la consulta en él en algún momento posterior.
Así que para consultar el TDB tienda en D:\Project\Store_DB\data1\tdb
Probé siguiente, pero no se imprime nada:
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);
}
También probé esto, que tampoco se imprime nada:
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) ;
¿Qué estoy haciendo incorrecto? ¿Hay algo malo en mi comprensión que he mencionado anteriormente?