A central component of a project is the ontology - an in-depth description of which can be found here.

Ontologies are top-level entities that can be attached to projects that provide a template structure for labels. Please note that while a project can only have a single ontology attached to it, one ontology can be attached to multiple projects.

  • To access the ontology you can use the get_ontology() method, that allows you to work with its structure property.

  • The structure comes as the OntologyStructure class which has good self documenting examples on how to be used.

This section will cover some of the most common use-cases for ontologies.

Copying an ontology#

Copying an ontology allows you to make changes to the stucture without affecting the projects the original ontology is attached to.

from encord import EncordUserClient

user_client: EncordUserClient = EncordUserClient.create_with_ssh_private_key(

ontology = user_client.get_ontology("<ontology_hash>")
new_ontology = user_client.create_ontology(
    "copy ontology",
    description="<my ontology description>",