OPDA Knowledge base
Concept tier Module: foundation

Foundation

The Foundation module contains cross-cutting kinds reused across every other OPDA module. Some are infrastructural (Diagnostic Exemplar, Generator Run, Validation Context); others are abstract pattern-bearers (Role, Role Mixin, Relator) that downstream modules specialise.

Read this module first if you want to understand why OPDA distinguishes a Proprietor (Role) from a Seller (Role Mixin) from a Proprietorship (Relator), or what a Validation Context buys you when a profile says a field is “required (depending)”.

Entities

  • Diagnostic Exemplar — minimal worked-example data exposing one Identity-Criterion-bearing surface for Council validation
  • Generator Run — a single execution of the opda-gen pipeline that produced a specific set of emitted ontology files
  • Relator — a relational kind that mediates two or more parties and is founded by an external event
  • Role — a role borne by a single underlying Kind
  • Role Mixin — a role borne by more than one underlying Kind
  • Validation Context — the named overlay profile under which a record was validated

Module-internal relationships

How the foundation Kinds connect to one another and to the downstream Kinds in other modules:

--- config: layout: elk --- %%{init: {"theme": "base"}}%% flowchart LR accTitle: Foundation module internal relationships accDescr: Three pattern-bearing Kinds (Role, RoleMixin, Relator) and three infrastructural Kinds (ValidationContext, DiagnosticExemplar, GeneratorRun); arrows show which downstream Kinds specialise each pattern and how build-pipeline records connect. classDef cls fill:#E1BEE7,stroke:#6A1B9A,stroke-width:2px,color:#4A148C classDef ext fill:#ECEFF1,stroke:#455A64,stroke-width:2px,color:#263238 %% Foundation Kinds Relator["Relator"]:::cls Role["Role"]:::cls RoleMixin["RoleMixin"]:::cls ValidationContext["ValidationContext"]:::cls DiagnosticExemplar["DiagnosticExemplar"]:::cls GeneratorRun["GeneratorRun"]:::cls %% Downstream specialisations (faded — defined in other modules) Transaction["Transaction
(specialises Relator)"]:::ext Proprietorship["Proprietorship
(specialises Relator)"]:::ext Proprietor["Proprietor
(specialises Role)"]:::ext Seller["Seller
(specialises RoleMixin)"]:::ext Buyer["Buyer
(specialises RoleMixin)"]:::ext %% Pattern hierarchy Role -->|"bornBy a single Kind"| RoleMixin Role -->|"sitsWithin"| Relator RoleMixin -->|"sitsWithin"| Relator %% Specialisation arrows Relator -.->|"specialised by"| Transaction Relator -.->|"specialised by"| Proprietorship Role -.->|"specialised by"| Proprietor RoleMixin -.->|"specialised by"| Seller RoleMixin -.->|"specialised by"| Buyer %% Infrastructure trio GeneratorRun -->|"emits"| ValidationContext GeneratorRun -->|"emits"| DiagnosticExemplar ValidationContext -->|"validatedAgainst"| DiagnosticExemplar

Comments

Loading comments…