If we ONLY return a resultsetname when there is actually set of records and we add recordnumbers to these returned records and we do not allow the resultset being part of a query, than most of the problems below can be solved more easily.
1) Is doen not make sense that a server returns a resultsetname if that only refers to the query and not to a set of records.
2) When we add record numbers it makes references to records unambiguous
3) When the resultset cannot be part of the query the client always have to make a new query preventing problems with interoperability because this will always work and for resultsets it is not a priori sure that they are supported.
A sort parameter does not have to be part of CQL (lets keep CQL as simple as posiible). The sort parameter could be a list of comma-separated fields that should be used for searching or a reserved word for different types of relevance. If sorting is not supported the server returns an unsorted list with a diagnostic leaving it up to the client to do the sorting itself.
Theo
>>> [log in to unmask] 12-06-02 18:54 >>>
The status discussion leads me to conclude that we
need to formalize, at least to some degree, the
srw result set model --not anything as elaborate
as in real Z39.50, but consider for example this
scenario:
A query results in 5 records; the server supplies
all 5 in the response. The client then requests
result set record 5 (perhaps in a different record
schema). All three of these are possible:
1. the server has created a real result set, and
returns the expected record.
2. the server re-executes the query, an identical
result set is created and the client gets the
expected record.
3. the server re-executes the query, but this time
the result set is different so the client gets a
record other than the one expected. (This case
isn't really valid in real Z39.50.)
To what extent do we want to model the capability
for a client to request a specific result set
record that it has retrieved before and wants to
retrieve again? Is the stability of the result
set something that can be reflected in the "result
set status"? (I know we have a time-to-live
parameter. Is that sufficient?)
This is related to the surrogate diagnostics
discussion: if a response has surrogate
diagnostics, first, are they positional, and if
so, would they be in the same place each time?
Could the surrogate diagnostics occur in the list
of diagnostics as opposed to positionally, and the
server just return the good records?
Another issue: suppose a query doesn't complete.
Do we automatically assume no results, or can
there be a possibility of partial results....
Matthew Dovey wrote:
> Also I would think that a failure response in
> one of these statuses
> would effectively negate the other two.
>
> E.g. a failure of the search would also imply
> failure of the resultset
> and present, failure of the resultset would also
> imply failure of the
> present etc.
In real Z39.50 the result set status is returned
if and only if the search fails, to reflect the
status of possible partial results. However,
depending on what our result set model turns out
to be, result set existence in srw may be quite
different than in real Z39.50; we might want
result-set-status to reflect whether or not a
(stable) result set has been created, in the case
where the query suceeds and completes.
"LeVan,Ralph" wrote:
> I like the idea of the three statuses: search,
> result set and present.
Ralph, can you suggest a list of status value for
each of these?
And more generally, Ralph and Matthew (and others)
would you like to suggest a result set model?
Janifer Gatenby wrote:
> I would also like to see sort as an option
> within CQL, not a separate
> service.
Jan -- would you like to suggest what the sort
parameter would consist of? (First, I suppose we
need to see what our result set model will look
like.) As Ralph and others have noted, even
though a sort option would provide significant
potential for optimization we've long tried to do
it for Z39.50 and haven't been able to agree.
--Ray
|