An implementation of Gene Ontology using a Directed Asyclic Graph data structure