Skip to main content

Relationships reference

Relationship type

The relationship types screen Relationship types. Cardinality and the symmetric and acyclic flags are set here.

SettingPurpose
Source and target entity typesWhat it links
CardinalityHow many links per endpoint
Display nameHow it reads forward
Inverse display nameHow it reads backward
SymmetricWhether direction is meaningful
AcyclicWhether cycles are rejected

Inverse display names matter for readability: one stored link should read "employs" from one end and "employed by" from the other, rather than forcing the reader to work out the direction.

Acyclic matters for hierarchies. Without it an ownership chain can close into a loop that no rollup can resolve.

Assertion states

StateMeaning
PendingTarget not yet found; retried as data arrives
ResolvedA canonical edge exists
AmbiguousThe key matched several candidates
ConflictedThe target resolved, but the edge could not be created — a cardinality rule blocked it, or the rule or relationship type no longer exists
RejectedA steward rejected the assertion
ExpiredThe source stopped asserting the fact; the evidence was retracted from the source record. If the evidence returns, the assertion reopens as pending.
Conflicted does not mean two sources contradict each other

It is where an assertion lands when the target was found but the edge could not be materialized. A steward triaging one should look at what blocked the edge — most often a cardinality rule — rather than hunting for a competing source record.

Do not confuse expired with an edge whose effective period has ended. Those are different objects: expired is an assertion state driven by the source, while a closed period is a property of the edge. See Effectivity below.

Effectivity

Every relationship carries an effective period. A link that ends is closed, not deleted.

QueryReturns
DefaultCurrently effective links
As-at a dateLinks effective on that date
Filtered by stateActive, expired, or future links

Cardinality is evaluated within the effective window, so a one-per-endpoint relationship can legitimately have several historical occupants.

Merge behaviour

EventEffect
MergeLinks re-point to the survivor; duplicates collapse
Merge with a shared counterpartThe survivor's existing link wins; the other is superseded
UnmergeSuperseded links are restored, then re-points reversed

Restoring superseded links before reversing re-points is what makes the undo byte-identical rather than approximately right.

A relationship endpoint that has been merged cannot be written; the platform resolves to the survivor first, so a link cannot be stranded on an absorbed record.

Modelling rule

The related thing isModel as
MasteredA relationship
Not masteredAn attribute

Never both. Two copies of one fact diverge.

Next


Last verified against commit 74cecd91 (2026-08-03)