# THE BELIEF NEBULA

*A breathing claim-cosmos with twin time — the one view that holds all six dimensions of a 40-million-claim contradiction-saturated substrate at once, and refuses to collapse a single one.*

**2026-06-05**

## The provocation

This week we built donto twelve dashboards. One per dimension: a maturity histogram, a tx_time accretion curve, a valid_time validity-extent chart, an evidence-coverage gauge stuck honestly at 2.4%, a predicate Zipf plot, an argument sign-ratio bar, an identity-edge census. Each is correct. Each is useful. Together they are a lie of omission.

Because the substrate is not twelve things. It is **one** thing, and its dimensions are *coupled* in a way no grid of small multiples can show. A contradiction in donto is not an event you can plot on the "contradiction chart." When `ex:port-louis` acquires an eleventh competing `rdfType`, that single act is *simultaneously* a transaction-time event (someone believed it at instant T), a valid-time fact (it claims to hold over some world-interval), an evidence event (anchored to a span, or — as it happens — not), an identity event (is *this* Port-Louis the same as *that* one?), and an epistemic event (a new fork at some maturity, some confidence, some polarity). Splitting that one moment across twelve charts is like describing a chord by playing its notes on twelve different days.

The 6D goal, then, is not decoration. It is **fidelity**. Show all six dimensions of a claim — *who* it is about (entity), *what relation* (predicate), *what value* (object), *when we believed it* (tx_time), *when it is true in the world* (valid_time), and *what we epistemically know about it* (evidence + maturity + confidence + polarity) — in a single coherent frame where you can see the coupling, not just the marginals. Not six charts. One sky.

## The six dimensions, and why they will not separate

**D1 — Entity / subject.** Who or what the claim is about. ~23,000 contexts, millions of subjects. Semantic identity, and in donto it is *soft*: `same`, `possibly_same`, `distinct`, `not_enough_information` all coexist on the same symbol. There is no canonical node to point at.

**D2 — Predicate.** The freely-minted relation — **~880,000 of them**, embedding-positioned, query-time-foldable into alignment families. This is the abundance signature itself. `killedBy` and `assassinatedBy` are different predicates that *fold* but never *merge*. The long tail of hapax predicates is not noise; it is the firehose working as designed.

**D3 — Object.** The value: an IRI (a thing) or a typed literal (a string, a date, a number). The same (subject, predicate) routinely carries *many* surviving objects. This is the irreducible site of contradiction.

**D4 — tx_time.** *Belief* time — when donto came to hold the claim. Retraction caps its upper bound; the claim is never deleted, only ember-capped. This is the substrate coming to know.

**D5 — valid_time.** *World* time — the daterange over which the claim asserts it is true. Orthogonal to D4 by construction. Brooks was exonerated and *valid as innocent from 1996*, but donto only *believed* it in 2026. The thirty-year gap between D4 and D5 is not an artifact. It is the harm, made measurable.

**D6 — Epistemic status.** A composite, but its sub-channels are independent and must stay independent: **maturity** E0–E7 (lifecycle, with the load-bearing E1→E2 *waterline* where a hypothesis is first pulled toward reality); **evidence-anchoring** (anchored vs. hollow — only **2.4%** of statements are anchored, the single most important hole in the substrate); **confidence** [0,1]; and **polarity** (asserted vs. negated).

These six are irreducible because **they are coupled at the moment of the claim and decouple only in time.** A popular-but-unproven claim (high belief-mass, low maturity, zero evidence) is geometrically *distinct* from a quiet-but-solid one — but only if maturity, evidence, and belief-mass are on separate channels of the *same mark*. The instant you average them into a "truthiness" score, you have told the central lie. The view's whole job is to keep them apart while keeping them *together in one frame.*

## The visualization: THE BELIEF NEBULA

Render the substrate as a **deep-field astrophotograph that breathes through belief-time.**

Every claim is a **star** in a semantic sky. The sky is not a backdrop — it *is* the 880K-predicate abundance field, rendered as faint nebular gas so the long tail is luminous mass, never pruned. Where claims are dense, the gas glows; the rarest hapax predicates are the brightest individual sparks, not greyed-out dust. **Zipf becomes light.**

Position is a precomputed 2D UMAP of each claim's *predicate-embedding ⊕ entity-embedding* vector. So claims about the same subject pull together: **constellations are subjects.** Aligned predicates share a region: **neighborhoods are predicate-families.** The space is not arbitrary; it is the substrate's own learned geometry of meaning.

