OntologyEngineI is a Perl interface a minimal Ontology implementation should satisfy.
This describes the minimal interface an ontology query engine should provide. It intentionally doesn't make explicit references to the ontology being a DAG, nor does it mandate that the ontology be a vocabulary. Rather, it tries to generically express what should be accessible (queriable) about an ontology.
The idea is to allow for different implementations for different purposes, which may then differ as to which operations are efficient and which aren't, and how much richer the functionality is on top of this minimalistic set of methods. Check modules in the Bio::Ontology namespace to find out which implementations exist. At the time of writing, there is a SimpleOntologyEngine (which does not use Graph.pm), and a Graph.pm-based implementation in SimpleGOEngine.
Ontology parsers in Bio::OntologyIO are required to return an implementation of this interface.