-
Notifications
You must be signed in to change notification settings - Fork 12
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
Definition of a ISO-8601/Gregorian TRS, and possibly redirecting uom/ISO-8601/0/Gregorian to it #101
Comments
First attempt at a GML definition (partly based on https://docs.ogc.org/as/18-005r4/18-005r4.html#118): <?xml version="1.0" encoding="UTF-8"?>
<TemporalCRS
xmlns="http://www.opengis.net/gml/3.2"
xmlns:epsg="urn:x-ogp:spec:schema-xsd:EPSG:1.0:dataset"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
gml:id="gregorian-crs"
xmlns:gco="http://www.isotc211.org/2005/gco"
xmlns:gmd="http://www.isotc211.org/2005/gmd">
<description>Concrete temporal CRS for date and time specified according to proleptic Gregorian calendar and the Coordinated Universal Time (UTC) scale.</description>
<identifier codeSpace="http://www.ietf.org/rfc/rfc3986">http://www.opengis.net/def/crs/ISO-8601/0/Gregorian_UTC</identifier>
<name>DateTime in proleptic Gregorian calendar, UTC time scale</name>
<remarks>Initial version (0.1)</remarks>
<scope>Date/time as defined in ISO 8601.</scope>
<timeCS>
<TimeCS gml:id="gregorian-cs">
<description>1D coordinate system containing a time axis specifying date and time.</description>
<identifier codeSpace="http://www.ietf.org/rfc/rfc3986">%datetime-cs%</identifier>
<remarks>As defined in ISO 8601.</remarks>
<axis>
<CoordinateSystemAxis gml:id="gregorian-cs-axis" uom="http://www.opengis.net/def/uom/SI/second">
<description>Coordinate system axis for Gregorian date and time.</description>
<identifier codeSpace="http://www.ietf.org/rfc/rfc3986">%dateTime%</identifier>
<remarks>As defined in ISO 8601.</remarks>
<axisAbbrev>time</axisAbbrev>
<axisDirection codeSpace="http://www.ietf.org/rfc/rfc3986">http://www.opengis.net/def/axisDirection/OGC/1.0/future</axisDirection>
</CoordinateSystemAxis>
</axis>
</TimeCS>
</timeCS>
<temporalDatum>
<TemporalDatum gml:id="gregorian-td">
<name>Proleptic Gregorian calendar</name>
<description>Epoch time for the Gregorian calendar is May 20th, 1875.</description>
<calendar>prolepticGregorian</calendar>
<identifier codeSpace="http://www.ietf.org/rfc/rfc3986">%gregorian-td%</identifier>
<remarks>The origin is by convention the calendar day that the “Convention du Mètre” was signed in Paris.</remarks>
<scope>Date/time as defined in ISO 8601.</scope>
<origin>1875-05-20T00:00:00Z</origin>
</TemporalDatum>
</temporalDatum>
</TemporalCRS> NOTE: I suggest we explicitly allow both years 0000..1582 (where 0000 is 1 BC), as well as negative years (e.g. -0001 is 2 BC), up to 12 digits to also support older dates all the way back to the age of the universe (with the understanding that precision is greatly reduced the further away in the past from 1875), and that this constitute the mutual agreement required by ISO 8601 to use such older dates. |
I think we should define this in http://www.opengis.net/def/crs/ISO-8601/0/Gregorian ("crs" instead of "trs"). The use of TRS is really outdated and, I think, has its source in the term "temporal reference system" in ISO 19108:2002. In 2018 ISO 19111/Topic 2 have been updated to include the concept of temporal coordinate reference systems as another subtype of CRS. It seems appropriate to deprecate the "trs" register and going forward use the "crs" register for any temporal coordinate reference systems. |
There is the general problem that the GML CRS encoding does not support all the latest changes in 19111/Topic 2. For example, I do not think that TemporalDatum in GML 3.2 includes a In general, I would suggest to migrate the CRS definitions to WKT / PROJJSON. And/or define the necessary XML extensions to support the latest version of 19111/Topic 2. |
SWE Common 2 references a number of temporal reference systems from the If the branch were to be deprecated, the existing URIs would still be there but we would not add any new items to the register. Instead any new temporal reference systems would be added to the Would there be any adverse impact on SWE? |
@ghobona did you mean to say "would be added to the http://www.opengis.net/def/crs/ branch" ? Applauding to the support for the idea to have all CRSs in the crs/ branch! And great that the information is machine-readable and hence paves the way for transformations between future time CRSs and calendars. |
I would like to point out that http://www.opengis.net/def/uom/ISO-8601/0/Gregorian was not mistakenly classified as a unit of measurement. It was originally defined by SWE Common to be used as a system of units, not a CRS/TRS, as stated in the definition.
So it's different from If we want to create a temporal CRS definition based on ISO8601 I would actually create several ones that explicitly list the time scale in the name, e.g. @ghobona I see no issue deprecating the 'trs' branch as long as the old URIs still point to the new ones we create. What I'm not sure about is if the 'crs' branch is the right place for TAI, GPS, UTC, etc. since, technically speaking, those are are time scales. |
Note that the definition of http://www.opengis.net/def/uom/ISO-8601/0/Gregorian should be improved because it creates confusion between temporal units and time scales. If think we should rewrite it to say:
|
@alexrobin Thanks for the background. So a draft 'Motion on Temporal Coordinate Reference Systems' for consideration during the next OGC-NA meeting would look like this: The OGC-NA agrees to update the registration of Temporal Coordinate Reference Systems as follows:
|
@ghobona I would like the motion to specifically reference the registration of a new general-purpose ISO 8601 / proleptic Gregorian calendar / UTC time scale TRS (http://www.opengis.net/def/crs/ISO-8601/0/Gregorian_UTC). I have adjusted the draft GML definition per @alexrobin's suggestions above. |
I don't see how the unit definition works. Unless we change the concepts of Measure and Unit of Measure, entries in the UoM register are units associated with a numeric value where values are continuous in the numeric range of the unit. That works for POSIX time, but ISO 8601 does not specify Units of Measure, it specifies representations of time that are (intentionally) not a number. Yes, for a time scale one could specify rules that convert the ISO 8601 representation to a numeric range without discontinuities, but that is not specified by ISO 8601 and the registration would belong to a different authority - and the conversion needs to be specified first by someone (the authority). |
TRSes need proper handling and should not be part of CRS. In fact, in GeoSPARQL revision, we have dropped the term “CRS” in favour of SRS since we have spatial reference systems that don’t use coordinates. e.g. DGGSes. The Australian government has a growing list of TRSes https://linked.data.gov.au/def/trs which I have previously asked the OGC to take over (so far unresolved). We expect that the list will grow in both size and importance as modelling systems such as OWL-TIME become more widely used alongside systems such as GeoSPARQL. We also expect GeoSPARQL 2.0 (still a year or two away) to handle both spatial and temporal, in fact GeoSPARQL might be renamed. So please don’t retire TRS and please don’t subsume TRS into CRS. |
@cportele The Temporal.DWG has worked out the difference between calendar (that's what 8601 and Gregorian are) and a time CRS sensu strictu (count in seconds since epoch). Generally, uoms that are not strictly floats happen already with degrees / minutes / seconds which are converted to decimal degrees routinely. The same can be done with a calendar-to-seconds mapping, based on the existing definitions. So no reason the space-time continuum that physics is aware of cannot also be adopted by Earth sciences :) |
@pebau, that is what I wrote, one can convert those other representations to units (Measure has two properties, And degrees with minutes/seconds is also not a unit, decimal degrees, radians, gon are. |
@cportele Here is an interesting point, can you help and explain maybe? You say deg/min/sec is not a valid uom, but I seem to remember having seen them as allowed as substitutes for decimal degrees. In some GML CRS comments I found a mentioning, but I am not aware of the formal handling in CRSs. Is there some precedent which we maybe could apply also to Gregory? |
|
@cportele I know that defining ISO8601 calendar as a UoM may seem odd but the idea was indeed to define a pseudo unit similar to degrees/minutes/seconds of http://www.opengis.net/def/uom/EPSG/0/9110. We chose ISO8601 as the authority because the standard does (re)define Gregorian calendar units in section 2.2, in addition to their string representation. As @pebau said I believe information provided in ISO8601 standard + a timescale is enough to convert an ISO8601 representation to its equivalent "seconds past epoch" without ambiguity, and that's what most time libraries do (e.g. Java 8 time), so I'm not sure we need to add complexity here. The ISO8601 UoM allows SWE Common to reuse the same class for carrying time values as decimal numbers past an epoch or ISO8601 datetime. In the end the intent is similar to what is now described in Topic 2, just with a slightly different model. |
Just to clarify, I'm not saying using the ISO8601 calendar as a UoM is the perfect model, I'm saying it's choosing pragmatism vs a more complex - perhaps "closer to perfection" - theoretical model. And I don't think this choice is any worse than what is proposed in Topic 2 (i.e. a separate temporal CS class to encode values as ISO8601). The point is that in both cases there is an implied transformation to go from ISO8601 to a scalar value along the temporal axis, and that transformation is indeed not explicitly defined by ISO8601. |
@alexrobin @cportele glad that we seem to converge on a pragmatic solution! In parallel to a machine-readable set of definitions we might set up a best practice paper, I am willing to get my hands dirty. |
@cportele re GML, yes, I am more than aware of the issues - we had years and years of discussion since about 2010 to convince OGC folks that users will not want 15-digit second counts, but 8601 strings. Today this is more commonly acknowledged than it was, but of course we have the legacy of GML. Maybe an update could be done? Just as a side note, in CIS 1.1 such strings are allowed and easily parseable in XML, JSON, and RDF. Which gives a broader perspective - these days JSON is trending, and I hear SKOS activists speak up, so pragmatically we might accept that canonical GML is constrained (at least for now, until an update) and go ahead with the desired solution. Just to observe the growing number of non-numerical cases: we have now deg/min/sec and date, but there is also flight levels in aviation, like "FL050". I am sure we can find more use cases. |
Dear Temporal and Naming Enthusiasts, Minor edits for clarity.
A CRS has:
I think there is probably consensus on this and it is stable and accepted.
Perhaps the only aspect not well understood is that 'dimensionless' units ('dimensional' in this case referring to Mass, Time, Length) have a dimension of 1 (one) not 0 (zero). This aspect enables better (automatic) comparison of values from disparate domains. So far, so good, and I think consensus and stability apply. However Degrees of Arc/Minutes of Arc/Seconds of Arc slightly break this model by having multiples of 60 rather than 10, so it is not clear whether this is one or three UoMs. Decimal Degrees of Arc, Minutes of Arc or Seconds of Arc by themselves clearly conform to the strict definition of UoM.
I agree with @pebau that such TCRS are just CRS and should be defined in the same /CRS/ branch of the registry. This then allows the straightforward definition of spatial-temporal CRSs, as assumed by WCS/CIS.
Timestamps based on the ISO8601 notation and a single clock can be unambiguously sorted into temporal order, but calculating durations (lengths in time) is not guaranteed to give unambiguous results as they depend on exactly which calendar algorithms are used. These vary even just for the Gregorian calendar. Summary: I propose that the OGC NA deprecate the UoM/Gregorian branch, and establish a TRS branch for temporal reference systems, which would include calendars. This branch would then contain the root definition of, for example, And all true CRSs would be in the CRS branch. |
This is consistent with my wishes and the example TRS vocab I linked to above! We could ask for people to define/characterise non TCRS TRSes and register those. Some of the important ones, like Geological Timescale, are already well characterised and we have good relations with their primary users (I am webmaster of the International Commission on Stratigraphy). centralising a listing of TRSs, including very different ones like imprecisely defined King Lists would be a real data service for the Semantic Web world. |
Some additional background. There are some definitions of instances of
There are also some broader temporal reference systems registered under http://www.opengis.net/def/trs The following extracts from the GML 3.2.1 Standard are also relevant. They are also in the GML 3.2.2 Standard.
A value in the time domain is measured relative to a temporal reference system .....In GML seven concrete elements are used to describe temporal reference systems: |
This is a very helpful compilation! Maybe we move forward defining the time CRS universe systematically and discuss its proper location later. |
Yes I agree with @pebau that before we decide on an ontology branch to host these concepts, it seems we first need to clarify our model for time (i.e. temporal reference systems, calendars, time scales, etc...). |
@alexrobin I have just started populating a [GitHub repo for an Abstract Spec/Conceptual Model for Time](https://github.com/opengeospatial/Temporal-Abstract-Spec, hopefully consistent with OWL-Time. Technically though, the Temporal Domain WG can only generate Best Practices, Engineering Reports etc. We need a Standard WG chartered to do that, but at least it is somewhere to start. Technically, OGC policies state that we are not meant to start substantive work untillthe SWG Charter is approved. Volunteers welcome to help crack this problem. Anyone want to step up as co-chair of the Temporal DWG? |
Coverages are dealing with time, all the time. Additionally, as coverages are multi-dimensional, there is a sense about the necessary coherence of mechanics across dimensions. Hence, the Coverages.SWG is the natural carrier WG. |
@chris-little The OGC-NA will wait for the Temporal DWG to advise on a way forward regarding this topic. |
@ghobona @chris-little It would be great if that could be discussed at the upcoming Temporal DWG session. |
@jerstlouis I, and many others I am sure, have serious problems with those two adjacent words: |
@chris-little Yet we all use the Gregorian calendar in our every day life in a rather simple way! There must be a way to make progress with this. We need to, as OGC API needs a simple yet proper solution for temporal support. I believe the way forward is:
So it can be simple: an ISO8601 string unambiguously referring to any specific moment in time. Of course by simple I mean, as simple as possible, but no simpler (maxim often attributed to Albert Einstein). |
Encapsulation is your friend. We use Gregorian calendars happily enough in most cases because all the calculation logic is hidden behind functions (encapsulation) - rather than complex descriptions of how to and the internal data models to support these functions. If there are differences in the functions that are required or possible, then possibly some sub-typing is required to distinguish these, otherwise canonical naming so the right implementation of these functions can be found is probably sufficient description. |
@jerstlouis I will add your bulleted points to the agenda for the Temporal DWG for discussion. Your points were part of the original intention of the draft Best Practices document. As usual, "Simple ain't easy" - |
@chris-little while "ISO8601" is ambiguous, I hope "ISO8601" in the context of this new TRS can be disambiguated. Thank you! :) |
@jerstlouis Over the years, the various versions of ISO8601 subtly altered things, like not allowing "Now", or "24:00" for a day as opposed to "00:00" for the following day, or removing references to "midnight". Lots of people sttill adhere ISO8601:2008 as that version is freely available in the public domain. HTH |
https://www.opengis.net/def/crs/OGC/0 has several temporal definitions already. |
@pebau But none of them is for Gregorian calendar / UTC time scale. AnsiDate and UnixTime imply a particular format of the date and time which is not the ISO 8601 / RFC 3339 commonly used with the OGC API standards. |
This issue needs to be discussed by the Temporal DWG and resubmitted once a definition is available for registration. Closing the GitHub Issue and moving it to the Temporal DWG mailing list. |
In Coverages SWG discussions it came up that it is not clear what TRS to use for ISO-8601 Gregorian Date+Time, as typically used with OGC APIs (Common, Features, Coverages...). Because of this, the AnsiDate and UnixTime TRS end up being misused, as the only available options.
On the Temporal DWG mailing list, @cportele indicated that Common & Features reference http://www.opengis.net/def/uom/ISO-8601/0/Gregorian as the identifier for the TRS, even though it was mistakenly (or not?) classified as a unit of measurement.
This issue is to properly define an ISO-8601/Gregorian temporal reference system, based on the proleptic Gregorian calendar (UTC time scale), that can represent both date & time. (
http://www.opengis.net/def/crs/ISO-8601/0/Gregorian_UTC
?)We also suggest that http://www.opengis.net/def/uom/ISO-8601/0/Gregorian can redirect to it, and that http://www.opengis.net/def/trs/ISO-8601/0/ list is as its member rather than the uom URI.
[Edit: Not sure exactly what should be done about this in light of recent clarifications.]
Example E.4.1 in 19111/Topic 2 (https://docs.ogc.org/as/18-005r4/18-005r4.html#118) could be used as a starting point.
The axis abbreviation is listed there as uppercase
T
.An alternative suggestion is to use
time
.The text was updated successfully, but these errors were encountered: