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

Add geoDataClass parameter to input description. #474

Merged
merged 5 commits into from
Jan 5, 2025

Conversation

pvretano
Copy link
Contributor

Closes #38

@pvretano pvretano self-assigned this Nov 25, 2024
core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
openapi/schemas/processes-core/inputDescription.yaml Outdated Show resolved Hide resolved
core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
@@ -157,6 +157,26 @@ The following JSON Schema fragment illustrates the use of the `format` key to in
}
----

==== Data classes

One common input type that a process might accept is a https://docs.ogc.org/is/17-069r4/17-069r4.html#_collection_[feature collection] indicating that the process will somehow operate over the items of the collection. This implies that the process will have certain expections about the structure of the collection with regard to which properties the collection contains, their types, etc. In order to properly handle any arbitrary input collection a process would need to inspect the structure of the collection to ensure that all the expected properties are present with the expected types, etc. To alleviate the server from having to perform such a tedious, and perhaps computationally expensive, schema validation step this Standard introduces the concept of the _Data Class_ via the `dataClasses` parameter.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm guessing the "type" mentioned here refers to the geometry type (point, polygon, etc.)? I think that might lead to confusion considering "type" could be interpreted as the media-types or data-type (uint16, float32, etc.). Maybe consider using "geometries" or another word that doesn't have as much overloaded definitions as "type" does.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The type is not limited to the type of the geometry, but the type of all the properties (integer, real, text...) and any other JSON Schema validation. The geometry type is also part of that as restriction on the "geometry" property.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. That is my understanding of dataClass. It is a conceptual requirement that goes beyond the way the data is encoded, and allows a complicated combination of property prerequisites. This is why I want to be careful about using terms like "type" that misguide readers about the intent.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fmigneault type here refers to the type as defined in the schema of the data resource. That could be the data type (i.e. integer, string, object, etc.) but it could also mean the spatial type (polygon, linestring, etc.). Not sure how to say that succinctly. Perhaps I can add a note right after the information indicating that in this context "type" means type as defined by the schema but also spatial type? Would that help?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But it also means more, no? It is more a "concept" than a "type".
I agree it is hard to explain succinctly when the description remains abstract.
I think the extended example (where it talks about GeoJSON/Shapefile) helps the most.

core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
Copy link
Contributor

@fmigneault fmigneault left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just typos, looks good

core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
core/sections/clause_8_ogc-process-description.adoc Outdated Show resolved Hide resolved
@@ -157,6 +157,26 @@ The following JSON Schema fragment illustrates the use of the `format` key to in
}
----

==== Data classes

One common input type that a process might accept is a https://docs.ogc.org/is/17-069r4/17-069r4.html#_collection_[feature collection] indicating that the process will somehow operate over the items of the collection. This implies that the process will have certain expections about the structure of the collection with regard to which properties the collection contains, their types, etc. In order to properly handle any arbitrary input collection a process would need to inspect the structure of the collection to ensure that all the expected properties are present with the expected types, etc. To alleviate the server from having to perform such a tedious, and perhaps computationally expensive, schema validation step this Standard introduces the concept of the _Data Class_ via the `dataClasses` parameter.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But it also means more, no? It is more a "concept" than a "type".
I agree it is hard to explain succinctly when the description remains abstract.
I think the extended example (where it talks about GeoJSON/Shapefile) helps the most.

Copy link
Contributor

@fmigneault fmigneault left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. LGTM

@pvretano pvretano merged commit 37ab09f into opengeospatial:master Jan 5, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Inputs and Ouputs detailed format
3 participants