Hi all, I've just committed a new version to
http://svn.apache.org/viewvc/commons/sandbox/rdf/trunk/ The most obvious change if that instead of having TripleCollection, MGraph and Graph there is now Graph and ImmutableGraph. With this change the usage of the term "graph" is a bit closer to the colloquial usage (at the price of being a bit more distant to the usage in the specs). I've also added some questions and answers to the Readme highlighting the points where the API offers advantages compared with other APIs and API proposals. The API goes beyond the most minimalistic API by allowing for graph listeners to be notified when a graph is changed. This is a popular feature that cannot easily be added on top of the core API so it is included. I've added the getLock method to the main Graph interface. API notes describe how implementation can easily provide such a lock and what to do in situation where no such lock is needed. In clerezza we have been using a subinterface LockableMGraph to provide this feature. Experience has shown however that this approach makes it unnecessary difficult to write generic code, for example generic methods processing a Graph often had to check the type and downcast to do the locking on graphs than can be locked. Please let me know about what you think about this proposal. Cheers, Reto