FOGE Definition and Binding Model
1. Purpose
This chapter explains how the canonical FOGE definition layer is persisted and how its tables work together.
It is written for engineers, architects, auditors, data designers, implementation partners, and AI engineering agents that need to understand the FOGE data model without reconstructing it from DDL or historical design discussions.
The central model is:
Pergamum requirement versions
↓
FOGE framework release
↓
FOGE form version
↓
complete form-scoped Data Need Uses
↓
Pergamum requirement bindings
+
SSSR resolution binding groups and bindings
↓
optional form-scoped interaction Items
The most important invariant is:
Requirement identity, Data Need identity, interaction Item identity, SSSR Signal identity, and physical field identity are different identities and MUST remain different.
FOGE therefore models what information is required before it models what a user should be asked.
2. Architectural boundary
The FOGE definition layer is a design- and governance-time persistence model.
It stores deterministic compiled definitions that can later be used by runtime systems. It does not store tenant values or runtime completion state.
2.1 Pergamum Pulse
Pergamum Pulse owns authoritative requirement meaning, including:
- requirement identity and version;
- authoritative source lineage;
- applicability semantics;
- temporal scope;
- subject and object scope;
- cardinality and completeness;
- evidence expectations;
- attestation requirements;
- derivation and estimation permissions;
- reuse constraints;
- acceptance constraints; and
- alternative pathways.
FOGE pins the exact Pergamum object version used during compilation. FOGE does not reinterpret the governing legal or methodological source.
2.2 FOGE
FOGE owns the compiled interaction contract:
- release identity;
- stable form identity and exact Form Version;
- reusable semantic Data Needs;
- the complete set of Data Need Uses for a Form Version;
- reusable interaction Items;
- form-scoped Item placement;
- Item-to-Data-Need interaction relationships;
- exact Pergamum requirement bindings;
- exact SSSR resolution-path projections; and
- publication and immutability rules.
2.3 SSSR
SSSR owns canonical signal semantics and the governed mapping from semantic signals to physical data reality.
FOGE may pin:
- SSSR binding-group identity and version;
- SSSR binding identity and version;
- SSSR Signal identity;
- resolution capability;
- governed mapping identity where applicable;
- binding and provenance digests.
FOGE does not duplicate tenant row identity, runtime signal values, or SSSR-owned physical field mappings.
2.4 Runtime systems
Runtime systems resolve whether the compiled Data Need is already satisfied and what interaction, if any, is still necessary.
Typical runtime responsibilities include:
- ZSSR routing and materialization;
- MICE or other governed computation;
- DaVE validation;
- DICE completeness and integrity;
- TrustGate and assurance evaluation;
- FFG rendering;
- CRE-FFG contextual presentation; and
- ZARA explanation and lineage.
The definition layer remains stable while runtime observations vary by tenant, subject, reporting period, source availability, evidence quality, and trust state.
3. Canonical object model
The model has three different concepts that are easy to confuse: identity, version, and use.
Stable identity
↓
Reusable immutable version
↓
Use inside one exact Form Version
For example:
DN-WGD-BU
stable Data Need identity
↓
Data Need Version 1.0.0
reusable semantic definition
↓
Form Data Need Membership
this exact Form Version's use of that semantic definition
The same pattern exists for interaction Items:
Stable Item identity
↓
Reusable Item Version
↓
Form Item Membership
This separation is what allows a semantic definition to be reused without allowing a later Form to mutate the meaning of an older published Form.
4. Schema placement
FOGE definition persistence is split between two canonical schemas.
core_metadata
Contains identities, versioned definitions, release metadata, and structural configuration.
core_relations
Contains form-scoped relationships, memberships, requirement bindings, and SSSR binding projections.
The current definition model contains fourteen FOGE tables and one convenience view.
| Schema | Relation | Role |
|---|---|---|
core_metadata | foge_framework_releases | Governed release envelope for compiled FOGE definitions |
core_metadata | foge_forms | Stable form identity |
core_metadata | foge_form_versions | Exact immutable compiled Form Version after publication |
core_metadata | foge_sections | Structural/presentation grouping inside one Form Version |
core_metadata | foge_items | Stable interaction Item identity |
core_metadata | foge_item_versions | Reusable versioned interaction definition |
core_metadata | foge_data_needs | Stable semantic Data Need identity |
core_metadata | foge_data_need_versions | Reusable versioned semantic definition |
core_relations | foge_form_data_need_memberships | Complete Data Need set for one Form Version; each row is a Data Need Use |
core_relations | foge_form_item_memberships | Placement/use of an Item Version in one Form Version |
core_relations | foge_form_item_data_need_bindings | Form-scoped relationship between interaction Items and Data Need Uses |
core_relations | foge_pergamum_data_need_bindings | Exact Pergamum requirement semantics applied to one Data Need Use |
core_relations | foge_data_need_sssr_binding_groups | Form-scoped governed SSSR resolution paths for one Data Need Use |
core_relations | foge_data_need_sssr_bindings | Exact SSSR binding members pinned into a resolution path |
core_relations | v_foge_item_signal_bindings | Convenience projection from Item → Data Need Use → SSSR Signal |
5. Releases, forms, and Form Versions
5.1 core_metadata.foge_framework_releases
A framework release is the governed release envelope for one deterministic FOGE compilation set.
Important fields include:
| Field | Meaning |
|---|---|
release_id | Stable release identifier |
framework_code | Framework or governed release family |
release_version | Version of the release |
publication_status | draft or published |
source_pp_object_id / source_pp_object_version | Optional exact Pergamum source object pair for release-level lineage |
supersedes_release_id | Prior release replaced by this release |
canonical_json_uri | Canonical serialized release artifact |
content_digest | Integrity digest of the published release |
effective_from / effective_to | Effective period where used |
A published release is immutable.
A release can be published only after every child Form Version belonging to that release is already published.
5.2 core_metadata.foge_forms
foge_forms stores stable Form identities.
A Form identity survives across versions. It represents the conceptual form or governed interaction family, not one immutable compiled snapshot.
Typical fields are:
form_id;framework_code;canonical_name;description;form_family; and- lifecycle
status.
5.3 core_metadata.foge_form_versions
A Form Version is the primary replay boundary.
It pins one exact compiled graph consisting of:
- Data Need Uses;
- Pergamum bindings;
- SSSR resolution paths;
- SSSR binding members;
- Sections;
- Item memberships; and
- Item-to-Data-Need bindings.
Important fields include:
| Field | Meaning |
|---|---|
form_version_id | UUID identity of this exact Form Version |
form_id | Stable Form identity |
release_id | Owning framework release |
version | Form semantic version |
publication_status | draft or published |
supersedes_form_version_id | Prior Form Version |
content_digest | Digest required for publication |
form_configuration | Form-level compiled configuration |
effective_from / effective_to | Optional effective period |
A Form Version MUST be created as draft, compiled completely, validated, and then published.
Once published, both the Form Version and its compiled child graph become immutable.
6. Sections and presentation structure
core_metadata.foge_sections provides structural grouping for interactions within a Form Version.
Sections are not the semantic source of truth. A Data Need can exist in a Form Version even when no Section or user-facing Item is required.
Key properties are:
section_id;form_version_id;section_key;- optional
parent_section_id; title;sort_order; andpresentation.
The composite parent foreign key requires a parent Section to belong to the same Form Version.
Sections become immutable when their parent Form Version is published.
7. Data Needs: the semantic center of the model
7.1 Stable identity: core_metadata.foge_data_needs
A Data Need is a semantic information concept.
It answers:
What information does FOGE need to know?
It does not answer:
Which database field stores it?
and it does not answer:
Which question should a user see?
The stable identity table contains:
data_need_id;canonical_name;description; and- lifecycle
status.
7.2 Reusable meaning: core_metadata.foge_data_need_versions
A Data Need Version freezes the intrinsic meaning of the information object.
It may define:
| Field | Purpose |
|---|---|
semantic_concept_ref | Governed semantic concept reference where available |
semantic_description | Human-readable canonical meaning |
value_kind | Scalar, structured collection, classification, etc. |
value_schema | Expected structural shape |
grain | Subject/object grain |
dimensions | Semantic dimensions of the value |
intrinsic_cardinality | Cardinality intrinsic to the information object |
unit_requirement | Intrinsic unit semantics where material |
classification_vocabulary_ref | Governed classification vocabulary where required |
content_digest | Integrity digest required when published |
A published Data Need Version is immutable but reusable by future Forms.
Requirement-specific legal rules do not belong in the reusable Data Need Version. Those rules belong on the Pergamum-to-Data-Need binding for an exact Form Data Need Use.
8. Data Need Use: core_relations.foge_form_data_need_memberships
This is one of the most important tables in the model.
A row in foge_form_data_need_memberships means:
This exact Form Version uses this exact published Data Need Version under this exact resolution policy.
The table therefore converts a reusable semantic definition into a compiled Data Need Use.
Key fields are:
| Field | Meaning |
|---|---|
membership_id | Identity of this Data Need Use |
form_version_id | Exact Form Version |
data_need_version_id | Reusable semantic definition being used |
resolution_selection_policy | Policy for selecting between SSSR resolution paths |
requirement_binding_required | Whether publication requires Pergamum lineage |
resolution_binding_required | Whether publication requires an SSSR path |
allow_unresolved_resolution | Explicit exception allowing only an UNRESOLVED path |
membership_configuration | Form-specific configuration for the use |
The supported outer resolution-selection policies are:
single
first_applicable
highest_priority_applicable
all_applicable
manual_review
resolver
The default is intentionally strict:
- Pergamum binding required;
- SSSR resolution binding required; and
- unresolved-only publication prohibited.
This is the form-scoped point where reusable semantic meaning becomes replay-specific configuration.
9. Pergamum requirement binding
core_relations.foge_pergamum_data_need_bindings pins an exact Pergamum object version to an exact Data Need Use.
This table answers:
What does this particular governed requirement demand from this semantic Data Need in this Form Version?
The exact requirement identity is represented by:
pp_object_id
+
pp_object_version
and is enforced by a foreign key to pp.object_version(object_id, version).
Requirement-specific semantics are stored separately from the reusable Data Need definition, including:
obligation_context;applicability_contract;temporal_scope;subject_scope;object_scope;cardinality;completeness;satisfaction_contract;evidence_expectation;attestation_policy;derivation_policy;estimation_policy;reuse_policy;acceptance_constraints;alternative_pathway_ref; andsource_digest.
This separation is essential because two requirements may reuse the same Data Need while imposing different completeness, evidence, freshness, derivation, estimation, or acceptance rules.
10. SSSR resolution paths
FOGE does not attach one signal_ref directly to an interaction Item.
Instead, a Data Need Use can have one or more governed resolution paths.
Data Need Use
↓
SSSR Binding Group projection
↓
one or more SSSR Binding projections
↓
canonical SSSR Signal identities
10.1 core_relations.foge_data_need_sssr_binding_groups
Each row represents one form-scoped projection of an external governed SSSR Binding Group or resolution path.
Important fields include:
| Field | Meaning |
|---|---|
projection_id | FOGE-local identity of the pinned path projection |
form_version_id | Exact Form Version |
form_data_need_membership_id | Exact Data Need Use |
semantic_property_path | Semantic property within the Data Need; default value |
sssr_binding_group_id / version | External governed SSSR group identity and version |
path_key | Logical path key, such as primary |
path_priority | Ordering between paths |
group_selection_policy | Policy for choosing members inside this group |
resolution_capability | STORED, DERIVABLE, ACQUIRABLE, or UNRESOLVED |
group_status | Governance lifecycle state |
group_snapshot_digest | Digest of the pinned external binding-group snapshot |
provenance_digest | Digest supporting binding provenance |
10.2 Outer policy versus inner policy
FOGE has two distinct selection levels.
Data Need Use
resolution_selection_policy
↓
selects between SSSR groups / paths
↓
SSSR group
group_selection_policy
↓
selects between member bindings inside that path
These policies MUST NOT be collapsed.
If the outer policy is single, the Data Need Use cannot publish with multiple SSSR groups.
If a group's inner policy is single, that group cannot publish with multiple member bindings.
10.3 Resolution capability is not runtime satisfaction
The binding-group capability values are:
STORED
DERIVABLE
ACQUIRABLE
UNRESOLVED
These describe how a semantic signal can be obtained.
They do not describe whether a particular tenant or reporting period already has a valid value.
For example:
STORED
means ZAYAZ knows a governed stored representation exists. It does not mean the runtime Data Need is already satisfied.
11. SSSR binding members
core_relations.foge_data_need_sssr_bindings pins exact SSSR binding members into one exact group projection.
Important fields are:
| Field | Meaning |
|---|---|
projection_binding_id | FOGE-local projection identity |
projection_id | Parent SSSR group projection |
sssr_binding_id / version | Exact external binding identity and version |
sssr_signal_id | Canonical SSSR Signal identity |
binding_kind | Role played by the binding, such as value source or computation input |
priority | Member ordering |
mapping_system / mapping_id / mapping_version | Optional governed mapping triplet |
resolution_capability | Member capability |
binding_status | Governance lifecycle state |
binding_snapshot_digest | Digest of the pinned binding snapshot |
provenance_digest | Binding provenance digest |
The mapping triplet is all-or-nothing: the three mapping fields must either all be absent or all be present.
FOGE stores enough information to replay which governed binding was selected, but not SSSR-owned physical field semantics or runtime values.
12. Interaction Items
12.1 Stable identity: core_metadata.foge_items
An Item is an interaction concept.
Examples include:
- confirmation;
- manual input;
- evidence upload;
- attestation;
- review; or
- guided action.
An Item is not the semantic information itself.
12.2 Reusable version: core_metadata.foge_item_versions
An Item Version may define:
item_type;prompt;help_text;interaction_configuration;presentation;ai_modification_policy; and- integrity/source metadata.
Published Item Versions are immutable and reusable by later Forms.
12.3 Form-scoped use: core_relations.foge_form_item_memberships
A Form Item Membership places one published Item Version inside one exact Form Version and Section.
It adds form-specific behavior such as:
sort_order;interaction_when;display_when; andmembership_configuration.
The Item remains optional at the model level. A complete Form Version can contain Data Need Uses and no Item memberships at all.
That is how FOGE supports a valid zero-question result.
13. Item-to-Data-Need relationship
core_relations.foge_form_item_data_need_bindings links interaction to semantic need.
The relationship is many-to-many:
Item A ─────┐
├──► Data Need 1
Item B ─────┘
Item C ─────► Data Need 2
└─────► Data Need 3
This supports:
- one Item confirming several Data Needs;
- several Items contributing to one Data Need;
- different interaction projections for the same semantic Data Need; and
- no Item at all when runtime resolution is sufficient.
The interaction_role explains the purpose of the relationship, for example:
collects
confirms
attests
evidences
reviews
Composite foreign keys enforce that both the Item membership and the Data Need membership belong to the same form_version_id.
This prevents cross-form semantic leakage.
14. Why the model is many-to-many
The model intentionally permits:
Requirement ↔ Data Need
Several Pergamum requirements may rely on the same semantic information.
One requirement may also require several Data Needs.
Data Need ↔ Item
One Data Need may be collected, confirmed, evidenced, or reviewed through different Items.
One Item may cover several related Data Needs.
Data Need ↔ SSSR Signal
One Data Need may map directly to one signal, use alternative signal paths, or be derivable from several input signals.
This is why the architecture cannot safely be reduced to:
requirement → question → signal_ref
15. Publication lifecycle
Publication is the point where a compiled definition becomes replayable and immutable.
The intended sequence is:
1. Create stable Data Need identity
2. Create and publish reusable Data Need Version
3. Create stable Item identity where interaction is needed
4. Create and publish reusable Item Version
5. Create draft framework release
6. Create draft Form Version
7. Compile complete Data Need Uses
8. Pin exact Pergamum requirement bindings
9. Pin exact SSSR binding groups and member bindings
10. Add Sections and optional Item memberships
11. Bind Items to Data Need Uses
12. Publish Form Version
13. Publish framework release
15.1 Drafts remain editable
Draft definition rows and draft compiled graphs may be changed while compilation is incomplete.
15.2 Published reusable definitions freeze meaning
Published Data Need Versions and Item Versions cannot be updated or deleted.
A semantic change requires a new version.
15.3 Published Form Versions freeze the compiled graph
After a Form Version is published, FOGE blocks later insertion, update, deletion, or movement of its form-scoped children.
This includes:
- Sections;
- Data Need Uses;
- Item memberships;
- Item-to-Data-Need bindings;
- Pergamum bindings;
- SSSR binding-group projections; and
- SSSR binding projections.
15.4 Published releases freeze child membership
After a framework release is published, later Form Versions cannot be inserted into, moved into, updated within, or deleted from that published release.
16. Form publication gates
A Form Version cannot be published merely because all rows exist.
The publication validator enforces semantic readiness.
A Form Version is rejected where any of the following is true:
- a referenced Data Need Version is not published;
- a referenced Item Version is not published;
- a Data Need Use requires Pergamum lineage but has no Pergamum binding;
- a Data Need Use requires SSSR resolution but has no SSSR group;
- unresolved-only SSSR resolution is present without explicit
allow_unresolved_resolution = true; - a resolvable SSSR group has no member binding;
- an
UNRESOLVEDSSSR group contains member bindings; - a resolvable SSSR group is not
activeoractive_with_conditions; - an SSSR member binding is not
activeoractive_with_conditions; - a Data Need Use uses outer policy
singlebut has multiple SSSR groups; or - an SSSR group uses inner policy
singlebut has multiple member bindings.
An explicitly UNRESOLVED group is permitted only where the Data Need Use deliberately allows unresolved publication, and that unresolved group must contain no approved binding members.
17. Replay and historical correctness
The Form Version is the historical replay boundary.
This is why FOGE pins exact versions and digests instead of following "latest" SSSR or Pergamum state at replay time.
A historical Form Version should answer:
- which reusable Data Need Version was used;
- which Pergamum object version governed it;
- which SSSR binding group and binding versions were selected;
- which SSSR Signal identities participated;
- which Item Versions were available;
- which interaction relationships were compiled; and
- which release contained the Form Version.
Later governance changes create new versions or new Form Versions rather than rewriting history.
18. Runtime states are outside this layer
The following runtime states are conceptually important to FOGE but are not stored in the definition tables described in this chapter:
SATISFIED
PREFILLED
NEEDS_CONFIRMATION
MISSING
NOT_APPLICABLE
WAIVED
BLOCKED
Those states belong to runtime resolution and projection.
The definition layer also does not store:
- tenant signal values;
- tenant row identities;
- completed Form Instances;
- runtime applicability decisions;
- TrustGate decisions;
- evidence-evaluation results;
- current user responses;
- Delta Form instances;
- rendered UI state; or
- SSSR-owned physical database field mappings.
A definition row describes what the compiled contract is.
A runtime row or observation describes what is true for this execution context now.
The distinction MUST remain explicit.
19. Common query patterns
19.1 List the complete Data Need set for one Form Version
SELECT
fdnm.membership_id,
dn.data_need_id,
dn.canonical_name,
dnv.version,
dnv.semantic_description,
fdnm.resolution_selection_policy
FROM core_relations.foge_form_data_need_memberships fdnm
JOIN core_metadata.foge_data_need_versions dnv
ON dnv.data_need_version_id = fdnm.data_need_version_id
JOIN core_metadata.foge_data_needs dn
ON dn.data_need_id = dnv.data_need_id
WHERE fdnm.form_version_id = :form_version_id
ORDER BY dn.data_need_id;
19.2 Trace Data Need Uses to Pergamum authority
SELECT
fdnm.membership_id,
dnv.data_need_id,
ppb.pp_object_id,
ppb.pp_object_version,
ppb.binding_role,
ppb.completeness,
ppb.derivation_policy,
ppb.estimation_policy
FROM core_relations.foge_form_data_need_memberships fdnm
JOIN core_metadata.foge_data_need_versions dnv
ON dnv.data_need_version_id = fdnm.data_need_version_id
JOIN core_relations.foge_pergamum_data_need_bindings ppb
ON ppb.form_data_need_membership_id = fdnm.membership_id
AND ppb.form_version_id = fdnm.form_version_id
WHERE fdnm.form_version_id = :form_version_id;
19.3 Trace Data Need Uses to SSSR resolution paths
SELECT
fdnm.membership_id,
dnv.data_need_id,
sgrp.path_key,
sgrp.resolution_capability AS path_capability,
sgrp.sssr_binding_group_id,
sb.sssr_binding_id,
sb.sssr_binding_version,
sb.sssr_signal_id,
sb.binding_kind,
sb.resolution_capability AS binding_capability
FROM core_relations.foge_form_data_need_memberships fdnm
JOIN core_metadata.foge_data_need_versions dnv
ON dnv.data_need_version_id = fdnm.data_need_version_id
JOIN core_relations.foge_data_need_sssr_binding_groups sgrp
ON sgrp.form_data_need_membership_id = fdnm.membership_id
AND sgrp.form_version_id = fdnm.form_version_id
LEFT JOIN core_relations.foge_data_need_sssr_bindings sb
ON sb.projection_id = sgrp.projection_id
AND sb.form_version_id = sgrp.form_version_id
WHERE fdnm.form_version_id = :form_version_id
ORDER BY sgrp.path_priority, sb.priority;
19.4 Inspect Item → Data Need → Signal relationships
SELECT *
FROM core_relations.v_foge_item_signal_bindings
WHERE form_version_id = :form_version_id
ORDER BY item_version_id, data_need_version_id, binding_priority;
The convenience view is intentionally form-scoped. It must not be used to infer that an Item directly owns a signal.
19.5 Detect a definition-level zero-question Form
SELECT
fv.form_version_id,
count(DISTINCT fdnm.membership_id) AS data_need_uses,
count(DISTINCT fim.membership_id) AS interaction_items
FROM core_metadata.foge_form_versions fv
LEFT JOIN core_relations.foge_form_data_need_memberships fdnm
ON fdnm.form_version_id = fv.form_version_id
LEFT JOIN core_relations.foge_form_item_memberships fim
ON fim.form_version_id = fv.form_version_id
WHERE fv.form_version_id = :form_version_id
GROUP BY fv.form_version_id;
A Form Version may legitimately have Data Need Uses and zero interaction Items.
Runtime still determines whether the Data Needs are actually satisfied for a particular execution context.
20. Design invariants
The definition model should be reviewed against the following invariants.
Invariant 1 — Meaning before interaction
FOGE MUST model what it needs to know before it models what it needs to ask.
Invariant 2 — Requirement is not Data Need
Pergamum requirement semantics are bound to a Data Need Use; they are not embedded into the reusable Data Need definition.
Invariant 3 — Data Need is not Item
A semantic need may exist with no user-facing interaction.
Invariant 4 — Data Need is not SSSR Signal
FOGE owns the semantic need within the interaction contract; SSSR owns canonical signal semantics and resolution metadata.
Invariant 5 — Signal is not physical field
FOGE stores SSSR identities and governed binding snapshots, not physical field ownership.
Invariant 6 — Form Version is the compiled replay boundary
All replay-specific bindings are scoped to the exact Form Version.
Invariant 7 — Published means immutable
A published semantic version or compiled Form graph is replaced through new versioning, not in-place mutation.
Invariant 8 — Unknown is explicit
Where governed resolution is incomplete, the model uses an explicit UNRESOLVED path rather than silently inventing a signal or treating missing information as non-applicable.
21. Implementation references
The canonical persistence implementation is maintained in:
/sql/017_create_foge_definition_foundation.sql
The executable conformance suite is maintained in:
/sql/tests/017_foge_definition_foundation_validation.sql
The related architectural contracts are maintained in the same FOGE manual area:
/computation-hub-tables/foge/pp-to-foge-requirement-execution-contract.mdx
/computation-hub-tables/foge/foge-to-sssr-signal-discovery.mdx
/computation-hub-tables/foge/foge-many-to-many-signal-binding-model.mdx
The detailed FOGE engine behavior is maintained in:
/computation-hub-calcs/form-engine.mdx
The workforce-gender governed reference specimen provides the worked model for the relationships described in this chapter.