I had noticed that it had been a while since we had last updated SWO – the Software Ontology. To be honest, it was a little more than “a while”, but…
- we’re a merry band of volunteers, primarily Robert Stevens (blog, Computer Science at Manchester), Helen Parkinson (EBI), James Malone (blog, SciBite), which means we are time limited
- our build process was outdated, slow, and tricky. I’ll admit, I had to ask James to finish our 1.6 release as it just wasn’t working for me!
Does your release spark joy?
We all enjoy talking about software, and I have particularly enjoyed beginning to work on the lovely Licence Hierarchy within SWO that’s been coming along nicely. But every time I thought about updating the external ontologies we imported, or building the release files, I got a bit of a sinking feeling. Then, feeling like I was the last in the class to notice, I had a good read about ROBOT (website, publication), an ontology build tool that lots of projects had been using. I say build tool, but it does all sorts of lovely things. I use it for the following purposes:
- SPARQL queries: I use SELECT to create summary statistics of quite complex subdivisions of my ontology
- Bulk annotation: UPDATE commands can also be run, allowing me to add bulk annotations to my file.
- Bulk imports via spreadsheets: a separate project I’ve been involved in began their ontology development with a spreadsheet and then we bulk converted it to OWL with ROBOT.
- Merging imports – going from a development file with multiple imports to a single release file
- Release building – checking and building a release file with appropriate annotation and versioning.
And to top it all off, ROBOT suggests that you use a Makefile to control your build. What joy! The last time I used one was during my time at the EBI, and a really do enjoy using them. They are a lightweight, fun way to control a set of commands and dependencies that you need to run, and it was awesome to get back to it.
As it had been a while since we released SWO, it needed a spring clean. With MIREOT and Ontofox, I wasn’t tied to a simple (but crowded) import of entire ontologies. In previous versions, ontologies like EDAM were imported en masse and this causes major versioning issues when release get out of step. MIREOT solves that by outlining a procedure (implemented by Ontofox) which allows for the selective import of classes and hierarchies of interest from external ontologies.
So, we stripped out all of our external classes, and re-imported just the ones we needed. We also took the opportunity to resolve a number of inconsistencies with our IRI naming scheme (and a bunch of other housekeeping issues listed in our GitHub milestone).
Release and Indexing
We released 1.7 at the end of October, and our lovely friends at OLS, BioPortal and Ontobee quickly indexed it. Please feel free to browse it at any of these locations, or to say hello over at our GitHub repo (you’ll always find our latest release here). And with our build procedure now as streamlined as our ontology, updates will be easier and quicker – so let us know what you’d like!