### The glyph: one star, packed concentrically

A single claim is one star. From its core outward, each ring is a channel:

```
                       corona bloom  ← confidence (soft halo opacity)
                    ╱──────────────╲
                   │  photosphere   │ ← evidence-link count (fine ticks)
                   │  ╱────────╲    │
                   │ │  CORE    │   │ ← anchored = solid / unanchored = hollow ring
                   │ │  E5 ✦    │   │   negated = absorption-disk (dark anti-star)
                   │  ╲────────╱    │ ← SIZE+BRIGHTNESS = maturity E0..E7
                    ╲──────────────╱    (waterline glow ring at the E1→E2 gate)
                         ║
              hue = predicate alignment-family (spectral class)
              gas = context/domain (ambient, low-saturation)
                         ║
         ════════════════════════>  comet TAIL = valid_time extent
              (length=duration · hatched stub=unwired · ∞ fade=unbounded)
              tail offset behind clock-position = belief-latency
```

- **Core fill** — solid bright if evidence-anchored; a **dark hole rimmed by a light-ring** if unanchored. Negation inverts the core to an **absorption-disk**: a dark anti-star on a bright rim.
- **Size + brightness** — maturity E0..E7. A protostar at E0 is tiny and barely glowing; a brilliant main-sequence sun at E4+. A faint **waterline ring** inside the body marks the E1→E2 crossing, so you see at a glance whether this star has been pulled from hypothesis toward reality.
- **Photosphere** — fine tick-marks counting evidence_links; **zero ticks is the hollow tell.**
- **Corona** — soft bloom whose opacity is confidence. (Maturity and confidence are *different* rings, on purpose.)
- **Spectral hue** — the predicate's alignment-family. The nebular gas behind it — low-saturation so it never competes — is the context: genealogy teal, memory violet, beam amber, greek-myth gold.
- **Comet tail** — valid_time. Length is duration; an *infinite diffuse fade* for unbounded validity; a **hatched stub** when valid_time is unwired (drawing the hole). The angle and offset between where the tail points and where the star sits on the clock *is* the belief-latency.

### The central conceit: contradictions are multiple-star systems

A contested (subject, predicate) is **never one star.** It is a **multiple-star system** — N co-orbiting suns, one per surviving object-variant, gravitationally bound in a tight dance, each carrying its *own* size, fill, tail, and evidence independently. `ex:port-louis rdfType` is an **eleven-star system**: Place, City, CapitalCity, NavalBase, Colony, Port, and five more, eleven suns wheeling around one barycenter, **none extinguishing the others.**

The barycenter glows brighter as more belief-mass accretes — but the system *never collapses to a single sun.* That collapse is the **argmax lie** donto refuses, so the Nebula simply never draws it.

```
  THE BELIEF NEBULA       tx-clock ▸ [1996 ·····|2026·▮· now]  ⏯  τ=0.74 ▭▭○──  fold:◻
╔══════════════════════════════════════════════════════════════════════════════╗
║  ░░░ teal gas: ctx:genealogy ░░░          · · violet: ctx:memory · ·          ║
║  ·········· E1→E2 WATERLINE ISOBAR (only ~6% of the sky lies above) ··········║
║      ⊛ ←E5 anchored,bright          ◌ ··········→  (hollow=0 evidence, DRAWN) ║
║     /│\ photosphere|||  (8 ticks)    a single dim protostar, E0               ║
║      ╲ ════════════════>  unbounded valid tail                               ║
║        ┌── MULTIPLE-STAR SYSTEM: ex:port-louis rdfType (11 suns, kept) ──┐    ║
║        │     ⊙Place    ⊙City      ✦CapitalCity      ◌NavalBase(hollow)    │    ║
║        │        ╲   ╱  barycenter  ╱   ╲      ⊙Colony   ⊙Port  ...        │    ║
║        │         ◍ ─ ◍ ── ✺ ── ◍ ─ ◍   none extinguishes the others       │    ║
║        └──────────────────────────────────────────────────────────────────┘  ║
║              ╲rebuts (red shock-front)        ╱supports (bright bridge)        ║
║      [system A] ◄══════╳══════►  [system B]  ◄──────accretes────  [C]          ║
║   ✶ Brooks: ignites at tx=2026  ←···············comet trails to valid=1996    ║
║      (30-yr belief-latency = the gap is the harm, rendered as tail offset)     ║
║   ●→ ember: was primary, RETRACTED — core extinguished, star STAYS in sky      ║
║   ⊘  negated claim (absorption-disk / anti-star)    ⌗ unwired valid_time stub  ║
║   (( feathered halo overlap = possibly_same subjects, τ-tunable, never merged ))║
╚══════════════════════════════════════════════════════════════════════════════╝
 legend  ⊛solid/anchored ◌hollow/unanchored ✺barycenter ◍variant-sun ⊘negated
         tail=valid_time  size/glow=maturity(E0..E7, waterline isobar at E1→E2)
         hue=predicate-family  gas=context  ═red rebuts ─bright supports ⌗=hole
```

