Skip to content

Conversation

@pvretano
Copy link
Contributor

Closes #38

@pvretano pvretano self-assigned this Nov 25, 2024

==== 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
Member

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
Member

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
Member

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
Member

@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


==== 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
Member

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
Member

@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