This page defines one reusable access strategy for Grunddatamodellen datasets.

Use this as a shared pattern for CVR, DAR, Matrikel, DAGI, and related registries.

Decision Table

Access modeBest whenTypical output shapeCost profile
GraphQLHard filters known early (status, municipality, code lists, time windows)Targeted record subsetsLower post-processing, higher query design effort
FiledownloadBroad extraction/snapshot neededOne file per normalized entityFast bulk extraction, higher join and reconciliation effort

Shared Workflow

Step 1: Choose temporal mode first

Before query design, declare one mode:

  • current
  • temporal
  • bitemporal

See Shared Temporal Superclass Contract.

Step 2: Select extraction mode

  • GraphQL for selective extraction
  • Filedownload for broad extraction

Step 3: Normalize to analysis model

Grunddata entities are heavily normalized.

A general reconstruction pattern is:

  1. choose anchor entity
  2. attach relation entities by shared IDs
  3. resolve one-to-many expansions
  4. publish analysis-ready view(s)

Step 4: Run quality gates

  • temporal-mode declaration is present
  • join coverage/match rate is measured
  • duplicates introduced by relation joins are reported
  • status filter assumptions are documented

AI-Facing Contract

Machine-readable version:

Dataset-specific playbooks should inherit this pattern and only add domain-specific overrides.