On Wed, Jun 12, 2002 at 10:55:25AM +0200, Theo van Veen wrote:
> SRU and SRW:
> I think it is important to agree that SRU and SRW will be and remain
> basically the same. As a consequence we have to keep the request syntax
> URL-friendly, but it facilitates supporting both protocols and
> developing SRU-SRW gateways. The only externally noticable differences
> between both are:
> a) the way a request is issued (URL or SOAP-post)
> b) the response being in a SOAP-envelope or not
> c) the extra level of escaping "<" and ">" needed for SOAP
In principle, I have no disagreement with this at all. But one thing I
would like to note as a consequence is that SRW requests need to be
very simple - no nested structure to the request is allowed. Effectively
just a list of name/value pairs. (For example, you cannot easily express
a nested array of structures in a URL, which you can express in a SOAP
> Parameters versus webservices.
> I would suggest to be very sparesome with adding new webservices
> where an optional parameter would be sufficient....
In principle agreed, unless the parameter does too much to change
the semantics. For example...
> a) sortfield(s)
I could agree to this.
> b) flag to indicate the type of request 1)search, 2) scan...
I don't think scan and search are that similar (what does a boolean
AND in a CQL query have to do with a scan?) so this would be an example
of where a parameter would not be suitable. (Some of the other numbers
you gave could however be parameters - I was just picking a value to
illustrate when I think the paramter approach goes to far.)
> c) optional stylesheet reference in response to allow transformation
> in the browser. I assume also in case of SRW the user will use a
> webbrowser to see the results and such a reference could smetimes be
A parameter would be suitable for this. What is less clear to me though
is what is the difference between specifying an element set name and
a style sheet? (or put differently, can the element set name deliver all
the functionality required of being able to specify a style sheet?)
Note: I would not assume a web browser is going to display the result
> 3) Self explaining responses
> A more fundamental issue in my opinion is the question whether the
> SRU/SRW responses should be self explaining. ...
> A client then acts on the response rather than what was requested.
I don't have an objection to this, but am less sure why its important.
If the client sent a request off, surely it knows what the request
was already? Or is the goal so an XSLT style sheet or similar can
convert the query *and* output into a page to be displayed. There is
no real cost to including it in the response, so I have no objections
> Like minimizing the need
> for servers to remember session-context the SRU/SRW protocol would in
> my view improve when clients/gateways do not have to remember session
> context either.
(I cut the above out of the previous paragraph and reordered your text.)
Eliminating context I think can be a very good goal. It helps a lot
for example when implementing farms of machines etc. SOAP and URLs
are also meant to be stateless (many people support sessions with SOAP
using cookies or similar, but SOAP itself does not really implement
sessions - unless it has changed since I last looked, so deciding
on statelessness I think is a good goal.)
> A first step is echoing the request parameters in the response (this
> is an old issue but I cannot remember a decision).
I think motivation would be good here (like what you did above).
If you just said 'echo request parameters' I would have said (and
might have already said 'no, the clients knows it already'). For SRU
on the otherhand, I can see the niceness of converting the returned
XML response using a single XSLT stylesheet into a page to be displayed.
In this case returning the request is useful. In the case of SRW on
the other hand, I don't see a use here. SOAP toolkits generally
output function prototypes with arguments. The response is populated
into structures. The request and response will be available to the
client application. When using SOAP, you don't pull apart the XML
SOAP response yourself (unlike when you get a SRU response back).
So I can see the benefit of echoing request parameters with SRU,
but am less convinced with SRW.
> Example: a client does a search resulting in 0 hits but the server is
> able to return the result of a scan. Most users would be glad with such
> a response.
> For this example the only thing that is required is a tag
> <indexTerms> sibling to <records> in the searchRetrieveResponse.
I would lean against this for SRW. But I can see it makes more sense
in the scope of SRU. SRW (and SOAP) is more of a programming API, not a
user API. SRU feels more like a user API as intellegent users can
type in URLs directly. For SRW, I would always return a response
which was what the request was - the application programmer can then
choose to do a scan if there were zero matches. There is no implication
in SRW that each request/response results in display to a user.
SRU on the other hand can be done with a web browser, so each request
may have result in an immediate and direct response to the user.
> As I will not be attending the meeting, if more clarification is
> needed please let me know.
Hope Theo did not mind my comments - I will not be at the meeting either.
(Not trying to hijack his mail.)