content-explorer/contracts/fact-policy.md
tegwick 072a7fa550 Freeze the v0.1 contract and the local ingest connector.
The snapshot and manifest schemas, both example dataspaces, and the shared text renderer now pass the fixture validator and the negative contract tests. JSON, NDJSON, and Markdown frontmatter publish a snapshot only when rights, identity, and references allow it. CONTENT-WP-0001 and CONTENT-WP-0003 are marked finished against those artifacts. CONTENT-WP-0000-T04 stays open. SCOPE.md and the 19:05 scope-against-intent note record the stop.

Assistant: grok
Assistant-Session: 01a130f1-abfb-7d71-9cd6-a8b75ec7f95a
2026-10-12 19:07:32 +02:00

1.1 KiB

Fact policy v0.1

A claim is a statement about one entity field. It is not a proof. The snapshot keeps every claim. The manifest factPolicy only decides what a display may show.

Situation Claim shape resolve_claims state
No claim for that key absent missing
The field was checked and has no value status: unknown unknown
One asserted value status: asserted present
The holder asked not to display it status: withheld withheld
Two asserted values both status: asserted contradicted

Policies when values disagree:

  • show-all returns every asserted value and state contradicted.
  • withhold returns no values and state contradicted.
  • preferred returns the single claim with preferred: true. If none or more than one is marked, it returns no values and state contradicted.

Absence is not the same as unknown, and unknown is not the same as false. A relation with no sourceRefs is invalid. It is not stored as an unsourced fact. Conflicting claims stay in the snapshot either way. The policy does not delete them.