I want to load triples into an empty SDB Store. Here's what I'm trying:
Store store = getStore();
GraphSDB graph = new GraphSDB(store);
DatasetGraph datasetGraph = DatasetGraphFactory.create(graph);
if (datasetGraph.isEmpty())
{
System.out.println("Empty dataset graph"); // yes, it is
}
for (EventGraph eventGraph : eventGraphs) // internal classes
{
persist(eventGraph, datasetGraph); // code below
}
--------
I'm calling into the same code that I use for in-memory implementation to
persist:
protected void persist(EventGraph eventGraph, DatasetGraph dsg)
{
// First, pull the triples from the Set<Event>.
Set<Triple> triples = generateTriplesFromGraphEvent(eventGraph);
// Named graph node, into which we'll store the event triples
Node graphNode = Node.createURI(UUID.randomUUID().toString());
// Next, create a Jena Quad for that
for (Triple triple : triples)
{
Quad q = new Quad(graphNode, triple);
dsg.add(q);
}
dsg.add(new Quad(Quad.defaultGraphIRI, createActionTriple(graphNode,
eventGraph)));
dsg.add(new Quad(Quad.defaultGraphIRI, createTimestampTriple(graphNode,
eventGraph)));
}
-------
And get this message for the "dsg.add(q)" line:
Exception in thread "main" com.hp.hpl.jena.shared.JenaException: No such
graph: ef3f02ef-c203-42af-9e3d-9061acf27022
DatasetGraphCollection.add(DatasetGraphCollection.java:41)
InMemoryRDFManager.persist(InMemoryRDFManager.java:98)
SDBRDFManager.persist(SDBRDFManager.java:58)
----
Any ideas?