This page explains how to set up Protege 4.3 to comply with the OBO Foundry ID policy

In the following, the example of the Epidemiology Ontology, EPO, will be used (with permission from Catia Pesquita). It is assumed that you requested and obtained a PURL and prefix from the OBO Foundry administrators. Instructions to do so are available here

In summary, following the policy entails that:

  • your main file is available at (and this is your Ontology IRI)
  • you release dated versions of your file (and have a versionIRI in your file)
  • the IRIs of your terms are of the form


When you open Protege, the first screen you see is “Active Ontology”:

You want to set up the Ontology IRI and Ontology Version IRI here. For specific details of the format, check the ID policy mentioned above.

Protege asks if you want to update existing IRIs - you can chose yes or no - it doesn’t matter very much, as defaults IRIs in Protege use a “#” (e.g.,, so we will need to update those anyway.

You now want to set up Protege so that future entities you create are, by default, following the ID policy (and also auto incrementing their ID). To do so, go to “Protege > Preferences > New entities” Update the values as shown below:

Each entity should start with, followed by a /, and ending with an auto-generated ID. This auto-generated ID should be numeric and iterative, and start with the EPO_ prefix, and use 7 digits. Here, you will need to know which is the latest ID you used in the file so as not to overwrite existing entities. To do so, you can open the .owl file using a text editor - Protege writes them in order. For EPO, the last ID is 140, so we’ll ask to start at 141.

Don’t close the text file yet; you want to update existing IDs. In the EPO case, we want to replace http://epidemiology_ontology.owl#EO: with If you are using an XML entity as shortcut, you also want to replace this. Here for example, &epidemiology_ontology;EO: should also be replaced by