Closed ghobona closed 2 years ago
When a shortened form of an identifier is used, the following shall apply:
[loweralpha]
. The version segment of the URI is assumed to be equal to 0
. The definition-type segment shall be assumed to be equal to crs
.
I suggest this should be: When a shortened form of an identifier is used, the following shall apply:
[loweralpha]
. The version segment of the URI is assumed to be equal to 0
. The object-type segment shall be assumed to be equal to crs
.
. The definition segment shall be assumed to be equal to def
.
Thanks @RogerLott. I have just updated the list, adding the text about the def
segment.
The Commit is https://github.com/opengeospatial/NamingAuthority/pull/119/commits/b4e8b8e83ba85c09777b2b7c0be65b7ec4bfb6a5.
I just had a look at the text and the current wording is unclear. It states:
A shortened form of the URI of a registered Coordinate Reference System (CRS) may be used as an alternative to the full URI by ...
This currently seems to imply that the shortened form could be used anywhere where a URI is expected. This, however, is not correct. The shortened form is not a URI and using it where ever only a URI is expected is syntactically incorrect and can lead to errors raised by libraries parsing the value.
My proposal would be a clean approach along the following lines:
http://www.opengis.net/def/crs/EPSG/0/
). Comparisons of prefix values should be case-insensitive.http://www.opengis.net/def/rel/ogc/1.0/
) then we can use a CURIE "ogcrel:conformance". We could do this, because it is "our" JSON Link object and there currently is no standardized one. We could even specify "ogcrel" as the default prefix for CURIEs in the "rel" attribute. Note that in a Link header, the URI has to be used to conform to RFC 8288.https://example.org/foo/collections/bar/items?crs=[epsg:3857]
{ "rel":"[conformance]", "href":"https://example.org/foo/conformance" }
assuming that we have specified "ogcrel" as the default prefix.That approach has limitations where we are using elements that are not controlled by OGC and URIs have to used in those cases, but I think we can cover many cases where we want to use a shorter string and the approach does not violate the rules of the IETF/W3C standards.
Should it be ogc:rel
instead of ogcrel
, e.g. ogc:crs
, ogc:tms
?
That is not possible, a prefix is an NCName
.
@cportele OK, thanks.
Could CURIEs somehow also work for defining a CURIE actually compounding multiple CURIEs for #93 ?
e.g. [epsg:4979+ISO-8601:Gregorian_UTC]
as a CURIE shorthand for
http://www.opengis.net/def/crs-compound?1=http://www.opengis.net/def/crs/EPSG/0/4979&2=http://www.opengis.net/def/crs/ISO-8601/0/Gregorian_UTC
where
[epsg:4979]
is a CURIE for http://www.opengis.net/def/crs/EPSG/0/4979
and
[ISO-8601:Gregorian_UTC]
is a CURIE for http://www.opengis.net/def/crs/ISO-8601/0/Gregorian_UTC
assuming they all have an ogccrs
default prefix.
@cportele Could we modify your example prefix of "epsg" meaning http://www.opengis.net/def/crs/EPSG/0/
to be instead "epsg-crs" meaning http://www.opengis.net/def/crs/EPSG/0/
The modification would address the point raised by @RogerLott in Comment https://github.com/opengeospatial/NamingAuthority/issues/92#issuecomment-848971490
@ghobona - I would say "no", because the original issue is really about codifying the current practice that already uses "epsg" as a prefix for CRSs. So I think it has to be "epsg". But we could register, e.g. "epsg-uom" for EPSG UoM URIs etc.
@jerstlouis - Hmm, first of all, those http://www.opengis.net/def/crs-compound
-URIs seem like a bad idea. http://www.opengis.net/def
is for registered definitions, but this is a grammar to construct URIs, which is something entirely different. IMHO this should not have a base URI of http://www.opengis.net/def
. So maybe that should be deprecated in the same step. What this really is, is a stop gap for an array of CRSs. So, where un-registered compound CRSs built from registered CRSs need to be supported, I would allow an array of CRSs, so the value in a query parameter would be [epsg:4979],[ISO-8601:Gregorian_UTC]
.
@cportele The CIS domainset defines a single srsName
field where a coverage has a single CRS, which may be compound (example).
I agree that defining an array of CRS and concatenating together in order all dimensions defined by each of them could really be equivalent to defining a compound CRS on the fly. The result can be seen as an integrated continuum of dimensions just as well. But it seems like we would need to make a breaking change to CIS to allow for this? Currently, CIS requires a single URI to define all dimensions. I had raised a related issue in https://github.com/opengeospatial/coverage-implementation-schema/issues/7.
Maybe we could update the schema so that srsName
is a oneOf that could also accept an array?
Well, it would have to be a change in CIS anyhow since the value range would have to be extended from "URI" to "URI or OGC CURIE" or - in the original proposal - to "URI or some OGC-specific-string". The OGC NA cannot declare that something that is not a URI suddenly should be treated as a URI and can be used anywhere where a URI is required. What is a URI is controlled by IETF, not OGC.
Yes, srsName
could be extended for such on-the-fly compound CRS and CURIEs. That would require a GML revision, if done properly. Or CIS just documents their convention for encoding CRS references in the srsName
attribute, even, if it is not consistent with the XML schema. Based on the proposal in the original issue this seemed to be the idea anyhow. And it would likely work, because XML schema parsers do not throw errors for invalid URIs and non-URI values have frequently been used in the GML srsName
attribute in the past.
Note that CURIEs are syntactically valid in some RDF representations - e.g. Turtle - provided the prefix has been declared.
Closing this PR without Merging so that we can continue discuss on the Issue thread.
I'll copy over the proposal by @cportele .
Addresses https://github.com/opengeospatial/NamingAuthority/issues/92