Tony, thanks much for the thorough review and comments. Since I'm about to depart for a week I went through these quickly and joted down some preliminary responses. > 1. Parameters / Elements > > I think it would help to break out Request Parameters from Response > Elements > in Sects. 4, 6 and 7. The two sets are largely disjoint. (Same remark > applies to the Abstract Protocol Definition.) This is a reasonable suggestion but I am reluctant to do it, because the parameter and element descriptions are written in a more narrative than formal style and I think it is more descriptive this way. And for each parameter or element listed in the tables there is a link to the section where it is introduced, so the reader can read about it in greater context than if the formal approach had been taken. I'd welcome other views on this though. > Also might help to break out discussion of Facets into separate section > (as > Diagnostics and Extensions), especially since Facets is an optional > feature. I think it would be a good idea to allocate a separate section for facets - not because they are optional (most everything is) but because it probably deserves a separate section. > I also think that Search Result Analysis is sufficiently specialized to > warrant its own section. Ok. > Sect. 5 seems to be misplaced coming as it does in between Sect. 4 and > Sects. 6 and 7. Ok. > 2. Parameter / Element Ordering > > Not clear what the basis is for the orderings given in Sect. 2 (Table 1) > and > 3 (Table 6). Is it a logical ordering? Yes, a logical ordering. The order in which they are described in section 4. > I note that "echoedSearchRetrieveRequest" is differently located (at > bottom) > from its location in the 1.* XSD schema. Is that intentional? No, no reason for that. Will re-evaluate ordering next draft. > 3. Response Elements > > Response elements are given for a specific serialization - XML. > > Is that what is intended by binding? I would have thought binding would be > to a specific data model (e.g. SRU) which can then be serialized various > ways: native XML, ATOM, RSS, JSON, etc. By "native XML" I assume you refer to the default schema (which is being registered as mime type application/sru+xml). So the various ways you mention - SRU, ATOM, RSS, JSON - the first three are all XML, all supported. I don't think we've ever talked about a non-xml serialization (e.g. JSON), but I think that would be a different binding. > Also, heading in Sect. 3.1 is to "Actual Reponse Elements ..." and should > be > "Reponse Elements ..." only. (Cf Sect. 2.1 which is to "Request > Parameters > ..." alone.) That should all be fixed when we put back the parts we took out. > > 4. Response Elements: "resultSetIdentifier", "timeToLive", "idleTime" > > Mentioned in Sect 2, 3 and 4.10 the element "resultSetIdentifier" should > be > "resultSetId" everywhere. Yes. > And in Sect 3, "timeToLive" and "idleTime" should be "resultSetTTL" and > "resultSetIdleTime", respectively. Ok. > 5. Response Elements: "diagnostics" > > Probably don't need the "(non-surrogate)" in the name value field. Perhaps > this could be footnoted in the table? Ok. > 6. Request Parameters: "httpAccept-*" > > I think these params are incorrectly named and should follow the standard > camelcase style used elsewhere. e.g. > > Accept-Charset: httpAccept-charset -> httpAcceptCharset > Accept-Encoding: httpAccept-encoding -> httpAcceptEncoding > Accept-Language: httpAccept-language -> httpAcceptLanguage > Accept-Ranges: httpAccept-ranges -> httpAcceptRanges > > Even though they mimic the HTTP headers they break naming convention. Ok. > > > 7. Request Parameters: "rendering" > > This is just a query. I wonder if the terms "client" / "server" would be > more appropriate than "local" / "remote". It might be more correct to talk > about "local" / "remote" but I always end up having to do a double take to > figure out my relative position. I would be fine with changing "local" / "remote" to "client" / "server" but I would like to hear others' opinions. We spend quite awhile talking about this; in the end I don't think it matters, but others might. > 8. Request Parameters: recordSchema, sortKeys/sortSchema > > Both "recordSchema" and "SortKeys/sortSchema" allow for short names to be > used in place of URIs. But the SRU registered short names [1] are not > unique. E.g. "mods" is mapped to four different XML schema (3.0, 3.1, 3.2, > 3.3) and likewise "pam" is ampped to two different XML schema (2.0, 2.1). No, MODS is not mapped to any schema. True, it's listed for several schemas, but as a preferred short name. That only means that the owner of the schema recommends that short name, but you still have to go to the explain file to find out what the short name is for a specific schema. In the case where a server supports multiple version of, say, MODS, then it must use different short names, so it is not true that the preferred short name listed in the schema table must be used for a given schema. > Also in Sect. 4.7.1 it says under sortSchema "the URI for an XML schema". > What is meant though is the "short name" for an XML schema, which is a > placeholder for the URI. And that is shown in the examples but needs > better > explanation. Ok. > Still, the short name to URI mapping problem remains. > > [1] http://www.loc.gov/standards/sru/resources/schemas.html There is no short name to URI mapping, that is there is no global mapping, only local mappings for a given server, and the mapping is in explain. We do need a better explanation of this within the schema page. > 9. Response ID > > There is no ID returned in the response. If there are records then a > "resultSetId" is returned but not otherwise. Some serializations (e.g. > ATOM) > require an ID (actually a URI) for the response. One strategy would be to > use the "resulSetId" as the basis for a unique ID, but this fails when no > records are returned and a response is still required to carry the > diagnostics. > > Is there some other place to return a unique response ID? Is there a general use case for an id for the response, or is the concern only that a response id is required for certain serializations, ATOM, for example? If it's the latter then I can't see that this is a problem. When ATOM is the response format it will contain an id (in the ATOM namespace) and the protocol does not need to deal with it. Right? > 10. Endpoints > > I would have preferred to see the "operation" parameter maintained so that > "searchRetrieve" and "scan" could both be located on the same endpoint, > and > an explicit choice be made between them. Heuristics could be applied but I > think this is an unnecessary shorthand and may only lead to problems down > the line. I would have made this parameter optional at the least. > > As regards version agree that it could be dispensed with although don;t > see > any real harm in allowing for an optional parameter. Definitely not a > required parameter. I'm still hoping we can keep these two parameters out of the protocol but I agree that this merits further discussion. > > 11. Typos, etc We'll correct all these. Thanks. --Ray