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
> 1. Parameters / Elements
> I think it would help to break out Request Parameters from Response
> 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
> Also might help to break out discussion of Facets into separate section
> Diagnostics and Extensions), especially since Facets is an optional
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.
> Sect. 5 seems to be misplaced coming as it does in between Sect. 4 and
> Sects. 6 and 7.
> 2. Parameter / Element Ordering
> Not clear what the basis is for the orderings given in Sect. 2 (Table 1)
> 3 (Table 6). Is it a logical ordering?
Yes, a logical ordering. The order in which they are described in section
> I note that "echoedSearchRetrieveRequest" is differently located (at
> 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
> Also, heading in Sect. 3.1 is to "Actual Reponse Elements ..." and should
> "Reponse Elements ..." only. (Cf Sect. 2.1 which is to "Request
> ..." 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
> "resultSetId" everywhere.
> And in Sect 3, "timeToLive" and "idleTime" should be "resultSetTTL" and
> "resultSetIdleTime", respectively.
> 5. Response Elements: "diagnostics"
> Probably don't need the "(non-surrogate)" in the name value field. Perhaps
> this could be footnoted in the table?
> 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.
> 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  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
> Still, the short name to URI mapping problem remains.
>  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.
> 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
> 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,
> 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
> 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.