opengeospatial / CoverageJSON

Public repo for CoverageJSON project
Apache License 2.0
10 stars 8 forks source link

Several clarifications to the text requested - 2 #105

Closed chris-little closed 2 years ago

chris-little commented 2 years ago

@joanma747 identified several areas of confusion requiring improvements to the text. These have been split into 8 separate sub-issues: • The definition section needs to be improved. Some of the definitions are irrelevant such as RFC are there and definitions fundamental to understand the model such as "domain" or "range" are not there.

chris-little commented 2 years ago

@jpanma747, @jonblower @letmaik I propose to leave the RFC, but expand it, as it is not defined. rfc documents containing technical specifications and organizational notes for the Internet [IETF] then for domain and range: domain well-defined set [ISO19123] range <coverage> set of feature attribute values associated by a function with the elements of the domain of a coverage [ISO19123]

chris-little commented 2 years ago

@joanma747 PR request being created

joanma747 commented 2 years ago

I really believe it is not the job of the OGC to define what other committees do. It is really odd to have a OGC document with a definition of a document type of another institution. Even if it might be useful for the reader, does not seem to correspond to us to do it. Imagine a IETF document defining what a OGC best practice is.

Thanks for adding the domain and range.

I'm not particularly happy with the proposed domain definition. "well-defined set" of what?. My kitchen cupboard can be a domain with this definition!. What about "domain a well defined set of n-dimensional positions (some of them spatio-temporal)".

About the range, I believe we should adapt it to the coverageJSON language that talks about "parameters" and "variables". I'll recommend to remove the work "feature" that adds more confusion that if helps. (yes, I know that a coverage is a feature but that is not the point). What about... "a set of parameters and its values associated by a function with n-dimensional positions of the domain of a coverage".

jonblower commented 2 years ago

The domain definition was surprising to me too, but that's what it says in ISO19123! And actually I think your kitchen cupboard could be a domain. I could imagine a coverage that encodes the number of plates and bowls as a function of the cupboard that they are in...

I have seen a domain defined as something like, "The set of direct positions in space and time for which this coverage returns values". I think this is a bit more clear, but also perhaps a bit of a circular definition, and sometimes the domain includes dimensions other than space and time. But that's what it is I think - it's a representation of all the input that will give you an answer from the coverage function (in the same way that the domain of the square root function is all the non-negative numbers).

But if ISO19123 were happy with the extremely general definition, perhaps it's OK for us? I think we were a bit wary of making up our own formal definitions, but I must admit I'm not completely convinced by what we currently have here.

joanma747 commented 2 years ago

IMHO the definitions in the "definitions" sections are there to help people understand the concepts they are going to find later in the standard. So the definitions should be provided in the context of the standard at hand.

I propose to reproduce the ISO definition and provide a second definition that is more concrete and useful in the coverage context. I like the proposed : "Set of direct positions in space and time for which a coverage has values". I you want to combine it with my "n-dimensional positions (some of them spatio-temporal" it gives us "Set of direct n-dimensional positions (commonly some of the in space and time) for which a coverage provides values of properties"

jonblower commented 2 years ago

I propose to reproduce the ISO definition and provide a second definition that is more concrete and useful in the coverage context.

I certainly agree that this makes the document more useful for most readers. I think we were keen to show that we are compatible (at the conceptual level) with the ISO definition. @chris-little what do you think? I would be prepared to come up with a candidate set of definitions (based on the above conversation) if you like?

chris-little commented 2 years ago

@joanma747 @jonblower I have been thinking about the surprising ISO19123 definition, and I realise that it is applicable to domains that are not just spatiotemporal or even n-dimensional, with frequency, or whatever, but also applicable to categorical 'dimensions'. Example: Butterfly species recorded in Berkshire, England, or even better, neigbbours Peter and Fong's garden. The range could be a timeseries, or total number of observations. So I think that the ISO definition is precisely, but unhelpfully, correct. I agree that we could add an explanatory note: Commonly, a set of n-dimensional direct positions, usually including space and time, for which a coverage provides values of properties

joanma747 commented 2 years ago

Domain: well-defined set [ISO19123] The complain that I have with this definition is that a "range" is also a "well defined set". So the definition is not helping to separate concepts. And this is not a good thing. Concepts has to be precise.

Said that, the note proposed by @chris-little goes into the right direction.

chris-little commented 2 years ago

@joanma747 But having a range as a well defined set is also precisely, and unhelpfully, mathematically correct, as we are talking about mathematical functions from one well defined set to another well defined set, though of course it may be a completely different set. A set has to be the fundamental concept, as functions, and hence coverages, can be defined on vector spaces, fields, rings, groups, algebras, etc. PR #121 created. Will close this issue when PR reviewed and merged.

jonblower commented 2 years ago

FWIW I've always been a bit uncomfortable with the use of "set" in the context of the range. My understanding is that the members of a mathematical set are unique (because a set is only defined by whether things are a member of it or not). This is appropriate for the domain (there are no duplicate domain objects) but the values of the coverage's range are not necessarily unique.

Let's say we have a domain defined by the set {1, 2, 3, 4}, whose values respectively lead to the values {5, 6, 6, 8}. Properly, the range is {5, 6, 8} because these are the values that the function produces over its domain. The (mathematical) range set doesn't have to have the same number of elements as the domain set.

I think we've all got comfortable using "range" to mean a data structure that contains exactly one element for each possible value of its domain.

This is all connected with the oft-asked question of, "Is this really a Coverage (i.e. a function) or is it really a data structure from which we can derive a Coverage/Function"? I think CoverageJSON (and CIS and everything else) actually defines the latter, not the former, meaning that taking terminology direct from mathematical functions can be a bit incorrect.

chris-little commented 2 years ago

And we need to clarify whether we are talking about the results of a coverage, or a range set - the set of vaules that are valid - and they are unique. As we have a definition in terms of a funtion on a domain, we can leave as is, I think. PR now merged.