SIAP and encoding of POS input parameter
Alberto Micol
alberto.micol at eso.org
Wed Jan 21 11:32:58 PST 2009
Interesting Mark, very useful.
What if a SSAP returned VOtable is passed through SAMP to an application
that will use those numbers to compose a TAP ADQL query to some other
archive?
Will all these components have to re-parse and re-translate the numbers
to comply
to the different standards?
Alberto
>
> On 21 Jan 2009, at 20:22, Mark Taylor wrote:
>
> On Wed, 21 Jan 2009, Thomas Boch wrote:
>
> Dear DALers,
>
> While playing with some SIAP services the other day, I found out that
> some of them did not like the declination part of the POS input
> parameter to be started by a '+' (properly escaped as %2B).
> Example :
> http://mysiap.org/query?POS=83.6,22.0144&SIZE=0.2 is understood
> whereas:
> http://mysiap.org/query?POS=83.6,%2B22.0144&SIZE=0.2 is processed as
> an error.
>
> After checking in the SIAP document, I found nothing explicit about how
> the value of the POS parameter should be encoded.
>
> This sort of thing should certainly be mandated explicitly in DAL and
> other standards, otherwise there is no way to guarantee interoperability.
> It's not good enough to leave it to the default assumptions of whatever
> language the protocol is implemented in.
>
> Several standards do spell this out. VOTable says it with words, e.g.:
>
> - Single Precision Floating Point: ...
> The representation of a Floating Point number in the TABLEDATA
> serialization is made of an optional - or +, followed by the ASCII
> representation of a positive decimal number, and followed eventually
> by the ASCII letter "E" or "e" introducing the base-10 exponent
> made of an optional - or + followed by 1 or 2 digits. The number
> must be within the limits of the IEEE floating-point definition
> (around ±3.4·1038; numbers with absolute value less than about
> 1.4·10-45 are equated to zero); the default representation of a
> null value is an empty cell (see VALUES definitions above), and
> the special values "+Inf", "-Inf", and "NaN" are accepted.
>
> and SAMP uses BNF:
>
> <digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6"
> | "7" | "8" | "9"
> <digits> ::= <digit> | <digits> <digit>
> <float-digits> ::= <digits> | <digits> "." | "." <digits>
> | <digits> "." <digits>
> <sign> ::= "+" | "-"
>
> <SAMP float> ::= [ <sign> ] <float-digits>
> [ "e" | "E" [ <sign> ] <digits> ]
> A floating point value is encoded as a mantissa with an optional
> preceding sign followed by an optional exponent part introduced
> with the character "e" or "E". There is no guarantee about the
> largest or smallest values which can be represented or about
> the number of digits of precision which are significant, since
> these will depend on the processing environment at decode time.
>
> It would make sense for these things to be consistent across all the
> IVOA standards, but different contexts have different requirements or
> obvious implementations; for instance something which is evaluated or
> validated in the context of an XML schema should most obviously use
> the XML Schema definition, but this might impose an unnecessary burden
> in non-XML-based contexts.
>
> The main thing is that it is spelled out in each case, either explicitly
> or by reference to some other standard.
>
> Mark
>
> --
> Mark Taylor Astronomical Programmer Physics, Bristol University, UK
> m.b.taylor at bris.ac.uk +44-117-928-8776 http://www.star.bris.ac.uk/~mbt/
More information about the dal
mailing list