6.3.2.9 Ownership
6.3.2.9.1 Purpose¶
Records who legally owns an animal or group and which farm manages it, period by period. Ownership drives access: members of the legal owner and of the manager farm see the animal according to their role, while any other Organization needs a delegation. A transfer closes one period and opens the next at the same instant.
6.3.2.9.2 Questions it answers¶
- Who owned and who managed this animal on a given date?
- Which Organizations can access an animal now?
- Which part of an animal's history can the receiving Organization see after a transfer?
6.3.2.9.3 Fields¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
id |
string (uuid) |
1..1 |
Key. |
period |
Period | 1..1 |
valid_from: when the ownership started; valid_until: when it was transferred to another Organization. |
legal_organization |
Organization | 0..1 |
The legal owner of the animal or group; may be unknown or unrecorded. |
manager_farm |
Farm | 1..1 |
The actual farm that manages the animal or group. |
source_producer |
SourceProducerEntity | 0..1 |
|
system_version |
SystemVersion | 1..1 |
|
created_at |
datetime |
1..1 |
|
updated_at |
datetime |
1..1 |
6.3.2.9.4 Subtypes¶
Discriminator type: every Ownership is exactly one of the subtypes below (disjoint and complete).
AnimalOwnership¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
animal |
Animal | 1..1 |
AnimalGroupOwnership¶
| Field | Type | Cardinality | Description |
|---|---|---|---|
animal_group |
AnimalGroup | 1..1 |
6.3.2.9.5 Relationships¶
References
Ownership.legal_organization→ Organization (0..1)Ownership.manager_farm→ Farm (1..1)Ownership.source_producer→ SourceProducerEntity (0..1)AnimalOwnership.animal→ Animal (1..1)AnimalGroupOwnership.animal_group→ AnimalGroup (1..1)
Referenced by
HerdExitEvent.management_episode(as AnimalOwnership) (0..1)
Uses types
Subtypes
- by
type: AnimalOwnership, AnimalGroupOwnership
6.3.2.9.6 Rules & constraints¶
- Each record links one Animal or AnimalGroup to its legal Organization and manager farm for a period; id identifies that period.
- Periods of the same Animal (or AnimalGroup) must not overlap.
- A transfer closes the previous period and starts a new one at the same instant, including returns.
- The previous ownership is derived: the record of the same Animal (or AnimalGroup) with the latest
valid_frombefore this one. - Members of both
legal_organizationandmanager_farmcan access the animal or group, according to their role; any other Organization can access it only through a delegation (see OrganizationDelegationMembership). - Ownership and group membership changes are separate; preserve provenance and historical access rules.
- History before a transfer: the receiving Organization sees only registry and genealogy data of the time before the transfer: identifiers, birth, parents, breed, official movements (HerdEntryEvent, HerdExitEvent).
- Management, sensor, health and treatment data of a previous owner stay visible only to that owner. An AnimalLink grants nothing more.
- Each record is authorized against its observation/event time and the user's ownership/management episode; a record with unknown time or ambiguous farm context is restricted until resolved. Product/group permissions are explicit.