Project · Creator and maintainer
glassgraph
A deterministic entity linker for research wikis, built as the opposite trade-off to LLM extraction.
Updated
Context
A personal research wiki becomes useful when its notes are connected to the entities they discuss: the companies, products, and technologies that recur across hundreds of files.
Constraint
Language models extract those links well, but non-deterministically, at a cost that scales with the corpus, and with confidence levels that are hard to audit. Re-running the extraction produces a different graph, so the result cannot be diffed or version-controlled.
Contribution
I built glassgraph, which extracts entity mentions and builds a source-to-entity graph with no model in the loop: literal alias matching first, and an optional dense-retrieval stage to surface candidate entities the alias dictionary does not yet contain.
Approach
The first stage is Aho-Corasick matching against a controlled alias dictionary, aware of CJK boundaries, taking about a second over five hundred files. The optional second stage uses CPU-only embeddings pinned to a fixed seed and a deterministic backend configuration. Every match carries its span, its alias, and its canonical trace, and identical inputs produce byte-identical output.
Outcome
The graph can be committed, diffed, and re-run for free, which is the right trade when the vocabulary is curated and the audit trail matters more than discovering connections nobody specified.
Evidence
The public repository holds the linker, the index builder, the optional retrieval stage, the graph construction, and the command-line interface. The documentation also names the cases where an LLM-based tool is the better choice.