Vocabulary bundle closure fails with uncaught exceptions if the constructed taxonomy contains loops (self edges) or cycles. The former can be prevented (self edges are trivially true; every class is a subclass of itself) by disregarding them; they play no role in bundle closure. The latter cannot be prevented but the exception should be caught and some diagnostic output produced.
Steps to Reproduce
Steps to reproduce the behavior:
[ ] Attempt to close a vocabulary with loops or cycles in the taxonomy
[ ] Observe uncaught exception
Expected Behavior
In the case of a loop, no exception thrown. In the case of a cycle, diagnostic emitted showing at least the edge completing the cycle.
Description
Vocabulary bundle closure fails with uncaught exceptions if the constructed taxonomy contains loops (self edges) or cycles. The former can be prevented (self edges are trivially true; every class is a subclass of itself) by disregarding them; they play no role in bundle closure. The latter cannot be prevented but the exception should be caught and some diagnostic output produced.
Steps to Reproduce
Steps to reproduce the behavior:
Expected Behavior
In the case of a loop, no exception thrown. In the case of a cycle, diagnostic emitted showing at least the edge completing the cycle.