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, DataSetDatasetA data-related element that contains processed data and makes it available for consumption. A Dataset is populated via Pipelines and carries Metadata and access permissions., Bundle, Format, View — defined in the Glossary. Code, docs and the CORE URNCORE URNThe global identity Model Management assigns to every model artifact: a unique, stable and versionable URN that exists independently of storage location, file names or registry technology. 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).