Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feed API's first version #176

Merged
merged 92 commits into from
Dec 16, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
48a5e89
Update exampleUrlScheme.json
erwinspeybroeck Nov 16, 2020
2e152e0
Update exampleUrlScheme.json
erwinspeybroeck Nov 16, 2020
cfacf3b
Create icarFeedCollection.json
erwinspeybroeck Nov 16, 2020
dbb6cfc
Create icarRationCollection.json
erwinspeybroeck Nov 16, 2020
e1a6b15
Create icarFeedIntakeEventCollection.json
erwinspeybroeck Nov 16, 2020
3b27904
Create icarDailyFeedReportCollection.json
erwinspeybroeck Nov 16, 2020
9d9cfd3
Create icarFeedRecommendationCollection.json
erwinspeybroeck Nov 16, 2020
06338be
Create icarFeedCategory.json
erwinspeybroeck Nov 16, 2020
4902ae9
Create icarFeedCategoryType.json
erwinspeybroeck Nov 16, 2020
b2afe93
Delete icarFeedCategory.json
erwinspeybroeck Nov 16, 2020
cc1023d
Create icarFeedIdentifierType.json
erwinspeybroeck Nov 16, 2020
a3c7333
Create icarFeedResource.json
erwinspeybroeck Nov 16, 2020
eab6e9f
Create icarFeedPropertyType.json
erwinspeybroeck Nov 16, 2020
793b5a4
Create icarPropertyIdentifierType
erwinspeybroeck Nov 16, 2020
f4c7c1b
Update icarFeedResource.json
erwinspeybroeck Nov 16, 2020
6ad4d4d
Update icarFeedResource.json
erwinspeybroeck Nov 16, 2020
9351baa
Update icarFeedResource.json
erwinspeybroeck Nov 16, 2020
939f937
Update icarFeedResource.json
erwinspeybroeck Nov 16, 2020
91d13e5
Update icarFeedResource.json
erwinspeybroeck Nov 16, 2020
43f3495
Update icarFeedCategoryType.json
erwinspeybroeck Nov 16, 2020
77866c5
Update icarFeedResource.json
erwinspeybroeck Nov 16, 2020
912c1e6
Update icarFeedPropertyType.json
erwinspeybroeck Nov 16, 2020
d088f85
Update icarFeedResource.json
erwinspeybroeck Nov 16, 2020
be3a046
Update icarFeedPropertyType.json
erwinspeybroeck Nov 16, 2020
6b02110
Update icarFeedPropertyType.json
erwinspeybroeck Nov 16, 2020
f110b03
Create icarPropertyIdentifierType.json
erwinspeybroeck Nov 16, 2020
3aaa6fe
Delete icarPropertyIdentifierType
erwinspeybroeck Nov 16, 2020
81ddf4f
Update exampleUrlScheme.json
erwinspeybroeck Nov 17, 2020
16b9f6d
Update exampleUrlScheme.json
erwinspeybroeck Nov 17, 2020
8a4a916
Update location-scheme.md
erwinspeybroeck Nov 17, 2020
7e2a4a6
Update icarPropertyIdentifierType.json
erwinspeybroeck Nov 18, 2020
77e483e
Update icarFeedIdentifierType.json
erwinspeybroeck Nov 18, 2020
e8f7040
Update icarFeedPropertyType.json
erwinspeybroeck Nov 18, 2020
7e662f1
Update location-scheme.md
erwinspeybroeck Nov 18, 2020
ddef027
Create icarMethodType.json
erwinspeybroeck Nov 18, 2020
ad69898
Update icarFeedPropertyType.json
erwinspeybroeck Nov 18, 2020
1c4d93e
Update location-scheme.md
erwinspeybroeck Nov 19, 2020
8b08f02
Update icarFeedResource.json
erwinspeybroeck Nov 19, 2020
67ed3ba
Update icarMethodType.json
erwinspeybroeck Nov 19, 2020
19c2f7e
Create icarRationResource.json
erwinspeybroeck Nov 30, 2020
c6cd6ae
Create icarFeedsInRationType.json
erwinspeybroeck Nov 30, 2020
05ffb71
Create icarFeedIntakeEventResource.json
erwinspeybroeck Nov 30, 2020
0af5be8
Create icarFeedDurationType.json
erwinspeybroeck Nov 30, 2020
d087acd
Create icarConsumedFeedType.json
erwinspeybroeck Nov 30, 2020
da511ee
Create icarFeedQuantityType.json
erwinspeybroeck Nov 30, 2020
5aa9812
Create icarConsumedRationType.json
erwinspeybroeck Nov 30, 2020
700aaf0
Update icarFeedIntakeEventResource.json
erwinspeybroeck Nov 30, 2020
8bc8511
Update icarFeedIntakeEventResource.json
erwinspeybroeck Nov 30, 2020
55bfdc9
Create icarRationIdentifierType.json
erwinspeybroeck Nov 30, 2020
cbcdb72
Update icarFeedIntakeEventResource.json
erwinspeybroeck Dec 1, 2020
99b2d34
Update icarFeedIntakeEventResource.json
erwinspeybroeck Dec 1, 2020
2648d16
Update icarConsumedFeedType.json
erwinspeybroeck Dec 1, 2020
1667f6e
Update icarFeedIntakeEventResource.json
erwinspeybroeck Dec 1, 2020
e4348cd
Update icarConsumedRationType.json
erwinspeybroeck Dec 1, 2020
a308091
Create icarRationIdType.json
erwinspeybroeck Dec 1, 2020
5e14db9
Update icarConsumedRationType.json
erwinspeybroeck Dec 1, 2020
0e12633
Delete icarRationIdentifierType.json
erwinspeybroeck Dec 1, 2020
27579a7
Update icarRationResource.json
erwinspeybroeck Dec 1, 2020
2242944
Update location-scheme.md
erwinspeybroeck Dec 1, 2020
86c5f6b
Create icarFeedRecommendationIdType.json
erwinspeybroeck Dec 1, 2020
680abf2
Create icarFeedRecommendationResource.json
erwinspeybroeck Dec 1, 2020
4ab4618
Create icarDateType.json
erwinspeybroeck Dec 1, 2020
8f2e787
Create icarDailyFeedReportResource.json
erwinspeybroeck Dec 1, 2020
f8f1a55
Create icarRecommendedFeedType.json
erwinspeybroeck Dec 1, 2020
53d99cf
Create icarRecommendedRationType.json
erwinspeybroeck Dec 1, 2020
86a4732
Update icarFeedRecommendationResource.json
erwinspeybroeck Dec 1, 2020
6396712
Update icarDailyFeedReportCollection.json
erwinspeybroeck Dec 11, 2020
5a6cb2d
Create FeedReportCollection.json
erwinspeybroeck Dec 11, 2020
57ab5cd
Update icarFeedCollection.json
erwinspeybroeck Dec 11, 2020
a4a3914
Delete FeedReportCollection.json
erwinspeybroeck Dec 11, 2020
381d0f1
Create icarFeedReportCollection.json
erwinspeybroeck Dec 11, 2020
e2bff9d
Update icarFeedIntakeEventCollection.json
erwinspeybroeck Dec 11, 2020
c3f4e20
Update icarFeedRecommendationCollection.json
erwinspeybroeck Dec 11, 2020
e06facc
Update icarRationCollection.json
erwinspeybroeck Dec 11, 2020
03446f2
Update icarDailyFeedReportResource.json
erwinspeybroeck Dec 11, 2020
84527c1
Create icarFeedReportResource.json
erwinspeybroeck Dec 11, 2020
6c3ef74
Update icarFeedIntakeEventResource.json
erwinspeybroeck Dec 11, 2020
74d63f5
Update icarFeedIntakeEventResource.json
erwinspeybroeck Dec 11, 2020
17f9f31
Update icarFeedRecommendationResource.json
erwinspeybroeck Dec 11, 2020
4365db5
Update icarFeedRecommendationResource.json
erwinspeybroeck Dec 11, 2020
e0d3fa9
Update icarFeedResource.json
erwinspeybroeck Dec 11, 2020
bde7a44
Update icarRationResource.json
erwinspeybroeck Dec 11, 2020
7054ad5
Update icarConsumedFeedType.json
erwinspeybroeck Dec 11, 2020
2aecace
Update icarConsumedRationType.json
erwinspeybroeck Dec 11, 2020
dae752c
Update icarConsumedRationType.json
erwinspeybroeck Dec 11, 2020
87cc210
Update icarFeedIdentifierType.json
erwinspeybroeck Dec 11, 2020
c959c8b
Update icarPropertyIdentifierType.json
erwinspeybroeck Dec 11, 2020
bf2721d
Update icarRecommendedFeedType.json
erwinspeybroeck Dec 11, 2020
c9c71f8
Update icarRecommendedRationType.json
erwinspeybroeck Dec 11, 2020
c826315
Update exampleUrlScheme.json
erwinspeybroeck Dec 11, 2020
81bb41a
Update icarFeedReportResource.json
erwinspeybroeck Dec 16, 2020
aa5d61b
Update icarFeedQuantityType.json
erwinspeybroeck Dec 16, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions collections/icarDailyFeedReportCollection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"description": "Represents a collection of daily feed reports. Based on icarResourceCollection to provide paging etc.",

