Relationship Types
A relationship type defines one kind of edge between concepts. It is the difference between “these two terms are somehow related” and “Churn Rate iscalculatedFrom Cancelled Subscriptions, calculatedFrom is not symmetric, and it maps to om:calculatedFrom in RDF.”
Relationship types are admin-governed and global. Manage them at Settings → Governance → Glossary Term Relations.

The List
Each row shows the type’s Name, Display Name, Category, Characteristics, Cross Glossary flag, Cardinality, and Color. System-defined types carry a lock icon: they can be updated but never deleted, and their edit and delete actions are disabled.GET /api/v1/glossaryTerms/relationTypes/usage returns each type with the number of relations currently using it — check this before removing a custom type.
Creating a Type
Click Add Relation Type and fill in the panel.Identity
Category
Behavior
Characteristics are OWL property characteristics. They are not labels — reasoners and the inference engine act on them.
Cardinality constrains how many concepts can sit on each end: one-to-one, one-to-many, many-to-one, many-to-many, or Custom with explicit source and target maxima (blank means unlimited).
Cross-glossary controls whether the type can connect concepts belonging to different glossaries. Turn it off for types that only make sense inside a single model.
Semantics and Mapping
Lifecycle
Types Shipped by Default
Design Guidance
Prefer a few well-defined types over many similar ones
Prefer a few well-defined types over many similar ones
Every type is a decision modelers must make correctly on every edge. Three types used consistently beat twelve used approximately. Add a type when it unlocks a query you cannot express without it.
Set characteristics deliberately
Set characteristics deliberately
TRANSITIVE is what lets the transitive-closure rule answer “every ancestor” in one hop. SYMMETRIC is what stops the graph from storing both directions. Leaving these unset because you are unsure means the reasoner cannot help you.Reuse a standard predicate when one exists
Reuse a standard predicate when one exists
Mapping to
skos:broader rather than a bespoke om:isUnder makes your export intelligible to every SKOS-aware tool on the planet, for zero extra effort.Deprecate, don't delete
Deprecate, don't delete
Set Replaced by and leave the old type in place. Deleting a type that edges still reference destroys information no one can reconstruct.
API
Next
Author (Edit mode)
Use these types to draw relations.
Reasoning & Validation
How characteristics drive inference.