- 1Tech Note
Why we took the questions out of the ontology build (Part 1)
Questions stay in evaluation, and the source documents decide what knowledge gets discovered. Redividing responsibility in the build pipeline.
- 2Tech Note
Why multi-turn GraphRAG was needed, and where it fell short (Part 2)
For questions a single lookup cannot answer, graph traversal, source search, and structured queries are tied into one constrained tool loop.
- 3Tech Note
Treating an ontology build that takes hours as a job (Part 3)
Separating progress state from the graph, and making input screening and structured-versus-unstructured paths explicit, turns a long build controllable.
- 4Tech Note
A triple count told us nothing about knowledge graph quality (Part 4)
Separating volume, structural integrity, provenance, retrieval, and answers, to measure at which boundary graph quality actually changes.
- 5Tech Note
Shrinking CSV rows while keeping legitimate classes (Part 5)
Separating fact-table row omission from orphan-class detection and deletion, so optimizing for size does not turn into loss of meaning.
- 6Tech Note
The search redesign that started with an A/B measuring an empty graph (Part 6)
Verify first that the graph was actually called, then replace the ReAct loop with parallel retrieval and a single synthesis, by contribution per question type.
- 7Tech Note
Highlighting only the graph nodes the answer mentions (Part 7)
Removing keyword partial matches and neighbour inflation, so only candidate labels that appear in the answer text are highlighted in the 2D and 3D views.
- 8Tech Note
Why ten CSV classes became four (Part 8)
Persisting generation provenance so post-processing cannot rewrite a structured schema, and computing reprocessing scope from the last completed build.
- 9Tech Note
Adapting extraction batch size to the model's limits (Part 9)
Computing the context and output budgets together, then splitting and reprocessing only the batches that timed out or came back as truncated JSON.
- 10Tech Note
Safely replacing a graph with the results of a SELECT (Part 10)
Using the database's types and primary keys as graph identity, and protecting full and incremental ingestion with RDF staging swaps and a composite cursor.
