Follow people through the evolving attention of the archive. These trajectories reuse the actual stored Eigen projections and story significance scores, with a separate history for each versioned basis.
Each dated article is projected onto its existing basis and rotated into the published topic axes. People inherit evidence-weighted associations from candidate mentions. Significance uses the original story energy and novelty scores, allocated to articles and normalized by source and period. The public index keeps name-match uncertainty separate from the documented relationship graph.
Implemented: fixed versioned bases, article deduplication, source and period normalization, person–axis histories, signed projections, topic-energy shares, and provenance. Proposed next: role-aware attribution, temporal smoothing, and reviewed axis lineage across future refits. A person moving between topics does not trigger a new topic basis.
Algorithm / slow bases, fast people
Track the person. Preserve the coordinate system.
Keep an immutable basis per corpus and model version. New articles can be projected onto it without a refit, while each person’s associations change at the speed of the reporting. Save the person ID, basis fingerprint, axis, observation date, source references, and identity-review state together.
COMPUTED NOW
Article → topic
Project the centered article embedding into its fitted basis, then apply the stored naming rotation.
c = Vᵀ(x − μ) y = cR
Keep signed projections and squared energy. Opposite signs may cancel in a mean while still carrying substantial topic energy.
COMPUTED NOW
Article → person
Deduplicate article IDs, qualify name candidates with dated context, and join their actual story significance. Allocate story score to its canonical member articles.
rank = energy × (1 + novelty)
Missing scores remain missing. A count is never substituted for significance.
COMPUTED NOW
Person → period
Normalize coverage against the full scored source in the same calendar period, including active sources with no mention of the person. Keep a separate distribution of topic energy.
topic share ∝ mean(y²) / axis variance
The result distinguishes topic association from overall attention.
The next layer: attribution and change
After identity and role review, weight each article’s association by subject relevance and the person’s documented role. Keep researcher, inventor, founder, operator, investor, author and incidental mention distinct. Use fast and slow rolling estimates to separate a temporary burst from sustained involvement; calibrate the windows on historical data rather than choose them from one news cycle.
Store both the publication time and, when known, the event time. An obituary or retrospective can change attention in 2026 without changing what a person did in 1956. Preserve the originally measured series alongside any later corrected or reprojected version.
When the basis changes
Keep current basis versions immutable and fit a new version separately.
Use existing match_components for maximum absolute cosine assignment when feature space and embedding model match; fix matched signs.
Within nearly degenerate eigenvalue blocks, implement and test orthogonal Procrustes subspace alignment before asserting individual continuity.
Track named directions V*R as well as raw eigenvectors; stable raw directions do not by themselves guarantee stable varimax names.
Persist explicit {oldBasisId,oldAxis,newBasisId,newAxis,cosine,sign,method,reviewStatus,validFrom} mappings, unmatched births/retirements and model fingerprints.
Use common-article coordinate correlations for exploratory comparison of different corpora, not an identity merge.
Maintain separate as-measured and retrospectively-reprojected trajectories. Never silently rewrite historical points after refitting.
Implemented histories use fixed, versioned bases. Role-aware attribution, smoothing, and persistent cross-version lineage are proposed extensions. They are not silently approximated by matching axis numbers or counting articles.