DALI 1.1 working draft available

Mark Taylor M.B.Taylor at bristol.ac.uk
Wed Feb 17 17:25:21 CET 2016


Dear DAL and TDIG,

On Mon, 8 Feb 2016, François Bonnarel wrote:

>      This email to advertize you that the DALI 1.1 working draft, edited by
> Pat Dowler is available since last week on the IVOA website, in the
> "Standards" section.

This is a comment on the DALI 1.1 draft (WD-DALI-2015-10-27,
from http://www.ivoa.net/documents/DALI/20151027/) under discussion
in DAL.  I'm cross-posting this message to the time domain list,
since it's of relevance to transmitting time data.


DALI 1.1 WD section 3.3.3 defines (in approximate accordance with
existing usage from TAP) how to serialize an iso8601-like timestamp
into a VOTable field, like this:

    <FIELD datatype="char" arraysize="*" xtype="timestamp"/>
    ...
    <TD>2016-02-17T14:27:38</TD>

That's fine, but I would also like to be able to mark columns in a
VOTable that contain timestamps in other formats, e.g.: MJD, JD,
decimal year (maybe others ... Unix milliseconds???).

At the moment there is no way to mark up a VOTable column in such a
way that you can tell this is what it contains.
Units are some help, as are UCDs which can (when present)
distinguish between an epoch and a duration.  But none of these
can distinguish between a JD and an MJD, because they can't
specify a zero point.

This seems to me like a prime use case for xtypes.  So I would
suggest at least the following xtype values:

    xtype="mjd"
    xtype="jd"
    xtype="decYear" (?)

Perhaps experts from CDS can advise on what forms timestamp
columns actually exist in in the wild.

The existing xtype="timestamp" value I'm a little unhappy with,
since what's being stated (what client code needs to know) here
is not really that it's a timestamp, but that it is a timestamp
in the DALI-blessed iso8601-like format.  If there were a different
string-based timestamp format, it would need to have a different
xtype for clients to make sense of it.  So I'd suggest xtype="iso8601"
instead.  However, as far as I know no other string-based timestamp
format is in wide use, and xtype="adql:TIMESTAMP" is already
recommended by the TAP standard, so I won't insist on this.

In terms of datatypes; obviously timestamp/iso8601 should be
character typed and mjd, jd, decYear numeric, e.g.

   <FIELD datatype="double" xtype="mjd"/>
   ...
   <TD>57435.6025231</TD>

However, time presents precision issues; FITS WCS Paper IV
(Rots et al., http://adsabs.harvard.edu/abs/2015A%26A...574A..36R,
see sec 3.4) allows use of pairs of floating point values for the
integer and fractional parts of a value, to provide better precision
than a single 64-bit floating point value.  So I would suggest
also permitting a doublet-vector variant like this (at least
for mjd and jd):

   <FIELD datatype="double" arraysize="2" xtype="mjd"/>
   ...
   <TD>57435 0.6025231</TD>


TIME ENTHUSIASTS PLEASE NOTE: I am not touting any of this as
the final solution to exact representation of time values in VOTable.
I am well aware (though without having a good grasp of the details)
there are issues to do with timescales and frames of reference
which this suggestion does not tackle, and for which something involving
STC is no doubt the correct way forward.  However, defining the
above xtypes would let us do some very basic things (label an MJD
column so that a table consumer can recognise it as such) which
VOTable currently does not allow.  And the present revision of DALI
seems like a good place to do it.

Mark

--
Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK
m.b.taylor at bris.ac.uk +44-117-9288776  http://www.star.bris.ac.uk/~mbt/


More information about the dal mailing list