6.3.2.1 Animal
6.3.2.1.1 Purpose¶
The record of one individual animal. Its internal id stays the same when the animal moves between Organizations. Sources can disagree about its sex, birth date, breeds and parents, so these values are chosen by versioned rules from what every source said (profile evidence); its identifiers come from external identifiers. When two records turn out to be the same animal they are linked, never moved or deleted.
6.3.2.1.2 Questions it answers¶
- Which animal does this identifier refer to?
- What are the animal's sex, birth date, breed and parents, and how were they chosen among the sources?
- Which parturition produced this animal?
- Was this record merged into another one?
6.3.2.1.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
identifiers |
IdentifiersValues | 1..1 |
|
animal_type |
AnimalType | 1..1 |
|
sex |
AnimalSexEnum | 0..1 |
Resolved from AnimalProfileEvidence, like Animal.breed_memberships, Animal.birth_date, Animal.sire and Animal.dam; see Animal.profile_status. |
breed_memberships |
BreedMembership | 0..* |
The sum of the known breed_value of an animal is between 0 and 1.The remainder is split among the memberships with unknown breed_value; with none, it is of unknown breed.No memberships: breed unknown. |
birth |
Offspring | 0..1 |
Unique. Current resolved projection to one evidence row; other birth evidence remains admissible. Empty when the parturition is unknown. |
birth_date |
EventTime | 0..1 |
Known even when the parturition is not, e.g. for purchased or imported animals. Vital status derives from non-cancelled resolved death evidence, not the latest farm exit. Sale, destination to slaughter and confirmed death are distinct; disputed evidence remains explicitly disputed. |
status |
enum | 1..1 |
Values: active, merged. Default: active.merged: this record was found to be the same animal as another one (see AnimalLink); readers follow the survivor.Rows are never moved or deleted, so a merge can be reverted. |
system_version |
SystemVersion | 1..1 |
History of this row: every change keeps the previous version with the write numbers it was valid between (SystemVersion), so the animal can be read as it was at any past write. A merge or unmerge is such a change. |
sire |
ParentReference | 0..1 |
The father: a registered Animal (e.g. a bull of our catalog) or only the identifier or name the source gave. Chosen among the sources' statements in AnimalProfileEvidence. |
dam |
ParentReference | 0..1 |
The mother; same rules as sire. Known even without a recorded parturition, e.g. for purchased animals (from the official registry). |
profile_status |
enum | 1..1 |
Values: corroborated, single_source, conflict_resolved, unresolved. Default: single_source.How sex, birth date, breed and parents were chosen among the sources. conflict_resolved and unresolved carry a DataIssue (kind profile_conflict); each source's statement stays in AnimalProfileEvidence. |
created_at |
datetime |
1..1 |
|
updated_at |
datetime |
1..1 |
6.3.2.1.4 Relationships¶
References
Animal.animal_type→ AnimalType (1..1)Animal.breed_memberships→ BreedMembership (0..*)Animal.birth→ Offspring (0..1)
Referenced by
BreedMembership.animal(1..1)AnimalProfileEvidence.animal(1..1)AnimalGroupMembership.animal(1..1)AnimalOwnership.animal(1..1)DeviceAssignment.animal(1..1)AnimalObservation.animal(1..1)ObservationSession.animal(0..1)AnimalEvent.animal(1..1)Offspring.animal(0..1)AnimalPeriod.animal(1..1)ResolvedEvent.animal(0..1)AnimalLink.survivor(1..1)AnimalLink.other(1..1)DataIssue.animals(0..*)Sample.animal(0..1)ParentReference.animal(0..1)
Uses types
IdentifiersValues, AnimalSexEnum, EventTime, SystemVersion, ParentReference
6.3.2.1.5 Rules & constraints¶
- The internal UUID persists across Organization transfers; external identifiers are scoped to an Organization (see ExternalIdentifier).
- Group membership is optional, with no default group.
- Missing imported values do not erase known facts.
- An animal cannot be born from itself, so the birth is not a required field.