TAP Implementation Notes

Mark Taylor m.b.taylor at bristol.ac.uk
Tue Oct 9 07:37:09 PDT 2012


On Mon, 8 Oct 2012, Markus Demleitner wrote:

> Dear DAL folks,
> 
> I've been planning to write up what's on
> http://wiki.ivoa.net/twiki/bin/view/IVOA/TAPImplementationNotes -- a
> collection of various things regarding TAP that need clarification or
> improvement -- for a while now.  I've finally tackled it, and the
> (intermediate) result is at 
> https://volute.googlecode.com/svn/trunk/projects/dal/TAPNotes/TAPNotes-fmt.html
> 
> I hope  we'll find some time to discuss the various topics in Sao
> Paulo, but it would really be nice if you could glance through it
> before.  Whether in SP, before or after, I'm be grateful for any kind
> of feedback, but particularly:
> 
> (1) For each individual proposal: Do you think it's a good idea?
> (2) For each individual proposal: Would you implement that?
> (3) For each To Be Written-thingy: Would you author it?
> (3) Are there any other quirks you'd like to fix in the next round of
>     standardization?
> (4) Are there any other features you'd like to see in the next round
>     of standardization?

Markus,

this looks like a pretty useful piece of work.
I'll comment on some of the items.

ADQL: Simple Crossmatch Function:
   Yes yes yes

ADQL: Empty Coordinate Systems:
   Getting rid of these does look like a very good idea, I presume
   the functions were defined like that by somebody who never thought
   much about their implementation [say, wouldn't it be a great idea
   if implementations were required before standards reached REC?].

   I don't know about the details though - working towards an ADQL
   where the first arguments of these functions is ignored is quite
   ugly, and likely confusing or at least irritating to future TAP
   users.  Also, what does "deprecating" the first argument mean;
   syntactically you have to put something there, does it mean that
   services will be encouraged to ignore it, in contravention of
   the standard?

   An alternative would be to deprecate these functions altogether
   and introduce a parallel set of similarly-named ones which lack
   the first argument.  I don't have a particularly good suggestion
   for the name-mangling required, but you could have SAREA, SBOX,
   SCENTROID, ... (for Simple).  [Um, unless ADQL permits function
   overloading by parameter count/type, but I have the impression
   it doesn't.]

ADQL: Case-Insensitive String Comparisons:
   Assuming your analysis is correct (can't do case-insensitive
   comparisons at the moment), then yes, it's important to add this.

ADQL: Casting to Unit:
   This sounds like it might be a useful addition, given the fallbacks
   in the text as you've written it (i.e. query fails if conversion
   can't be done).

   My worry is that the implementation would be sufficiently diffcult
   that it would be not widely implemented (it bears at least a 
   superficial resemblance to the named coordinate system idea,
   though it's not as bad as that), so people would spend more time
   trying it and it not working than getting useful value out of it.
   Would it be more appropriate as a UDF, referenced in examples,
   where required?  (or is there some syntactic reason why that wouldn't
   work?)

   However, no doubt you have a better idea of implementation difficulty
   than I do, so I'm not vetoing it.

ADQL: Column References with UCD Patterns:
   Hmmm, I can see the thinking behind it, but is there really a
   compelling use case?  Also, if this is introduced, there probably
   ought to be a UTYPECOL function as well.

UWS: Format of Quote:
   Agreed the current state is anomalous, but it's not that problematic
   and changing it in a minor TAP version can be expected to cause
   compatibility problems for clients.  I'd be inclined to let
   sleeping dogs lie.

TAP: The size column in TAP_SCHEMA:
   Alternative possibility: remove SIZE from the list of ADQL reserved
   words.  I have no idea if that would cause problems.

TAP: Inline Table Uploads Sanitized:
   I'm not sure what problem ("somewhat fragile") this is trying to solve.
   The new proposed upload format doesn't look immediately objectionable,
   but I'd hesitate to agree with the change without trying to implement
   it first.

TAP: Examples endpoint
   This is a nice idea, and I think it's fairly well worked out.

   There should be some arrangement for declaring the query language
   (ADQL, PQL, ...); probably that ought to match the declared
   TAPRegExt language/name element content.

   Would I implement consumption of such an endpoint in a TAP client?
   Yes if I had time.

TAP: Plan endpoint
   Good idea.  Thanks for backing out of the formatting.

   The requirement of text/plain output seems a bit unnecessarily
   restrictive though.  I'd make it a SHOULD rather than a MUST.
   I note that the GAVO TAP server serves text/xml from its
   plan endpoints :-).

TAP: Scaleable tables endpoint
   Given that VizieR TAP is about to come online, it's should be
   regarded as high priority to do something about this
   (Xamin is another TAP service with a lot of tables).
   I think the proposal written here provides a good solution.


Of the other proposals in the document, I either agree with them or
don't understand them (not your fault, I'm no SQL expert).

Mark

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