ADR 060: Canonical domain vocabulary
Date: 2026-07-15
Status: Accepted
Decision Makers: @derlinne, @luckey
Context
Docs and code drift apart when the same concept has several names.
Decision
Model Forge standardises on a single domain vocabulary — Artefakt, Element, DataStructure, DataSet, Bundle, Format, View — defined in the Glossary. Code, docs and the CORE URN artifact-type segment use only these terms: an Element is a single modelled type (a Class, an Enumeration, …); a DataStructure is a stored grouping of Elements.
Rationale
- One name per concept removes the drift between docs and code; the umbrella terms (Artefakt, View) let cross-type rules be stated once instead of per type.
- "A DataStructure consists of one or more Elements" reads naturally.
- The URN
artifact-typesegment is the domain term (ADR 050's invariant) — no separate mapping between a URN token and a human-facing name.
Key choices
- An Element is free/teilbar: a DataStructure is a URN-reference grouping, not a strict part-whole composition — an Element may exist without a DataStructure (a standalone import) or be referenced by more than one DataStructure.
- The
artifact-typesegment values areelement,datastructure,mapping,pipeline,datasource,datasink,dataset. - A DataStructure is a stored grouping created on import — not a View. View covers only read-side projections: Bundle (an artifact plus its dependency graph as one document) and Format (JSON Schema / XSD serialisation).
- There is no JSON-LD/RDF projection within the platform. Interfaces with projections can be provided.
Consequences
The vocabulary is enforced end to end — artifact-type values, URN segments and manifest field names all use these terms (the initial migration V1__artifact_registry.sql already ships the canonical element/datastructure naming, so no rename migration is needed).