(weird error message from email earlier - this maybe a duplicate but is
shorter - sorry if it is a dup)
It's hard to find many uses in the main code base of capabilities. I
can only find two uses in main/java at all:
* use of sizeAccurate() in the isomorphism code
* findSafeContract() in RDF/XML writing.
Otherwise it's all in the testing code.
Oddly, it does not seem to be reflected in the Model API.
The Inf code seems to provide them - but is it used?
Suggests to me a feature that is not worth it.
This is not saying Capabilities are wrong - when the world was simpler,
the idea of Capabilities made sense. The overall system has moved on
and is too complicated for the idea central set of features which are
either provided or not.
To support testing, there is an alternative of providing test suites
that cover the ideal correctly, simple and cleanly.
If some subsystem wants to opt out of some tests, it inherits the tests
and stubs out the parts it does not want to provide. And documents it
somewhere (FileGraph says it supports weak transactions).
@Test public void somefeature_01() { /* Choose not to support this */ }
which fits with test that take parameters via abstract classes.
Now, we have a test collection that is simpler. Responsibility for
variations on the contract is moved to the subsystem and the test suite
captures the complete contract. There is no central concept of global
variations. It's very hard to define the right set of capabilities that
is both general and reflects real choices.
Where else can we simplify the base system?
Andy