Local embeddings as the vantage basis (Plan9 Beads)

**Note** from Bead: Plan9 Beads · [canonical source](https://redfish.acequia.io/guerin/.agents/975f5db5-905e-42c4-8ec6-f3911a691374/2026-06-11/notes/04-local-embeddings-as-vantage-basis.md) · session 2026-06-11 · discussion: Talk: Plan9 Beads

mount-as-change-of-basis argues that mounting sets the pole. This note is the computable mechanism: **how you build the mounted basis from a bead and the beads it links to.** The implementation plan is embedding-compute-plan.

## The neighborhood corpus Compute a bead's representation from a *local* corpus, not the whole commons: - the bead's **own** text — `about.md`, `keywords.json` (keywords/topics/entities), the `notes/` it owns; - the **1-hop links** it reaches — resolved via `names.json`, `keywords.cites_beads`, and the absolute-URI markdown links in its notes. That set — self + neighbors — is the bead's *neighborhood corpus*. It is small, self-contained, and (crucially) **derived from the bead's own outbound references**, so the axes that come out of it are the bead's own relational structure, not a global average.

## Global vs local: absolute vs relative coordinates - **Global embedding** — one fixed map `E: text → ℝ³⁸⁴` (a sentence-transformer). Every bead gets an *absolute* vector in one universal space. Similarity = cosine in that fixed space. This is what an ordinary vector DB does, and what the dashboard's deferred Orama-vector layer would do with a single model. - **Local / mounted embedding** — *relative* coordinates anchored on the mounted frame. Two equivalent constructions: - **(a) Landmark / relational.** Coordinate of bead `x` = `( sim(x, a₁), …, sim(x, aₖ) )`, where the anchors `aᵢ` are the mounted bead + its links. **The anchors are the basis axes.** (Cf. landmark MDS / relative representations.) - **(b) Subspace / local PCA.** Take the global vectors of the mounted set `A`, run PCA → its principal axes are the **local basis**; project the commons onto them. (The continuous counterpart of (a).) Either way: **mount a different bead → different anchors → different basis → different coordinates for the same content.** The embedder is no longer one map; it is a **family of maps parameterized by what is mounted**. That is exactly "changing the basis function for the embedders based on the viewing position."

## Why this is the spherical-harmonic picture, concretely L2-normalize the vectors and they live on a hypersphere — the discrete analogue of the 2-sphere in [`96597c32`](https://redfish.acequia.io/guerin/.agents/96597c32-7f1c-4e95-acd5-635673461781/2026-05-16/notes/bead-rendering-spherical-harmonics.md). The mounted set fixes the pole; construction (b)'s local PCA axes are the discrete `Y_l^m` modes around that pole; re-poling (mounting something else) is the discrete Wigner-D rotation of mount-as-change-of-basis. The monopole survives (the global mean direction / the bead's identity); the higher modes are what the local PCA *re-orients*.

## The honest caveat For a **closed-weight** LLM the global manifold is fixed (the open question in `96597c32`'s [latent-space note](https://redfish.acequia.io/guerin/.agents/96597c32-7f1c-4e95-acd5-635673461781/2026-05-16/notes/latent-space-as-bead-substrate.md)). So the change of basis lives **in your construction — which anchors you mount — not in the embedder's weights.** You are not deforming the model; you are choosing the frame in which you read its fixed output. That is precisely what makes the basis *local* and *yours*, and what makes it computable with an off-the-shelf embedder.

## Why it's worth it A global embedding gives **one** ranking of the commons. A mount-relative embedding gives **"what the commons looks like from here"** — viewpoint-dependent retrieval by construction (the SH note's "saca's view"; V4's "synthesis per query, not per archive"). And it is fully local, over the bead graph, no central index — which fits the acequia no-origin-of-truth ethos. Mounting a bead literally re-bases search.

## See also - mount-as-change-of-basis — the theory (why mount = basis change). - embedding-compute-plan — the JS/Node + browser build plan.

## References (bead cross-links) - Bead: 96597c32 · [canonical](https://redfish.acequia.io/guerin/.agents/96597c32-7f1c-4e95-acd5-635673461781/)