"allOf": [{
"$ref": "../icarResourceCollection.json"
},
{
"type": "object",

"properties": {
"member": {
"type": "array",
"items": {
"$ref": "../resources/icarDailyFeedReportResource.json"
},
"description": "As per JSON-LD Hydra syntax, member provides the array of objects, in this case daily feed reports."
}
}
}
]
}
21 changes: 21 additions & 0 deletions collections/icarFeedCollection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"description": "Represents a collection of feeds. Based on icarResourceCollection to provide paging etc.",

"allOf": [{
"$ref": "../collections/icarResourceCollection.json"
},
{
"type": "object",

"properties": {
"member": {
"type": "array",
"items": {
"$ref": "../resources/icarFeedResource.json"
},
"description": "As per JSON-LD Hydra syntax, member provides the array of objects, in this case feeds."
}
}
}
]
}
21 changes: 21 additions & 0 deletions collections/icarFeedIntakeEventCollection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"description": "Represents a collection of feed intakes. Based on icarResourceCollection to provide paging etc.",

"allOf": [{
"$ref": "../collections/icarResourceCollection.json"
},
{
"type": "object",

"properties": {
"member": {
"type": "array",
"items": {
"$ref": "../resources/icarFeedIntakeEventResource.json"
},
"description": "As per JSON-LD Hydra syntax, member provides the array of objects, in this case feed intakes."
}
}
}
]
}
21 changes: 21 additions & 0 deletions collections/icarFeedRecommendationCollection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"description": "Represents a collection of feed recommendations. Based on icarResourceCollection to provide paging etc.",

