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…