### The dimension → channel table

| Dimension | Visual channel | How it reads |
|---|---|---|
| **D1 entity/subject** | POSITION (x,y) from entity-embedding | Constellations *are* subjects; same-subject claims cluster |
| **D2 predicate** | POSITION + spectral HUE | Co-determines (x,y); alignment-family sets the star's spectral class |
| **D3 object** | STAR IDENTITY within a system | Each surviving variant = its own sun; IRI = sharp disk, literal = soft glow |
| **D4 tx_time** | GLOBAL CLOCK | When the star *ignites*; retraction caps it to an *ember* (kept in sky) |
| **D5 valid_time** | COMET TAIL | Length = duration; ∞ fade = unbounded; hatched stub = unwired; offset = belief-latency |
| **D6a maturity E0–E7** | SIZE + LUMINOSITY + waterline ring | Protostar → main-sequence; bright isobar threads the E1→E2 gate across the whole sky |
| **D6b evidence** | CORE FILL + photosphere ticks + collar dots | Solid = anchored, hollow ring = unanchored; ticks/dots count evidence_links |
| **D6c confidence** | CORONA bloom opacity | Independent halo — *not* fused with maturity |
| **D6d polarity** | star vs. ANTI-star | Negated = dark absorption-disk |
| *context/domain* | nebular GAS color (low-sat) | Ambient teal/violet/amber/gold, never competes with marks |
| *abundance (880K preds)* | NEBULAR GAS density | Zipf-as-light; the long tail glows; hapax = brightest sparks |
| *argument links* | GRAVITATIONAL FILAMENTS | supports = bright in-falling bridge; rebuts = red shock-front; undercuts = dashed orange sever |
| *identity-as-hypothesis* | feathered τ-tunable HALOS | possibly_same constellations bleed together; never hard-merge |
| *alignment family* | reversible FOLD toggle | swirls variants into a shared orbital ring and back — a lens, not a write |

### Twin time, in two orthogonal media

The two times live in **genuinely separate media so they cannot be conflated** — the failure of every two-axis bitemporal lattice.

**tx_time is the global clock.** A scrubber along the bottom drives the entire cosmos through belief-time. Drag it and stars **ignite** at their tx_time, **extinguish to embers** at retraction, and companions in multiple-star systems **re-rank** — a dim sun brightening past the old primary while the old primary keeps shining, *muted, never deleted.* Press play and the field **breathes**: belief accreting, contradictions blooming into multiple-star systems, the re-ranking shimmer.

**valid_time is the comet tail.** It is *not* on the clock. Freeze tx at "now" and you can still read every claim's world-validity in its tail. The **angle between the tail and the star's clock-position is belief-latency** — and the Brooks star, igniting at tx=2026 with a comet trailing thirty years back to valid=1996, is the rare data-mark that is both instrument and elegy.

### Interaction: the lenses, strictly gated

Everything that would crowd the frame is **interaction-gated**, so the default view stays a clean deep field:

- **Hover** a star → a HUD with the full claim, both timestamps, E-level, evidence spans one brush away.
- **Click** a star → ignite its local argument filaments (the live **12:1 rebuts:supports** ratio means an all-filaments-on default would be an unreadable red hairball, so they stay local).
- **τ-slider** → feather the identity halos; watch `possibly_same` constellations bleed together or separate, never hard-merging.
- **Fold toggle** → swirl predicate-variant stars into their alignment-family orbital ring, and back. A reversible lens, never a write-time canonicalization. Inverse and sub_property relations stay drawn as distinct filaments, not folded to synonymy.
- **"As-of" parking** → leave the clock at a past instant and the Nebula answers *what did donto wrongly believe at tx=T?* — the then-primary suns that have since dimmed are still there, shining muted. A playable epistemic-audit instrument.
- **Draw-the-holes lens** → dim every anchored star and light *only* the hollow ones and hatched valid_time stubs, turning the honest 2.4% coverage into a luminous **steering map of exactly what to anchor or wire next.** Absence as figure.

