An AI study companion built on a semantic knowledge graph of the Bible. Aurum doesn't just answer questions — it navigates a map of meaning that emerged from the text itself, and cites its sources every step of the way.
Every Bible app can find the word "faith." None of them can show you how faith, covenant, and redemption relate to each other across sixty-six books written over a thousand years — the connections are the understanding, and they've always lived in scholars' heads, not in software.
Generic AI chat doesn't solve this. An LLM freewheeling over sacred text invents things — and in matters of faith, an invented citation isn't a bug, it's a betrayal of trust. Whatever we built had to be grounded, citable, and structurally honest about where every answer came from.
Under Aurum sits a semantic knowledge graph built entirely from the text. No theologian drew the edges. No taxonomy was imported. The structure is latent in scripture itself — we built the pipeline that surfaces it.
Each node is a thematic cluster — a region of embedding space, named by an LLM. Each edge is a semantic relationship that survived statistical significance testing. Each color is a Louvain community — a "super-theme" like Covenant & Law or Redemption & Grace, discovered by the algorithm, not declared by us.
The whole ETL is DVC-managed — every stage is a versioned artifact, every parameter tracked, every result reproducible. This isn't a notebook demo; it's a pipeline you can rerun a year later and get the same graph.
Not verse-by-verse — 512-token chunks with 128-token overlap, respecting sentence boundaries. A character-length gate drops noise before anything is embedded.
1536-dimension embeddings, batched with retry and cached — unchanged text is never re-embedded, so iteration stays cheap.
K-Medoids over PCA-reduced space (100 components), cosine metric, k=50. Quality is measured, not assumed: silhouette ~0.52, Davies-Bouldin, per-cluster cohesion and separation — plus an LLM narrative per cluster. If the model can't name a cluster specifically, the cluster isn't real.
Edges are an ensemble: medoid similarity (0.2) + centroid similarity (0.3) + average pairwise similarity (0.5) — trust scales with sampling depth. A significance gate keeps an edge only if ≥30% of cross-cluster pairs clear the threshold, so a few outlier chunks can't fabricate a relationship. Max 10 edges per node — dense enough for community detection, sparse enough to mean something.
Louvain consensus across 10 runs finds the super-themes; betweenness centrality finds the bridge concepts that connect distant regions of meaning; node2vec encodes subgraphs for structural similarity search.
Clustering reveals what the corpus is about — themes surface from the data and get named by the LLM before anyone asks a question. Vector search requires you to already know what you're looking for.
"What themes bridge covenant and grace?" is a graph question. High-betweenness nodes are the crossroads of the text — invisible to similarity search, obvious in the topology.
Subgraphs can be encoded and compared. Two passages — or two corpora — with similar relational dynamics produce similar topologies, even with completely different vocabulary.
Nothing in this pipeline knows it's reading the Bible. It's an engine for discovering latent structure in any corpus where language carries signal — and financial language is exactly that. The graph doesn't have to be built from news alone, either: filings, earnings calls, analyst commentary, and structured market signals can all enrich the same graph.