Technical Minutes 2020 07 31 - adewg/ICAR GitHub Wiki

ICAR Animal Data Exchange Working Group – Technical meeting 31 July 2020

  • In attendance: Andrew C, Arjan L, Craig V, Erwin S, Marvin R, Sven S, Thomas P.
  • Apology noted from Andrew who had a family event come up on 17 July, which meant that the meeting could not be started.

Agenda:

  1. Timeline for ADE 1.1.
  2. Reproductive and Lactation Status
  3. Listing and filtering resources - query parameters
  4. Collections or Arrays for APIs
  5. Examples of updating URL schemes
  6. Gestations

1. Timeline for ADE 1.1 (#128)

Feedback from the comments on the issue indicated we should complete and promote ADE 1.1 as soon as possible.

  • There has been good progress with Health Treatments, Available Locations, and Conformation Scoring (incl. Condition Scores) being added.
  • Noted we wanted to complete the work in progress with Gestations API.

2. Collections and pagination (#111)

Discussed the combined reproductive and lactation status originally suggested by GEA.

  • Noted that this was a useful derived status to have for many animal recording and management purposes.
  • Reflected our earlier questions whether this should belong in a separate sub-resource that could be queried for an animal by URL, or just added to the animal core resource.
  • Discussed owner vs. locations (farms). Ownership can be complex with multiple owners.
  • Decided that it reproductive status and lactation status to be optional fields within the animal core object.
  • Marvin will take the lead in drawing together status values. Preference of the group was two fields rather than one if it made sense.

3. Listing and filtering resources - query parameters (#130)

Should we document common query parameters, especially for the Animals end point? It would be useful to specify if you wanted all animals or only live animals.

  • We should document how query parameters should be formulated generally.
  • Filtering on status of alive or not is particularly important and useful for animals.
  • Arjan undertook to start documenting this in the Wiki. We should probably update the URL scheme for the animals collection too.

4. Collections or Arrays for APIs (#129)

We returned to discuss the issue that was previously covered on 3 July 2020 . We understand the cases well:

  • There are cases where pagination is necessary, particularly dealing with large data sets that cannot be predictively filtered.
  • There are cases for data hubs where inspection to merge collections from different sources is inefficient - particularly where those hubs support other than ICAR specifications. The only obvious solution discussed was to support two API specifications (one with just an array, the other with a "collection" envelope and array). This is not desirable, but may be more obvious than having a parameter where the client asks for one or the other.

5. Examples of updating URL schemes (relates to #18)

It would be useful to document how to send updates with PUT/POST/DELETE. Not all implementations would support these.

  • Noted that the exampleUrlScheme.json file is getting quite large, though it is already categorised by topic.
  • Could split the file into separate files by topic - or wait and see if there is demand.
  • Could create a file and documentation for how to POST into a collection, to PUT (update) resources, etc.
  • Andrew undertook to look at this.

6. Gestations (#121)

Erwin presented an updated Gestations resource and API proposal.

  • The updated resource contains expected calving date and sire(s), but no other properties.
  • Erwin to create a pull request for this as the meeting was happy with this resource.

Next meeting scheduled for 14 August 2020 at 9am CET