Skip to content
DRAFT⚠OIML SMART pilot programme · internal use only · all documents and specifications are drafts and may change without notice

The mental model (five minutes)

Everything in this system is built from eight words and three layers, and this page shows where every detail belongs.

Everything in this system is built from eight words and three layers. If you understand this page, you can find your way to any detail and know where it belongs.

The eight words

The modelling system underneath everything (formally proved closed, complete, and extensible in the IS–HAS–DOES document) uses exactly eight terms:

  • Three relations: IS (identity, what a thing is, the truths that individuate it), HAS (possession, what a thing holds), and DOES (behavior, what a thing does).
  • Five sorts of thing: object (anything that can be individuated, a load cell, a kind, a process run), property (a slot an object can vary along, mass, color), value (what fills the slot today), process (a transformation treated as an object), transition (input → transform → output; transitions compose, and a process is a transition reified as an object).

That is all. Every model in this repository, a load cell, a Recommendation, a certification program, is a subject described by what it IS (identity, metadata, design parameters, promises), what it HAS (attributes, dimensions, state, characteristics, environmental context), and what it DOES (behaviors, processes with steps, inputs and outputs).

Requirements are constraints on a subject’s IS/HAS/DOES. Tests are processes that probe a subject’s IS/HAS/DOES to produce evidence. Forms are interfaces for recording that evidence. They are secondary models, derived from the subject, never peers of it.

The three layers

The system’s central subject is the measuring instrument, and its digital twin lives in three layers:

Physical device
   ⇕  representation (any shape)
FULL DIGITAL TWIN   — the manufacturer's complete representation,
                      arbitrarily rich (physics, telemetry, history)
   ⇕  PROJECTION — declared by the standard's governed aspect set
PRIMMEL TWIN      — only what the standard governs: declared
                    registers + freshness + provenance
   ⇕  fidelity proof (served ≡ physical within δ + freshness)
TWIN CERTIFICATION — certifies the projection, never the full
                     twin's completeness

The decisive idea: the Primmel twin is not a command interface (not a Siemens-style “admin shell” of verbs). It is a governed state projection, the standard itself declares which aspects it governs (the governed register set in primmel-packages/oiml-r60/model/twin.prl), the product’s twin interface is derived from that declaration, and machinery proves conformance. The manufacturer’s internal richness stays private; interoperability comes from the standard, not from vendor goodwill.

The one rule that keeps the system honest

The Primmel packages are the single source of truth (SSOT). Every normative model lives as a .prl package under primmel-packages/. Everything downstream, the YAML data trees in data/, the generated TypeScript in browser/src/data/generated/, the screens you click , is a generated artifact. You never edit a generated artifact by hand: you edit the package and regenerate. A drift guard (npm run test:ssot) proves, byte for byte, that packages ≡ data trees ≡ app projections, in both directions, on every gate run.

Where to go next