Skip to main content

Formalizing the Unknown: A Topology of Gaps

An ontology-driven ingestion system must represent more than what it believes to be present. It must also represent which obligations are not satisfied, which interpretations remain undecided, and which explicit declarations cannot coexist.

OntoGraph calls these conditions gaps only where the canonical or executable contract does so. Not every invalid state is collapsed into one generic SemanticGap.

Delivery status

StatusBoundary
ImplementedThe Rust state-transition calculus emits typed SemanticGap, ProvenanceGap, MissingIdentityRoot, DanglingMediation, CircularInheritance, RigidityViolation, and DisjointPhaseConflict values for its bounded explicit profile.
Bounded proofImport and active-canon fixtures expose separate provenance and semantic gap read models and non-assertive follow-up questions.
PlannedA unified gap inbox that groups note-ingestion gaps across source versions, measures resolution progress, and drives the general dialogue interface.

Three independent axes

The unknown is easier to reason about when it is separated into three axes.

AxisQuestionRepresentative condition
InterpretationDo we know what this supplied record means in the active profile?SemanticGap
GroundingCan the claim be traced to a live assertion and source-bearing Artifact?ProvenanceGap
Structural consistencyCan the explicit declarations coexist under the selected rules?MissingIdentityRoot, RigidityViolation, DanglingMediation, CircularInheritance, DisjointPhaseConflict

These axes are orthogonal. A claim can have perfect textual provenance and still have ambiguous meaning. A classifier can have an explicit stereotype and still lack a valid identity root. Two phase memberships can each be fully evidenced and still conflict at the same state time.

SemanticGap: meaning is not explicit enough

A SemanticGap says that the source record exists but the ontological interpretation required by the current rule is absent or unsupported. In the bounded calculus, a referenced classifier without one of the explicitly supported stereotypes is a semantic gap. The engine does not guess the stereotype from a label, collection name, URI, or graph shape.

Example: three notes mention XYZ, but none declares whether XYZ is an enduring object, an occurrence, or merely a source-local term. The text is known; the required interpretation is not.

ProvenanceGap: the claim has lost its grounding

A ProvenanceGap says something different. The interpretation may be clear, but the chain back to source material is incomplete. In the current calculus, an active canonical Evidence object must connect its Assertion to at least one distinct live Artifact or Source identity. Removing or deactivating an endpoint while retaining the Evidence produces a typed provenance failure.

Example: a candidate states that IP-9 authorizes maintenance, but no exact Artifact/span or derivation can be recovered. Repeated wording, a URL, or a confidence score cannot substitute for the missing carrier.

Missing roots and phase conflicts are not renamed gaps

Missing rigid identity and conflicting phases are semantic problems in the broad sense, but the runtime preserves their sharper types:

  • MissingIdentityRoot means a gufo:SubKind, gufo:Phase, or gufo:Role has no explicit ancestry path to a gufo:Kind identity provider.
  • RigidityViolation means an explicit subtype relation places a rigid Kind or SubKind under an anti-rigid Phase or Role.
  • DisjointPhaseConflict means the same identity occupies two explicitly disjoint Phases at the same explicit stateTime.
  • DanglingMediation means an active gufo:Relator does not mediate at least two distinct live identities.

Keeping these variants distinct matters operationally: each one calls for a different question, repair candidate, and evidence requirement.

A small mathematics of incompleteness

The following notation is pedagogical, not a replacement for canonical JSON or runtime validation.

For candidate transition Delta over graph G, let:

O(G, Delta) = obligations introduced by the explicit candidate declarations
W(G, Delta) = obligations with valid, inspectable witnesses
U(G, Delta) = O(G, Delta) minus W(G, Delta)
C(G, Delta) = explicit contradictions found by the rule matrix

A bounded transition can pass only when:

blocking(U(G, Delta)) is empty
and
C(G, Delta) is empty

This makes the unknown structurally important. If U is not recorded, the engine cannot distinguish “the evidence says no” from “no sufficient evidence was supplied.” If C is flattened into U, it cannot distinguish missing information from incompatible information.

The gap set is therefore not an error log to discard after parsing. It is part of the decision input: it explains why the candidate cannot advance and what kind of evidence or declaration would change that conclusion.

Gap lifecycle without truth by side effect

StageMeaning
DetectedA typed rule obligation is unmet or a source/canonical gap record is present.
InvestigatingA human or external tool gathers source-backed clarification.
Resolved in a new candidateNew explicit records satisfy the obligation when the complete candidate is recalculated.
Accepted as a tolerated gapA governance Decision may permit a bounded use despite the gap. The gap remains visible.
SupersededLater evidence or interpretation replaces the earlier candidate while preserving lineage.

An accepted gap never becomes positive evidence merely because someone agreed to tolerate it. Likewise, a validation report never becomes a Review or a Promotion.

Why absence is as important as presence

For a high-assurance graph, a positive edge and its unmet preconditions are two parts of the same computation. A proposed Role without a Kind root, a Relator without two participants, and an Assertion without source grounding cannot be evaluated safely if their missing witnesses vanish from view.

OntoGraph's design goal is therefore a graph with two inspectable perimeters: the crisp structure currently supported by explicit witnesses, and the typed set of obligations that remain unresolved. Progress is not measured by making the second perimeter disappear from the UI; it is measured by resolving it with evidence or governing its continued existence honestly.

What this direction does not claim

This topology is not a proof that OntoGraph knows every possible gap or implements all OntoUML, UFO, gUFO, or OntoClean axioms. It does not treat unknown as false, infer missing identity from labels, or allow an accepted gap decision to manufacture the missing evidence.