Developing an OBO Reference Ontology¶
What is delivered as part of the course?¶
Develop skills to lead a new or existing OBO project, or reference ontology develoment.
Learning objectives¶
- detailed knowledge of OBO principles and best practises
- use OBO Dashboard
- use OBO Registry
- use PURL system
Prerequisites¶
- Review tutorial on Ontology Development Automation
Preparation¶
Please complete the following and then continue with this tutorial below:
- ROBOT Mini-Tutorial, part 2
- Software Carpentry: Automation and Make
Ontology Development¶
Description¶
By the end of this session, you should be able to:
- Merge ontology modules & imports with
robot merge
- Create a classified version of an ontology with
robot reason
- Add metadata to an ontology with
robot annotate
- Create a simple release workflow using ROBOT commands in a Makefile
- Create a new ontology with ODK
What is an ontology release?¶
Like software, official OBO Foundry ontologies have versioned releases. This is important because OBO Foundry ontologies are expected to be shared and reused. Since ontologies are bound to change over time as more terms are added and refined, other developers need stable versions to point to so that there are no surprises. OBO Foundry ontologies use GitHub releases to maintain these stable copies of older versions.
Generally, OBO Foundry ontologies maintain an "edit" version of their file that changes without notice and should not be used by external ontology developers because of this. The edit file is used to create releases on a (hopefully) regular basis. The released version of an OBO Foundry ontology is generally a merged and reasoned version of the edit file. This means that all modules and imports are combined into one file, and that file has the inferred class hierarchy actually asserted. It also often has some extra metadata, including a version IRI. OBO Foundry defines the requirements for version IRIs here.
The release workflow process should be stable and can be written as a series of steps. For example:¶
- Update modules from templates
- Merge ontology modules & the main edit file into one
- Assert the inferred class hierarchy
- Add a version IRI & other important metadata
This series of steps can be turned into ROBOT commands:¶
robot template
robot merge
robot reason
robot annotate
Since we can turn these steps into a series of commands, we can create a Makefile
that stores these as "recipes" for our ontology release!
- Review the ROBOT commands:
report
andquery
convert
,extract
, andtemplate
merge
,reason
,annotate
, anddiff
- Chaining ROBOT commands
- Specifying custom prefixes
- Review Software Carpentry course content
- Use the ODK to bootstrap a new ontology
- Introduction to the OBO Foundry Registry