SRU/CQL Standardization in OASISOASIS Search Web Services Technical CommitteeTC Page | Committee Drafts | Call for Participation | Join the TC | Proposals | Comment The OASIS Search Web Services Technical Committee has drafted an Abstract
Protocol Definition (APD - see document 1 in the table below) providing
the framework for the definition of "Application Protocol Bindings". These
bindings may be static or dynamic. A static binding is a human-readable
document, essentially a profile. A dynamic binding is a machine-readable
description of a server, written in a description language that the Committee
is also developing (described in Annex B of the APD). The current phase of work is the development of an SRU 2.0 binding, CQL 2.0, and the description language. Committee DraftsThe OASIS Search Web Services Technical Committee, released five Committee Drafts, June 30, 2008:
|
Feature |
Description/Approach |
Status |
Same container | "find 'A' and 'B' within the same container element 'C'" Example 1: find the name 'jones' and date '1950' in the
same author field. Example 2: find 'jack' and 'jones' within
the same author field. |
Pending further discussion. |
'window' relation | Find 'A', 'B', 'C' ..... within a span of X words.example: |
Pending a real-life example. |
faceted search | See below. | Pending further discussion.
|
multiple query types | Request parameter: queryType For example, if the query type
is XQuery, then The list of supported query parameter names is specified by explain. |
Approved.
|
Alternative Response Format | Request parameter: responseFormat Optional. The standard-wide default SRU, though the server can override the standard-wide default. A 2.0 implementation must support the SRU format. Register a media type for SRU. Possibly text/xml+SRU. |
Approved.
|
Depricate ‘operation’ and ‘version’ parameters | Eliminate these two parameters for version 2.0 and higher. However, keep them as optional, for compatibility and interoperability with earlier version. | Approved. |
Result size precision | Response Element : resultSizePrecision Allow the response to indicate or estimate the accuracy of the result-set-size reported. The value will be a term from a controlled
vocabulary. 'exact' and 'unknown' included, and these
two would be required to be understood
by the client. 'minimum' and 'maximum' would also be included. |
Needs further development. |
resultCount response element optional | The resultCount response element should be optional, because it should be omitted if the result size precision is "unknown" | |
resultAnalysis | Response Element : resultAnalysis Bundle various response elements into a single element, resultAnalysis. It would include faceted search results, result size precision, and perhaps subquery analysis (which has not been defined yet, but would be based on the Z39.50 searchResult-1). |
Needs further development. |
Sorting | Sort in both CQL and SRU Sorting is currently a function of CQL (and not the SRU protocol). Prior to version 1.2 it was a function of SRU (and not CQL). In 1.2 it was removed from SRU and added to CQL. But this means that you cannot describe within the protocol how to sort. Thus, unless you assume CQL as the query language you cannot be certain that sort will be supported. Prior to version 2.0, CQL was the only query language you could use with SRU; in version 2.0 you will be able to use alternative query languages. Conversely, it is intended that CQL be usable with other protocols. So if sort is not a function of CQL then where sorting is required CQL will not be usable by a protocol that does not support sorting. |
Approved. |
To comment on these proposals, or on any other aspect of the TC work:
More ....
The proposed approach to faceted search results is based on the following example.
Query: "nuthatch" Total records: 50 Facets:
source
subject
author
date
|
The following XML file represents the above example.
<facetedResults>
<query>
<queryType>cql</queryType>
<queryString>nuthatch</queryString>
<count>50</count>
</query>
<facets>
<!--
******** first facet: source
-->
<facet>
<facetType>source</facetType>
<!--
******** first source: Library of Congress Catalog
-->
<facetValue>
<valueString>Library
of Congress Catalog</valueString>
<count>10</count>
<queries>
<query>
<queryType>cql</queryType>
<queryString>nuthatch
AND dc.source="Library of Congress Catalog"</queryString>
</query>
−
<query>
<queryType>xquery</queryType>
<queryString> [xquery
expression] </queryString>
</query>
</queries>
</facetValue>
<!--
******** second source: MELVYL
-->
−
<facetValue>
<valueString>MELVYL</valueString>
<count>8</count>
−
<queries>
−
<query>
<queryType>cql</queryType>
<queryString>nuthatch
AND dc.source=MELVYL</queryString>
</query>
−
<query>
<queryType>xquery</queryType>
<queryString> [xquery
expression] </queryString>
</query>
</queries>
</facetValue>
</facet>
<!--
******** second facet: subject
-->
−
<facet>
<facetType>subject</facetType>
<!--
******** first subject: birds
-->
−
<facetValue>
<valueString>birds</valueString>
<count>15</count>
−
<queries>
−
<query>
<queryType>cql</queryType>
<queryString>nuthatch AND dc.subject=birds</queryString>
</query>
</queries>
</facetValue>
<!--
******** second subject: nuthatches
-->
−
<facetValue>
<valueString>nuthatches</valueString>
<count>7</count>
−
<queries>
−
<query>
<queryType>cql</queryType>
<queryString>nuthatch
AND dc.subject="nuthatches"</queryString>
</query>
</queries>
</facetValue>
<!--
******** third subject: Sitta carolinensis
-->
−
<facetValue>
<valueString>Sitta carolinensis</valueString>
<count>7</count>
−
<queries>
−
<query>
<queryType>cql</queryType>
<queryString>nuthatch
AND dc.subject="Sitta carolinensis"</queryString>
</query>
</queries>
</facetValue>
</facet>
−
<!--
*********************** ADD FACETS FOR AUTHOR AND
DATE HERE
-->
</facets>
</facetedResults>
Procedures: The client may request faceted search results according to a particular schema. In particular there will be a schema to represent the example above, but an alternative schema may be requested. The server would advertise all such schemas it supports via explain as well as its behavior:
December 3, 2008 |