"allOf": [{
"$ref": "../collections/icarResourceCollection.json"
},
{
"type": "object",

"properties": {
"member": {
"type": "array",
"items": {
"$ref": "../resources/icarFeedRecommendationResource.json"
},
"description": "As per JSON-LD Hydra syntax, member provides the array of objects, in this case feed recommendations."
}
}
}
]
}
21 changes: 21 additions & 0 deletions collections/icarFeedReportCollection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"description": "Represents a collection of feed reports. Based on icarResourceCollection to provide paging etc.",

"allOf": [{
"$ref": "../collections/icarResourceCollection.json"
},
{
"type": "object",

"properties": {
"member": {
"type": "array",
"items": {
"$ref": "../resources/icarFeedReportResource.json"
},
"description": "As per JSON-LD Hydra syntax, member provides the array of objects, in this case feed reports."
}
}
}
]
}
21 changes: 21 additions & 0 deletions collections/icarRationCollection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"description": "Represents a collection of rations. Based on icarResourceCollection to provide paging etc.",

"allOf": [{
"$ref": "../collections/icarResourceCollection.json"
},
{
"type": "object",

"properties": {
"member": {
"type": "array",
"items": {
"$ref": "../resources/icarRationResource.json"
},
"description": "As per JSON-LD Hydra syntax, member provides the array of objects, in this case rations."
}
}
}
]
}
12 changes: 12 additions & 0 deletions enums/icarFeedCategoryType.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"description": "Enumeration for feed categories. Each category can have more detail in a type specification.",

"type": "string",

"enum": [
"Concentrate",
"Roughage",
"Additives",
"Other"
]
}
10 changes: 10 additions & 0 deletions enums/icarMethodType.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"description": "Enumeration for the method with which a value was determined.",

"type": "string",

