tdwg / bdq

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

TG2-VALIDATION_STATEPROVINCE_FOUND #199

Open Tasilee opened 2 years ago

Tasilee commented 2 years ago
TestField Value
GUID 4daa7986-d9b0-4dd5-ad17-2d7a771ea71a
Label VALIDATION_STATEPROVINCE_FOUND
Description Does the value of dwc:stateProvince occur in the bdq:sourceAuthority?
TestType Validation
Darwin Core Class dcterms:Location
Information Elements ActedUpon dwc:stateProvince
Information Elements Consulted
Expected Response EXTERNAL_PREREQUISITES_NOT_MET if the bdq:sourceAuthority is not available; INTERNAL_PREREQUISITES_NOT_MET if dwc:stateProvince is bdq:Empty; COMPLIANT if the value of dwc:stateProvince occurs as an administrative entity that is a child to at least one entity representing an ISO country-like entity in the bdq:sourceAuthority; otherwise NOT_COMPLIANT
Data Quality Dimension Conformance
Term-Actions STATEPROVINCE_FOUND
Parameter(s) bdq:sourceAuthority
Source Authority bdq:sourceAuthority default = "The Getty Thesaurus of Geographic Names (TGN)" {[https://www.getty.edu/research/tools/vocabularies/tgn/index.html]}
Specification Last Updated 2023-09-18
Examples [dwc:stateProvince="Florida": Response.status=RUN_HAS_RESULT, Response.result=COMPLIANT, Response.comment="dwc:stateProvince found in bdq:sourceAuthority"]
[dwc:stateProvince="Taswegian": Response.status=RUN_HAS_RESULT, Response.result=NOT_COMPLIANT, Response.comment="dwc:stateProvince not found in bdq:sourceAuthority"]
Source ALA, GBIF
References
Example Implementations (Mechanisms)
Link to Specification Source Code
Notes Multiple values in the dwc:stateProvince field (whether to signify on a border or in a list of possibilities) will fail this test. This test must return NOT_COMPLIANT if there is leading or trailing whitespace or there are leading or trailing non-printing characters.
Tasilee commented 2 years ago

I used "Tasmanian" in the example as the examples are mainly fails. This is something we need to check for consistency.

ArthurChapman commented 2 years ago

Then I suggest we make it explicit that it "fails the test because ..." See what you have written in #200 and #201.

Tasilee commented 2 years ago

Agreed. Done.

chicoreus commented 2 years ago

Do we want to be explicit about rank (one way or another) in the specification:

Changing

EXTERNAL_PREREQUISITES_NOT_MET if the bdq:sourceAuthority is not available; INTERNAL_PREREQUISITES_NOT_MET if dwc:stateProvince was EMPTY; COMPLIANT if value of dwc:stateProvince occurs in bdq:sourceAuthority; otherwise NOT_COMPLIANT

to

EXTERNAL_PREREQUISITES_NOT_MET if the bdq:sourceAuthority is not available; INTERNAL_PREREQUISITES_NOT_MET if dwc:stateProvince was EMPTY; COMPLIANT if value of dwc:stateProvince occurs at any rank below country in bdq:sourceAuthority; otherwise NOT_COMPLIANT

or

EXTERNAL_PREREQUISITES_NOT_MET if the bdq:sourceAuthority is not available; INTERNAL_PREREQUISITES_NOT_MET if dwc:stateProvince was EMPTY; COMPLIANT if value of dwc:stateProvince occurs in bdq:sourceAuthority at a rank interpretable as a primary division of a country; otherwise NOT_COMPLIANT

or

EXTERNAL_PREREQUISITES_NOT_MET if the bdq:sourceAuthority is not available; INTERNAL_PREREQUISITES_NOT_MET if dwc:stateProvince was EMPTY; COMPLIANT if value of dwc:stateProvince occurs at any rank in bdq:sourceAuthority; otherwise NOT_COMPLIANT

Tasilee commented 2 years ago

I prefer the first example (rank below country) or third.

tucotuco commented 2 years ago

I don't think the second one can work in practice. I have an intuition that the third one is too permissive. The first one seems reasonable, but I would state it something like this ("rank" doesn't really work for administrative geography):

EXTERNAL_PREREQUISITES_NOT_MET if the bdq:sourceAuthority is not available; INTERNAL_PREREQUISITES_NOT_MET if dwc:stateProvince is EMPTY; COMPLIANT if the value of dwc:stateProvince occurs as an administrative entity that is a child to at least one of the entities representing an ISO country-like entity in the bdq:sourceAuthority; otherwise NOT_COMPLIANT

Tasilee commented 2 years ago

Agreed and amended as suggested with an addition to the Notes to help explain our intent

chicoreus commented 2 years ago

How about a minor change from that s/at least one of the entities/at least one entity/:

EXTERNAL_PREREQUISITES_NOT_MET if the bdq:sourceAuthority is not available; INTERNAL_PREREQUISITES_NOT_MET if dwc:stateProvince is EMPTY; COMPLIANT if the value of dwc:stateProvince occurs as an administrative entity that is a child to at least one entity representing an ISO country-like entity in the bdq:sourceAuthority; otherwise NOT_COMPLIANT

Tasilee commented 2 years ago

Done.

Tasilee commented 2 years ago

Added to Notes: "This test will fail if there are leading or trailing white space or non-printing characters."

Tasilee commented 1 year ago

Post Zoom 11/7/2023, I have aligned the Source Authority with the suggested syntax:

bdq:sourceAuthority default = "The Getty Thesaurus of Geographic Names (TGN)" [https://www.getty.edu/research/tools/vocabularies/tgn/index.html]

to

bdq:sourceAuthority default = "The Getty Thesaurus of Geographic Names (TGN)" {[https://www.getty.edu/research/tools/vocabularies/tgn/index.html]}

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"

chicoreus commented 6 months ago

Edited notes to change "fail" text to more specific "This test must return NOT_COMPLIANT if there is leading or trailing whitespace or there are leading or trailing non-printing characters."