Skip to content

Relational classifications

A relational classification evaluates a row based on its relationships with other rows.

Instead of evaluating values within the current row, the system follows relations across the data model, collects the resulting rows, and evaluates the size of that result set.

Each relational classification produces a boolean result:

true
false

Relational classifications are automatically re-evaluated whenever:

  • related rows change
  • classifications used in filters change
  • time-based conditions change

Evaluation model

A relational classification evaluates a row using the following process:


flowchart TB

Start["Start row"]
Path["Follow relation path"]
Collect["Collect distinct target rows"]
Filters["Apply filters"]
Count["Count rows"]
Compare["Compare count to expectation"]
Result["True / False"]

Start --> Path
Path --> Collect
Collect --> Filters
Filters --> Count
Count --> Compare
Compare --> Result

The evaluation always treats the collected rows as a distinct set.

Properties

Name

Human-readable name shown in the interface.

Names do not need to be unique.

API name

Identifier used internally and in API usage.

Rules:

  • lowercase
  • allowed characters: a–z, 0–9, _
  • must be unique within the table

Table

The table where the classification is defined.

The classification is evaluated independently for each row of this table.

Relation path

Defines how the system moves from the starting row to related rows.

A relation path consists of:

  • the starting row
  • one or more relation steps
  • the final target rows

Each step follows an existing relation in the data model.

Supported relation multiplicities include:

1:1
1:n
n:1
n:n

Maximum depth:

15 relation steps

Expectation

After collecting the final set of rows, the classification compares the row count with an expected condition.

Supported comparison operators:

<

>

=

The comparison result determines whether the classification evaluates to true or false.

Filters

Filters restrict which rows are allowed to continue at a specific step in the relation path.

Filters are applied in this order:

follow relation
→ apply filters
→ pass filtered rows to next step

Multiple filters on the same step are combined using logical AND.

Filters support two modes:

include
exclude

Classification filters

Classification filters use an existing classification to determine whether rows should continue.

The referenced classification may be:

  • value classification
  • relational classification
  • logical classification

Rows where the classification evaluates to true can either be included or excluded depending on the filter mode.

Set filters

Set filters compare the rows collected at the current step with the rows collected at the closest earlier step returning the same table.

Set filters are only allowed when such a prior step exists.

Supported operations:

union
intersection
difference (A − B)
difference (B − A)
all in A
all in B
symmetric difference

Temporal filters

Temporal filters compare time ranges between rows.

They are only allowed when:

  • the starting row contains a time-range value
  • the step being filtered also contains a time-range value
  • the filtered step is not the initial step

Temporal comparisons are performed between the time range of the starting row and the time range of the rows at the filtered step.

Temporal relations are based on the 13 standard interval relations from temporal logic.

Evaluation limits

To ensure predictable performance, relational classifications have two limits.

Maximum relation depth

15 relation steps

Maximum row expansion

After filters are applied, no step may produce more than:

100 rows

If this limit is exceeded, the classification is automatically disabled.

Modification

All relational classification properties can be modified after creation.

Deletion

Relational classifications can be deleted freely.

Understand the concept