Jena TDB zum Speichern und Abfragen über API

Ich bin sowohl für Jena-TDB als auch für SPARQL neu, es könnte also eine dumme Frage sein. Ich verwende tdb-0.9.0 unter Windows XP.

Ich erstelle das TDB - Modell für meinetrail_1.rdf Datei. Mein Verständnis hier (korrigiere mich, wenn ich falsch liege) ist, dass der folgende Code die angegebene RDF-Datei im TDB-Modell liest und auch das Modell im angegebenen Verzeichnis speichert / lädt (nicht sicher, was das bessere Wort ist)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();

Ist dieses Verständnis richtig?

Soweit ich weiß, ist das Modell jetzt unter gespeichertD:\Project\Store_DB\data1\tdb In diesem Verzeichnis sollte ich zu einem späteren Zeitpunkt die Abfrage ausführen können.

Also den TDB Store abfragen unterD:\Project\Store_DB\data1\tdb Ich habe Folgendes versucht, aber es gibt nichts aus:

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);
}

Das habe ich auch ausprobiert, wobei auch nichts gedruckt wurde:

    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) ;

Was mache ich falsch? Gibt es etwas falsches an meinem Verständnis, das ich oben erwähnt habe?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage