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:
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:
Maximum depth:
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:
Multiple filters on the same step are combined using logical AND.
Filters support two modes:
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:
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
Maximum row expansion
After filters are applied, no step may produce more than:
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.
Related resources
Understand the concept