<div dir="ltr"><div><div>The WD-DALI-1.1 (diffs: <a href="https://volute.g-vo.org/viewvc/volute/trunk/projects/dal/DALI/DALI.tex?r1=3117&amp;r2=3135">https://volute.g-vo.org/viewvc/volute/trunk/projects/dal/DALI/DALI.tex?r1=3117&amp;r2=3135</a>) defines xtypes for timestamp, interval, point, circle, and polygon. Timestamps are defined as char and the others are defined as arrays of double and values do not include the shape.<br><br><br>There is a TODO/question about whether we should specify the coordinate &quot;range&quot; construct and/or the STC &quot;box&quot; concept... the only real use cases are that they can be more convenient than polygon but they don&#39;t enable any new functionality.<br><br></div>I agree that we do not need xtypes for identifiers (at most, you might want to say that the char* value is a URI and can be parsed as such) and certainly not for polarization states. That&#39;s more like an enum or a vocabulary... <br><br></div>Given that DALI-1.1 defines the needed xtypes (and it is in DALI because we want consistency across multiple services) I agree that SODA doesn&#39;t need to define any xtypes at this time.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 20, 2016 at 2:43 AM, Mark Taylor <span dir="ltr">&lt;<a href="mailto:M.B.Taylor@bristol.ac.uk" target="_blank">M.B.Taylor@bristol.ac.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Markus and DAL.<br>
<span class=""><br>
On Wed, 20 Jan 2016, Markus Demleitner wrote:<br>
<br>
&gt; In order to get on with my list of gripes, here&#39;s my second one.  In<br>
&gt; two sentences:<br>
&gt;<br>
&gt; SODA should not define any xtypes.  That&#39;s DALI turf.<br>
&gt;<br>
&gt; The concrete consequence: All specifications of xtypes except the<br>
&gt; interval should go from SODA standard parameters.<br>
<br>
</span>I am somewhat in agreement, but I wouldn&#39;t go quite as far as Markus.<br>
<span class=""><br>
&gt; The reason simply is: They serve no purpose.  In the case of POS, not<br>
&gt; only do they serve no purpose, they&#39;re actually damaging.<br>
&gt;<br>
&gt; Here&#39;s the background on xtypes: xtype is a VOTable attribute to<br>
&gt; FIELDs and PARAMs introduced in (I think) 1.2 because there was<br>
&gt; resistance to extending the VOTable type system to some types that<br>
&gt; were found desirable when delivering database tables, in particular<br>
&gt; timestamps and geometry values.<br>
&gt;<br>
&gt; Retrospectively, I think it was a mistake to do this, because in the<br>
&gt; end, it just confuses VOTable&#39;s type system, and VOTable<br>
&gt; implementations will have to do something with all the types we&#39;re<br>
&gt; defining anyway or we have a major interoperability problem on our<br>
&gt; hands.  It&#39;d have been much better to be honest about the feature<br>
&gt; creep and extend the type system in VOTable itself.<br>
<br>
</span>I disagree with this.  The point about having xtypes hanging off<br>
an existing datatype is exactly that VOTable implementations<br>
do *not* have to do something xtype-specific with them.<br>
Consider a value described thus:<br>
<br>
   &lt;PARAM datatype=&quot;char&quot; arraysize=&quot;19&quot; xtype=&quot;iso8601&quot;<br>
          value=&quot;2016-01-20T10:08:25&quot;&gt;<br>
<br>
A general-purpose VOTable processing library or application<br>
can perfectly well present the values to downstream software or<br>
to the user as a string.  Time-aware software meanwhile can work<br>
out how to convert it to an MJD or whatever.  Software that sees<br>
an xtype it doesn&#39;t recognise can and should just ignore it,<br>
and treat the data just as it would if it had no xtype<br>
(though propagate the xtype value downstream where appropriate).<br>
It&#39;s somewhat like a UCD or Utype in this respect, but it&#39;s<br>
orthogonal to that, because it&#39;s to do with how to map<br>
VOTable-friendly primitive datatypes to some other value domain,<br>
rather than being concerned with semantics as such.  Doing it<br>
like this protects us from having to constantly update the<br>
VOTable standard, and hence general-purpose VOTable processing<br>
software, every time we think of a new value domain that we<br>
need to transport.  FITS has managed for however many decades<br>
it is without having to update its type system, and the VOTable<br>
type system is based on that (I consider this last point a<br>
good argument, but if you&#39;re a FITS-hater, kindly pretend<br>
I didn&#39;t say it).<br>
<span class=""><br>
&gt; While that ship has sailed, it&#39;s important to limit the damage: let&#39;s<br>
&gt; at least be very cautious when introducing new xtypes lest we make<br>
&gt; VOTable unimplementable.  There should be exactly one place in which<br>
&gt; xtypes are defined.  It seems that one place is DALI.<br>
<br>
</span>I think that using DALI as the standard place to look for well-known<br>
xtypes is an excellent idea, and I look forward to seeing the<br>
relevant draft.  However, I don&#39;t agree on an embargo on non-DALI<br>
xtype definitions.  Other standards, or even projects or individuals,<br>
can use their own less-well-known or even private xtypes, but may<br>
not be able to rely on general purpose software to do anything<br>
clever when they encouter them.  Such less-well-known xtypes<br>
do not &quot;make VOTable unimplementable&quot; or otherwise impact<br>
on the implementability of VOTable itself.<br>
<br>
Having said that:<br>
<span class=""><br>
&gt; All other xtypes are gratuitous and should go.  This concerns<br>
&gt;<br>
&gt; * ID&#39;s xtype=&quot;ivoident&quot;<br>
&gt; * POL&#39;s xtype=&quot;Stokes&quot; (or &quot;stokes&quot;; the draft proposes both)<br>
&gt;<br>
&gt; These serve no purpose I can discern.  What would clients do with<br>
&gt; them?  Instead, they just pose traps into which services will fall<br>
&gt; when they&#39;re validated -- services that otherwise perfectly work.<br>
<br>
</span>I basically agree with this as far as most of the xtypes in the<br>
SODA WD go.  Unless there is some obvious work for them to do,<br>
I don&#39;t think it&#39;s a good idea to proliferate new xtypes.<br>
<span class=""><br>
&gt; They&#39;ll also be points of confusion when implementors ask themselves<br>
&gt; what they should possibly to with these xtypes.  I solemnly proclaim<br>
&gt; that I won&#39;t be the one to stand up on the mailing lists and explain,<br>
&gt; they&#39;re not supposed to do anything to VO newcomers.<br>
<br>
</span>(Parenthetically: I have no objection to doing that standing-up-<br>
and-explaining.  For the reasons I&#39;ve outlined above I think it&#39;s<br>
defensible, and I doubt if VO newcomers who&#39;ve waded through the<br>
UCDs and Utypes will be very upset to find another attribute they<br>
are allowed to ignore.)<br>
<br>
Mark<br>
<br>
--<br>
Mark Taylor   Astronomical Programmer   Physics, Bristol University, UK<br>
<a href="mailto:m.b.taylor@bris.ac.uk">m.b.taylor@bris.ac.uk</a> <a href="tel:%2B44-117-9288776" value="+441179288776">+44-117-9288776</a>  <a href="http://www.star.bris.ac.uk/~mbt/" rel="noreferrer" target="_blank">http://www.star.bris.ac.uk/~mbt/</a><br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div><div>Patrick Dowler<br></div>Canadian Astronomy Data Centre<br></div>Victoria, BC, Canada<br></div></div>
</div>