tdwg / bdq

Biodiversity Data Quality (BDQ) Interest Group
https://github.com/tdwg/bdq
43 stars 7 forks source link

TG2-VALIDATION_MAXDEPTH_INRANGE #187

Open Tasilee opened 4 years ago

Tasilee commented 4 years ago
TestField Value
GUID 3f1db29a-bfa5-40db-9fd1-fde020d81939
Label VALIDATION_MAXDEPTH_INRANGE
Description Is the value of dwc:maximumDepthInMeters within the Parameter range?
TestType Validation
Darwin Core Class dcterms:Location
Information Elements ActedUpon dwc:maximumDepthInMeters
Information Elements Consulted
Expected Response INTERNAL_PREREQUISITES_NOT_MET if dwc:maximumDepthInMeters is bdq:Empty or is not interpretable as a number greater than or equal to zero; COMPLIANT if the value of dwc:maximumDepthInMeters is within the range of bdq:minimumValidDepthInMeters to bdq:maximumValidDepthInMeters inclusive; otherwise NOT_COMPLIANT
Data Quality Dimension Conformance
Term-Actions MAXDEPTH_INRANGE
Parameter(s) bdq:minimumValidDepthInMeters
bdq:maximumValidDepthInMeters
Source Authority bdq:minimumValidDepthInMeters default="0"
bdq:maximumValidDepthInMeters default="11000"
Specification Last Updated 2023-09-18
Examples [dwc:maximumDepthInMeters="1200": Response.status=RUN_HAS_RESULT, Response.result=COMPLIANT, Response.comment="dwc:maximumDepthInMeters is in range (<11,000)"]
[dwc:maximumDepthInMeters="99999": Response.status=RUN_HAS_RESULT, Response.result=NOT_COMPLIANT, Response.comment="dwc:maximumDepthInMeters is not in range (>11,000)"]
Source ALA, GBIF
References
Example Implementations (Mechanisms)
Link to Specification Source Code
Notes The Challenger Deep in the Mariana Trench is the deepest known point in Earth's oceans at 10,994 meters. We have rounded up bdq:maximumValidDepthInMeters.
Tasilee commented 4 years ago

This test was added after examining #107 that combined dwc:minimumDepthInMeters and dwc:maximumDepthInMeters in the one test and splitting it into the new #107 and this one.

chicoreus commented 3 years ago

Added a guid.

chicoreus commented 3 years ago

Definition needs tuning, zero and negative numbers are hard coded into the internal prerequsities not met, regardless of parameter values. Zero end point ambigously treated as special case depending on interpretation of within. Suggest:

INTERNAL_PREREQUISITES_NOT_MET if dwc:maximumDepthInMeters is EMPTY or is not a number; COMPLIANT if the value of dwc:maximumDepthInMeters is within the Parameter range of bdq:minimumValidDepthInMeters to bdq:maximumValidDepthInMeters inclusive; otherwise NOT_COMPLIANT

This would make negative numbers not compliant, which makes sense, as negative numbers can be tested against the range, while strings or empty values cannot be tested.

Tasilee commented 3 years ago

Thanks @chicoreus. I agree. We do have a definition of EMPTY BTW in our vocabulary: "A field that is either not present or does not contain any characters or values. Note: A field containing non-printing or other invalid characters or values (including NULL values) may be separately detected".

Tasilee commented 2 years ago

For consistency with #112, The Warning Type has been changed to "Unlikely"

Tasilee commented 2 years ago

Changed decision from Zoom: Warning Type of this test and #112 should be "Invalid"

chicoreus commented 2 years ago

Needs alignment with #107 where @tucotuco argued persuasively that negative values should result in internal prerequsites not met, given the definition for the DarwinCore terms for depth and the presence of alternative terms for offset from baseline. #107 and #187 should treat -1 in the same way, currently they do not.

Tasilee commented 2 years ago

Done but do we need to similarly account for "0"?

tucotuco commented 2 years ago

@Tasilee Similarly how?

Tasilee commented 2 years ago

As in

INTERNAL_PREREQUISITES_NOT_MET if dwc:maximumDepthInMeters is EMPTY or is not interpretable as zero or a positive number; COMPLIANT if the value of dwc:maximumDepthInMeters is within the range of bdq:minimumValidDepthInMeters to bdq:maximumValidDepthInMeters inclusive; otherwise NOT_COMPLIANT

tucotuco commented 2 years ago

Yes, good catch. Alternatively, "a number greater than or equal to zero"?

Tasilee commented 2 years ago

Amended ER to

INTERNAL_PREREQUISITES_NOT_MET if dwc:maximumDepthInMeters is EMPTY or is not interpretable as a number greater than or equal to zero; COMPLIANT if the value of dwc:maximumDepthInMeters is within the range of bdq:minimumValidDepthInMeters to bdq:maximumValidDepthInMeters inclusive; otherwise NOT_COMPLIANT

Tasilee commented 12 months ago

Splitting bdqffdq:Information Elements into "Information Elements ActedUpon" and "Information Elements Consulted".

Also changed "Field" to "TestField", "Output Type" to "TestType" and updated "Specification Last Updated"