Making a commission of inquiry checkable.
106 hearing days of testimony are public, and effectively unreadable. This system makes them searchable, mappable, and — the part that matters — verifiable back to the page.
The problem
Commission transcripts are published as thousands of scanned-feeling PDFs. Journalists read what they have time for. Nobody can ask “who else mentioned this account, and on which day?” without weeks of manual work.
Worse, the naive fix — throw it all in a chatbot — produces confident summaries with no way to check them. In this domain an unverifiable answer is not a lesser answer. It is a liability.
The principle
A mention is not a claim. A claim is not a finding. A finding is not a fact.
The data model enforces that distinction rather than trusting the interface to imply it. Every node carries its evidential status, and the UI refuses to collapse the levels.
How it works
Acquire
A reproducible pipeline fetches official transcripts and records where each page came from.
Chunk
Text is split on speaker turns, so retrieval returns who said it, not just what was said.
Embed & extract
Passages go to Qdrant for semantic search; an LLM pass extracts claims into a Neo4j graph.
Walk the evidence
A read-only surface goes from search hit → chunk → mentions → the PDF page it rests on.