Overview
  • 19 Dec 2024
  • Dark
    Light
  • PDF

Overview

  • Dark
    Light
  • PDF

Article summary

Overview

In Dataloop, an ontology serves as a structured framework that defines the labels and attributes used for data annotation within a project. It is a fundamental component of a recipe, which encompasses the ontology alongside work instructions, annotation tools, and settings. This structure ensures consistency and clarity in the annotation process, facilitating effective machine learning model training.

The Ontology page displays a list of recipes available in the current project, along with details such as labels, attributes, associated datasets, associated tasks, creation and update information, and more.

Dataloops' taxonomy is based on 2 main entities - Recipe and Ontology.

Recipe – Recipe is a container for work instructions, and includes a single Ontology entity, and work instructions as a collection of:

  • Tool Selections - mapped to labels from the Ontology
  • Various Settings
  • Annotation and QA instructions files, etc.

The recipe is used when creating a Task (annotation or QA task) - the task binds the Recipe (labels, attributes, instructions) with the data and the team to work.

Ontology - Contains the labels (classes) and attributes used in the project. The dataset ontology is the building block of a model and helps define the information applied to data to represent the knowledge models that are then trained to inference.

  • Labels (like classes) are the names used for classifying annotations.
  • Attributes allow additional independent degrees of freedom to define labels.

Features

  • Search recipes using recipe names
  • Filter recipes using recipe creator names
  • Create, manage, and clone recipes
  • Change the default recipe of a dataset (switch recipe)
  • Add hierarchical labels
  • Set label color
  • Import labels from the TXT file
  • Create attributes
    • Section ID identifies attributes when using the SDK
    • Supports different types of attributes
      • Multi-select (check-box)
      • Single-select (radio button)
      • Free-text
      • Scale/range
      • Yes/No
  • Import/Export Ontology

Recipe

Developers Guide

To learn how to work with recipes via SDK, read here.

  • By default, every Dataset is linked with a single Recipe.
  • When creating a new Dataset, users can select to link it with a new Recipe carrying the same name as the Dataset or link it with an existing one.
  • Annotation and QA tasks are linked with a recipe as the work instructions. By default, the recipe is set to be the one linked with the Dataset from which data in the task is taken. However, the recipe can be changed when creating/editing a task, therefore a single item can be worked in multiple tasks, each with a different taxonomy.

How to Create a Recipe?

  1. Navigate to Ontology from the lift-side menu.
  2. Click Create Recipe.
  3. Enter a name for the new recipe.
  4. Click Create. The newly created recipe will appear on the Ontology page.
  5. Locate the newly created recipe and click on it.
  6. In the Labels & Attributes tab,
    1. Create new labels as required.
    2. Add attributes for labels as required.
  7. In the Instructions tab,
    1. Select required annotation tools based on your task and item type.
    2. Configure additional settings as necessary. Learn more.
  8. Click Save.

How to Access a Recipe Page?

To open the recipe page for a specific Dataset, use one of the following options:

From the Dashboard:

  • In the project dashboard's dataset table, click the Recipe icon for the selected Dataset.

Form the Ontology menu:

  1. Click on the Ontology from the lift-side menu.
  2. Locate/search for the recipe from the list.
  3. Click on the recipe.

From an Annotation studio:

Click on the Recipe link above the label-picker section.

Or,

  1. Select the Item tab from the right-side panel.
  2. Click on the Recipe icon in the Item-Info tab,

How to View Preview of a Recipe?

  1. Click on the Ontology from the lift-side menu.
  2. Locate or search for the desired recipe in the list.
  3. Select the recipe. A preview of the selected recipe will appear in the right-side panel, displaying its labels and attributes.

How to Edit a Recipe?

  1. Click on the Ontology from the lift-side menu.
  2. Locate or search for the desired recipe in the list.
  3. Click on the three dots and select Edit Recipe from the list.
  4. Make required changes and click Save.

How to Clone a Recipe?

  1. Click on the Ontology from the lift-side menu.
  2. Locate or search for the desired recipe in the list.
  3. Click on the three dots and select Clone Recipe from the list.
  4. Click Confirm. The cloned recipe will be created and listed.

How to Export Ontology?

  1. Click on the Ontology from the lift-side menu.
  2. Locate or search for the desired recipe in the list.
  3. Click on the three dots and select Export Ontology from the list. A JSON file will be downloaded.

How to Copy Recipe ID?

  1. Click on the Ontology from the lift-side menu.
  2. Locate or search for the desired recipe in the list.
  3. Click on the three dots and select Copy Recipe ID from the list. The recipe ID will be copied.

How to Delete a Recipe?

  1. Click on the Ontology from the lift-side menu.
  2. Locate or search for the desired recipe in the list.
  3. Click on the three dots and select Delete Recipe from the list.
  4. Click Delete to confirm.

Deleting a recipe from a dataset that has been set as the recipe for other datasets too (switched recipe) will be deleted from all linked datasets.

How to Switch a Recipe in the Dataset?

To change the recipe linked from one dataset to another:

  1. Click on the 3-dots action button of a dataset entry (from either the project overview or the Datasets page)
  2. Select Switch Recipe
  3. Select a different recipe from the list and approve.

Ontology

Ontologies contain the labels and attributes of a recipe. They do not have representation outside a specific recipe, and currently reusing an ontology on different recipes requires exporting them from one and importing them into another.

Ontology Actions

Updating the Ontology with a Label Thumbnail Using the SDK

The following code snippets demonstrate how to add a new label with a thumbnail and how to update an existing label to include thumbnail display data using the Dataloop SDK.

Adding a Label with a Thumbnail

import dtlpy as dl
dataset = dl.datasets.get(dataset_id="65f82c9fc26fd1bc97ea9915")
ontology = dataset.ontologies.list()[0]
ontology.add_label(label_name='dog', color=(34, 6, 231), icon_path=r"C:\Datasets\Dogs\dog.webp")

Updating an Existing Label with a Thumbnail

import dtlpy as dl
dataset = dl.datasets.get(dataset_id="65f82c9fc26fd1bc97ea9915")
ontology = dataset.ontologies.list()[0]
# Add label if not already existing
ontology.add_label(label_name='dog', color=(34, 6, 231), icon_path=r"C:\Datasets\Dogs\dog.webp")
# Create a label object with display data
label = dl.Label(tag='dog',
                 display_label='dog',
                 display_data={'displayImage': {'itemId': '65fa86e310864a269c607064',
                                                'datasetId': "65f82c9fc26fd1bc97ea9915"}})
# Update the label in the ontology
ontology.update_labels(label_list=[label], update_ontology=True)

Import Ontology

To import an ontology as a JSON file:

  1. Open the respective recipe.
  2. From the bottom right side, select the import ontology.

Import Labels

To import labels/attributes from the platforms' interface:

  1. Imported labels should be in a TXT file, following these guidelines:
    1. Every label in a new line.
    2. Labels hierarchy is by separating them with ".". For example, "Car.Type.SUV".
  2. Open the respective recipe.
  3. From the Labels and Attributes tab, select the import option for labels.
  4. Select a TXT file.