ADQL-2.1 PR now available

Mark Taylor m.b.taylor at bristol.ac.uk
Wed Jan 24 23:35:21 CET 2018


On Mon, 15 Jan 2018, Marco Molinaro wrote:

> Dear IVOA members,
> a new Proposed Recommendation
> is available for you at the IVOA Doc Repo: ADQL-2.1.
> 
> http://ivoa.net/Documents/ADQL/20180112/index.html
> 
> Please read it and comment (on the DAL list).

Mostly looks good, but some comments:

sec 4.2.1:
   "ADQL provides a the following..." -> "ADQL provides the following..."

sec 4.2.4:
   Discussing the deprecated first (coordsys) argument of geometry
   functions, it mentions in passing that it's optional, but then says:

      "Services are permitted to ignore this parameter and clients
       are advised to pass an empty string here."

   I suggest it would be better to advise something like:

      "Services are permitted to ignore this parameter if present,
       and clients are advised to omit it from function invocations.",

sec 4.2.7:
    I drafted this text in the first place:

       "The purpose of this section is to recommend a preferred
        form of ADQL to use for sky crossmatches."

    but in context it sounds a bit clumsy.  Maybe better:

       "A preferred form of ADQL for sky crossmatches is therefore
        recommended."

sec 4.2.12, 4.2.16, 4.2.17:
    These sections about functions combining geometry contain text
    like:

       "If the geometric arguments are expressed in different
        coordinate systems, the XXX function is responsible for
        converting one, or both, of the arguments into a different
        coordinate system. If the XXX function cannot perform
        the required conversion then it SHOULD throw an error.
        Details of the mechanism for reporting the error condition
        are implementation dependent."

    Two comments.  Firstly, this is a bit confusing if you come
    to the specification without knowing ADQL 2.0, since the
    deprecated optional geometry function coordinates are not
    much discussed elsewhere in this document, and are not present
    in any of the examples, so it may not be clear to readers
    how a geometry can be expressed in differing coordinate systems.

    Secondly, this is somewhat at odds with the statement in sec 4.2.4
    "Services are permitted to ignore this parameter".  It's not
    quite a contradiction though, since the sections here only
    prescribe a SHOULD.

    I'm not necessarily proposing a change here, but there might
    be scope for wording it better.

sec 4.2.15:
    Since the deprecated, optional coordsys parameter has been
    excised from all the examples, the COORDSYS function is now
    rather pointless, and in particular the example in this section:

        COORDSYS(
            POINT(
                25.0,
               -19.5
               )
           )

    looks a bit silly or incomprehensible.  I'd suggest using an example
    with a non-empty coordsys argument to POINT (e.g. as in the v2.00
    document), but note again that this usage is deprecated.

sec 4.2.16:
    "the distance between to points" -> "the distance between two points"

sec 4.3.1:
    A reserved namespace is proposed:

       "The ivo prefix is reserved for functions that have been
        defined in an IVOA specification."

    I think that's not a bad idea, but I believe that in
    at least some cases current practice violates it; the DaCHS
    service at http://dc.g-vo.org/tap defines e.g., ivo_healpix_center,
    ivo_interval_overlaps, ivo_healpix_index, ivo_apply_pm.
    I've heard Markus defend that practice elsewhere, so I guess
    he should comment.

sec 4.3.2:
    This section is repeating text from TAPRegExt (would it be better
    just to reference it?), but the context in this document raises
    a couple of points.
    First:

        arglist ::= "(" <arg> { "," <arg> } ")"

    I think should (according to the notation defined in sec 2 of
    this document) read:

        arglist ::= "(" <arg> { "," <arg> }... ")"

    That copied text is not *necessarily* a mistake in the TAPRegExt
    document, since TAPRegExt doesn't define its BNF notation.

    Second:

        <form>match(pattern TEXT, string TEXT) -> INTEGER</form>

    having gone to the trouble of defining types in sec 3, shouldn't
    they be used, at least by way of example, rather than the
    undefined token "TEXT" here?  Though I'm not sure I've grasped
    the purpose of the type system, so I may be missing the point.

sec 4.7.1:
       "The CAST() function returns the value of the first argument
        converted to the datatype specified by the second argument."

    I can't tell from this *how* you are supposed to specify the
    datatype, e.g. is it quoted or unquoted?  CAST doesn't appear
    in the BNF either, so I can't find out from that.
    An example would be useful.

sec 4.8.1:
    The PDF includes the text:

       "... formatting defined in the VOUnits specification (Derriere
        and Gray et al. (2014))."

    but in the HTML it looks like:

       "... formatting defined in the ."

    I haven't checked if there are other similar instances of
    missing references in the HTML.

Appendix A:
    The <trig_function> production includes the COT function, which
    is not mentioned in sec 2.3.

    CAST and IN_UNIT appear in the BNF only as reserved words,
    no clue to the syntax - are they supposed to be there, or
    are they omitted because they're optional?

    There may be other instances of new constructions introduced
    at this version that are not reflected in the BNF, I haven't
    checked exhaustively.

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