Skip to content

Editing a term in protege

Before you start:

  • make sure you are working on a branch here.
  • make sure you have the editor's file open in Protege (in ODK ontologies, located in: ./src/ontology/ONT-edit.owl) where ONT is the name of your ontology (eg mondo-edit.owl for MONDO)
  • familiarise yourself with the user interface of protege

Adding, editing, annotating and deleting axioms

Adding annotations

Using Protégé you can add annotations such as labels, definitions, synonyms, database cross references (dbxrefs) to any OWL entity. The panel on the right, named Annotations, is where these annotations are added. OBO Foundry ontologies includes a pre-declared set of annotation properties. The most commonly used annotations are below.

  • rdfs:label
  • definition
  • has_exact_synonym
  • has_broad_synonym
  • has_narrow_synonym
  • has_related synonym
  • database_cross_reference
  • rdfs:comment

Note: OBO ontologies allow only one rdfs:label, definition, and comment.

Note, most of these are bold in the annotation property list:

Use this panel to add a definition to the class you created. Select the + button to add an annotation to the selected entity. Click on the annotation 'definition' on the left and copy and paste in the definition to the white editing box on the right. Click OK.

Example (based on MONDO):

Definition: A disorder characterized by episodes of swelling under the skin (angioedema) and an elevated number of the white blood cells known as eosinophils (eosinophilia). During these episodes, symptoms of hives (urticaria), fever, swelling, weight gain and eosinophilia may occur. Symptoms usually appear every 3-4 weeks and resolve on their own within several days. Other cells may be elevated during the episodes, such as neutrophils and lymphocytes. Although the syndrome is often considered a subtype of the idiopathic hypereosinophilic syndromes, it does not typically have organ involvement or lead to other health concerns.

Definitions in OBO ontologies should have a 'database cross reference' (dbxref), which is a reference to the definition source, such as a paper from the primary literature or another database. For references to papers, we cross reference the PubMed Identifier in the format, PMID:XXXXXXXX. (Note, no space)

To add a dbxref to the definition:

  1. Click the @ symbol next to the definition
  2. Click the + button next in the pop-up window
  3. Scroll up on the left hand side until you find 'database_cross_reference', and click it
  4. Add the PMID in the editing box (PMID:25527564). _Note: the PMID should not have any spaces)
  5. Click OK
  6. Add the additional dbxref (e.g., adding GARD:0013029)
  7. The dbxrefs should appear as below.

Add Synonyms and Database cross reference

To add a synonym:

  1. Select the + button to add an annotation to the selected entity
  2. Add the synonyms as 'has_exact_synonym' (note: use appropriate synonym annotation)
  3. Synonyms should have a reference to it
  4. Click the @ symbol next to the synonym
  5. Click the + button
  6. Select database_cross_reference on the left panel and add your reference to the Literal tab on the right hand side

The Class description view

We have seen how to add sub/superclasses and annotate the class hierarchy. Another way to do the same thing is via the Class description view. When an OWL class is selected in the entities view, the right-hand side of the tab shows the class description panel. If we select the 'vertebral column disease' class, we see in the class description view that this class is a "SubClass Of" (= has a SuperClass) the 'musculoskeletal system disease' class. Using the (+) button beside "SubClass Of" we could add another superclass to the 'skeletal system disease' class.

Note the Anonymous Ancestors. These are superclasses that are inherited from the parents. If you hover over the Subclass Of (Anonymous Ancestor) you can see the parent that the class inherited the superclass from.

When you press the '+' button to add a SubClass of axiom, you will notice a few ways you can add a term. The easiest of this is to use the Class expression editor. This allows you to type in the expression utilizing autocomplete. As you start typing, you can press the 'TAB' or '->|' button on your keyboard, and protege will suggest terms. You will also note that the term you enter is not in the ontology, protege will not allow you add it, with the box being highlighted red, and the term underlined red.

Make a Pull Request

  1. Make a pull request as usual (instructions here)