Closed afs closed 7 years ago
You've observed something I definitely missed about deeper integration with jena. I have to consider it an enhancement request, and it's obviously not trivial to do, but I will adovate for it.
Assigning to @sbuxton so that we'll have a conversation about scope and timing.
Setting to milestone 1.0.2 to try to scope a release
Jena has the class GraphView
to provide this. It used by a number of DatasetGraph
implementations.
Oh, thank you for that pointer @afs, I thought that was an interface I had to implement.
I was able to get most of the way fixing this. The lingering issue is that I never implemented a reasonable delete cache, because add/delete previous to this implementation were not tied to server-side state. Having a delete cache will align the behavior of the sesame and jena libraries.
In certain applications, we have found that buffering inserts and deletes is necessary. Both are need to be done so that a Graph.find(?,?,?)
can check the local buffered changes to generate the right answers.
That's enough evidence for me.
At the moment,
MarkLogicDatasetGraph.getGraph
is a copy of the graph in the database.This means that:
The alternative is that the graph returned is a view;
add
,delete
andfind
are mapping operations,find(s,p,o)
to mapped tofind(graphName, s,p,o)
etc.