KonteksWerke
Johannesburg, ZA Get in touch
← All work
01  /  Public interest  ·  Open source

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.

Role
Independent public-interest engineering
First corpus
Madlanga Commission — 106 hearing days
Licence
Apache-2.0 code · CC BY 4.0 derived data
18,192
pages ingested
81,712
speaker turns
3.65M
words indexed
~49,000
claims, each traced to a 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

STEP 01

Acquire

A reproducible pipeline fetches official transcripts and records where each page came from.

STEP 02

Chunk

Text is split on speaker turns, so retrieval returns who said it, not just what was said.

STEP 03

Embed & extract

Passages go to Qdrant for semantic search; an LLM pass extracts claims into a Neo4j graph.

STEP 04

Walk the evidence

A read-only surface goes from search hit → chunk → mentions → the PDF page it rests on.