Claude's email about FileGraph prompted me to think for Jena3:
What can be removed?
What can be simplifed?
Even while keeping the current APIs, there is going to stuff that isn't
used, isn't used much, or even gets in the way. For maintainability,
effectively unused features are noise and risk needing to maintain
contracts that users don't actually use.
Some things that come to mind in jena-core:
FileGraph [*]
Capabilities
GraphTransactionHandler
and with advocacy:
RDFReaderF, RDFWriterF (with RIOT integration; caution for RDF/XML)
Some places where interfaces don't seem to add anything:
LiteralLabelImpl
(actually the whole LiteralLabel thing is worth looking at - maybe we
can pull the whole thing into into Node_Literal itself)
AnonIds - maybe leave in the RDFAPI (they cross the boundary) but
internall bNodes can be a couple of longs for their state (a UUID in
other words, not a UID).
Andy
[*]
In Java8, the app, or library code, could do this better as:
update(()->{
... graph changes ...
}
and update() does the on-disk backup stuff.