Skip to content
← Documentation

docs/projection-layers.md


Ontology versus projection — and a withdrawn conclusion

Withdrawal first

general-projection.md concluded that the vocabulary is universal across purposive systems. That was promoted before it was earned. Four hypotheses were available and I collapsed them into one:

  1. universal only over purposive systems;
  2. the vocabulary sits one layer above a more primitive one;
  3. the mapping into the vocabulary is wrong;
  4. purposeless systems need a different semantic layer feeding the same engine.

Measurement now favours (2) and (3), and specifically refutes (1) — because the gap the counterexamples exposed also affects organizations.


1. The measured gap: subjects cannot cease

Constructed a metabolite consumed at 01:00, expressed the only way the vocabulary allows:

at 00:00 -> subjects=[glucose] facts=[placement]
at 01:00 -> subjects=[glucose] facts=[placement,measure]
at 02:00 -> subjects=[glucose] facts=[placement,measure]

Glucose is still placed in the cytosol an hour after being consumed. A fact becomes true at validAt and, absent supersession, is true forever. Quantity can fall to zero; the subject persists in every later world.

And measured in core/time.ts:

export type Window = { from: Instant; to: Instant };

Window is defined and used by nothing. The need was anticipated and never wired.

Why this refutes "purposive is the boundary"

An employee leaves. A service is decommissioned. A contract expires. A task is cancelled. Organizations need cessation exactly as much as cells do. The organizational case has not hit the gap only because HQ's roster is a static register — not because purposive systems are exempt.

So the counterexamples were not showing a boundary of applicability. They were showing a general expressiveness gap that the reference domain happens not to exercise.


2. What invariant was each SubjectKind carrying?

The instruction was to find the lower-level invariant each specializes rather than conclude it is irreducible. Argued, not measured:

Kind Invariant it was carrying
work a subject with bounded temporal extent
resource a subject consumed by relations
artifact a subject produced by relations, then persistent
actor a subject that initiates relations
environment a subject that contains other subjects
agreement a constraint on future relations, with extent

Reducing to dimensions:

  1. temporal extent — bounded or unbounded
  2. conservation role — consumed, preserved, or produced by relation
  3. causal role — initiates or receives
  4. containment — contains or is contained
  5. constraint — constrains future relations, or does not

The six kinds are combinations of five dimensions, and two of them are not subject properties at all: work is extent, agreement is a relation with modality.

The test that matters

Do the dimensions cover the systems the kinds failed on?

Subject extent conservation causal containment constraint
a planet unbounded preserved mutual contained in system constrains via gravity
a metabolite bounded consumed receives contained in cell none
an employee bounded preserved initiates contained in org bound by contract

All three are expressible. The dimensions cover non-purposive systems that SubjectKind could not classify — which is direct evidence for hypothesis (2): the vocabulary is one layer above a more primitive one, not a boundary.


3. Three layers, kept separate

Layer Question Contents
Observed reality what objectively exists bodies, molecules, people, vehicles — no vocabulary at all
Canonical semantics smallest information-bearing structures identity · relation · magnitude · location · extent · provenance
Projection semantics what the renderer actually requires identity · relation · magnitude · location · time

SubjectKind appears in none of them. It survived no falsification attempt and the renderer never needed it: layout.ts and metric.ts ran on four domains without consulting a kind. It is an organizational ontology, useful for classification and reporting, and it is not projection ontology.

Projection requires fewer primitives than semantic interpretation — exactly as suspected. condition, SubjectKind, actor, work, agreement are all interpretation-layer; none reaches the engine.


4. Can the engine be falsified?

The strongest available test: two systems with identical topology and identical magnitudes that demand different spatial interpretation.

Constructed one graph a→b→c→d with weights 0.9/0.8/0.7 under four readings:

TRANSFORMATION  a becomes b    (a ceases; one substance over time)
TRANSFER        a sends to b   (both persist; a thing moves)
DEPENDENCY      a needs b      (both persist; nothing moves)
CAUSATION       a triggers b   (both persist; influence only)

Engine output, all four identical: a:1.8155,0 | b:0.7044,0 | c:-0.5456,0 | d:-1.9742,0 stress=0.0000

Under transformation that rendering is false: it depicts four coexisting entities where reality has one substance in sequence. So the engine does produce a wrong picture from a correct graph.

But the failure is upstream, not in the engine

The four readings differ in exactly one respect — whether the relation terminates its source. That is temporal extent, which §1 measured as inexpressible. Given extent, the four are not the same input: at any lens, transformation has one extant subject and the others have four.

The engine appears semantic-independent given complete canonicalization. The falsification found here is a canonicalization gap, not an engine defect.

That is the stronger result, and it is conditional: it holds only if extent is the last missing primitive. That is not established. The honest status is that one falsification attempt located a gap upstream rather than in the engine, which is evidence for semantic-independence and not proof of it.


5. Classification

Element Verdict
identity (SubjectRef) universal — survived every attempt
relation (exchange) universal — measured on four domains
magnitude (measure) universal
location (placement) universal, with direction of derivation reversing by domain
time (validAt/recordedAt) universal but incomplete — no extent
provenance (Evidence) universal
extent (Window) universal, and missing — defined, unused, needed by every domain
SubjectKind specialized — five dimensions, not six categories; not projection ontology
work, agreement derived — extent, and constrained relation
condition (20) specialized — normative; interpretation layer only

One candidate architectural pressure, recorded and not acted on: temporal extent is expressible in no current primitive, is needed by organizations as much as by cells, and Window already exists unused. Under the standing rule that is the strongest case yet for extending the ontology — but it is one measurement, and the rule asks for a phenomenon the vocabulary cannot represent, so the first question is whether supersession can encode cessation adequately. That question is open.