Skip to content

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

Referenced by

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.