This document will act as RFC centre for the latest TAP V1.0 Proposed Recommendation.
Following the comments below on the 20091006 version and discussions at the November Interop meeting, I have uploaded the Holiday Version of the TAP V1.0 Proposed Recommendation to resolve the outstanding issues. In addition to addressing the comments below, the latest document includes a new informative section (6) with a suggested syntax for STC-S; this has been done because STC-S is currently an IVOA note and we do not want to promote it to the status of a non-reviewed standard simply by mandating it's use. The included syntax follows the Note, but it is not part of the normative standard and STC-S support does not effect compliance to the specification. I realise this appears to be adding substantially to the TAP specification, but this was the least disruptive way to resolve the issue.
Note: this version has change bars for non-editorial changes; that will be cleaned up for the final version, along with the references to other pending recommendations.
According to the discussions in Garching 2009, TCG review should now be able to proceed and finish by mid-January; thank you for your patience.
--PatrickDowler, 2009-12-25
Note that comments applicable to the above document are in the next section with comments for earlier versions can be found here.
Initial Review period: 2009 July 10 – 2009 August 21
Second Review period: 2009 October 09 – 2009 November 06
Third TCG Review Period: 2010 January 18 – 2010 February 03
In order to add a comment to the document, please edit this page and add your comment to the list below (include your WikiName so authors can contact you for further information). When the author(s) of the document have considered the comment, they will provide a response after the comment.
Discussions about any of the comments or responses should be conducted on the DAL mailing list, dal@ivoa.net.
I'll repeat my earlier comments here : my sincere thanks to Pat for all his hard work getting the document to its current state and further thanks to all who contributed along the way.
I'm ready to approve the document if these few questions can be fixed; I also wish to thank a lot the contributor(s) (merci Pat)!
I also think that we have to move on ASAP with TAP. Could there be a link to the reference implementations from the RFC page?
As remarked by others, there are strong dependencies with yet-to-be-REC standards, in particular VOSI and UWS. Mitigations measures have been applied in the TAP text, but as explained in the 2009 Roadmap (p. 14) VOSI and UWS should have been consolidated with TAP agreements and therefore have to go on in the Recommendation process ASAP if we want to pursue at least some level of consistency.
This will also help to adjust TAP if necessary as recommended by Bob.
Approved without reservation!
Thanks to Pat for all the detailed editing in the 20091225 version, following comments from TCG and discussions at Garching Interop. I think we should now move forward and therefore I approve the document.
Note: something odd happened during html export that put odd characters in various places; will fix so no need to report on that; the PDF should be ok.
This document clearly defines a core functionality for generic queries of tables using either ADQL and PQL. This functionality is central to the development of VO applications and with this document as a guide both data providers and data clients should be able to build very powerful services using these core capabilities. Promoting this document to a recommendation should encourage the widespread adoption of the core TAP functionality leading to an immense increase in the fundamental capabilities of the VO.
The TAP interface is very complex with with strong interactions with a myriad of other VO protocols. A number of issues in ancillary areas have arisen since the release of the RFC, in TAP metadata, table uploads, VOSI capabilities, version negotiation, geometry support, and the interfaces of TAP to W3C and other IVOA protocols. A few of these have been addressed in changes made to the document between RFC and TCG review. It is unclear if substantive changes of this kind were appropriate at that point, since they were not themselves subject to general review. Overall these issues raise doubts that this document is an adequate guide to building a fully conformant TAP implementation.
Given the juxtaposition of these opportunities and concerns, Applications abstains in the approval process, with a recommendation that, regardless of the outcome of this process, work begin immediately on a new version of the document which focuses not on new functionality but on a clarification and resolution of issues in these ancillary areas.
I have two TCG-level comments:
I'll note that overall I was impressed with the level of detail covered in this document. I can approve this document once these issues are addressed.
-- RayPlante - 28 Oct 2009
Comments from NormanGray. There are minimal interactions with the Semantics WG, so the following are comments on exposition and the document itself. I haven't worked through the various comments above, so some of these might be duplicates.
Hrumph. I was looking at the 2009 June 7 version of the document. It might be useful to put a link to the current version of the document in the first line of this page, and not a four-month old version. It's not clear to me, therefore, how many of the comments below are still useful.
Document as a whole:
1 Introduction: ADQL and PQL are mentioned. It would be useful to have references to the relevant Recommendations.
1.1.3 VOSI: "specifies base service interface" should be "specifies a base service interface"
1.2.2 Synchronous queries: "Metadata queries are always executed synchronously". Is this a MUST. If so, it might be better documented as such in s1.1.2, which should include a cross-reference to where the metadata queries are more fully documented.
1.3 Interface overview (informative): Footnote 2 is redundant, given the discussion of the 303 See Other response later in this section. Also, this section doesn't seem notably more 'informative' than the presumably normative subsections earlier in this section.
2.2.2 /async: There's a reference to UWS, and reference [5]. However, reference [5] is to RFC2396. I haven't bothered checking other references and cross-references -- they're surely automatically generated and this error was just a glitch.
2.3.3 LANG: "The service should return an 'unknown query language' as described in 2.9" -- perhaps "return an 'unknown query language' error...". This section refers to "the subsequent query parameter(s)". However as noted in s2.1.12, the parameters can come in any order. Perhaps "the other query parameter(s)" would be better.
2.3.4 Query: The quoted "yyyy-MM-dd[ HH:mm:ss[.SSS]]" is not a legal ISO-8601 datetime format. If the included space in that string is deliberate, it's not part of an ISO-8601 datetime spec, but indicates a separate date and time specification. In any case, the more restricted format of RFC3339 or <http://www.w3.org/TR/NOTE-datetime> would make better specs: both agree that yyyy-mm-dd[Thh:mm:ss[.ss]] is a suitable time. The same is true in s2.3.5 (the TIME=... example has a correctly-formatted time, though with a trailing slash). Note that since this syntax doesn't include a possible time zone or UTC offset, it presumably requires that everything be in UTC -- it would be good to make that explicit.
2.3.6 FORMAT: MIME type strings are case-insensitive, too, according to RFC2045 (ie, APPLICATION/x-VOTable+XmL is a VOTable MIME type). Well, RFC2045 specifies that the Content-Type header's values are case-insensitive, but I think this can be taken to imply that MIME types are always case-insensitive.
2.3.8 MTIME: There are multiple ISO-8601 range list formats -- do you really want to require TAP services to have to support "2007-03-01T13:00:00Z/P1Y2M10DT2H30M"? Neither RFC3339 nor the W3C datetime note include ranges -- perhaps the best thing here would be to declare that the MTIME parameter format must be a pair of ISO-8601 instants separated by a slash (that's one of the legal ISO-8601 formats). Also (picky), this section doesn't indicate whether the time interval is open or closed (I'd suggest inclusive at the start, and exclusive at the end, of the interval).
2.5 Table Upload: there's no discussion of authentication and authorisation here. I presume that's been taken care of elsewhere, in which case a reference to that would probably be useful here.
2.5.2 Inline Table Upload: A reference to RFC2046 and RFC2388 would be useful here
2.7.1 Data and metadata queries: refers to the TSV spec as [15], when it should be [16]. This mentions "Column values may not contain the TAB character" -- this should be "must not", since "may not" is ambiguous between "must not" and "might not".
2.7.3 Errors: This section is terribly vague. If I were implementing a TAP client, I wouldn't have a clue what to expect here -- all it seems to say is that I'll get an HTTP status returned within the HTTP request! Providing a 200 (OK) response with an error document seems ... eccentric, when there are plenty of sensible alternatives in the HTTP speec (I know SOAP does this, but that can hardly be said to be an argument in favour).
2.8.2 Version number changes: paragraph one says "no more than two integers", whereas paragraph two talks of "[a] version number change at the third level". Also the paragraph one text permits a single integer ("no more than two"). Which is it? One, two or three integers?
2.9.2 Version mismatch errors: these are signalled by an "ERROR" in an info element. That seems a bit non-specific. Wouldn't a more specific error code be useful.
4 Extended capabilities: there seems to be no way of registering extension names, even implicitly with, say, a reversed domain name. In a standard for networked operations, this seems to be asking for trouble.
7.1.1 Introduction: RFC2616 defines the 'http' scheme, but (as noted in s7.1.2) it's RFC2396 which defines URIs.
8 References: Not all of the linked URLs are clickable. For example, the VOSI URL doesn't work -- whatever it is that's converted this to HTML has simply coloured this text blue!
VOSI is included in the reference list twice, as [6] and [14]. Note that VOSI is still a WD, not a Rec (can I insert my standard moan about this?) Reference [15] refers to "EITF", should be "IETF"
Provided these questions are sorted out, I would be happy to approve the document.
I can go along with the document after the suggested changes have been fixed. Let us have the TAP v1.0 as soon as possible.
These comments are mostly presentation details which are easily fixed, however there are a couple of issues of substance. None of these are show-stoppers in my view, however, and I would be ok going ahead to REC if things are tidied up. Another option would be to hold TAP at PR for a period of time so that we could see a larger number of fully functional, interoperable implementations, and get further feedback from implementers regarding where the specification needs more detail.
The labels “normative” and “informative” do not seem to be applied consistently. Only Section 1.4 of the Introduction, for example, is labeled “informative”, but it seems appropriate that all of Section 1 be labeled “informative”. On the other hand, Section 7 has the “must” and “should” language of a standard and would seem to be “normative”. If the point is to recap HTTP rules then it might be better to move this to an Appendix (e.g., content that is explicitly informative) so it is clearer that these rules are about HTTP and not about TAP.
Section 1, para 1, both ADQL and PQL should have references here, on their first occurrence in the document.
Para 2, “or in some other format” would imply that virtually anything is ok. Better would be something like “or in one of several other formats specified herein.”
Section 1.1, sentence is missing an “and” after “metadata queries”.
Section 1.1.2, first sentence has awkward phrasing in “a subset and patterned after”. Perhaps “...to standardized tables that are a subset of, and patterned after, information schema in RDBMSs...”
Section 1.1.3, first sentence needs to be with “The” and another “the” is needed before “base service”.
In last sentence, “IVOA registry” needs a reference.
Section 1.2.1, “...will not be usable with other services unless they implement the exact same data model.” This does not seem correct to me. Isn’t the point that the data models need to be sufficiently similar that like elements are comparable? For example, one could certainly compare two TAP services with very diverse contents if both provided the same contents in the area of interest to the user. So I would have said “a sufficiently similar data model” or something along those lines.
Section 1.2.2, I am not sure that “PQL is more abstract than ADQL” (actually I might have said ADQL is more abstract than PQL), but it really doesn't matter. I would drop this phrase and just have “PQL can be used in some cases without first querying the metadata tables; PQL parameters carry sufficient meaning to enable...”.
In last sentence, it should be “Details...are...”
Section 1.3.2, last sentence, insert “are” before “likely to fail”.
Section 1.4, first sentence needs “The” at the beginning.
Footnote 2 ends with “(see other)”. See other what? Actually, I know that this means that HTTP code 303 stands for “see other”, so it is just the parentheses that make this a little confusing. Writing “HTTP code 303: See Other” would solve the problem.
Section 2.2, reference [5] at end of 1st para should be [3]
The list of UWS resources is not completely consistent with the UWS specification. In particular, UWS does not define a “termination” URI, and the URI is “parameters”, not “param”.
Section 2.3, last sentence, I would have thought that a response to a spurious parameter should at least include a warning rather than being completely ignored.
Section 2.3.1, 3rd para, “This is...” should be “These are...” as it us referring to “additional parameters”.
Section 2.3.3, “...is ADQL...” should be “...are ADQL...”. The parenthetic descriptions of ADQL and PQL are unnecessary here, as this has been said elsewhere.
Section 2.3.4, 4th para, “...and the services supports...” should be “...and the service supports...”
Section 2.3.5, 1st para, “...are specified in elsewhere...” ???
3rd para, “...and the services wants...” should be “...and the service wants...”
End of 4th para, suggest rewriting as “Details on how to use table references in PQL are given in the PQL specification document. [ref]”
Section 2.3.7, 2nd para, “This value” should not be in italics.
Section 2.3.9, “(e.g., scheme is vos or param)” I think needs to be clarified
Section 2.5, 3rd sentence, missing “the” before “uploaded table” and missing “a” before “legal ADQL table”.
Section 2.5.2, 1st sentence, missing “the” before “caller” In the example, this reader does not grasp the “boundary=AaB03” stuff. Is this obvious to others?
Section 2.6, the 1st sentences seems to go around in circles. In skeleton form: “The [] schema defines tables in the SCHEMA schema that contain [] metadata required to use the tables...”. At some level I think it makes sense, but I’m hoping that this can be reworked!
Section 2.6.1, “The schema_name values are unique.” Unique within what scope? How is this to be enforced? I have the same question regarding the definition/scope of “unique” in 2.6.2. 2.6.3, and 2.6.4.
Section 2.6.3, column_name unit, cites “VO standard format”. We don’t actually have an explicit document on standard units. VOTable refers to SI units and FITS conventions. I think this needs a footnote or something to explain the situation.
Section 2.6.4, there is a block of text starting with “Data types and how they map...” which seems out of place here, as this is not to do with Foreign Keys. Does this belong in the general text of 2.6 at the beginning?
In the middle of this paragraph “...where the services chose...” should be “...where the service selects..”, and “...which columns are returned by default” would be better as “...those columns that are returned by default.”
Section 2.7.3, after bullets, “...service containers an cannot...” should be “...service containers and cannot...”
Section 2.8.1, remove hyphen in “version-number” and add reference after last sentence (to IVOA document conventions).
Section 2.8.3, what is meant by “...level two”?
Section 3, 5th paragraph, “The resource document should include the table metadata...”. I think this is getting a bit far afield from TAP and straying into best practices for registries. I’d rather the “should” were a “may”. The footnote (6) is very wishy-washy and I think can be deleted.
Section 5.1 and 5.2, there are several places where there is extraneous space in the example HTTP GET and POST commands, particularly “/tap /sync/”
In 5.1, as noted before, the UWS resources are not totally consistent with the UWS specification.
In the middle of this section, the sentence that begins “Practically, ...” is a very odd structure. I don’t think one typically starts a sentence with an adverb like that. It would be better as “In practice it is very hard...”.
Section 6, rather than “prototyping” I’d suggest “further implementation experience”.
Thanks to Pat for all the detailed editing in the 20091225 version, following comments from TCG and discussions at Garching Interop. I think we should now move forward and therefore I approve the document.
IVOA.net
Wiki Home
WebChanges
WebTopicList
WebStatistics
Twiki Meta & Help
IVOA
Know
Main
Sandbox
TWiki
Working Groups
Interest Groups
Committees