This makes some amount of sense, thanks.
I actually kind of liked the sorting as part of CQL in SRU 1.2. I see
how XPath sorting can be convenient too.
But you will leave sorting as part of CQL too in any changes to CQL
specs, I hope? I think CQL has a lot of use even outside of SRU proper,
so I encourage you to leave it's spec not too tightly coupled to SRU.
I think there are at least three ways to sort as part of (different
versions of?) SRU now!
1) An actual separate "&sortKeys" query paramater
2) Included in the CQL expression in "&query", using the "sortBy" keyword.
3) In draft not finalized, OASIS/SRU 2.0 methods of specifying XPaths
for sorting. [Thanks for including the link to the current SRU 2.0
draft, I didn't know that was publically available anywhere, it's not
really googlable].
Do I have this right? As SRU 1.2 is the only actual spec I have to work
with... am I right that either top-level "&sortKeys", or embedded in CQL
with "sortBy" would both be legal in SRU 1.2 (whether a given server
supports one or both of them is a different question -- but they are
both legal to spec, yes?).
I'd actually strongly encourage you to leave both of them as legal to
spec in SRU 2.0, they make things much simpler to work with (although
also less flexible; that's generally the trade-off) then requiring
XPath's to be specified. Especially when a corpus being searched may
include records in diverse and varied and inconsistent record schemas.
Jonathan
Ray Denenberg, Library of Congress wrote:
From: "Jonathan Rochkind" <rochk...@jhu.edu>
Another question though. I note when looking up schemaInfo... I'm a bit
confused by the "sort" attribute. How could you sort by a schema? What is
this attribute actually for?
Well indulge me, this is best explained by the current OASIS SRU draft.
(The current and earlier specs don't do a good job here. But for background
if interested: sorting as an SRU function was supported in SRU 1.1 and
taken out of version 1.2, replaced by sorting as a function of the query
language rather than the protocol. For the OASIS work it's in both. For the
current spec at LC, which reflects 1.2, the attribute doesn't even make
sense. If you go back to the 1.1 archive it does. Still, the OASIS document
treats it more clearly.)
See http://www.loc.gov/standards/sru/oasis/sru-2-0-draft-most-current.doc
See section 9.1.
So essentially, when you sort in SRU, you provide an XPath expression. The
XPath expression is meaningful in the context of a schema, but the *record
schema* may not be the most meaningful schema for purposes of sorting, there
may be another schema more meaningful. So, you have the capability to
specify not only a record schema but an auxiliary sort schema.
A given schema that an Explain file lists will usually be one that is used
as a record schema, but it may also be usable as a sort schema. That's
what the sort attribute tells you.
--Ray