> ## Documentation Index
> Fetch the complete documentation index at: https://docs.labelbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Features

> Instructions for creating and modifying features.

A *feature* within the context of Labelbox is an individual entry in an ontology. It contains all of the information required for rendering a specific annotation.

In other words, a feature is the master definition of:

1. How you want your model to do a given task (i.e., create predictions).

2. How your labeling team should label an asset (i.e., create ground truth).

You can think of a collection of features as a blueprint for providing structure to your data in the form of annotations. In the editor, you will see the list of features (AKA the ontology) in the **Tools** panel.

<Frame>
  <img src="https://mintcdn.com/labelbox-1db23ff4/2Od9VBnnAA3wl0Qw/images/docs/9835f77-Screen_Shot_2021-12-09_at_11.48.01_AM.png?fit=max&auto=format&n=2Od9VBnnAA3wl0Qw&q=85&s=409e621a687d79085485eccc209cfdd4" alt="" width="1790" height="974" data-path="images/docs/9835f77-Screen_Shot_2021-12-09_at_11.48.01_AM.png" />
</Frame>

There are two kinds of features: *objects* (e.g., bounding box, polygon, etc) and *classifications* (e.g., radio, checklist, etc). A feature can have multiple deeply nested sub-classifications.

An annotation is simply a single instance of a feature.

<Frame>
  <img src="https://mintcdn.com/labelbox-1db23ff4/pX5sb6w9JhVLrazS/images/docs/0afaea6-Screen_Shot_2021-12-09_at_11.50.37_AM.png?fit=max&auto=format&n=pX5sb6w9JhVLrazS&q=85&s=7226806db2c86a905825237dc7013e3d" alt="" width="2032" height="1770" data-path="images/docs/0afaea6-Screen_Shot_2021-12-09_at_11.50.37_AM.png" />
</Frame>

## Key definitions

| Component             | Definition                                                                                                                                                                |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Object                | Objects are features that generally are visible on the stage (canvas). This includes bounding boxes, segmentation masks, named entities, and relationships.               |
| Classification        | Classification is essentially a tag that can exist in any context (global or inside an object). Labelers assign classifications by completing a form in the Editor.       |
| Nested classification | Classifications can be global (i.e., it applies to the entire asset) or they can be nested within an object-type annotation (i.e., a child of an object-type annotation). |
| Relationship          | A relationship is a specialized annotation type that connects two annotations and allows you to name that connection.                                                     |

## Objects versus classifications

Labelbox separates its annotations into two general categories: objects and classifications. An easy way to remember the difference between the two is that object-type annotations are visible on the editor stage and classifications are not.

Structurally, objects cannot be nested within other objects. However, classifications can be nested within objects. Classifications can also be at the global level (can apply to the entire asset).

In this sample ontology, there is one object feature (named "Tree") and 3 classification features.

<Frame>
  <img src="https://mintcdn.com/labelbox-1db23ff4/Y2wXEmSLwSvn6HCD/images/docs/4557344-objects-classifications_structure_1.png?fit=max&auto=format&n=Y2wXEmSLwSvn6HCD&q=85&s=b094f0e1f562091f3366294799ce2b16" alt="" width="1760" height="1525" data-path="images/docs/4557344-objects-classifications_structure_1.png" />
</Frame>

The classification question, "Is the image blurry?", is at the global level. This means this classification applies to the entire data row.

The classification questions, "Does the tree have leaves?" and "Is the tree alive?", are sub-classifications that apply only within the scope of the "Tree" object.

## Create features from the Schema tab

To create a new feature in the UI, navigate to **Schema** > **Features** and click the **Create** button on the right.

Features will fall into one of three categories: objects, classifications or relationships.

<Frame>
  <img src="https://mintcdn.com/labelbox-1db23ff4/pX5sb6w9JhVLrazS/images/docs/0a915be-Screenshot_2024-06-04_at_9.51.12_AM.png?fit=max&auto=format&n=pX5sb6w9JhVLrazS&q=85&s=033ac341bbeeccf0f4fec7eeca9d9eb0" alt="" width="3438" height="1968" data-path="images/docs/0a915be-Screenshot_2024-06-04_at_9.51.12_AM.png" />
</Frame>

### Create objects

To create an object feature, you need to provide the following information:

* **Tool name**: Name of the feature that will appear in the **Tools** menu in the editor. If you want to add an existing feature to your ontology, you can look it up by name.

* **Tool color**: Color of the feature in the editor. Helps labelers identify the objects on the editor stage and in the **Tools** menu.

* **Tool type**: Indicates the annotation type (ex. bounding box, segmentation mask, etc)

* **Sub-classifications**: If you need a sub-classification (AKA nested classification) on the object, you can specify that here. This is an optional setting you can use to provide more information on the object being labeled.

### Create classifications

To create a classification feature, you need to provide the following information:

* **Classification name**: Name of the classification that will appear in the **Tools** menu in the Editor.

* **Input type**: Indicates the answer choice type (ex. radio, free text, etc)

* **Required**: Should this classification be answered in order to submit a label? If yes, then enable the Required option.

* **Searchable**: If you have a large list of answer options, the Searchable flag allows you to search the options during labeling.

## Create features from a project

You can also dynamically create new features from within a project. To do this, you must:

1. Select a project.

2. Go to **Settings** > **Label editor** and click **Edit**.

3. In the edit mode, click the **+** button under the object or classification section

4. Fill out the necessary information to create the feature.

5. Hit the checkmark or **Done** at the bottom of the screen.

<Info>
  ### Parent feature ID

  While working with deeply nested features, you may see feature ID and schema node ID for every child entity. They will soon be removed entirely. For all useful workflows, you now only need to care about the feature ID that you can see and copy from the UI.
</Info>

## Edit a feature

You can make changes to a feature definition anytime.

* If the feature has one or more annotations, you can only change everything except the tool type.

* If the feature has no annotations, you can make changes to every setting.

In general, proceed with caution when making changes to a feature that is already in use in existing labeling projects.
