@hestia-earth/data-validation 0.41.16 → 0.41.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/validation.json CHANGED
@@ -1,384 +1,374 @@
1
1
  {
2
2
  "validations": [
3
3
  {
4
- "function": "validate_date_lt_today",
4
+ "function": "validate_id",
5
5
  "level": "error",
6
- "message": "must be before today"
6
+ "message": "aggregation id must contain a product, region, start, end year, and a timestamp"
7
7
  },
8
8
  {
9
- "function": "validate_node_dates",
10
- "level": "error",
11
- "message": "must be greater than startDate"
9
+ "function": "validate_has_termType",
10
+ "level": "warning",
11
+ "message": "should contain at least one management node"
12
12
  },
13
13
  {
14
- "function": "validate_node_dates",
14
+ "function": "validate_fallow_dates",
15
15
  "level": "error",
16
- "message": "must be in the same format as endDate"
16
+ "message": "duration must be in specified interval"
17
17
  },
18
18
  {
19
- "function": "validate_list_dates",
19
+ "function": "validate_cycles_overlap",
20
20
  "level": "error",
21
- "message": "must be greater than startDate"
21
+ "message": "management date must be before cycle start date"
22
22
  },
23
23
  {
24
- "function": "validate_list_dates_format",
24
+ "function": "validate_functionalUnit_not_1_ha",
25
25
  "level": "error",
26
- "message": "must have the same length as endDate"
26
+ "message": "must not be equal to 1 ha"
27
27
  },
28
28
  {
29
- "function": "validate_list_dates_length",
29
+ "function": "validate_sum_aboveGroundCropResidue",
30
30
  "level": "error",
31
- "message": "must contain as many items as values"
31
+ "message": "must be more than or equal to other crop residues"
32
32
  },
33
33
  {
34
- "function": "validate_list_value_between_min_max",
34
+ "function": "validate_crop_residue_complete",
35
35
  "level": "error",
36
- "message": "must be between min and max"
36
+ "message": "must specify the fate of cropResidue"
37
37
  },
38
38
  {
39
- "function": "validate_list_min_below_max",
39
+ "function": "validate_crop_residue_incomplete",
40
+ "level": "warning",
41
+ "message": "should specify the fate of cropResidue"
42
+ },
43
+ {
44
+ "function": "validate_cycleDuration",
40
45
  "level": "error",
41
- "message": "must be greater than min"
46
+ "message": "must be one year prior to endDate"
42
47
  },
43
48
  {
44
- "function": "validate_list_min_max_lookup",
49
+ "function": "validate_cycleDuration",
45
50
  "level": "error",
46
- "message": "must be above the minimum"
51
+ "message": "must equal to endDate - startDate in days"
47
52
  },
48
53
  {
49
- "function": "validate_list_min_max_lookup",
54
+ "function": "validate_harvestedArea",
50
55
  "level": "error",
51
- "message": "must be below the maximum"
56
+ "message": "must be lower or equal to siteArea"
52
57
  },
53
58
  {
54
- "function": "validate_region_list_value_diff_property_lookup",
55
- "level": "warning",
56
- "message": "should be within acceptable range of the lookup value"
59
+ "function": "validate_maximum_cycleDuration",
60
+ "level": "error",
61
+ "message": "must be below maximum cycleDuration"
57
62
  },
58
63
  {
59
- "function": "validate_list_term_percent",
64
+ "function": "validate_riceGrainInHuskFlooded_minimum_cycleDuration",
60
65
  "level": "warning",
61
- "message": "may be between 0 and 100"
66
+ "message": "should be more than the cropping duration"
62
67
  },
63
68
  {
64
- "function": "validate_list_term_percent",
69
+ "function": "validate_crop_siteDuration",
65
70
  "level": "error",
66
- "message": "should be between 0 and 100 (percentage)"
71
+ "message": "should be equal to cycleDuration for crop"
67
72
  },
68
73
  {
69
- "function": "validate_list_percent_requires_value",
74
+ "function": "validate_crop_siteDuration",
70
75
  "level": "error",
71
- "message": "should have required property 'value'"
76
+ "message": "should be greater than cycleDuration for crop"
72
77
  },
73
78
  {
74
- "function": "validate_list_valueType",
79
+ "function": "validate_animal_siteDuration",
75
80
  "level": "error",
76
- "message": "the node value type is incorrect"
77
- },
78
- {
79
- "function": "validate_list_has_properties",
80
- "level": "warning",
81
- "message": "should add missing properties"
81
+ "message": "should be equal to cycleDuration for animals"
82
82
  },
83
83
  {
84
- "function": "validate_is_region",
84
+ "function": "validate_animal_siteDuration",
85
85
  "level": "error",
86
- "message": "must not be a country"
86
+ "message": "should be equal to cycleDuration - otherSitesDuration for animals"
87
87
  },
88
88
  {
89
- "function": "validate_region_in_country",
89
+ "function": "validate_animal_siteDuration",
90
90
  "level": "error",
91
- "message": "must be within the country"
91
+ "message": "should be less than cycleDuration for animals"
92
92
  },
93
93
  {
94
- "function": "validate_country",
95
- "level": "error",
96
- "message": "must be a country"
94
+ "function": "validate_durations",
95
+ "level": "warning",
96
+ "message": "should add the fields for a relative cycle"
97
97
  },
98
98
  {
99
- "function": "validate_coordinates",
99
+ "function": "validate_possibleCoverCrop",
100
100
  "level": "error",
101
- "message": "does not contain latitude and longitude"
102
- },
103
- {
104
- "function": "validate_area",
105
- "level": "warning",
106
- "message": "should be equal to boundary"
101
+ "message": "cover crop cycle contains non cover crop product"
107
102
  },
108
103
  {
109
- "function": "validate_boundary_area",
104
+ "function": "validate_set_treatment",
110
105
  "level": "warning",
111
- "message": "boundaryArea should be lower than max size"
106
+ "message": "should specify a treatment when experimentDesign is specified"
112
107
  },
113
108
  {
114
- "function": "validate_region_size",
109
+ "function": "validate_products_animals",
115
110
  "level": "warning",
116
- "message": "should be lower than max size"
111
+ "message": "should not specify both liveAnimal and animalProduct"
117
112
  },
118
113
  {
119
- "function": "validate_empty_fields",
114
+ "function": "validate_stocking_density",
120
115
  "level": "warning",
121
- "message": "may not be empty"
116
+ "message": "should add the term stockingDensityPermanentPastureAverage"
122
117
  },
123
118
  {
124
- "function": "validate_linked_source_privacy",
119
+ "function": "validate_linked_impact_assessment",
125
120
  "level": "error",
126
- "message": "should have the same privacy as the related source"
121
+ "message": "multiple ImpactAssessment are associated with this Product"
127
122
  },
128
123
  {
129
- "function": "validate_private_has_source",
130
- "level": "warning",
131
- "message": "should add a source"
124
+ "function": "validate_linked_impact_assessment",
125
+ "level": "error",
126
+ "message": "no ImpactAssessment are associated with this Product"
132
127
  },
133
128
  {
134
- "function": "_validate_list_model",
129
+ "function": "validate_animal_product_mapping",
135
130
  "level": "error",
136
- "message": "the value provided is not consistent with the model result"
131
+ "message": "is not an allowed animalProduct"
137
132
  },
138
133
  {
139
- "function": "validate_duplicated_terms",
140
- "level": "warning",
141
- "message": "should not use several terms describing the same product"
134
+ "function": "validate_requires_substrate",
135
+ "level": "error",
136
+ "message": "must add substrate inputs"
142
137
  },
143
138
  {
144
- "function": "validate_other_model",
139
+ "function": "_validate_previous_transformationId",
145
140
  "level": "error",
146
- "message": "is required when using other model"
141
+ "message": "must point to a previous transformation in the list"
147
142
  },
148
143
  {
149
- "function": "validate_nested_existing_node",
150
- "level": "warning",
151
- "message": "should not link to an existing node"
144
+ "function": "_validate_previous_input",
145
+ "level": "error",
146
+ "message": "at least one Input must be a Product of the Cycle"
152
147
  },
153
148
  {
154
- "function": "validate_nested_existing_node",
155
- "level": "warning",
156
- "message": "should not link to an existing node"
149
+ "function": "_validate_previous_input",
150
+ "level": "error",
151
+ "message": "at least one Input must be a Product of the previous Transformation"
157
152
  },
158
153
  {
159
- "function": "validate_lifespan",
154
+ "function": "_validate_previous_product_value",
160
155
  "level": "error",
161
- "message": "must equal to endDate - startDate in decimal years"
156
+ "message": "must be equal to previous product multiplied by the share"
162
157
  },
163
158
  {
164
- "function": "validate_functionalArea",
159
+ "function": "validate_linked_emission",
165
160
  "level": "warning",
166
- "message": "should specify functionalArea or site area"
161
+ "message": "should be linked to an emission in the Cycle"
167
162
  },
168
163
  {
169
- "function": "validate_method_not_relevant",
170
- "level": "warning",
171
- "message": "should not use not relevant model"
164
+ "function": "validate_excreta_inputs_products",
165
+ "level": "error",
166
+ "message": "must be included as an Input"
172
167
  },
173
168
  {
174
- "function": "validate_methodTier_not_relevant",
175
- "level": "warning",
176
- "message": "should not use not relevant methodTier"
169
+ "function": "validate_transformation_inputs_value",
170
+ "level": "error",
171
+ "message": "must be specified for multiple Inputs with the same term"
177
172
  },
178
173
  {
179
- "function": "validate_methodTier_background",
174
+ "function": "validate_empty",
180
175
  "level": "error",
181
- "message": "must not have background methodTier"
176
+ "message": "should not be empty"
182
177
  },
183
178
  {
184
- "function": "validate_methodTier_background",
179
+ "function": "validate_linked_cycle_product",
185
180
  "level": "error",
186
- "message": "must be an existing term"
181
+ "message": "should be included in the cycle products"
187
182
  },
188
183
  {
189
- "function": "validate_depth",
184
+ "function": "validate_linked_cycle_endDate",
185
+ "level": "error",
186
+ "message": "must be equal to the Cycle endDate"
187
+ },
188
+ {
189
+ "function": "validate_value_follows_area",
190
190
  "level": "warning",
191
- "message": "should set the depth"
191
+ "message": "should not be proportional to the site area"
192
192
  },
193
193
  {
194
- "function": "validate_defaultValue",
194
+ "function": "validate_fixed_nutrient_ratio",
195
195
  "level": "warning",
196
- "message": "should specify a value when HESTIA has a default one"
196
+ "message": "should be the amount of nutrient, not of fertiliser"
197
197
  },
198
198
  {
199
- "function": "validate_longFallowDuration",
199
+ "function": "validate_lifespan",
200
200
  "level": "error",
201
- "message": "longFallowDuration must be lower than 5 years"
201
+ "message": "must equal to endDate - startDate in decimal years"
202
202
  },
203
203
  {
204
- "function": "validate_plantationLifespan",
205
- "level": "error",
206
- "message": "must be greater than or equal to plantationProductiveLifespan"
204
+ "function": "validate_functionalArea",
205
+ "level": "warning",
206
+ "message": "should specify functionalArea or site area"
207
207
  },
208
208
  {
209
- "function": "validate_waterRegime_rice_products",
209
+ "function": "validate_soilTexture",
210
210
  "level": "error",
211
- "message": "rice products not allowed for this water regime practice"
211
+ "message": "is outside the allowed range"
212
212
  },
213
213
  {
214
- "function": "validate_croppingDuration_riceGrainInHuskFlooded",
214
+ "function": "validate_soilTexture_depths",
215
215
  "level": "warning",
216
- "message": "croppingDuration must be between min and max"
216
+ "message": "should be given at the same depths as the soil content"
217
217
  },
218
218
  {
219
- "function": "validate_excretaManagement",
219
+ "function": "validate_depths",
220
220
  "level": "error",
221
- "message": "an excreta input is required when using an excretaManagement practice"
221
+ "message": "must be greater than or equal to depthUpper"
222
222
  },
223
223
  {
224
- "function": "validate_no_tillage",
224
+ "function": "validate_required_depths",
225
225
  "level": "error",
226
- "message": "is not allowed in combination with noTillage"
226
+ "message": "must set both depthUpper and depthLower"
227
227
  },
228
228
  {
229
- "function": "validate_tillage_site_type",
229
+ "function": "validate_required_depths",
230
230
  "level": "warning",
231
- "message": "should contain a tillage practice"
231
+ "message": "should set both depthUpper and depthLower"
232
232
  },
233
233
  {
234
- "function": "validate_tillage_values",
234
+ "function": "validate_term_unique",
235
235
  "level": "error",
236
- "message": "cannot use no tillage if depth or number of tillages is not 0"
236
+ "message": "must be unique"
237
237
  },
238
238
  {
239
- "function": "validate_tillage_values",
239
+ "function": "validate_term_unique",
240
240
  "level": "error",
241
- "message": "cannot use full tillage if depth or number of tillages is 0"
242
- },
243
- {
244
- "function": "validate_liveAnimal_system",
245
- "level": "warning",
246
- "message": "should add an animal production system"
241
+ "message": "must provide value or min and max"
247
242
  },
248
243
  {
249
- "function": "validate_has_pastureGrass",
244
+ "function": "validate_with_models",
250
245
  "level": "warning",
251
- "message": "should add the term pastureGrass"
246
+ "message": "the measurement provided might be in error"
252
247
  },
253
248
  {
254
- "function": "validate_pastureGrass_key_termType",
249
+ "function": "validate_value_length",
255
250
  "level": "error",
256
- "message": "pastureGrass key termType must be landCover"
251
+ "message": "must not contain more than 1 value"
257
252
  },
258
253
  {
259
- "function": "validate_pastureGrass_key_value",
254
+ "function": "validate_water_measurements",
260
255
  "level": "error",
261
- "message": "all values must be numbers"
256
+ "message": "must specify water type for ponds"
262
257
  },
263
258
  {
264
- "function": "validate_pastureGrass_key_value",
259
+ "function": "validate_water_salinity",
265
260
  "level": "error",
266
- "message": "the sum of all pastureGrass values must be 100"
261
+ "message": "invalid water salinity"
267
262
  },
268
263
  {
269
- "function": "validate_permanent_crop_productive_phase",
264
+ "function": "validate_soil_type_consistency",
270
265
  "level": "error",
271
- "message": "must add the term productivePhasePermanentCrops"
266
+ "message": "measurements for the same termType must be consistent"
272
267
  },
273
268
  {
274
- "function": "validate_primaryPercent",
275
- "level": "error",
276
- "message": "primaryPercent not allowed on this siteType"
269
+ "function": "validate_must_include_id",
270
+ "level": "warning",
271
+ "message": "should add missing inputs"
277
272
  },
278
273
  {
279
- "function": "validate_primaryPercent",
280
- "level": "error",
281
- "message": "primaryPercent not allowed on this practice"
274
+ "function": "validate_compound_fertiliser_composition",
275
+ "level": "warning",
276
+ "message": "should match the nutrient ratio of the compound fertiliser"
282
277
  },
283
278
  {
284
- "function": "validate_processing_operation",
279
+ "function": "validate_related_impacts",
285
280
  "level": "error",
286
- "message": "must have a primary processing operation"
281
+ "message": "can not be linked to the same type"
287
282
  },
288
283
  {
289
- "function": "validate_landCover_match_products",
284
+ "function": "validate_related_impact_product",
290
285
  "level": "error",
291
- "message": "at least one landCover practice must match an equivalent product"
286
+ "message": "can not be linked to a different term"
292
287
  },
293
288
  {
294
- "function": "validate_coverCrop_landCover_primary_product",
295
- "level": "error",
296
- "message": "a cover crop can not be the land cover of the primary product"
289
+ "function": "_validate_input_value",
290
+ "level": "warning",
291
+ "message": "is outside confidence interval"
297
292
  },
298
293
  {
299
- "function": "validate_practices_management",
294
+ "function": "validate_animalFeed_requires_isAnimalFeed",
300
295
  "level": "error",
301
- "message": "should match the site management node value"
296
+ "message": "must specify is it an animal feed"
302
297
  },
303
298
  {
304
- "function": "validate_irrigated_complete_has_inputs",
299
+ "function": "validate_isAnimalFeed_animal_cycle",
305
300
  "level": "error",
306
- "message": "must contain water inputs"
301
+ "message": "isAnimalFeed not allowed on a non-animal cycle"
307
302
  },
308
303
  {
309
- "function": "validate_rainfed_water_inputs",
304
+ "function": "validate_saplings",
310
305
  "level": "error",
311
- "message": "must not set rainfed with water inputs"
312
- },
313
- {
314
- "function": "validate_irrigating_operation_rainfed_water_regime",
315
- "level": "warning",
316
- "message": "should use irrigated water regime"
306
+ "message": "saplings cannot be used as an input here"
317
307
  },
318
308
  {
319
- "function": "validate_cropResidueManagement_products",
309
+ "function": "validate_seed",
320
310
  "level": "error",
321
- "message": "cropResidue product is not accounted for by the cropResidueManagement practices"
311
+ "message": "seed cannot be used as an input here"
322
312
  },
323
313
  {
324
- "function": "validate_soilTexture",
314
+ "function": "validate_saplings_depreciated",
325
315
  "level": "error",
326
- "message": "is outside the allowed range"
316
+ "message": "saplingsDepreciatedAmountPerCycle cannot be used as an input here"
327
317
  },
328
318
  {
329
- "function": "validate_soilTexture_depths",
330
- "level": "warning",
331
- "message": "should be given at the same depths as the soil content"
319
+ "function": "validate_seed_correspondingSpecies",
320
+ "level": "error",
321
+ "message": "must specify correspondingSpecies in intercropping"
332
322
  },
333
323
  {
334
- "function": "validate_depths",
324
+ "function": "validate_material_depreciated",
335
325
  "level": "error",
336
- "message": "must be greater than or equal to depthUpper"
326
+ "message": "must use the depreciated term"
337
327
  },
338
328
  {
339
- "function": "validate_required_depths",
329
+ "function": "validate_input_is_product",
340
330
  "level": "error",
341
- "message": "must set both depthUpper and depthLower"
331
+ "message": "must be a product"
342
332
  },
343
333
  {
344
- "function": "validate_required_depths",
334
+ "function": "validate_input_unspecified_term",
345
335
  "level": "warning",
346
- "message": "should set both depthUpper and depthLower"
347
- },
348
- {
349
- "function": "validate_term_unique",
350
- "level": "error",
351
- "message": "must be unique"
336
+ "message": "should use a specific term"
352
337
  },
353
338
  {
354
- "function": "validate_term_unique",
355
- "level": "error",
356
- "message": "must provide value or min and max"
339
+ "function": "validate_method_not_relevant",
340
+ "level": "warning",
341
+ "message": "should not use not relevant model"
357
342
  },
358
343
  {
359
- "function": "validate_with_models",
344
+ "function": "validate_methodTier_not_relevant",
360
345
  "level": "warning",
361
- "message": "the measurement provided might be in error"
346
+ "message": "should not use not relevant methodTier"
362
347
  },
363
348
  {
364
- "function": "validate_value_length",
349
+ "function": "validate_methodTier_background",
365
350
  "level": "error",
366
- "message": "must not contain more than 1 value"
351
+ "message": "must not have background methodTier"
367
352
  },
368
353
  {
369
- "function": "validate_water_measurements",
354
+ "function": "validate_methodTier_background",
370
355
  "level": "error",
371
- "message": "must specify water type for ponds"
356
+ "message": "must be an existing term"
372
357
  },
373
358
  {
374
- "function": "validate_water_salinity",
359
+ "function": "validate_depth",
360
+ "level": "warning",
361
+ "message": "should set the depth"
362
+ },
363
+ {
364
+ "function": "validate_linked_impactAssessment",
375
365
  "level": "error",
376
- "message": "invalid water salinity"
366
+ "message": "must be linked to a verified country-level Impact Assessment"
377
367
  },
378
368
  {
379
- "function": "validate_soil_type_consistency",
369
+ "function": "validate_plantation_practices",
380
370
  "level": "error",
381
- "message": "measurements for the same termType must be consistent"
371
+ "message": "must include practices for plantation weighting"
382
372
  },
383
373
  {
384
374
  "function": "validate_characterisedIndicator_model",
@@ -406,134 +396,154 @@
406
396
  "message": "this field is required"
407
397
  },
408
398
  {
409
- "function": "validate_empty",
410
- "level": "error",
411
- "message": "should not be empty"
399
+ "function": "validate_has_animals",
400
+ "level": "warning",
401
+ "message": "should specify the herd composition"
412
402
  },
413
403
  {
414
- "function": "validate_linked_cycle_product",
404
+ "function": "validate_duplicated_feed_inputs",
415
405
  "level": "error",
416
- "message": "should be included in the cycle products"
406
+ "message": "must not add the feed input to the Cycle as well"
417
407
  },
418
408
  {
419
- "function": "validate_linked_cycle_endDate",
420
- "level": "error",
421
- "message": "must be equal to the Cycle endDate"
409
+ "function": "validate_has_milkYieldPractice",
410
+ "level": "warning",
411
+ "message": "should specify the a milkYield practice"
422
412
  },
423
413
  {
424
- "function": "validate_functionalUnit_not_1_ha",
414
+ "function": "validate_animal_has_recommended_products",
415
+ "level": "warning",
416
+ "message": "should specify a recommended product"
417
+ },
418
+ {
419
+ "function": "validate_defaultValue",
420
+ "level": "warning",
421
+ "message": "should specify a value when HESTIA has a default one"
422
+ },
423
+ {
424
+ "function": "validate_longFallowDuration",
425
425
  "level": "error",
426
- "message": "must not be equal to 1 ha"
426
+ "message": "longFallowDuration must be lower than 5 years"
427
427
  },
428
428
  {
429
- "function": "validate_sum_aboveGroundCropResidue",
429
+ "function": "validate_plantationLifespan",
430
430
  "level": "error",
431
- "message": "must be more than or equal to other crop residues"
431
+ "message": "must be greater than or equal to plantationProductiveLifespan"
432
432
  },
433
433
  {
434
- "function": "validate_crop_residue_complete",
434
+ "function": "validate_waterRegime_rice_products",
435
435
  "level": "error",
436
- "message": "must specify the fate of cropResidue"
436
+ "message": "rice products not allowed for this water regime practice"
437
437
  },
438
438
  {
439
- "function": "validate_crop_residue_incomplete",
439
+ "function": "validate_croppingDuration_riceGrainInHuskFlooded",
440
440
  "level": "warning",
441
- "message": "should specify the fate of cropResidue"
441
+ "message": "croppingDuration must be between min and max"
442
442
  },
443
443
  {
444
- "function": "validate_cycleDuration",
444
+ "function": "validate_excretaManagement",
445
445
  "level": "error",
446
- "message": "must be one year prior to endDate"
446
+ "message": "an excreta input is required when using an excretaManagement practice"
447
447
  },
448
448
  {
449
- "function": "validate_cycleDuration",
449
+ "function": "validate_no_tillage",
450
450
  "level": "error",
451
- "message": "must equal to endDate - startDate in days"
451
+ "message": "is not allowed in combination with noTillage"
452
452
  },
453
453
  {
454
- "function": "validate_harvestedArea",
454
+ "function": "validate_tillage_site_type",
455
+ "level": "warning",
456
+ "message": "should contain a tillage practice"
457
+ },
458
+ {
459
+ "function": "validate_tillage_values",
455
460
  "level": "error",
456
- "message": "must be lower or equal to siteArea"
461
+ "message": "cannot use no tillage if depth or number of tillages is not 0"
457
462
  },
458
463
  {
459
- "function": "validate_maximum_cycleDuration",
464
+ "function": "validate_tillage_values",
460
465
  "level": "error",
461
- "message": "must be below maximum cycleDuration"
466
+ "message": "cannot use full tillage if depth or number of tillages is 0"
462
467
  },
463
468
  {
464
- "function": "validate_riceGrainInHuskFlooded_minimum_cycleDuration",
469
+ "function": "validate_liveAnimal_system",
465
470
  "level": "warning",
466
- "message": "should be more than the cropping duration"
471
+ "message": "should add an animal production system"
467
472
  },
468
473
  {
469
- "function": "validate_crop_siteDuration",
470
- "level": "error",
471
- "message": "should be equal to cycleDuration for crop"
474
+ "function": "validate_has_pastureGrass",
475
+ "level": "warning",
476
+ "message": "should add the term pastureGrass"
472
477
  },
473
478
  {
474
- "function": "validate_crop_siteDuration",
479
+ "function": "validate_pastureGrass_key_termType",
475
480
  "level": "error",
476
- "message": "should be greater than cycleDuration for crop"
481
+ "message": "pastureGrass key termType must be landCover"
477
482
  },
478
483
  {
479
- "function": "validate_animal_siteDuration",
484
+ "function": "validate_pastureGrass_key_value",
480
485
  "level": "error",
481
- "message": "should be equal to cycleDuration for animals"
486
+ "message": "all values must be numbers"
482
487
  },
483
488
  {
484
- "function": "validate_animal_siteDuration",
489
+ "function": "validate_pastureGrass_key_value",
485
490
  "level": "error",
486
- "message": "should be equal to cycleDuration - otherSitesDuration for animals"
491
+ "message": "the sum of all pastureGrass values must be 100"
487
492
  },
488
493
  {
489
- "function": "validate_animal_siteDuration",
494
+ "function": "validate_permanent_crop_productive_phase",
490
495
  "level": "error",
491
- "message": "should be less than cycleDuration for animals"
496
+ "message": "must add the term productivePhasePermanentCrops"
492
497
  },
493
498
  {
494
- "function": "validate_durations",
495
- "level": "warning",
496
- "message": "should add the fields for a relative cycle"
499
+ "function": "validate_primaryPercent",
500
+ "level": "error",
501
+ "message": "primaryPercent not allowed on this siteType"
497
502
  },
498
503
  {
499
- "function": "validate_possibleCoverCrop",
504
+ "function": "validate_primaryPercent",
500
505
  "level": "error",
501
- "message": "cover crop cycle contains non cover crop product"
506
+ "message": "primaryPercent not allowed on this practice"
502
507
  },
503
508
  {
504
- "function": "validate_set_treatment",
505
- "level": "warning",
506
- "message": "should specify a treatment when experimentDesign is specified"
509
+ "function": "validate_processing_operation",
510
+ "level": "error",
511
+ "message": "must have a primary processing operation"
507
512
  },
508
513
  {
509
- "function": "validate_products_animals",
510
- "level": "warning",
511
- "message": "should not specify both liveAnimal and animalProduct"
514
+ "function": "validate_landCover_match_products",
515
+ "level": "error",
516
+ "message": "at least one landCover practice must match an equivalent product"
512
517
  },
513
518
  {
514
- "function": "validate_stocking_density",
515
- "level": "warning",
516
- "message": "should add the term stockingDensityPermanentPastureAverage"
519
+ "function": "validate_coverCrop_landCover_primary_product",
520
+ "level": "error",
521
+ "message": "a cover crop can not be the land cover of the primary product"
517
522
  },
518
523
  {
519
- "function": "validate_linked_impact_assessment",
524
+ "function": "validate_practices_management",
520
525
  "level": "error",
521
- "message": "multiple ImpactAssessment are associated with this Product"
526
+ "message": "should match the site management node value"
522
527
  },
523
528
  {
524
- "function": "validate_linked_impact_assessment",
529
+ "function": "validate_irrigated_complete_has_inputs",
525
530
  "level": "error",
526
- "message": "no ImpactAssessment are associated with this Product"
531
+ "message": "must contain water inputs"
527
532
  },
528
533
  {
529
- "function": "validate_animal_product_mapping",
534
+ "function": "validate_rainfed_water_inputs",
530
535
  "level": "error",
531
- "message": "is not an allowed animalProduct"
536
+ "message": "must not set rainfed with water inputs"
537
+ },
538
+ {
539
+ "function": "validate_irrigating_operation_rainfed_water_regime",
540
+ "level": "warning",
541
+ "message": "should use irrigated water regime"
532
542
  },
533
543
  {
534
- "function": "validate_requires_substrate",
544
+ "function": "validate_cropResidueManagement_products",
535
545
  "level": "error",
536
- "message": "must add substrate inputs"
546
+ "message": "cropResidue product is not accounted for by the cropResidueManagement practices"
537
547
  },
538
548
  {
539
549
  "function": "validate_property_valueType",
@@ -551,259 +561,264 @@
551
561
  "message": "should be within percentage of default value"
552
562
  },
553
563
  {
554
- "function": "validate_economicValueShare",
564
+ "function": "validate_date_lt_today",
555
565
  "level": "error",
556
- "message": "economicValueShare should sum to 100 or less across all products"
566
+ "message": "must be before today"
557
567
  },
558
568
  {
559
- "function": "validate_value_empty",
560
- "level": "warning",
561
- "message": "may not be 0"
569
+ "function": "validate_node_dates",
570
+ "level": "error",
571
+ "message": "must be greater than startDate"
562
572
  },
563
573
  {
564
- "function": "validate_value_0",
574
+ "function": "validate_node_dates",
565
575
  "level": "error",
566
- "message": "economicValueShare must be 0 for product value 0"
576
+ "message": "must be in the same format as endDate"
567
577
  },
568
578
  {
569
- "function": "validate_value_0",
579
+ "function": "validate_list_dates",
570
580
  "level": "error",
571
- "message": "revenue must be 0 for product value 0"
581
+ "message": "must be greater than startDate"
572
582
  },
573
583
  {
574
- "function": "validate_primary",
584
+ "function": "validate_list_dates_format",
575
585
  "level": "error",
576
- "message": "only 1 primary product allowed"
586
+ "message": "must have the same length as endDate"
577
587
  },
578
588
  {
579
- "function": "validate_product_ha_functional_unit_ha",
589
+ "function": "validate_list_dates_length",
580
590
  "level": "error",
581
- "message": "must be below or equal to 1 for unit in ha"
591
+ "message": "must contain as many items as values"
582
592
  },
583
593
  {
584
- "function": "_validate_product_yield",
585
- "level": "warning",
586
- "message": "is outside confidence interval"
594
+ "function": "validate_list_value_between_min_max",
595
+ "level": "error",
596
+ "message": "must be between min and max"
587
597
  },
588
598
  {
589
- "function": "validate_excreta_product",
590
- "level": "warning",
591
- "message": "should add an excreta product"
599
+ "function": "validate_list_min_below_max",
600
+ "level": "error",
601
+ "message": "must be greater than min"
592
602
  },
593
603
  {
594
- "function": "validate_excreta_product",
604
+ "function": "validate_list_min_max_lookup",
595
605
  "level": "error",
596
- "message": "is not an allowed excreta product"
606
+ "message": "must be above the minimum"
597
607
  },
598
608
  {
599
- "function": "validate_requires_water_salinity",
609
+ "function": "validate_list_min_max_lookup",
600
610
  "level": "error",
601
- "message": "requires a water salinity measurement"
611
+ "message": "must be below the maximum"
602
612
  },
603
613
  {
604
- "function": "validate_has_animals",
614
+ "function": "validate_region_list_value_diff_property_lookup",
605
615
  "level": "warning",
606
- "message": "should specify the herd composition"
616
+ "message": "should be within acceptable range of the lookup value"
607
617
  },
608
618
  {
609
- "function": "validate_duplicated_feed_inputs",
619
+ "function": "validate_list_term_percent",
620
+ "level": "warning",
621
+ "message": "may be between 0 and 100"
622
+ },
623
+ {
624
+ "function": "validate_list_term_percent",
610
625
  "level": "error",
611
- "message": "must not add the feed input to the Cycle as well"
626
+ "message": "should be between 0 and 100 (percentage)"
612
627
  },
613
628
  {
614
- "function": "validate_has_milkYieldPractice",
615
- "level": "warning",
616
- "message": "should specify the a milkYield practice"
629
+ "function": "validate_list_percent_requires_value",
630
+ "level": "error",
631
+ "message": "should have required property 'value'"
617
632
  },
618
633
  {
619
- "function": "validate_animal_has_recommended_products",
620
- "level": "warning",
621
- "message": "should specify a recommended product"
634
+ "function": "validate_list_valueType",
635
+ "level": "error",
636
+ "message": "the node value type is incorrect"
622
637
  },
623
638
  {
624
- "function": "validate_must_include_id",
639
+ "function": "validate_list_has_properties",
625
640
  "level": "warning",
626
- "message": "should add missing inputs"
641
+ "message": "should add missing properties"
627
642
  },
628
643
  {
629
- "function": "validate_compound_fertiliser_composition",
630
- "level": "warning",
631
- "message": "should match the nutrient ratio of the compound fertiliser"
644
+ "function": "validate_is_region",
645
+ "level": "error",
646
+ "message": "must not be a country"
632
647
  },
633
648
  {
634
- "function": "validate_related_impacts",
649
+ "function": "validate_region_in_country",
635
650
  "level": "error",
636
- "message": "can not be linked to the same type"
651
+ "message": "must be within the country"
637
652
  },
638
653
  {
639
- "function": "validate_related_impact_product",
654
+ "function": "validate_country",
640
655
  "level": "error",
641
- "message": "can not be linked to a different term"
656
+ "message": "must be a country"
642
657
  },
643
658
  {
644
- "function": "_validate_input_value",
659
+ "function": "validate_coordinates",
660
+ "level": "error",
661
+ "message": "does not contain latitude and longitude"
662
+ },
663
+ {
664
+ "function": "validate_area",
645
665
  "level": "warning",
646
- "message": "is outside confidence interval"
666
+ "message": "should be equal to boundary"
647
667
  },
648
668
  {
649
- "function": "validate_animalFeed_requires_isAnimalFeed",
650
- "level": "error",
651
- "message": "must specify is it an animal feed"
669
+ "function": "validate_boundary_area",
670
+ "level": "warning",
671
+ "message": "boundaryArea should be lower than max size"
652
672
  },
653
673
  {
654
- "function": "validate_isAnimalFeed_animal_cycle",
655
- "level": "error",
656
- "message": "isAnimalFeed not allowed on a non-animal cycle"
674
+ "function": "validate_region_size",
675
+ "level": "warning",
676
+ "message": "should be lower than max size"
657
677
  },
658
678
  {
659
- "function": "validate_saplings",
660
- "level": "error",
661
- "message": "saplings cannot be used as an input here"
679
+ "function": "validate_empty_fields",
680
+ "level": "warning",
681
+ "message": "may not be empty"
662
682
  },
663
683
  {
664
- "function": "validate_seed",
684
+ "function": "validate_linked_source_privacy",
665
685
  "level": "error",
666
- "message": "seed cannot be used as an input here"
686
+ "message": "should have the same privacy as the related source"
667
687
  },
668
688
  {
669
- "function": "validate_saplings_depreciated",
670
- "level": "error",
671
- "message": "saplingsDepreciatedAmountPerCycle cannot be used as an input here"
689
+ "function": "validate_private_has_source",
690
+ "level": "warning",
691
+ "message": "should add a source"
672
692
  },
673
693
  {
674
- "function": "validate_material_depreciated",
694
+ "function": "_validate_list_model",
675
695
  "level": "error",
676
- "message": "must use the depreciated term"
696
+ "message": "the value provided is not consistent with the model result"
677
697
  },
678
698
  {
679
- "function": "validate_input_is_product",
699
+ "function": "validate_duplicated_terms",
700
+ "level": "warning",
701
+ "message": "should not use several terms describing the same product"
702
+ },
703
+ {
704
+ "function": "validate_other_model",
680
705
  "level": "error",
681
- "message": "must be a product"
706
+ "message": "is required when using other model"
682
707
  },
683
708
  {
684
- "function": "validate_input_unspecified_term",
709
+ "function": "validate_nested_existing_node",
685
710
  "level": "warning",
686
- "message": "should use a specific term"
711
+ "message": "should not link to an existing node"
687
712
  },
688
713
  {
689
- "function": "_validate_all_values",
714
+ "function": "validate_nested_existing_node",
690
715
  "level": "warning",
691
- "message": "may not all be set to false"
716
+ "message": "should not link to an existing node"
692
717
  },
693
718
  {
694
- "function": "_validate_material",
719
+ "function": "validate_cycle_dates",
695
720
  "level": "error",
696
- "message": "must be set to false when specifying fuel use"
721
+ "message": "multiple cycles on the same site cannot overlap"
697
722
  },
698
723
  {
699
- "function": "_validate_freshForage",
724
+ "function": "validate_cycles_linked_ia",
700
725
  "level": "error",
701
- "message": "must have inputs representing the forage when set to true"
726
+ "message": "cycles linked together cannot be added to the same site"
702
727
  },
703
728
  {
704
- "function": "_validate_ingredient",
729
+ "function": "validate_economicValueShare",
705
730
  "level": "error",
706
- "message": "must have inputs to represent ingredients"
731
+ "message": "economicValueShare should sum to 100 or less across all products"
707
732
  },
708
733
  {
709
- "function": "_validate_ingredient",
710
- "level": "error",
711
- "message": "ingredients should be complete"
734
+ "function": "validate_value_empty",
735
+ "level": "warning",
736
+ "message": "may not be 0"
712
737
  },
713
738
  {
714
- "function": "_validate_animalPopulation",
739
+ "function": "validate_value_0",
715
740
  "level": "error",
716
- "message": "animal population must not be complete"
741
+ "message": "economicValueShare must be 0 for product value 0"
717
742
  },
718
743
  {
719
- "function": "_validate_completeness_blank_nodes_key",
744
+ "function": "validate_value_0",
720
745
  "level": "error",
721
- "message": "must not be blank if complete"
746
+ "message": "revenue must be 0 for product value 0"
722
747
  },
723
748
  {
724
- "function": "validate_completeness_transport",
749
+ "function": "validate_primary",
725
750
  "level": "error",
726
- "message": "must have a value or a distance if complete"
751
+ "message": "only 1 primary product allowed"
727
752
  },
728
753
  {
729
- "function": "validate_coverage",
730
- "level": "warning",
731
- "message": "can not calculate all emissions"
754
+ "function": "validate_product_ha_functional_unit_ha",
755
+ "level": "error",
756
+ "message": "must be below or equal to 1 for unit in ha"
732
757
  },
733
758
  {
734
- "function": "validate_has_termType",
759
+ "function": "_validate_product_yield",
735
760
  "level": "warning",
736
- "message": "should contain at least one management node"
761
+ "message": "is outside confidence interval"
737
762
  },
738
763
  {
739
- "function": "validate_fallow_dates",
740
- "level": "error",
741
- "message": "duration must be in specified interval"
764
+ "function": "validate_excreta_product",
765
+ "level": "warning",
766
+ "message": "should add an excreta product"
742
767
  },
743
768
  {
744
- "function": "validate_cycles_overlap",
769
+ "function": "validate_excreta_product",
745
770
  "level": "error",
746
- "message": "management date must be before cycle start date"
771
+ "message": "is not an allowed excreta product"
747
772
  },
748
773
  {
749
- "function": "validate_cycle_dates",
774
+ "function": "validate_requires_water_salinity",
750
775
  "level": "error",
751
- "message": "multiple cycles on the same site cannot overlap"
776
+ "message": "requires a water salinity measurement"
752
777
  },
753
778
  {
754
- "function": "validate_cycles_linked_ia",
755
- "level": "error",
756
- "message": "cycles linked together cannot be added to the same site"
779
+ "function": "_validate_all_values",
780
+ "level": "warning",
781
+ "message": "may not all be set to false"
757
782
  },
758
783
  {
759
- "function": "validate_linked_impactAssessment",
784
+ "function": "_validate_material",
760
785
  "level": "error",
761
- "message": "must be linked to a verified country-level Impact Assessment"
786
+ "message": "must be set to false when specifying fuel use"
762
787
  },
763
788
  {
764
- "function": "validate_plantation_practices",
789
+ "function": "_validate_freshForage",
765
790
  "level": "error",
766
- "message": "must include practices for plantation weighting"
791
+ "message": "must have inputs representing the forage when set to true"
767
792
  },
768
793
  {
769
- "function": "validate_id",
794
+ "function": "_validate_ingredient",
770
795
  "level": "error",
771
- "message": "aggregation id must contain a product, region, start, end year, and a timestamp"
796
+ "message": "must have inputs to represent ingredients"
772
797
  },
773
798
  {
774
- "function": "_validate_previous_transformationId",
799
+ "function": "_validate_ingredient",
775
800
  "level": "error",
776
- "message": "must point to a previous transformation in the list"
801
+ "message": "ingredients should be complete"
777
802
  },
778
803
  {
779
- "function": "_validate_previous_input",
804
+ "function": "_validate_animalPopulation",
780
805
  "level": "error",
781
- "message": "at least one Input must be a Product of the Cycle"
806
+ "message": "animal population must not be complete"
782
807
  },
783
808
  {
784
- "function": "_validate_previous_input",
809
+ "function": "_validate_completeness_blank_nodes_key",
785
810
  "level": "error",
786
- "message": "at least one Input must be a Product of the previous Transformation"
811
+ "message": "must not be blank if complete"
787
812
  },
788
813
  {
789
- "function": "_validate_previous_product_value",
814
+ "function": "validate_completeness_transport",
790
815
  "level": "error",
791
- "message": "must be equal to previous product multiplied by the share"
816
+ "message": "must have a value or a distance if complete"
792
817
  },
793
818
  {
794
- "function": "validate_linked_emission",
819
+ "function": "validate_coverage",
795
820
  "level": "warning",
796
- "message": "should be linked to an emission in the Cycle"
797
- },
798
- {
799
- "function": "validate_excreta_inputs_products",
800
- "level": "error",
801
- "message": "must be included as an Input"
802
- },
803
- {
804
- "function": "validate_transformation_inputs_value",
805
- "level": "error",
806
- "message": "must be specified for multiple Inputs with the same term"
821
+ "message": "can not calculate all emissions"
807
822
  }
808
823
  ]
809
824
  }