OBO Tools and Workflows
ICBO 2017
Ontology development in the bad old days
Decide to build ontology
Ontology development in the bad old days
Decide to build ontology
Start from scratch
Ontology development in the bad old days
Decide to build ontology
Start from scratch
Save locally
Edit in IDE
My Hard Drive
My awesome ontology v1.owl
Ontology development in the bad old days
Decide to build ontology
Start from scratch
Save locally
Edit in IDE
My Hard Drive
My awesome ontology v7FINALFINAL.owl
Ontology development in the bad old days
My Institution FTP server
My Hard Drive
Decide to build ontology
Start from scratch
Save locally
My awesome ontology v7FINALFINAL.owl
Share with the world
My awesome ontology v7FINALFINAL.owl
Edit in IDE
Problems with this workflow
Alternatives
OBO Workflows
Command line tools for ontology processing
OWLTools
ROBOT
The ontology starter kit (OSK)
git clone git@github.com:INCATools/ontology-starter-kit.git�cd ontology-starter-kit�./seed-my-ontology-repo.pl -d po ro pato -u cmungall -t "Triffid Behavior ontology" triffo
cd target/triffid-behavior-ontology�git remote add origin git@github.com:cmungall/triffid-behavior-ontology.git�git push -u origin master
First step: Use a hosted version control system
Anatomy of an ontology project: triffo
Anatomy of an ontology project: the README
Welcome contributors with a CONTRIBUTING.md
Your ‘source code’
Ontology source
OBO Practices for editing ontology source
OBO Annotations Plugin
Documentation is vital
Reuse: Importing parts of external ontologies
ROBOT will extract modules from OBO ontologies
robot extract -i po.owl -T imports/po_terms.txt --method BOT -O http://purl.obolibrary.org/obo/triffo/imports/po_import.owl -o imports/po_import.owl
The problem of cyclic dependencies
Managing files with version control
Meaningful diffs are your friend: avoid spurious diffs
https://github.com/ShahimEssaid/git-owl-tools
Can also plug in robot diff or your favorite diff tool
But obo format still works best….
Compilation of ontology source
Reasoning with robot
Standard SPARQL for reporting and validation
Sparql folder
Shapes?
Standard SPARQL for reporting and validation
Sparql folder
Shapes?
Makefiles
triffo-edit.owl
triffo.owl
Robot
reason
triffo.obo
Robot
convert
triffo-lite.owl
Robot
filter
Robot
validate
Robot
query
.sparql
.sparql
.sparql
ok?
Tsv report
Tsv report
fail
ok?
fail
Continuous Integration
Example travis file
Example travis file
Building different artefacts
OBO JSON
Registering with OBO
Release Management
Generated by owljs (deprecated)
Working with user community
Putting it all together: the ontology starter kit
git clone git@github.com:INCATools/ontology-starter-kit.git�cd ontology-starter-kit�./seed-my-ontology-repo.pl -d po ro pato -u cmungall -t "Triffid Behavior ontology" triffo
cd target/triffid-behavior-ontology�git remote add origin git@github.com:cmungall/triffid-behavior-ontology.git�git push -u origin master
Acknowledgments