Skip to content

The Semantic OBO Engineer's Toolbox

Essentials

Automation

Text editors:

Ontology access and query tools:

SPARQL endpoints

Templating systems

Ontology Mappings

Where to find ontologies and terms: Term browsers and ontology repositories

  • OLS: The boss of the current term browsers out there. While the code base is a bit dated, it still gives access to a wide range of relevant open biomedical ontology terms. Note, while being a bit painful, it is possible to set up your own OLS (for your organisation) which only contains those terms/ontologies that are relevant for your work.
  • Ontobee: The default term browser for OBO term purls. For example, click on http://purl.obolibrary.org/obo/OBI_0000070. This will redirect you directly to Ontobee, to show you the terms location in the hierarchy. In practice, there is no particular reason why you would favour Ontobee over OLS for example - I just sometimes prefer the way Ontobee presents annotations and "uses" by other ontologies, so I use both.
  • AberOWL: Another ontology repository and semantic search engine. Some ontologies such as PhenomeNet can only be found on AberOWL, however, I personally prefer OLS.
  • identifiers.org: A centralised registry for identifiers used in the life sciences. This is one of the tools that bridge the gap between CURIEs and URLs, but it does not cover (OBO) ontologies very well, and if so, is not aware of the proper URI prefixes (see for example here, and HP term resolution that does not list the proper persistent URL of the HP identifier (http://purl.obolibrary.org/obo/HP_0000001)). Identifiers.org has mainly good coverage for databases/resources that use CURIE type identifiers. But: you can enter any ID you find in your data and it will tell you what it is associated with.
  • OBO Foundry Ontology Library. The OBO Foundry works with other repositories and term browsers such as OLS, Ontobee and BioPortal. For example, OLS directly reads the OBO Foundry registry metadata, and automatically loads new ontologies added to the OBO Foundry Ontology Library.
  • BioPortal
  • CPT Story. The Current Procedural Terminology was the by far most highly accessed Terminology on Bioportal - for many years. Due to license concerns, it had to be withdrawn from the repository. This story serves a cautionary tale of using terminologies with non-open or non-transparent licensing schemes.
  • AgroPortal: Like BioPortal, but focussed on the Agronomy domain.
  • Linked Open Data Vocabularies (LOV): Lists the most important vocabularies in the Linked Data space, such as Dublin Core, SKOS and Friend-of-a-Friend (FOAF).

Ontology visualisation

  • OBO Graphviz: Library to visualise ontologies in beautifully readable graphics based on Dot.

Nico's top 10 tools for the Semantic OBO Engineer's Toolbox

  1. ROBOT: Manipulating and transforming ontologies: the undeniable Swiss Army Knife for Ontology Engineers.
  2. Ontology Access Kit (OAK): Accessing ontologies, ontology databases, ontology mapping, text annotation - everything you will ever need for using ontologies.
  3. Protégé
  4. Term browsers (OLS, Ontobee)
  5. Ontology Development Kit (ODK)
  6. GNU Make
  7. Text editor workflows (i.e. Visual Studio Code, Atom, Sublime, VIM), plus a bit of regex. Select your text editor well!
  8. Basic Shell scripting and pipelining
  9. LinkML: Building semantic datamodels for your data - using ontologies!
  10. SPARQL (e.g. ROBOT query and Yasgui)
  11. From tables to ontologies: DOSDP templates and ROBOT templates

Other tools in my toolbox

These are a bit less essential than the above, but I consider them still tremendously useful.

  • Cogs (experimental) for automatically synchronising your spreadsheets with Google Sheets.
  • Basic Dockerfile development: This can help you automate processes that go beyond usual ODK day-to-day business, such as automated mapping tools, graph machine learning, NLP etc.
  • GitHub community management and git version control: Learn how to effectively manage your contributors, issue requests and code reviews. Also get your git commands straight - these can be life savers!
  • Basics in python scripting: This is always useful, and python is our go-to language for most of automation nowadays - this used to be Java. Most of the Java heavy lifting is done in ROBOT now!
  • SSSOM and sssom-py: Toolkit and framework for managing mappings between ontologies.
  • DROID: DROID is a web-based interface for working with make, managed by git.
  • OBO Dashboard: OBO-wide quality control monitor for OBO ontologies.