"enum": [
"Analyzed",
"Derived"
]
}
64 changes: 63 additions & 1 deletion location-scheme.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,9 @@ These schemes point to a specific animal.
| id | name | example| region & issuing party | RegEx |
|---|---|---|---|---|
| eu.animalId | LOM | 276000312312345 | EU wide scheme with a country prefix, combining multiple national schemes. Is used by transponders. First 3 positions is country code , e.g. 276=DE, is numeric, 15 digits. | |
| nl-v1 (rename to eu-??) | animal life number |NL 6802 *5082* 9 | EU wide scheme with a countryprefix, but different than the one above? [RVO on levensnummers](http://www.rvo.nl/onderwerpen/agrarisch-ondernemen/dieren/dieren-registreren/runderen/oormerken-voor-runderen) | |
| eu.bovine | European animal life time number |NL 6802 *5082* 9 | EU wide scheme with a countryprefix, but different than the one above? [RVO on levensnummers](http://www.rvo.nl/onderwerpen/agrarisch-ondernemen/dieren/dieren-registreren/runderen/oormerken-voor-runderen) | |
| us.bovine | US animal life time number |US 123456789 | US herdbook number | |


## Legal entities / companies

Expand All @@ -66,6 +68,66 @@ These schemes point to a legal entity. One that can be authenticated and is auth
| nl.kvk | Chamber of commerce number (Kamer van Koophandel nummer) |64039641 | Used in the Netherlands. Issued by the 'Kamer van Koophandel', can be checked at e.g. [OpenKVK](www.openkvk.nl) | |
| be.kbo | Chamber of commerce number (Ondernemersnummer) | | Used in Belgium. Issued by the 'Kruispuntbank voor Ondernemingen', can be checked at e.g. [fgov](https://kbopub.economie.fgov.be/kbopub/zoeknummerform.html?lang=nl) | |

## Feed types

We recommend to use the org.fao scheme for identifying feed types.

FAO also has a list of "feed materials for ruminant species" (see http://www.fao.org/fileadmin/user_upload/gleam/docs/GLEAM_2.0_Model_description.pdf) table 3.2.
There are 30 items:

Category roughages (and cereals)
| Number | Material | Desciption |
|---|---|---|
| 1 | GRASSF | Any type of natural or cultivated fresh grass grazed or fed to the animals. |
| 2 | GRASSH | Hay (grass is cut, dried and stored) or silage (grass is cut and fermented) from any natural or cultivated grass. |
| 3 | GRASSH2 | Hay from adjacent areas. |
| 4 | GRASSLEGF | Fresh mixture of any type of grass and leguminous plants that is fed to the animals. |
| 5 | GRASSLEGH | Hay or silage produced from a mixture of any type of grass and leguminous plants. |
| 6 | ALFALFAH | Hay or silage from alfalfa (Medicago sativa). |
| 7 | GRAINSIL | Silage from whole barley (Hordeum vulgare), oat (Avena sativa), buckwheat (Fagopyrum esculentum) and fonio (Digitaria spp.) plants. |
| 8 | MAIZESIL | Silage from whole maize (Zea mays) plants. |
| 9 | RSTRAW | Fibrous residual plant material such as straw, brans, leaves, etc. from rice (Oryza spp.) cultivation. |
| 10 | WSTRAW | Fibrous residual plant material such as straw, brans, leaves, etc. from wheat (Triticum spp.) cultivation. |
| 11 | BSTRAW | Fibrous residual plant material such as straw, brans, leaves, etc. from barley (Hordeum vulgare), rye (Secale cereale) or oat (Avena sativa) cultivation. |
| 12 | ZSTOVER | Fibrous residual plant material such as straw, brans, leaves, etc. from maize (Zea mays) cultivation. |
| 13 | MSTOVER | Fibrous residual plant material such as straw, brans, leaves, etc. from millet (Pennisetum glaucum, Eleusine coracana, Panicum miliaceum, etc) cultivation. |
| 14 | SSTOVER | Fibrous residual plant material such as straw, brans, leaves, etc. from sorghum (Sorghum spp.) cultivation. |
| 15 | TOPS | Top portion of sugarcane (Saccharum spp.) plants, consisting of green leaves, bundle sheath and variable proportions of immature cane. |
| 16 | LEAVES | Leaves from natural, uncultivated vegetation found in trees, forest, lanes etc. |
| 17 | FDDRBEET | Fodder beet (Beta vulgaris), also known as mangel beet or field beet, used as animal feed. |
| 18 | GRAINS | Grains from barley (Hordeum vulgare), oat (Avena sativa), buckwheat (Fagopyrum esculentum) and fonio (Digitaria spp.). |
| 19 | CORN | Grains from maize (Zea mays) plant. |

Category others (by-products)
| Number | Material | Desciption |
|---|---|---|
| 20 | MLSOY | By-product from soy (Glycine max) oil production, commonly referred to as ‘soy cakes’ or ‘soybean meal’. |
| 21 | MLRAPE | By-product from rape (Brassica napus) oil production, commonly referred to as ‘rape cakes’ or ‘rapeseed meal’. |
| 22 | MLCTTN | By-product from cottonseed (Gossypium spp.) oil production, commonly referred to as ‘cottonseed meal’. |
| 23 | PKEXP | By-products from the production of kernel palm oil (Elaeis guineensis), commonly referred to as 'kernel cake'. |
| 24 | MZGLTM | By-product from maize processing. It is a protein-rich feed, with about 65% crude protein content. |
| 25 | MZGLTF | By-product from maize processing. Unlike the gluten meal, its protein content is lower, of about 25% crude protein content. |
| 26 | BPULP | Also known as ‘beet pulp’, is the remaining material after the juice extraction for sugar production from the sugar beet (Beta vulgaris). |
| 27 | MOLASSES | By-product from the sugarcane sugar extraction. |
| 28 | GRNBYDRY | ‘Dry’ by-products of grain industries such as brans, middlings, etc. |
| 29 | GRNBYWET | ‘Wet’ by-products of grain industries such as biofuels, distilleries, breweries, etc. |

Category concentrate
| Number | Material | Desciption |
|---|---|---|
| 30 | CONC | Concentrate feed from feed mills. |

## Feed properties

We recommend to use the org.icar scheme for identifying feed properties.

As ICAR we propose the following list of possible feed properties:

| Analysis | Material | Desciption | Units |
|---|---|---| ---|
| DM | Dry Matter | The part of food which would remain if all its water content was removed. | % (of feed) |
| CP | Crude protein | Crude protein is the amount of protein of animal feed | % (of DM) |
| CF | Crude fibre | crude fibre is the insoluble residue of an acid hydrolysis followed by an alkaline one. This residue contains true cellulose and insoluble lignin.| % (of DM) |

## Others

Expand Down
33 changes: 33 additions & 0 deletions resources/icarDailyFeedReportResource.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"description": "Reporting the feed consumed during a certain time period",

"allOf": [{
"$ref": "../resources/icarResource.json"
},
{
"type": "object",

"properties": {
"eventDate": {
erwinspeybroeck marked this conversation as resolved.
Show resolved Hide resolved
"$ref": "../types/icarDateType.json",
"description": "date of the feeding"
},
"feedVisitDuration": {
"$ref": "../types/icarFeedDurationType.json"
},
"consumedFeed": {
"type": "array",
"items": {
"$ref": "../types/icarConsumedFeedType.json"
}
},
"consumedRation": {
"type": "array",
"items": {
"$ref": "../types/icarConsumedRationType.json"
}
}
}
}
]
}
40 changes: 40 additions & 0 deletions resources/icarFeedIntakeEventResource.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"description": "Event for recording a feed intake",

"allOf": [{
"$ref": "../resources/icarEventCoreResource.json"
},
{
"type": "object",

"required": [
"feedingStartingDateTime",
"feedVisitDuration"
],

"properties": {
"feedingStartingDateTime": {
"$ref": "../types/icarDateTimeType.json",
"description": "The moment the feeding started"
},
"feedVisitDuration": {
erwinspeybroeck marked this conversation as resolved.
Show resolved Hide resolved
"$ref": "../types/icarFeedDurationType.json"
},
"consumedFeed": {
"type": "array",
"items": {
"$ref": "../types/icarConsumedFeedType.json"
}
},
"consumedRation": {
"$ref": "../types/icarConsumedRationType.json",
"description": "The eventual ration that has been consumed"
},
"device": {
erwinspeybroeck marked this conversation as resolved.
Show resolved Hide resolved
"$ref": "../types/icarDeviceReferenceType.json",
"description": "Optional information about the device used for the feeding."
}
}
}
]
}
51 changes: 51 additions & 0 deletions resources/icarFeedRecommendationResource.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
erwinspeybroeck marked this conversation as resolved.
Show resolved Hide resolved
"description": "An overview of the recommended feeding of animals",

"allOf": [{
"$ref": "../resources/icarResource.json"
},
{
"type": "object",

"required": [
"id",
"animal"
],

"properties": {
"id": {
"$ref": "../types/icarFeedRecommendationIdType.json",
erwinspeybroeck marked this conversation as resolved.
Show resolved Hide resolved
"description": "Unique identifier in the source system for this recommendation."
},
"animal": {
"$ref": "../types/icarAnimalIdentifierType.json",
"description": "Unique animal scheme and identifier combination."
},
"recommendationDateTime ": {
"$ref": "../types/icarDateTimeType.json",
"description": "The timestamp of the recommendation."
},
"startDateTime": {
"$ref": "../types/icarDateTimeType.json",
"description": "The date of the beginning of the recommendation."
},
"endDateTime": {
"$ref": "../types/icarDateTimeType.json",
"description": "The end date of the recommendation."
},
"recommendedFeed": {
"type": "array",
"items": {
"$ref": "../types/icarRecommendedFeedType.json"
}
},
"recommendedRation": {
"type": "array",
"items": {
"$ref": "../types/icarRecommendedRationType.json"
}
}
}
}
]
}
Loading