19 lines
1.4 KiB
Org Mode
19 lines
1.4 KiB
Org Mode
:PROPERTIES:
|
|
:CREATED: [2026-06-04 Thu]
|
|
:END:
|
|
#+title: The LLM as Proposer — Verified Extraction
|
|
#+filetags: :passepartout:architecture:
|
|
|
|
The LLM cannot be trusted to populate the symbolic index directly. Its outputs are sampled, not proven. A probabilistic extraction feeding a deterministic engine defeats the purpose of being deterministic.
|
|
|
|
But the LLM is still useful. It can surface facts that are obvious to a human reader of prose but would take the symbolic engine many deduction steps to reach independently. The solution is to demote the LLM from /extractor/ to /proposer/:
|
|
|
|
1. The archivist reads a prose heading.
|
|
2. The LLM proposes candidate triples.
|
|
3. Screamer checks each triple for consistency against the existing fact store.
|
|
4. Only consistent triples are admitted to the symbolic index, flagged with =:provenance :llm-proposed= and grounded to the source heading.
|
|
|
|
The LLM might hallucinate facts that don't correspond to the prose. It might extract facts that contradict existing knowledge. It might produce syntactically malformed triples. None of these failures contaminate the symbolic index because proposals are not admitted automatically. The admission gate (Screamer) is deterministic.
|
|
|
|
This is the core architecture pattern. Everything else — the entity classes, the deduction engine, the persistence layer — follows from this single design decision: *the LLM proposes; the symbolic engine decides whether to accept.*
|