Skip to content
← Documentation

docs/degrees-of-freedom.md


Degrees of freedom

The matrix experiment falsified an implicit assumption. The class was correctly selected, the cells preserve the relation exactly, and the row ordering measured 57.6% reversed — worse than the 2-D embedding it replaced.

Representation correctness and realization correctness are independent.

src/lib/grammar/freedom.ts, tests/freedom.test.ts.


1. What a degree of freedom is

Every example in the brief — row order, camera position, colour assignment, animation timing, sibling order, label placement — is the same object:

A degree of freedom is a symmetry of the representation: a transformation under which the represented semantics is invariant.

Permuting rows does not change which cells are filled. Moving the camera does not change the scene graph. Recolouring does not change which category is which. The freedom is the symmetry group, and a realization is a choice of group element.

That is a universal structure, independent of representation class — which was the question. It does not come from the catalogue; the catalogue instantiates it.

2. The obligation follows without further assumption

If a transformation leaves the semantics invariant, then nothing semantic can be read off it. But a viewer reads it anyway — every positional axis asserts an ordering (representation-calculus.md).

Either bind the freedom to a semantic quantity — at which point it is no longer free — or ensure the viewer cannot read it as meaningful. A free channel that asserts is a claim with no owner.

3. No freedom is a symmetry of everything

The residue is where realizations fail while the representation stays correct:

Freedom Preserves Leaks
row/column order which cells are filled block structure; adjacent rows read as similar
sibling order ancestry left-to-right reads as rank
node order in a layer flows and magnitudes crossings; vertical position reads as rank
camera the scene graph occlusion, foreshortening — a symmetry of the model, not the image
colour assignment distinctness, given a legend without a legend nothing survives
animation timing the order of events rate and duration — an eased tween invents acceleration
label placement which label belongs to which mark at density, association itself

Two are worth stating separately because they show "symmetry" must be relative to something:

  • Permuting only rows changes the relation. The group is the simultaneous row-and-column action, not either alone.
  • The camera is a symmetry of the model and not of the image. That is why a camera can be "correct" and still hide half the scene.

4. Status is a property of (freedom, grounds)

Not of the representation. Same freedom, three worlds, three answers:

Grounds Status Obligation
bound to a semantic quantity derived none — the symmetry is broken deliberately
a metric exists measured report the score. A measurable freedom left unmeasured is an unstated claim
a shared expectation exists conventional declare it — a convention cannot be false, only unuseful
nothing arbitrary if the channel asserts, neutralise or declare meaningless

This mirrors coverage being delivered rather than advertised in selection.md: a property of the pairing, not of the class.

5. The matrix, decomposed

Component Status Result
cell occupancy derived — bound to the co-change relation exact
row/column order measured — a metric exists 57.6% reversed

The class was right and one of its internal freedoms was not. So matrix is not a terminal representation; it is a family of realizations, and the members differ in something the calculus above it cannot see.

Note that measured is not a pass. It obliges a number, and the number came back worse than the thing it replaced. A realization that had chosen a seriation and not measured it would have satisfied every layer above and still misled.

6. The defect class this layer names

An unowned claim: a freedom that is arbitrary, or measurable-and-unmeasured, while occupying a channel that asserts.

unowned claims: row/column order, camera position and rotation

Not flagged: label placement (channel asserts nothing), animation timing (bound to observed timestamps), colour assignment (convention declared). The audit separates the four cases rather than warning about everything.

The camera result applies to the existing renderer. WorldScene has a camera with no semantic binding, no metric, and no declared convention — arbitrary, on a channel that asserts. It was never audited because the channel audit examined position, scale and colour, and the camera is not a channel. It is a freedom, and this is the layer that can see it.


Standing

Question Answer
Do realizations have a universal structure? yes — a freedom is a symmetry group
Independent of representation class? yes — derived from invariance, not from the catalogue
Does the obligation follow? yes — from invariance plus the asserting-channel law
Are the four statuses distinct? yes, and status depends on grounds, not class
Is this orthogonal to the layers above? yes — the matrix passes selection and fails realization

What is still not established

  • Seven freedoms is a sample. Aspect ratio, scale/zoom, projection type, easing curves and z-ordering are absent.
  • channelAsserts is declared per freedom, not derived from the channel it occupies. It should fall out of the representation calculus and currently does not.
  • The framework classifies and does not optimise, as directed. Nothing here chooses a better seriation or a better camera.
  • The camera finding is not measured. It is a classification from the grounds, and no instrument has yet scored what a WorldScene camera occludes.

194 → 201 tests, tsc clean.