New SIA v2 proposal

Walter Landry wlandry at caltech.edu
Tue Sep 15 08:20:03 CEST 2015


Markus Demleitner <msdemlei at ari.uni-heidelberg.de> wrote:
> Hi Walter,
> 
> On Mon, Sep 07, 2015 at 12:51:25AM -0700, Walter Landry wrote:
>> 1) The syntax for ranges uses NaN to indicate infinity.  I do not
>> understand this at all.  NaN is not infinity.  Also, it provides no
>> way to distinguish between positive and negative infinity.  We should
>> use Inf, inf, Infinity, or infinity.
> 
> The NaN here is not infinity, it's NULL ("missing value").
> Semantically, this is not "limit is infinity" but "there's no limit".
> For floats, there's little difference, but I'd claim it's easier to
> deal with a missing limit than to have to figure out all the
> intricacies of IEEE floats[1].
> 
> The reason NaN is used here as a NULL literal is that we have a close
> coupling of the SIAv2 HTTP parameter syntax to VOTables (e.g., you
> can give defaults or limits for these in PARAMs in the service
> metadata), and hence the agreement was to use VOTable tabledata array
> syntax.  In VOTable, during the discussions leading up to 1.3, nobody
> wanted to champion striking down the NULL=NaN convention we had there
> since 1.0, and so I doubt anyone is too eager to open that can of
> worms again.

I am not comfortable with this approach.  If you make people put
something in that slot that is not 'NULL', it does not feel like a
NULL.  VOTable defines +Inf and -Inf, and it would have the expected
effect.  Users do not understand NaN as well as infinity.

Also, NaN's are not always NULL's in VOTables.  The currently
recommended serializations (TABLEDATA and BINARY2) ascribe no special
meaning to NaN.  It is only the deprecated BINARY serialization which
suggests, but does not require, using NaN as a special value to
indicate NULL.

Cheers,
Walter Landry


More information about the dal mailing list