22 lines
1.0 KiB
Markdown
22 lines
1.0 KiB
Markdown
# Validation rules
|
||
|
||
Reject an import atomically if any error rule fails:
|
||
|
||
1. Exact documented headers; UTF-8; unique, non-empty stable keys.
|
||
2. Unique normalised names; trimmed display values; controlled enum/boolean values.
|
||
3. Every relationship endpoint and every usage foreign key resolves.
|
||
4. No self-relationships or duplicate `(from, to, type)` relationships.
|
||
5. All numeric weights are finite and in `[0,1]`.
|
||
6. Male and female weights total 1 within `0.0002`.
|
||
7. Every name/locale has exactly five ordered, contiguous, non-overlapping bands covering 1900–2026.
|
||
8. No ownership columns or project-specific aliases enter the reference package.
|
||
9. Package version and import outcome are recorded transactionally.
|
||
|
||
Behavioural invariants:
|
||
|
||
- Unknown name → no dictionary evidence, never “not a person”.
|
||
- Relationship → candidate/explanation/warning, never automatic identity merge.
|
||
- Gender prior → ranking hint, always subordinate to manuscript evidence.
|
||
- Used-name status → computed from project/book/series character data at query time.
|
||
|