And threading the whole frame, with zero added interaction: the **E1→E2 waterline isobar** — a single faint bright contour across the entire sky. The ~6% of claims that have crossed from hypothesis into reality-pull become a visible *coastline*, so "how much has the substrate actually believed?" is legible at a glance.

## Why it is honest

The Nebula is built so that **every collapse donto refuses is a thing it cannot draw:**

- **No argmax.** A contested (S,P) is a multiple-star system. The barycenter glows with belief-mass, but the system never resolves to one sun. The argmax cut is the move donto refuses — so it is literally never rendered.
- **Two time axes, truly separate.** tx in the global clock, valid in the per-star comet tail, in orthogonal media. You can read either without the other. Their angle is belief-latency. They are never fused onto shared geometry.
- **Draw the holes.** Unanchored claims are *hollow stars* — a ring of light around a dark center. Unwired valid_time is a hatched stub. The 2.4% coverage shows as a sky that is *mostly hollow rings*, and a dedicated lens turns that absence into a worklist. Honest, not hidden.
- **Never overwrite.** Retraction caps tx_time and dims the star to an ember that stays in the sky forever. Re-ranking is a companion brightening past the old primary *while the old primary keeps shining muted.* History is preserved as visible state.
- **Hold disagreement, never average it.** Argument filaments keep their sign — supports bridge, rebuts shock-front, undercuts sever. The live 12:1 rebuts dominance (≈2,247 vs ≈180 across only ~2,433 edges) shows as a sky honestly webbed with red, not smoothed to grey "related" edges.
- **Maturity and confidence are separate channels.** Luminosity/size vs. corona bloom, with the waterline isobar drawn inside the view. A popular-but-unproven claim looks long-tailed and dim; a quiet-but-solid one looks small and bright. They are never the same mark.
- **Abundance aggregated, not pruned.** 880K predicates are luminous gas; the rare hapax are the brightest sparks; zero truncation.
- **Alignment is reversible.** The fold is a lens that swirls and un-swirls. Inverse and sub_property stay distinct filaments — never folded to synonymy at write time.
- **Identity is soft.** Feathered τ-tunable halos for `same`/`possibly_same`/`distinct`, and a distinct treatment for the abstention `not_enough_information`. Nothing hard-merges.

The one honesty caveat is stated plainly: at extreme zoom-out the gas *aggregates* individual maturity and evidence into density, recoverable only on drill-in. That is **LOD-honest, not lossy** — the holes-lens and the waterline isobar keep the two most ethically-loaded channels (evidence absence and the reality-pull frontier) legible even at the macro scale.

## Why it is beautiful

It hijacks the single most awe-loaded image humans have — a deep-field night sky — and makes **every photon mean something.** Deep space is already the visual language of vastness, depth, and humility before the unknown, which is exactly the emotional register of a 40-million-claim contradiction-holding substrate. You do not need to teach a person to feel small before a star field. You only have to make the smallness *true.*

The palette is naturally gorgeous and accessible: a dark field, jewel-toned low-saturation nebular gas per domain, white-hot main-sequence stars for matured-anchored claims, dim-red protostars for the hypothesis zone. The motion is **organic** — accretion, ignition, the slow wheel of binary systems — so the substrate does not *tick* like a dashboard; it *breathes.* That is the difference between an instrument panel and a living thing.

The aesthetic argument is, at bottom, an **emergence** argument. A table shows you rows. A field shows you *pattern.* At 40M claims, no enumeration is legible — but a kernel-density nebula *is*, and scale stops being a problem and becomes the texture. The 880K-predicate long tail, which every other knowledge-graph tool truncates as an embarrassment, becomes the luminous gas that gives the image its depth. **The holes become the negative space** that the eye reads as form. **The forks become the multiple-star systems** that draw the eye as structure. The thing donto is *worst* at advertising — its 2.4% evidence coverage, its contradiction-saturation, its 12:1 disagreement — becomes the source of the image's drama. This is the rare data-art that is both instrument and elegy: the Brooks comet trailing thirty years behind its star is beauty in the service of an ethical point. *The gap is the harm.*

