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

Inconsistencies in EDR spec #459

Open
rosinaderks opened this issue Oct 16, 2023 · 6 comments · May be fixed by #462
Open

Inconsistencies in EDR spec #459

rosinaderks opened this issue Oct 16, 2023 · 6 comments · May be fixed by #462
Labels
API EDR V1.2 Non-breaking change for Version 1.2

Comments

@rosinaderks
Copy link

rosinaderks commented Oct 16, 2023

While implementing the EDR spec into a Pydantic model, we encountered some inconsistencies in the spec between objects, requirements and the examples. Hopefully, it is possible to overcome some of these inconsistencies or define which of them is leading for easier implementation.

Object C.1 Collections:

  • Object defines a 'crs' string array, while requirement A.24 defines an object with 'name' and 'wkt', and while object C.4 CRSDetails defines an object with 'crs' and 'wkt'.
  • Object defines 'output_formats', while requirement A.13 defines this variable as 'f'.
  • Object defines 'data_queries', while there is no mention of this attribute in requirement A.13.

Object C.2 EDRQuery:

  • Object defines 'link' as a Link object for which the attribute 'variables' not required, while requirement A.16 defines that 'variables' is required.

Object C.3 Variables:

  • Object defines 'query_type' as not required, while requirement A.15 defines it shall be included.

Object C.9 Data Queries:

  • Object defines 'item', 'location', while requirement A.14 speaks of 'items', 'locations'.

Object C.11 Parameter:

  • Object has no mention of 'categoryEncoding', while requirement A.25 mentions an optional attribute 'categoryEncoding'.
  • Object defines i.e. 'description', 'label', etc as a string, while requirement A.25 defines that these must be an i18n object.

Object C.15 Observed Property:

  • Object defines that only 'label' is required, while requirement A.25 defines that both 'label' and 'id' are required.
  • Object has no mention of 'categories', while requirement A.25 defines the possible attribute 'categories'.

General:
MUST and SHALL are both used which can cause confusion, for example in requirement A.18 and A.19.

@chris-little
Copy link
Contributor

chris-little commented Oct 16, 2023

@rosinaderks Thank you for this detailed reading, experimentation and report. We will have an online EDR API Standard Working Group meeting on Thursday, 19 Oct 2023, where we can try to agree on the correct resolutions.

Please can I confirm that you are working from the V1.1 specification, which includes several fixes beyond the V1.0.1 version.

@rosinaderks
Copy link
Author

Hi @chris-little! Yes, I am working from the V1.1 specification. I appreciate the discussion within the working group and am eager to see the outcomes.

@PaulVanSchayck
Copy link

In case anyone is interested, these are our Pydantic models for the EDR spec:
https://github.com/KNMI/edr-pydantic

@chris-little chris-little added the API EDR V1.2 Non-breaking change for Version 1.2 label Oct 17, 2023
chris-little added a commit that referenced this issue Oct 26, 2023
…ster-branch

Fix inconsistencies in master branch identified in Issue #459
@chris-little
Copy link
Contributor

chris-little commented Oct 26, 2023

@rosinaderks Thank you for identifiying those inconsistencies. We have fixed the Master Branch (Part 1: Core, V1.2)

V1.1 will be fixed when we have the correct procedure from OGC staff. We may have to publish a V1.1.1

The fixes that we applied are:
Object C.1 Collections:
Object defines a 'crs' string array, requirement A.24 now defines an object with 'crs'
Object defines 'output_formats', requirement A.13 now defines this variable as 'output_formats'.
Object defines 'data_queries', reuirement A.13 now mandates at least one.
Object C.2 EDRQuery:
Object now defines 'link' as a Link object for which the attribute 'variables' is required.
Object C.3 Variables:
Object defines 'query_type' as not required, while requirement A.15 defines it shall be included.
Object C.9 Data Queries:
Object now defines 'items', 'locations', and requirement A.14 speaks of 'items', 'locations'.
Object C.11 Parameter:
Object has no mention of 'categoryEncoding', now requirement A.25 does not mentions an optional attribute 'categoryEncoding'.
Object defines i.e. 'description', 'label', etc as a string, now requirement A.25 defines that these as strings.
Object C.15 Observed Property:
Object defines that only 'label' is required, while requirement A.25 now defines that 'id' is optional.
Object has no mention of 'categories', similarly requirement A.25.

General:
MUST and SHALL are both used which can cause confusion, for example in requirement A.18 and A.19.
We are still working on these (I have identified A.15, A.19, A.30 and A.31). There are also quite a lot of shoulds that SHALL be SHOULD!

@rosinaderks
Copy link
Author

Hi @chris-little. Great to hear, nice to see the inconsistencies fixed! Thanks for the quick responses.

@chris-little
Copy link
Contributor

chris-little commented Nov 23, 2023

Agreed at EDR API SWG 2023-11-23. Will close this issue when V1.1 correction branch merged (probably into V1.1.1 branch)

@m-burgoyne m-burgoyne linked a pull request Mar 21, 2024 that will close this issue
@chris-little chris-little moved this from In progress (Assignees working on it) to To do (SWG agreed to add to project) in OGC API-EDR Part 1: Core, V1.2 Backward compatible functional changes Oct 3, 2024
@chris-little chris-little moved this from To do (SWG agreed to add to project) to Final Review (PR ready, no conflicts, reviewers requested) in OGC API-EDR Part 1: Core, V1.2 Backward compatible functional changes Oct 3, 2024
@chris-little chris-little moved this from Final Review (PR ready, no conflicts, reviewers requested) to Initial Review (agreed as feasible, reasonable, achievable, and assigned) in OGC API-EDR Part 1: Core, V1.2 Backward compatible functional changes Oct 3, 2024
@chris-little chris-little moved this from Initial Review (agreed as feasible, reasonable, achievable, and assigned) to Final Review (PR ready, no conflicts, reviewers requested) in OGC API-EDR Part 1: Core, V1.2 Backward compatible functional changes Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API EDR V1.2 Non-breaking change for Version 1.2
Projects
Development

Successfully merging a pull request may close this issue.

3 participants