Full chat transcript Β· 2026-09-06 β 2026-09-07
Icons beside a reply link to the underlying data β click one to open the map, growth chart, or record it's drawn from.
Two adjoining holdings in Berlin-Tiergarten, run as one operation.
Victory Farm (Old MacDonald, Agricultural Manager) β arable. Parcels: Wheatfield (buckwheat, seeded, clay/clay loam, soil moisture 50%, air 15.4 Β°C) and Cornfield (corn, growing, loam, 60%). Buildings: farmhouse, Triton Tower (water tower), Big Red Barn.
Animal Farm β also "Manor Farm" (Napoleon the Pig). Four grass parcels, all maturing: South Pasture (loam), East Pasture (silt loam), Water Meadow (sandy loam, wettest at 70%), The Paddock (loam). Building: farmhouse. Squealer and Snowball are on the books with no land or stock.
Livestock β 73 head: 43 dairy cattle and 30 pigs. Cattle graze the four Animal Farm pastures (two held in the Big Red Barn); the pigs carry no parcel and sit near the buildings. Every animal wears a collar reporting heart rate, location and activity.
Weather: mild and dry across five stations β 15.3β16.2 Β°C, ~50% humidity, negligible rain, light south-easterly. Forecast overcast, 11β16 Β°C.
Flags: Goliath's collar (pig032) reads NOT OK with a flat battery. Also note the observation timestamps run ahead of today's date β the feed clock is fast.
Two bulls β Beany (752 kg, East Pasture) and Ferdinand (757 kg, South Pasture), both Old MacDonald's. There is also one bull calf, Bumble (118 kg, still with the cows on South Pasture). The three big pigs β Giant, Mammoth, Colossus β are boars, not bulls.
Ferdinand is on South Pasture, which is loam β an even mix of sand, silt and clay (texture class "Loam").
No β 41 of the 43 cattle are out on the four pastures. Two are held in the Big Red Barn: Twilight (flagged "needs to see the vet") and Buttercup (a calf born today).
Her record carries a single note β "Needs to see the vet." β with no diagnosis attached, so she is being held in the barn pending that check. Nothing else in her data points to a problem: health status still reads "healthy", heart rate 52 bpm, weight flat at ~434 kg for months. She is also on oats rather than grass, consistent with being kept in.
Twilight isn't sick β she calved today. Buttercup, the newborn in the barn with her, has calvedBy pointing to Twilight (cow006). Everything else lines up with a fresh cow:
noStatus β the only adult cow not active/inHeat/inCalf.So the "see the vet" note is the routine fresh-cow / newborn check, not an emergency. Worth watching anyway: she is 8.4 years old (the milk-fever risk group) and her HR of 52 is the lowest in the herd; the calf is light at 20 kg, so prioritise the colostrum check. Her collar is healthy, so the low HR is a real reading.
Pulled 12β25 months of weight history on 20 head across every age group. The herd is mostly sound β mature cows holding steady, growth curves on track, both bulls fine, nursing calves Bumble (0.79 kg/day) and Blossom (0.70 kg/day) on target.
Three individuals to investigate:
cow010) β rose to 355 kg by May, then 355β342β328β315β315: lost 40 kg (11%) over four months, now stalled. Abnormal for a young adult.cow025) β 413β360 kg steady decline over ~14 months, 8-year-old cow. Chronic-disease pattern.cow005) β weight fine, but resting heart rate 70 bpm against a herd average of 53. Sole cardiac outlier.Data oddity: Spots (cow040) shows +63 kg in one month against a history of +9β20 β physiologically impossible, so a mis-weigh. Re-weigh.
Breed isn't recorded β every animal just carries species: "dairy cattle", no breed attribute. ("Fresian" and "Jersey" appear only as the names of two individual cows.)
From the weights it behaves like Jersey or a small breed: mature cows plateau at ~360β490 kg and the bulls sit at ~750 kg, well under Holstein-Friesian. If that's right, the absolute-weight worries soften β mature cows holding at 360β490 kg are at legitimate size, and the 2025-born heifers running ~0.5 kg/day are low-normal rather than stunted. The trend flags β Tulip, Bug, Sun β don't depend on breed and stand either way. Worth adding breed to the records so growth can be benchmarked properly.
Confirming Jersey clears the whole absolute-weight column β mature cows and the 2025 heifers are all normal for the breed, and Buttercup's 20 kg birthweight is only mildly light. What's left:
cow010) β top priority. β11% over four months, now stalled. Parasites, Johne's, or feed-access competition.cow025) β 53 kg decline over 14 months. Run a Johne's screen; check her teeth.cow005) β resting HR 70 vs herd 53. Look for pain, fever, or stress.cow040) β data fix: re-weigh, likely a mis-weigh or tag swap.cow006) β routine post-calving check; watch the low HR given her age.Everything else in the sample reads healthy against Jersey norms.
There is no North Pasture on this farm. The six parcels are Wheatfield and Cornfield (arable) and South Pasture, East Pasture, Water Meadow, The Paddock (grazing).
And parcel size can't be read from the system for any of them: AgriParcel records carry crop, soil, sensors and current temperature/humidity, but no boundary geometry and no area attribute. So there's no stored acreage. Collar GPS is the only way to estimate extent β name a real pasture and I'll do it.
Inferred from collar GPS β a single fix per animal, all stamped 06:36 on 2026-09-06, no track history.
9 fixes (Trotter and the calf Bumble on the identical point), centred just south-west of the Big Red Barn:
The hull is a hard lower bound β stock bunch and don't walk the fence line β so realistic field size is around 1.2β2.5 ha. Eight grazing head on that hull is ~4 LSU/ha, above the ~2β3 typical for set-stocked grazing; it may be a rotational cell. Tulip is in this mob, at the south-west edge.
The pigs carry no parcel and no boundary record β this is from collar GPS, one snapshot at 06:36.
The 30 fixes split into two groups: a main piggery of 27 sows/gilts, and three boars β Giant, Mammoth, Colossus β clustered ~200 m north-west in a separate pen (normal husbandry).
Main piggery: ~63 m eastβwest by ~98 m northβsouth; bounding box β 0.62 ha, occupied hull β 0.50 ha. Treat as a lower bound β the real pen is plausibly 0.6β1.0 ha. At ~45β55 pigs/ha this reads as a bedded yard or hard-standing paddock, not extensive free-range. Boar pen: spans ~25 m between fixes, so on the order of 20β30 m across.
None. Every pig in the system is an adult β 27 sows/gilts and 3 boars, all 200β343 kg, none tagged as young or nursing.
Litters are on the way: Peach and Tango are inCalf (in-pig), and Magenta and Bruce are inHeat. No piglets have been born or registered yet.
Working from 27 breeding females, 3 boars and the reproductive flags, with standard pig figures (~10β12 born alive per litter, 115-day gestation, up to ~2 litters/sow/year):
inCalf β ~20β25 piglets, due within about four months.inHeat if served β another ~20β25; combined ~40β50 over the next 5β6 months.Only 2 of 27 showing inCalf is low β a continuously bred herd would have 5β7 pregnant at any moment β so current breeding activity looks like the bottom of that range. Boar ratio 1:9 is adequate, so output isn't sire-limited. No litters are registered as entities, so nothing here counts actual piglets on the ground.
Likely, yes. The main risk isn't square-metres β it's that the data shows one undifferentiated pig group with no farrowing sub-pens, and two sows due to farrow into that shared space within ~4 months.
From the current data: Goliath's collar is down β a sow with no location/activity/heart-rate telemetry as farrowing nears. And three mature boars share a pen next to in-heat sows (fighting risk).
Caveat: if farrowing arcs or a farrowing house exist but simply aren't recorded as entities, the first three points largely go away. Confirm on the ground before the first sow is due.
Inputs: 27 sow/gilt fixes and 3 boar fixes from the 06:36 snapshot, projected to metres. Bounding box of the pig data = 273.7 m Γ 193.7 m = 5.30 ha (the holding itself has no recorded boundary).
| Method | Sow parcel | Boar parcel |
|---|---|---|
| (a) Voronoi, 2 centroids | 2.97 ha | 2.33 ha |
| (a) Voronoi, 30 points | 3.39 ha | 1.91 ha |
| (b) NN circles, r = NN/2 | 0.35 ha | 0.011 ha |
| (b) NN circles, r = NN | 1.40 ha | 0.043 ha |
| (c) Cluster footprint (hull) | 0.54 ha | 0.0023 ha |
Voronoi over-allocates β most of its area is empty ground between the groups. NN circles measure spacing, not paddock. The convex-hull footprint (~0.5 ha sows) is the most defensible parcel size, and it's a lower bound β call the sow paddock 0.5β1.0 ha, the boar pen 0.05β0.1 ha.
Stocking check (27 sows ~283 kg; benchmark 9β15 sows/ha outdoor, ~1,000β1,500 kg LW/ha sustainable):
Boars: footprint gives ~75 mΒ²/boar, above the EU 6β10 mΒ² minimum. Their welfare risk is being housed together next to in-heat sows, not area.
Six-way partition: the four pastures plus the sow and boar enclosures. Animal Farm bounding box (71 fixes): 612 m Γ 970 m = 59.4 ha β mostly empty ground; the clusters sit 250β500 m apart.
| Parcel | n | Voronoi /cent | NN (r=NN) | Footprint |
|---|---|---|---|---|
| South Pasture | 9 | 9.39 ha | 1.54 ha | 0.80 ha |
| East Pasture | 10 | 15.25 ha | 28.1 ha* | 1.75 ha* |
| Water Meadow | 13 | 10.23 ha | 2.68 ha | 0.98 ha |
| The Paddock | 9 | 10.51 ha | 2.51 ha | 0.80 ha |
| Sows | 27 | 12.16 ha | 1.40 ha | 0.54 ha |
| Boars | 3 | 1.84 ha | 0.43 ha | 0.02 ha |
* East Pasture is distorted by one animal (Beany) sitting 250 m from the rest.
Which to trust: Voronoi hands each pasture 9β15 ha of mostly dead ground β unusable for stocking. Footprint is the honest occupied area but a lower bound (herds bunched at 06:36). Best estimate: 2β5 ha per pasture.
Stocking (permanent pasture ~2β2.5 LSU/ha; a 400 kg Jersey β 0.67 LSU): on the realistic middle, the four pastures run at to modestly above the guideline β tolerable under rotation with rest. The sow yard is the real exception at ~24 LSU/ha on its footprint. Boars have adequate space.
Anomaly the geometry exposes: Beany (bull, registered to East Pasture, flagged "check hooves") is physically in the South Pasture cluster, right alongside the South Pasture bull Ferdinand β two mature bulls together, one in the wrong paddock per the records. Check fences and the location tag.
β 2026-09-07 Β· writes to the broker β
breed attribute to the cows β all cows are Jersey.Applied to all 43 head (cow001βcow040, cow101βcow103) β breed: "Jersey" on every one.
East Pasture (AgriParcel:004) β grass, silt loam. His locatedAt is stamped 11:32 today.
Note: Beany is a bull (legalId M-bull001), not a cow β despite the cowNNN entity ID.
Can't confirm β and nothing suggests it. His collar still reads locatedAt East Pasture, last GPS fix [13.34973, 52.51139], same timestamp.
The parcels carry no boundary geometry, so there is no fence line to test the point against, and only one location sample in history β no movement trail.
Done. Set Beany's location to [13.35359, 52.51361] β the centroid of the other 9 cows on East Pasture, about 300 m north-east of her last fix.
This overwrites a collar reading, so Device:cow001's next GPS report will replace it.
Boars Mammoth (pig031), Giant (pig035) and Colossus (pig037) cluster near [13.34713, 52.51973].
Created a 32-vertex polygon approximating a 20 m-radius circle on that centroid β all three sit within ~15 m β stored it as a new entity urn:ngsi-ld:Building:BoarPen (type Building), and set each boar's locatedAt to it. Read "20 m" as radius; a 20 m diameter would not enclose the spread.
Deleted urn:ngsi-ld:Building:BoarPen and rebuilt it as urn:ngsi-ld:Pen:BoarPen (type Pen, same circular polygon), then repointed all three boars' locatedAt at it.
Yes. locatedAt β Pen:BoarPen for all three, and their last collar fixes fall 12β15 m from centre, inside the 20 m radius β the polygon was drawn around those points.
Caveats: the collars keep reporting live positions, so locatedAt will not auto-update if a boar wanders out; the broker is not enforcing polygon filters, so containment was checked by hand.
Pen entity hold?Right now it carries only name, description, lastUpdate and location (the polygon). There is a Pen schema β the Smart Data Models model at ontology://agrifood/Pen β which only forces lastUpdate but defines plenty more:
farmId β the farm, buildingId / compartmentId if indoorsnumAnimals, sex (the farm uses Male/Female, as on the animals), arrivalTimestamp, deadAnimalsSinceDateOfArrivalavgWeight, weightStDev, avgGrowth, feedConsumption, waterConsumptiontemperature, humidity, co2, luminosity (all observedAt)The model has no species, numeric area or occupancy status field, so those stay as extensions. Minimum worth adding now: farmId, numAnimals, sex, arrivalTimestamp, avgWeight, plus extension area / status / hasAnimal.
Written to Pen:BoarPen on the Pen schema:
farmId β AgriFarm:farm002 (Animal Farm) Β· numAnimals 3 Β· sex MalearrivalTimestamp 2026-09-07T11:46Z Β· avgWeight 302 kg Β· weightStDev 44 kg (Mammoth 325, Giant 340, Colossus 241)species pig, area 1249 mΒ², status occupied, hasAnimal β the three boars (inverse of their locatedAt)lastUpdate bumped to 12:30. (An earlier pass had used ad-hoc category / containedInPlace names; those were re-aligned to sex / farmId.)
Via the temporal API:
cow001βcow040) β monthly readings, Sep 2024 β today, ~25 points each.cow101βcow103) β weekly since May 2026, ~17 points.So cattle weights trend over ~2 years and the calves over ~4 months; pigs cannot be trended.
Sampled ~15 head across age classes against Jersey norms (mature cow 400β500 kg, bull 600β820 kg, healthy heifer gain ~0.5β0.7 kg/day).
Sound: both bulls stable, mature cows flat within range, calves Bumble (0.79 kg/day) and Blossom (0.71 kg/day) on target; 2025-born heifers ~0.47β0.55 kg/day β low-normal for Jersey.
Flags:
cow010) β lost ~40 kg (11%) MayβAug, now stalled.cow025) β steady decline 406β360 kg since Jan, 8-year-old.cow040) β impossible +63 kg in one month; re-weigh.cow020) β tracking ~15% under age target; monitor.healthCondition is recorded for only 2 of 43 animals β everything else is inferred from weight alone.
Bug recheck confirms a real problem: flat at ~405β413 kg to Jan 2026, then a steady monotonic decline to 360 kg (β13%). Sick, not a data blip.
Set healthCondition on all 43 cattle β 41 healthy, 2 sick:
cow010) β sick + comment: ~11% loss MayβAug; likely parasitism or subclinical disease β BCS and faecal egg count.cow025) β sick + comment: ~13% loss since Jan in an 8-year-old; likely parasitism, dental wear, or Johne's β vet exam.Spots (cow040) β weight amended 349 β 300 kg, left healthy.
Added. Chalky (cow020) stays healthy with a note: average daily gain ~0.41 kg/day, roughly 15% below the Jersey age target, growth continuous with no stall β review ration and worm burden, re-weigh monthly.
β 2026-09-07 Β· disease register β
From the healthCondition and comment fields on the animals:
cow010), Bug (cow025), and Chalky (cow020) as a watch item.cow001), from a "check hooves" note.cow005), resting heart rate 70 bpm against a herd mean of ~53.Pigs carry no health flags β only forecast farrowing risks and a dead collar battery on Goliath.
Created 5 AnimalDisease records on the Smart Data Models schema (disease, animals, date, diagnosticTest), each linked to its animal (animals β hasDisease) and parcel, with extension fields for clinical signs, differentials, severity, zoonotic/notifiable flags and treatment notes:
suspected, moderate)suspected, high)under-observation, mild)suspected)suspected, moderate)treatmentStatus is pending diagnosis throughout β treatment options recorded per condition (anthelmintics Β± flukicide, hoof trim + footbath, the traumatic-reticuloperitonitis protocol, etc.), nothing to be given blind.
Added 5 more, all forecast since no pig is clinically ill:
anticipated, high)anticipated; S. suis is zoonotic)anticipated)risk)risk)Ten AnimalDisease records total β 5 cattle, 5 pig β plus hasDisease back-links on the ten animals involved.