20 lines
1.1 KiB
Markdown
20 lines
1.1 KiB
Markdown
|
|
# 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.
|