DALI 1.1, time annotations

Mark Taylor M.B.Taylor at bristol.ac.uk
Thu Feb 18 15:16:46 CET 2016


On Thu, 18 Feb 2016, Markus Demleitner wrote:

> Hi everyone,
> 
> On Wed, Feb 17, 2016 at 04:25:21PM +0000, Mark Taylor wrote:
> > 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.
> 
> I have all of them in my database, for starters, and I'd dearly love
> to have some way to mark this stuff up in a way that clients actually
> understand it[1].
> 
> And until DALI 1.1 I'd actually have agreed to using xtype like this.
> But DALI 1.1 defines the "interval" type using xtypes, and given
> that's already in use in SIAv2 (and the SODA draft) it's unlikely
> that we can banish that ghost back into the bottle again even if we
> could reach a consensus that's desirable (you'd have my vote,
> though).
> 
> This means that anything that we may ever want to use as interval
> boundaries cannot be marked up using xtype (unless we made xtype a
> compound -- shudder).  And at least for mjd that is very definitely
> the case (both SIAv2 and SODA already have cases).

Oh boy.  I hadn't spotted that.

I could point out that strictly speaking this doesn't affect DALI 1.1
as written, since the current draft says both (sec 3.3.3):

   "Date and time values must be represented using the convention
    established for FITS" [which uses string literals]

and (sec 3.3.4):

   "Numeric intervals are pairs of floating-point values (float or double)."

so you can't have time intervals (if it's an interval it has to be
numeric, and if it's numeric it can't be a timestamp).
But that doesn't seem like a very satisfactory escape, especially
since I'm complaining about at least one of those restrictions
in a different thread.

To me, xtype="mjd" is more persuasive than xtype="interval".
And DALI 1.1 isn't actually out of the bottle yet - I didn't even
know there was a draft until I saw it referenced in the
SODA WD announced on Christmas eve.  But if xtype="interval"
is fundamentally baked in to the multi-D juggernaut I suppose
I'll have to lump it.

> My take on all this is: We need to stop heaping hacks upon hacks and
> finally do a usable *and used* STC data model including a VOTable
> serialisation for it.  If we had had the courage to go the proper way
> through a parameter data model for interval, we wouldn't be  in
> the fix we're in now.  So, let's not repeat history here.

I'm not sure I wouldn't support hack-upon-hack here (compound xtype?
xtype="mjdinterval"?).  But probably it wouldn't take much pressure
to embarrass me out of it.

--
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 voevent mailing list