Chapter 16 — Evidence for claims and corpora¶
Mental model¶
Retrieval plus membership, never stance. occam_claim_check returns blocks that cleared a lexical BM25 floor plus a Merkle proof that each was in the signed extraction. It does not judge whether a claim is true, false, or absent from the page in any semantic sense.
Explanation¶
occam_claim_check¶
Workflow:
- Live-fetch and compile the page (with playbook overlay forced to
auto— no parameter to disable). - Rank extracted blocks against your claim string using BM25.
- Return matches with Merkle proofs linking each block to the signed
blockMerkleRoot.
Key fields:
| Field | Honest meaning |
|---|---|
found |
A block cleared the lexical relevance floor |
proven (only when found:false) |
Retrieval-complete negative: the leaf set was untruncated, so no extracted block matched. Not proof the fact is false. |
verdict |
Always not_evaluated — claim_check does not classify support |
receipt |
A real signed Receipt v1 over the extraction — verifiable via occam_verify |
matches[].proof |
Merkle membership in the signed extract — not claim support |
Preferred vocabulary: EVIDENCE_FOUND / NO_EVIDENCE / SUPPORTED / NOT_SUPPORTED in prose; wire proven is legacy.
Neither claim_check nor dataset_export applies a token budget — a precondition for leafSetComplete / proven:true.
occam_attest¶
Canonical meaning: heuristic citation assessment, not cryptographic attestation.
- Re-runs claim-check internally; accepts claim text, not claim-check JSON.
- Applies anchored regexes for two English shapes:
X is [a] YandX uses Y. - Returns
supported | contradicted | related | unsupported | unknown. - Attaches one Merkle proof for the top block only.
- The aggregate response is unsigned JSON.
Never describe occam_attest as attestation in the cryptographic sense.
occam_dataset_export¶
- Exports a set of URLs with row metadata and a detached manifest signature.
- Top-level
okdescribes export completion, not per-row success — inspect rows. - Manifest verification is CLI-only (
occam verify --mode manifeston the host binary).
Task R step (conceptual)¶
Claim-check the exact sentence you plan to quote; take leaf + proof into occam_verify mode=citation; export source URLs as a dataset and verify the manifest on the CLI with --pubkey.
CHECK¶
NETWORK. Claim-check a sentence you know is on the page. Re-run with a paraphrase that shares no terms with the original. The second returns found:false while the page plainly states the claim — demonstrating lexical retrieval limits, not semantic absence.
LOCAL. Confirm occam_attest aggregate JSON has no signature field and cannot be passed to occam_verify.
Common misconception¶
"found:false with proven:true means the page does not say it." It means no extracted block cleared a lexical floor over an untruncated leaf set. Paraphrase, synonymy, non-English phrasing, text in images, content behind interaction, and anything the extractor dropped are all outside its reach.
Limitations¶
- No stance evaluation in claim_check (
verdictis hardcodednot_evaluated). - Attest understands only two English claim shapes; everything else is
unknown. - Attest aggregate is unsigned — not verifiable as a unit.
- Dataset manifest verify requires CLI + out-of-band PEM — not MCP-in-band.
- Merkle proof proves block membership in the signed extract, not that the block supports your claim.
- No truth, origin, identity, or trusted-time claims are licensed by these tools.
Links¶
- Chapter 14 — Receipts
- Chapter 15 — Verifying
- Chapter 24 — Composing tools — rejected chains (claim_check JSON → attest)
- User docs: Tools reference
- Honesty map:
docs-audit/HONESTY-SCHEMA-MAP.md·docs-audit/OWNER-DECISIONS.mdOD-6, OD-7