There is a strict Tufte/whitespace contract underneath the romance. One dominant metaphor, exploited fully, rather than a busy mess of competing encodings. A clear visual hierarchy: bright resolved stars draw the eye, gas gives depth, filaments are tertiary and gated. Generous black whitespace. Restraint is what keeps a six-dimensional frame from becoming a hairball — and restraint is also what makes it beautiful.

## How to build it

It is a Next.js 16 page on **donto-admin-web** (`admin.donto.org`) — already a Next app with a read-only `donto_ro` pool and the `/api/beam` precompute pattern. It lives as the **capstone above the twelve per-dimension charts**: those become the drill-down panels the HUD links to; the Nebula is the one frame that holds them all.

**Rendering — deck.gl is the fast path.** A `ScatterplotLayer` (or custom Layer) for resolved stars over a `HeatmapLayer`/`ScreenGridLayer` for the nebular gas; `ArcLayer` for argument filaments (only ~2,433 rows — trivial, colored by sign); `LineLayer`/`PathLayer` for comet tails derived from valid_time geometry. deck.gl's **GPU picking gives hover/click for free.** A three.js + custom GLSL sprite-shader path is available if we want finer control of the corona bloom and additive-blended gas, but it is not required for v1. No refraction shaders, no fluid sim, no far-side-of-a-globe occlusion to fight.

**Precompute is the load-bearing step** — there are no live 40M scans. A nightly Rust job (donto-agent style, in the Cargo workspace, resumable + segmented + progress-verified by *real row-count deltas*, not its self-reported rate — this box has already burned hours on jobs that *looked* launched but stalled at 0/s in a swap-thrash leak) materializes:

1. **`donto_claim_layout`** — UMAP 2D coords per claim, run once over the existing `donto_predicate_embedding ⊕ donto_entity_embedding` vectors, stored as `(claim_id, x, y)`.
2. **A binned density tile-pyramid** per context for the gas LOD.
3. **Per-(S,P) contradiction-cluster membership + barycenter** for the multiple-star systems.
4. **Argument-filament endpoints** from `donto_argument` (≈2,433 rows — trivial).

bitemporal ranges come from `donto_statement` via the `donto_maturity` / `donto_polarity` SQL helpers at precompute time; the fold reads `donto_predicate_closure` (≈883K edges) for family-centroid coords.

**Live per-frame data is tiny.** Viewport-bounded star attributes, and the tx-clock is a **single shader uniform** comparing each star's `[tx_lo, tx_hi]` against the clock value — visibility, ignition, ember-capping, and re-ranking all happen on the GPU with no requery per frame. The fold animates positions with a GPU lerp toward family centroids. Time scrubber, τ, fold, and draw-holes are React state → shader uniforms. d3 handles scales, the legend, and the SVG HUD overlay.

**LOD for 40M:** at far zoom show *only* position + domain-gas + the waterline isobar + the holes texture (gas aggregated, never enumerated). Resolve individual star anatomy — ticks, tails, polarity — only at mid-zoom. Keep filaments and the τ/fold lenses strictly interaction-gated.

**Archival fallback, required not optional:** one canonical hero PNG at tx=now, with the waterline isobar, a labelled Brooks belief-latency comet, and a holes-lens inset — so this report and every future one renders beautifully in the gold-standard pandoc template even with JS disabled. The animation is the bonus; a single frame is already the image.

## Coda: the steering wheel

donto's discipline has always been *measurement as the steering wheel* — you cannot steer an abundance firehose you cannot see. The twelve dashboards measure the substrate's organs. The Belief Nebula measures the **substrate itself**: one living instrument panel where you watch donto *come to believe*, retract without forgetting, and re-rank by reality — and where the things that look like flaws on any other chart (the hollow majority, the contradiction systems, the red shock-fronts, the thirty-year comets) resolve into the honest, breathing portrait of a knowledge base that grows in all directions and prunes only by reality.

It is the one view that does not lie about the data, because it refuses every collapse the data refuses. And it is beautiful for exactly the same reason: a sky that holds its contradictions, keeps its embers, and never throws a single light away.