Skip to main content
Version: V2-Next

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-type segment 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-type segment values are element, 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).

See also​