[TAP] data type for column metadata

Rob Seaman seaman at noao.edu
Tue Mar 24 09:52:44 PDT 2009


Francois said:

>>> Well, that's typically why the utype attribute was introduced:  
>>> specify as accurately as possible what is the meaning of a  
>>> parameter vs a data model. For instance, an ISO time could be  
>>> defined as utype='stc:AstroCoords.Time.TimeInstant.ISOTime' the  
>>> stc prefix referring tp Space-Time coordinates (there should  
>>> therefore be at the top of the VOTable a reference to the XML  
>>> schema as: xmlns:stc="http://www.ivoa.net/xml/STC/stc-v1.30.xsd" )
>>>
>>

Rick Wagner wrote:

>> I don't see how we can use utypes to define both the format of a  
>> FIELD, and its relationship to a data model. For example, how can I  
>> specify that a FIELD represents the execution time of a simulation  
>> using utype='simdb:Simulation.ExecutionTime', and that is in ISO  
>> format, utype='stc:AstroCoords.Time.TimeInstant.ISOTime'?


and Roy said:

> Just to note in passing that VOTable already has formatting  
> information with the FIELD, it is the "width" and "precision"  
> attributes (quote below from the REC).
>
> I would suggest that if there is a new "format" attribute, then it  
> should be able to replace "width" and "precision".

More basically, "ISOTime" is not a clear expression of a sexagesimal  
format.  ISO 8601 is a very complex standard.  Not only the format can  
vary, but the quantity expressed can be either an epoch (or range of  
epochs) or an interval and in various units from seconds to years.   
(And of course, the token "ISO" could refer to any of 10,000 other  
standards.)

The VO either needs to constrain the format or it needs some facility  
like IRAF's sexagesimal format, which indeed permit expressing the  
width and precision.  A sexagesimal value is a floating point number:

	ecl> x = 12:34:56.789
	ecl> = x
	12.582441388889

The %h format expresses sexagesimal (in whatever units):

	ecl> printf ("%h\n", x)
	12:34:56.8

The width and precision are handled like other printf format specifiers:

	ecl> printf ("%12.3h\n", x)
	12:34:56.789

The %H format is a convenience feature for converting from degrees to  
hours (divide by 15) on the fly:

	ecl> printf ("%H\n", x)
	0:50:19.8

I'm not suggesting these be adopted by the VO (although wouldn't  
flinch if they were), but you guys should be aware that you are well  
on the way to reinventing IRAF.

>>> Or do you think that this is not appropriate ?  Sure it looks  
>>> complex, but Arnold would answer that specifying accurately which  
>>> time is used is complex...
>>

Here is where the discussion could go off on a vast tangent.  In  
addition to formats, data types, utypes, ISO standards - and yes,  
space-time coordinates - STC brings with it the baggage of XML  
schema.  Requiring a xmlns:stc="http://www.ivoa.net/xml/STC/stc-v1.30.xsd 
" just to say that some value is formatted as sexagesimal is beyond  
awkward.

This makes sense to me:

	utype='simdb:Simulation.ExecutionTime'

I don't know what this is supposed to mean:

	utype='stc:AstroCoords.Time.TimeInstant.ISOTime'

...and I'll second Rick's question.  Can a single quantity have more  
than one utype?  What would this mean?

Rob



More information about the dal mailing list