6.3.2.5 AnimalProfileEvidence
6.3.2.5.1 Purpose¶
What one source says about an animal: its sex, birth date, breeds and parents. Like events, it is evidence: kept as received, one row per source record, never overwritten, so disagreements between sources, or between two cards of the same source, stay visible. The values on Animal are chosen from it by versioned rules.
6.3.2.5.2 Questions it answers¶
- What did each source say about this animal's sex, birth date, breed and parents?
- Do the sources disagree, and which raw record does each statement come from?
- Which statements did the resolution have to choose between?
6.3.2.5.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
animal |
Animal | 1..1 |
|
sex |
AnimalSexEnum | 0..1 |
|
birth_date |
EventTime | 0..1 |
|
breeds |
BreedShare | 0..* |
|
sire |
ParentReference | 0..1 |
|
dam |
ParentReference | 0..1 |
|
source_producer |
SourceProducerEntity | 1..1 |
|
source_feed |
SourceFeed | 1..1 |
|
raw_metadata |
RawMetadata | 0..1 |
Required; see lineage. |
raw_locator |
string |
0..1 |
|
source_record_key |
string |
1..1 |
e.g. the card id in the management software. (source_feed, source_record_key) is the logical identity. |
recorded_at |
EventTime | 0..1 |
|
content_hash |
string |
1..1 |
|
status |
enum | 1..1 |
Values: final, corrected, cancelled. Default: final. |
revision |
RecordRevision | 1..1 |
|
farm |
Farm | 1..1 |
The farm of the feed that delivered the record (= source_feed.farm), copied here as the key of partitioning, row-level access and erasure; it never changes on a revision. See STORAGE. |
created_at |
datetime |
1..1 |
6.3.2.5.4 Relationships¶
References
AnimalProfileEvidence.animal→ Animal (1..1)AnimalProfileEvidence.source_producer→ SourceProducerEntity (1..1)AnimalProfileEvidence.source_feed→ SourceFeed (1..1)AnimalProfileEvidence.raw_metadata→ RawMetadata (0..1)AnimalProfileEvidence.farm→ Farm (1..1)
Referenced by
DataIssue.profile_evidence(0..*)
Uses types
AnimalSexEnum, EventTime, BreedShare, ParentReference, RecordRevision
6.3.2.5.5 Rules & constraints¶
- What one feed says about an animal's registry attributes. Evidence like CanonicalEvent: never overwritten; the values on Animal are chosen from it by rules (ReconciliationRuleSet, SourceReliability).
- e.g. Lely: cards with the same official ID give two birth dates, two sexes or two sires for the same animal (10 cases on 3 farms).
- An empty field means "not stated by this source", not "unknown value".
- Two cards of the same source are two evidence rows: their disagreement is visible, not overwritten.