Examples with dual lenses
These examples demonstrate where interpretation is permitted to begin — and where it must not. (In)Canon reports structural admissibility, not meaning, correctness, quality, compliance, or adequacy.
“Admissible” does not mean true, correct, acceptable, or sufficient. It means the input contains the explicit structure required for evaluation without silent reconstruction. (In)Canon records what is stated and reports what is not stated.
Each example includes two notes: one for AI Engineers and one for Governance / Legal. The examples remain the same. The lens changes what you should take from them.
Read these in order. The point is not that one output is better than another. The point is that some inputs do not contain the structure needed for evaluation without reconstruction. (In)Canon makes that boundary explicit and enforceable.
Step 1
A plausible sentence that is structurally empty.
Step 2
What silent reconstruction looks like in downstream systems.
Step 3
An explicit statement: structurally evaluable without guesswork.
Step 4
The same logic applied to structured, non-text inputs.
Purpose: show a claim-shaped sentence that sounds evaluable but cannot be evaluated without inserting missing structure.
Input
"Staff were supported appropriately and procedures were followed."
(In)Canon report
{
"admissible": false,
"reason": "Missing prerequisites for evaluation without inference",
"presence": { "actor": "not_stated", "action": "stated", "time": "not_stated", "outcome": "not_stated" }
}
Treat this as a hard-gate case. If a downstream model proceeds, it will be forced to invent bindings (who, when, under what scope). Canon makes that failure mode detectable and testable.
This is where audit risk begins: the sentence invites the reader to supply accountability and chronology. Canon preserves the boundary by recording absence rather than allowing reconstruction to masquerade as evidence.
The “block” is the point. It prevents downstream work from treating a structurally empty statement as a supported record. Blocking is not a judgement on truth or merit. It is a refusal to proceed without explicit prerequisites.
Purpose: show the difference between silent reconstruction and explicit absence handling. The LLM output shown is illustrative of a common failure mode, not a claim about any specific model.
LLM alone (illustrative)
{
"actor": "staff",
"action": "were supported appropriately",
"time": "12 March 2020",
"note": "Illustrative: time is not present in the source text."
}
(In)Canon + LLM (gated)
{
"admissible": false,
"presence": { "actor": "not_stated", "action": "stated", "time": "not_stated" },
"required_handling": "Block OR continue as explicitly-labelled inference"
}
This is the core pipeline benefit: Canon forces missing fields to remain not_stated. That enables deterministic regression tests and prevents schema-filling hallucinations.
This separates evidence from reconstruction. If the workflow continues, it must do so in a labelled inference channel, not by silently upgrading absence into “fact”.
Purpose: show an explicit statement where interpretation can begin without requiring reconstruction. Admissible does not mean true, sufficient, compliant, or acceptable. It means structurally evaluable.
Input
"On 12 March 2020, the on-call lead issued written guidance requiring all staff to follow PPE protocol."
(In)Canon report (illustrative)
{
"admissible": true,
"presence": { "actor": "stated", "action": "stated", "time": "stated", "outcome": "not_stated" },
"commitments": [ { "text": "issued written guidance", "span": [29, 50] } ]
}
This is a “safe to proceed” case (structurally). Downstream extraction can remain bounded to commitments, and any missing fields stay absent without forcing completion.
This provides an auditable starting point for interpretation. Accountability and time are stated, meaning evaluation can proceed without invisible repair work.
Purpose: show the same admissibility logic over structured fields, not prose. Canon operates on structure, not narrative style.
Input (object)
Report (presence check)
{
"admissible": true,
"reason": "Required fields present",
"presence": { "actor": "stated", "action": "stated", "time": "stated" }
}
This is the bridge to API deployment. Canon can sit as a service that checks payloads before they hit scoring, summarisation, or generation.
This makes the evidence/inference boundary enforceable even when the input is already “machine-shaped”. Completeness is declared and audited, not assumed.
Purpose: show a minimal infrastructure pattern that downstream systems must respect. This is the boundary expressed as a gate: do not interpret when structure is absent.
Gate pattern (illustrative)
if not has_actor or not has_action:
return { "status": "reject", "reason": "insufficient structure" }
# proceed only with admissible inputs (structural permission only)
return { "status": "admissible" }
This is enforceability. A single gate prevents “best-effort completion” from becoming a hidden behaviour. Canon makes the precondition explicit and testable.
This is defensibility: the system can prove it refused to interpret when prerequisites were missing, rather than silently upgrading absence into narrative certainty.
These examples do not demonstrate better judgement. They demonstrate where judgement is allowed to begin. (In)Canon does not evaluate truth, quality, correctness, compliance, or adequacy. It reports whether evaluation can occur without inserting missing structure.
Trade secret safe: structural admissibility only. No scoring. No interpretation. No internal rule disclosure.
(In)Canon identifies structure and reports stated vs not stated. It does not assess meaning, correctness, quality, compliance, or adequacy.