Every fact is a claim with provenance and a validity window. Contradictions and overwrites are graph structure, not something re-derived at read time. A graph probe answers simple questions cheaply, escalates conflicted ones, and abstains when the graph can't back an answer.
When a fact changes, the old claim isn't deleted. A typed edge records the replacement, so the chronology of a decision is a bounded traversal instead of an inference over chunks.
Two sources disagreeing is a first-class relationship. Trust scoring is predicate-specific, and unresolved conflicts stay visible rather than silently picking a winner.
Typed coverage is a query, not a similarity score. If nothing supports the question, the router declines and reports the gap instead of retrieving the nearest chunk and guessing.
50 questions across 16 scenarios (supersession chains up to depth 3, typed and untyped value conflicts, alias-only references, and as-of boundary reads). The naïve baseline picks the active claim with the most word overlap — it can't see supersession chains, can't surface conflicts, and guesses on every abstention. The graph probe gives typed coverage: abstain when nothing supports the question, escalate on conflict or history, answer cheaply only when the graph is clean. The single router+probe miss is a subject/object inversion ("who works on X" vs "X is owned by who") — a documented vocabulary limitation, not a retrieval error.