JIPipe Help

Annotations

JIPipe organizes data in tables that have a specific format:

  • Each table contains at least one column that contains the primary data of this row. The type of data allowed to be stored in this column is determined by this table (e.g., images, plots, ROI, ...)

  • A data table can have additional columns that contain text annotations

  • Tables also support annotations that contain any kind of other data. These data annotations are managed independently of the set of text annotations. This means that there can be a data and a text annotation column with the same name.

Schema of a data table

Text annotations

Text annotations can be created by a variety of nodes that are present in the Annotations category. A commonly used operator is the Add path to annotations node that annotates the file name or other path information to an existing path data.

Add path to annotations example

In the node parameters you can freely name the text annotation.

Data annotations

Data can be annotated to other data via the Annotate with data node. The data annotation will then appear in a dedicated column.

Data annotations example

In the node parameters you can freely name the data annotation.

Annotation propagation

A core concept of JIPipe is that annotations propagate through the pipeline unless they are manually removed.

Annotation propagation

An important aspect of annotation propagation is the behavior if multiple annotations with the same column name, but different values are merged.

Text annotation merge modes

Merge ⭐

If there are multiple values, output a list containing both values in JSON format.

Input 1

Input 2

Result

A

B

["A", "B"]

C

["A", "B"]

["C", "[\"A\", \"B\"]

👉 Please note how for the second example, the existing JSON list was escaped into a string.

Merge lists

Similar to merge, but can properly merge lists. Due to this behavior, more computational time is required.

Input 1

Input 2

Result

A

B

["A", "B"]

C

["A", "B"]

["C", "A", "B"]

Skip existing

If a column already exists, ignore the new value.

Input 1

Input 2

Result

A

B

A

C

["A", "B"]

C

Overwrite existing

If a column already exists, overwrite it with the new value

Input 1

Input 2

Result

A

B

B

C

["A", "B"]

["A", "B"]

Discard

If a column already exists, completely delete all the annotation

Data annotation merge modes

Merge tables ⭐

Merges the data annotations into a data table data annotation that contains all data annotations. Tables are not nested, but combined row-wise. Equivalent to "Merge lists" for text annotations.

Merge

Multiple data annotations are merged into a data table data annotation. Tables are nested. Equivalent to "Merge" for text annotations.

Skip existing

If a column already exists, ignore the new value.

Overwrite existing

If a column already exists, overwrite it with the new value

Discard

If a column already exists, completely delete all the annotation

Last modified: 20 February 2025