Working with Ontologies

Befitting their importance in machine learning applications, ontologies are a first-class entity in the Encord platform, with direct connections to users, organizations, and projects. The details of each relationship are explained below.

ℹ️

Note

DICOM customers might be more familiar with the term 'labeling protocol', which is equivalent to an Ontology.

Ontology user roles and permissions

The user who created the Ontology is granted admin privileges, which gives full control over the Ontology including adding other team members as viewers and admins. Collaborators are controlled from the 'Ontology > Settings > Team' pane.

The various actions each role can perform against an Ontology are summarized below:

RoleEdit structureAttach/detach from projectsView tree structureView JSON structureManage collaboratorsCopyDelete
Viewer✅(if project admin)
Admin✅(if project admin)

Ontologies are automatically assigned to the Organization of the user who created them, and cannot be transferred between Organizations at this time. Admin members of an Organization may add themselves as Ontology admins from the Organizations' Ontologies interface.

Ontologies and Projects

Ontologies must be attached to at least one Project and a single Ontology can be linked to multiple Projects simultaneously. Any changes to an Ontology impacts all linked Projects.

🚧

Caution

We advise against modifying Ontologies associated with Projects that already have labels associated with them. Removing parts of an Ontology leads to labels that aren't connected to an Ontology, and are therefore not valid for training machine learning algorithms.

You will see a warning label if the Ontology is used by more than a single Project. You can find the
list of the Projects using the Ontology in the Ontology's settings.

Edit Ontology

You can edit any Ontology creation. Update the structure exactly as you did during the creation process. To edit an Ontology, select it from your list of Ontologies.

A warning label appears when you edit an Ontology used by more than one Project. You can find a list of Projects using the Ontology in the Linked Projects pane of the Ontology Settings.

🚧

Caution

We advise against modifying Ontologies associated with Projects that already have labels associated with them. Removing parts of an Ontology leads to labels that aren't connected to an Ontology, and are therefore not valid for training machine learning algorithms.

Ontology settings

Select an Ontology, and navigate to the Settings tab to access the Ontology's settings.

Copy Ontologies

An Ontology can be copied in the Options page of the Ontology's settings. Click the Copy ontology button to copy the Ontology.

Copying an ontology copies all object primitives, and you have the option to copy any team members associated with the Ontology. The new Ontology is not attached to any Projects.

Manage collaborators

Team members / collaborators associated with the Ontology are managed in the Team pane of the Ontology's options.

Add collaborators

  1. Click the Invite collaborators button to add users to the Ontology.
    A dialog appears.
  1. Type the email address of the user(s) you want to add, and select the role you want to give these users.
  1. Click Add to add these users to the Ontology.

Change collaborator role

To change the role of a collaborator on the Ontology, click the dropdown and select the role you want to a apply to the user.

  • Users with the Admin role can modify the Ontology
  • Users with the Viewer role cannot make changes to the Ontology. However Viewer can copy the Ontology.

ℹ️

Note

An Admin cannot be reverted to a Viewer. To revoke Admin access for a user, contact [email protected].

Delete collaborators

Delete collaborators by clicking the icon next to a user's name.

Object primitives

Object primitives (formerly called Skeleton templates) are customizable Ontology class.

To create an object primitive:

Object primitives are created in the Object primitives section of the Settings tab of an Ontology. Here you define a configuration of key points, and the vertices between them.

  • A. 'Add a primitive': Start creating a new object primitive template.
  • B. 'Names hidden': Show or hide the vertex names in the canvas.
  • C. 'Add a point': Add more points on the canvas. Points are added to the list of points as they are made.
  • D. 'Add an edge': Add more edges. Mouseover the first point and click once before clicking over the
    end point of the edge. Edges are added to the list of edges as they are created.
  • E. 'Move/edit': Move vertices. Mouseover the vertex you wish to move. Click and drag to move the target vertex to the new desired location.
  • F. 'Save current state': Save the template. If you exit the editor screen without saving all your work will be lost.
  • G. 'Name': Enter a name for this object primitive. This name will be displayed in the ontology structure object annotation type selection.
  • H. 'Delete template': Delete this object primitive. Please ensure you've removed this object primitives from
    all connected objects before deleting, or the ontology structure may enter an unstable state.
  • I. 'Points': List of points with their coordinates and names. Coordinates are defined as (0, 0) in the
    upper left. You can also add points using the + Add a point button at the bottom of the list.
  • J. 'Edges': List of edges. You can also add edges by using the + Add an edge button at the bottom of the list.
  1. Click Add a primitive (A).
  2. Give your primitive a meaningful name.
  3. Click Add. You are now ready to set up your primitive.
  4. Click Add a point (C). Add as many points as you need.
  5. Click Add an edge (D). Connect your points as needed.
  6. Click Save current state (F) to save your primitive.

To use your object primitive:

Return to the Structure tab of your Ontology. Your object primitive is available for selection when adding a new Ontology object. Once selected and saved, the object primitive is available within the label editor.

Linked Projects

The Linked projects pane shows a list of Projects using the Ontology. You can jump to any of the projects displayed by clicking the View link.

Screenshot of ontology projects pane

Delete Ontology

Use the Danger zone pane to delete an Ontology.

ℹ️

Note

Ontologies that are attached to one or more Project cannot be deleted. To delete an Ontology, it has to be removed from all Projects it's attached to.

🚧

Caution

Note that deletion is a permanent action, and deleted Ontologies cannot be restored.

Screenshot of the ontology deletion pane