The Clade Ontology is an ontology of exemplar phyloreferences curated from peer-reviewed publications. Phyloreferences in this ontology include their verbatim clade definition and the phylogeny upon which they were initially defined. The ontology therefore acts as both a catalogue of computable clade definitions as well as a test suite of phyloreferences that can be tested to determine if each phyloreference resolves as expected. This ontology is expressed in the Web Ontology Language (OWL). The executable software code in this repository is available for reuse under the terms of the MIT license.
Executing phyloreferences as a test suite
To test all phyloreferences, you will need Node.js and Java installed. You can configure testing by setting one or more of the following environmental variables:
JVM_ARGScontains arguments that are passed to the Java Virtual Machine (i.e.
java $JVM_ARGS -jar ...). You can use this to set available memory (e.g.
-Xmx12G) or a directory containing native libraries (e.g.
JPHYLOREF_ARGScontains arguments that are passed to JPhyloRef (i.e.
java -jar jphyloref.jar test file.owl $JPHYLOREF_ARGS). You can use this to set the reasoner (e.g.
Once pytest and all other required libraries are installed, you can execute all tests by running
npm test in the root directory of this project.
Curated phyloreferences produced by the Curation Tool as Phyloreference eXchange (PHYX) files are currently stored in the
phyx directory (see Brochu 2003 as an example). When executed as a test suite, these files are converted into the Web Ontology Language (OWL) in the following steps:
- PHYX files are converted to JSON-LD files using the
phyx.jslibrary from the Curation Tool. This tool translates phylogenies stored in the Newick format into a series of statements describing individual nodes and their relationships, and translates phyloreferences into OWL class restrictions that describes the nodes they resolve to.
- You may need to convert the produced JSON-LD files into RDF/XML using any standards-compliant converter, such as
rdfpipe, a part of the
- Any compliant OWL 2 DL reasoner should be able to reason over this OWL file, whether represented in JSON-LD or RDF/XML. Phyloreference classes will include all the nodes that they resolve to. In the test suite for the Clade Ontology, we use
jphyloref, a Java application that uses the [JFact++ OWL reasoner] to reason over input OWL or JSON-LD files.
jphylorefcan also read the annotations that indicate where each phyloreference was expected to resolve on any of the included phylogenies, and test whether phyloreferences resolved to the expected nodes.
We are currently working on a complete workflow that would allow us to merge separate PHYX files into a single Clade Ontology available as a single OWL file available for individual download.
Previous iterations of this code
We initially developed the Clade Ontology in Python before replacing it with a Node.js-based library. That earlier iteration is available as a release tagged v0.1 in this repository.