Sono nuovo sia per Jena-TDB che per SPARQL, quindi potrebbe essere una domanda stupida. Sto usando tdb-0.9.0, su Windows XP.Jena TDB per archiviare e interrogare usando l'API
Sto creando il modello TDB per il mio file trail_1.rdf
. La mia comprensione qui (correggimi se ho torto) è che il codice seguente leggerà il file rdf dato nel modello TDB e memorizzerà/caricherà (non è sicuro qual è la parola migliore) il modello nella directory data 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();
Questa comprensione è corretta?
Come per la mia comprensione dal momento che ora il modello è conservato a D:\Project\Store_DB\data1\tdb
directory, dovrei essere in grado di eseguire query ad un certo momento successivo.
Quindi, per interrogare l'archivio TDB al D:\Project\Store_DB\data1\tdb
ho provato in seguito, ma non stampa:
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);
}
Ho provato anche questo, che anche non stampa nulla:
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) ;
Cosa sto facendo in modo errato? C'è qualcosa di sbagliato nella mia comprensione che ho menzionato sopra?