[TAP] draft 0.42

Francois Ochsenbein francois at vizier.u-strasbg.fr
Mon Apr 27 07:04:51 PDT 2009


Hi Pat,

Sorry for the length of this message -- I tried nevetheless 
to be as brief as possible in the enclosed comments related
to TAP Version 0.42. Some comments are just typos, but a
couple imply VOTable adjustments:

==> the usage of the <INFO> tag (sec. 2.9): should we (I mean the
      VOTable group) give up with the addition of sub-elements
      like <DESCRIPTION> in <INFO>, which are included in VOTable1.2 ? 

==> the 'format' as a new attribute of <FIELD> (and therefore
      of <PARAMETER>): I assume this word is replaced by 'encoding',
      with a similar meaning of what is proposed in Apx A.5 of 
      VOTable1.2. Is that agreeable ?

And thank you!
Francois

================================================================
Comments on [TAP] draft 0.42
================================================================

Introduction:
    I'm not sure about the 'web-service' term --
    doesn't it imply soap ?

1.1.1 : 
    for lisibility, assign the number to the 4 kinds of query
    (1) data queries (2) metadata queries etc

1.3  ... go to COMPLETED or ERROR. The results, or an error document 
         can then by retrieved.. 
    by --> be
    languge --> language

2.3 2nd (last) paragraph: 
    it may be difficult to decide which is a spurious parameter -- in a
    set of n parameters, it is likely possible to find several subsets
    which would represent a valid tap request. Or are you talking about
    empty parameters only (cf 2.3.11)? The exact situation should be
    clarified, in my opinion.

2.3.1  It a TAP service such a receives a request...  
    remove the 'such a'?

2.3.4 + 2.3.5 :
    as you suggest, most of the section 2.3.5 would better be
    in a PQL document.

    Or alternatively the TAP document could have a section dedicated to
    the queries by (celestial) position and maybe another section to
    queries by time. Queries based on position (and time) are such an
    important part of TAP that a few typical examples, in both ADQL and
    PQL, would be helpful for both TAP servers and clients (consumers).

    As a side effect of your remarks at the end of section 2.3.4, it
    becomes obvious that you can't require an ADQL query to return an
    ICRS position; it would be a good suggestion, at least for
    efficiency, to suggest the TAP servers to insert in their table
    schema columns with ICRS coordinates.

2.3.6 : why is tab-separated-values not considered ? 
    tab-separated-values is a mime type which exists since the
    beginning of the web, and is much more simple than CSV 
    (does not require optional escaping, but forbids documents
    having tabs in their columns). See also 2.7.1

2.3.9 :
    I really do not understand why MTIME is introduced in TAP, it
    introduces a lot of complications and exceptions in the definitions 
    of the TAP service; I believe the TAP protocol should stay as generic
    as possible. Isn't it possible to define alternatively a specific
    schema (or data model?) for logs or 'mirrorable' tables ?

2.3.11 : 
    my feeling is that MAXREC= (parameter without value) differs
    fundamentally from asking for a default or null value, and is
    related to 2.3 (2nd paragraph): is it a spurious parameter or
    a request for a default value ? My own opinion is that parameters
    without contents would better be systematically ignored
    (i.e. http://my.tap-server/tap/sync?REQUEST=doQuery&MAXREC=
     and  http://my.tap-server/tap/sync?REQUEST=doQuery
     represent the same TAP query -- that would be the logical
     interpretation of what comes out from a HTTP form)

2.3.13 : 
    is there a well-defined way of dealing with multi-valued 
    parameters (your TBD) ? What would happen if you specify 
    first MAXREC=100, and somewhere else in the same query MAXREC=0 ? 
    A duplication of parameters like MAXREC or RUNID should, 
    in my opinion, generate an error.

2.5 :  table with correspondance VOTable / ADQL:
    -- VOTable:format  --> VOTable:encoding
    -- TIMESTAMP : is defined in DBMSs, but is it with time zone
       or without (i.e. UTC) ? 
    -- VARCHAR and VARBINARY have a size VARCHAR(n) or VARBINARY(n);
       in VOTable, the arraysize is n* (a number followed by the *)
       (see also 2.6)
    -- BINARY, VARBINARY and BLOB should, be default, be written
       as an array of decimal numbers in VOTable, e.g. 
       12 56 0 255 0 0 255 ...
       A possible 'encoding' could effectively specify hexa or base64 

2.5.2 : table upload:
    Is it restricted to VOTable ? And if yes, only to <TABLEDATA> 
   version of VOTable ?  Or shouldn't any of the output types 
   defined in 2.3.6 be acceptable ? 

2.6 : TAP_SCHEMA
    as already repeated (not only by me!) the current definition is
    incomplete for what concerns the actual table implementation 
    (keys and indexes). If the TAP_SCHEMA is limited to semantics
    (i.e. remove the 'indexed' in the columns schema), it's OK.

    And if ADQL (SQL) datatype replaces the VOTable datatype,
    shouldn't also the [array]size be removed (see also 2.5)?
    The phrase "this size does not map to the VOTable arraysize
    attribute" could also then be removed.

2.7.1 : 
    (about MTIME: see 2.3.9 above)
    about CSV: it is defined by RFC 4180, and should not be
    (incompletely) redefined here. 

2.7.5 :
    "If the output format is VOTable, section 2.7.5 describes the method"...
    this definition looks like an endless loop :-)

2.8.1 : 
    the IVOA documentation standard from
    http://www.ivoa.net/Documents/DocStd/20090302/PR-DocStd-1.2-20090302.html
    specifies in its section 1.2, item#3:
    A version number of the form I.J, where I and J are integers 
       0, 1, 2, ... 9, 10, 11, ... .
    therefore I don't understand how "1.23" is interpreted as "1.2.3" ??

2.9 : (VOTable)
    -- First the question of the INFO tag: the explanation text must be
       included in a sub-element <DESCRIPTION> in VOTable1.2 ;
       Mark Taylor insisted this should be removed (incompatibility
       with previous version) but on the other hand the modified
       <INFO> gives more possibilities (e.g. is list of options).
       A final decision about this should be taken soon...
    -- 2.9.1 : how to specify an overflow seems contradictory :
       * before the result: "OK" specifies success + no overfolw
       * after the result: specify "overflow"
       Should a correct interpretation be:
       1. Before the result: OK means the query is understandable
       2. After the result: OVERFLOW or OK (or nothing ? )
=======================================================================
Francois Ochsenbein    ------   Observatoire Astronomique de Strasbourg
   11, rue de l'Universite 67000 STRASBOURG  Phone: +33-(0)390 24 24 29
Email: francois at astro.u-strasbg.fr (France)    Fax: +33-(0)390 24 24 17
=======================================================================



More information about the dal mailing list