Defines how a knowledge pipeline records contradictory claims as evidence-bearing relationships and exposes them to retrieval without silently selecting truth from similarity or freshness alone.
Package status: reference context ready for human review. The contract and test scenarios are complete, but no claim is made that an adopting implementation has passed them.
Decision
Preserve both source versions, extract claim-level conflict candidates, and attach provenance, scope, time, authority, and review state. Retrieval may apply an explicit resolution policy but must retain the existence of material unresolved conflict.
Scope
- Claim identity, subject/predicate/value, qualifiers, source provenance, conflict edge, authority policy, review, supersession, and retrieval behavior.
- Numeric, categorical, and procedural claims that cannot all hold under the same scope and time.
- Authorization-safe conflict disclosure.
Outside this block
- Automated fact-checking of the open web.
- Treating different scopes, dates, or definitions as contradictions without normalization.
Contract
- A claim records exact source version and evidence span plus normalized subject, predicate, value, units, scope, and effective time when available.
- Conflict requires incompatible values under overlapping scope and time; uncertainty and missing qualifiers remain explicit.
- Source authority is a versioned project policy, not inferred from retrieval score.
- Resolved conflicts keep losing evidence and the resolution rationale unless retention policy requires removal.
- A requester sees only authorized evidence and does not learn hidden source names, counts, or values.
- Answer context marks unresolved conflicts and provides distinct citations instead of merging them into one unsupported sentence.
Implementation guidance
- Generate candidates using shared claim keys and incompatible normalized values, then route material cases to review.
- Keep extraction confidence distinct from source authority and resolution confidence.
- Model supersession separately from conflict when one source explicitly replaces an older version.
- Index conflict status as a retrieval feature and force evidence diversity for high-risk predicates.
Failure handling and safeguards
- If units or scope cannot be reconciled, label the relationship ambiguous rather than contradictory.
- If the preferred source becomes inaccessible, recompute the visible resolution from authorized evidence.
- If extraction changes, preserve old claim generation until the new one passes conflict regression tests.
Verification and operations
- Measure conflict candidates, confirmed precision, unresolved age, high-risk predicates, visible-evidence coverage, and answer citations per side.
- Audit resolutions for authority-policy version and reviewer evidence.
- Probe known conflicting fixtures after indexing or answer-prompt changes.
The executable-looking examples in this package are fixtures and acceptance contracts. Run
python tools/validate.py from the collection root to check package structure and metadata; then
implement and execute the scenarios in the target repository.
Adoption assumptions
- Names and numeric values in
example.yamlare an adoption profile, not universal defaults. - The adopting team must map actors, data classes, error vocabulary, and ownership to its system.
References
- No external normative source is required; this package defines a project decision.