docs/observation-basis.md
The minimal basis of observations
Derived by audit, not by argument. Every visual element was traced to the
measured quantity that generated it, and every World field to the fact family
it descends from.
What the platform actually emits
One acquisition of this repository, 1340 facts:
| family | count | what it observes |
|---|---|---|
exchange |
596 | a commit touched a file |
measure |
558 | repo/bytes, repo/commits-touching, repo/authors-touching |
placement |
186 | a file sits in a directory |
condition |
0 | declared by the manifest (stalled), emitted never |
Every fact carries id · validAt · recordedAt · evidence. Identity and time
are attributes of every fact, not families of their own — there is no
"identity observation" to make.
Observed vs derived
| derived from | |
|---|---|
| coupling | exchange — co-change over commits, then shortest path |
| position | coupling — so, exchange at two removes |
| district | placement |
| height | measure repo/bytes |
| activity | measure repo/commits-touching |
| agents | exchange — commit authors |
| ChangeSet | the same families at two validAt instants |
| search index | identity alone |
Coupling and change are not primitive. Coupling is a transform of
exchange; change is a comparison of two instants of everything. That corrects
the proposed basis {containment, coupling, change, identity, time}: two of its
five members are derived, two are attributes, and it omits measure — the
magnitude family that produces height, activity, and every number in the
inspector.
The regeneration test
Every World field read by any surface, and its lineage:
| field | family | surfaces |
|---|---|---|
| buildings | placement + measure (position via exchange) | 3 |
| districts | placement | 1 |
| links | exchange | 3 |
| measurements | measure | 1 |
| agents | exchange | 3 |
| history | exchange + time (the same facts, listed instead of counted) | 1 |
| unplaced | placement + exchange (absence of coupling) | 2 |
| origin | identity + time | 1 |
| stats / focus | derived | 2 |
| unobserved | none | 2 |
| window | none | 1 |
Everything regenerates from {placement, measure, exchange, condition} plus
identity and time — except two fields, and they are the finding.
A second class: facts about the observation
unobserved and window descend from no fact family because they are not
about the world. They are about the act of observing it:
unobserved— paths the connector's vocabulary does not coverwindow— how far back the history reached, and whether it was truncated- refusals — phenomena the ontology cannot hold at all
These cannot be expressed as facts about subjects, because their subject is the observer. Every one of them was added after a measured failure — a Python repository reporting an empty city, a shallow clone fabricating a commit, an omission nobody could see. They are not decoration on the ontology; they are a second axis of it.
The basis is: four fact families about subjects, carrying identity and time, plus a class of facts about the observation itself.
Answering the question directly: yes — if Cognithamus measured only these, every panel, city, review, search result and dashboard regenerates. Nothing in the audit is untraced once the second class is admitted.
Integration value — not measured, and why
The open question was whether a reader answers faster from C than from B and D consulted separately. That is a comprehension claim and I cannot measure it. Condition 3 of the standing objective says so explicitly: no test here can establish that a person understood something.
What is objectively measurable is a structural proxy — how many views a task requires:
| task | B | C | D | views needed |
|---|---|---|---|---|
| what is this made of | ✓ | partly | — | 1 |
| what belongs together | — | ✓ | ✓ | 1 |
| which directory is largest | ✓ | ✓ | — | 1 |
| does this directory change as a unit | — | ✓ | ✓ | 1 |
| is this big file also central | ✓ | — | ✓ | 2 |
Only the last needs two views, and C answers neither half of it exactly. So the structural case for C is one task, and that task is not one C solves.
Integration value remains unmeasured. It would need a human protocol — same question, same data, time to correct answer, C versus B+D. Until that exists, C is a hypothesis about comprehension, and this file will not pretend otherwise.
Consequence
The product is not a city. It is an observation engine, and every view is a projection of the basis above. The city is one projection, currently a dominated one (representation-family).
Optimising a projection cannot add information. Only the basis can — which is why the two additions that mattered most this month were both to the second class, and neither touched a pixel.