I'm trying out TDB as a triple store. I'm not sure if this is a bug or a misunderstanding. I have the following JUnit test code:
private static String assetFN = "assetcore.owl";
private static String locoFN = "locomotive.owl";
private static String evolutionFN = "evolution.owl";
private static String es44c4FN = "es44c4.owl";
...
Dataset ds = null;
File tdbDir = new File(tdbFolder);
if (!tdbDir.exists()) {
ds = TDBFactory.createDataset(tdbFolder);
ds.addNamedModel(assetUri, loadModel(blueprintsFolder +
File.separator + assetFN));
ds.addNamedModel(locoUri, loadModel(blueprintsFolder +
File.separator + locoFN));
ds.addNamedModel(evolutionUri, loadModel(blueprintsFolder +
File.separator + evolutionFN));
ds.addNamedModel(es44c4Uri, loadModel(blueprintsFolder +
File.separator + es44c4FN));
}
else {
ds = TDBFactory.createDataset(tdbFolder);
}
Iterator<String> mniter = ds.listNames();
while (mniter.hasNext()) {
System.out.println("TDB repository contains model '" +
mniter.next() + "'");
}
ds.close();
When I run it the first time it works as I expected, listing the four OWL
models that I have added to the repository. However, if I run it a second
time, now that the tdbFolder exists, I get a null pointer exception in the
call to mniter.hasNext(). The Dataset (ds) created from an existing TDB
folder doesn't appear to be a valid Dataset. Am I doing something wrong?
The loadModel method is as follows:
private OntModel loadModel(String owlFilename) throws IOException {
OntModel model =
ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
OntDocumentManager docMgr = model.getDocumentManager();
docMgr.setProcessImports(false); // we don't want to do the
import yet, just load the model
File modelFile = new File(owlFilename);
InputStream is = new FileInputStream(modelFile);
BufferedReader in = new BufferedReader(new
InputStreamReader(is));
String base = null;
RDFReader reader = model.getReader();
reader.read(model, is, base);
in.close();
return model;
}
Andrew Crapo
Information Scientist
GE Global Research
T +1 518 387 5729
F +1 518 387 6104
D *833 5729
E [email protected]
www.research.ge.com
One Research Circle
Niskayuna, NY 12309 USA
General Electric Company
GE imagination at work
smime.p7s
Description: S/MIME cryptographic signature
