OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

search-ws message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: First stab at profiling a server


Hi,

 > For example, a server operating under the SRU1.2 profile would supply 
 > an SRU1.2 response.  On the other hand, a server might supply a
 > response according to no named schema, but will describe how
 > parameters values are to be extracted from a response.  A server
 > might respond with XML, or HTML, etc.  For XML, it might supply
 > as part of its description an Xpath expression to use to extract
 > a specific parameter. For HTML, it might supply a regular expression.
 > Ralph and Rob (and maybe Ashley) will supply several examples, which
 > will be integrated into the next version of the Core Spec.

Some quick notes pretty much off the top of my head as to how I'd
see SWS profiling a service. I'll apologise in advance for doing
this in XML, as I'm guessing XML is pretty much expected nowadays.

1. Some examples of how I might specify how to find the number
of records found in the response:

<!-- Where the number of records is found in, say, an HTML
  element with a ID of numRecs. -->
<sws:numberOfRecords>
  <sws:id id="numRecs"/>
</sws:umberOfRecords>

<!-- Where the number of records is found with a XPath. -->
<sws:numberOfRecords>
  <sws:xpath path="/za:searchRetrieveResponse/zs:numberOfRecords"/>
</sws:umberOfRecords>

<!-- Where the number of records is found via a CSS type
   specification. -->
<sws:numberOfRecords>
  <sws:select select="body p span.num_recs"/>
</sws:umberOfRecords>

<!-- Where the number of records is found between two strings. -->
<sws:numberOfRecords>
  <sws:bounded begin="Number of hits: " end="."/>
</sws:umberOfRecords>

<!-- Where the number of records is found with a regexp. -->
<sws:numberOfRecords>
  <sws:regexp regexp="Number of hits: ([0-9]+)" use-sub-match="1"/>
</sws:umberOfRecords>

2. Constructing a query. Here are a few ways that I can envisage
describing how to construct the part of the url that forms the query.

<!-- The server accepts an SRU 1.2 cql query string,
  where the url parameter name is "query" and boolean AND and OR
  are supported, but boolean NOT is not supported. -->
<sws:query>
  <sws:cql param="query" version="sru1.2">
   <sws:boolean and="yes" or="yes" not="no"/>
   <!-- Other stuff here about which relations are supported,
    context sets, etc, etc. -->
  </sws:cql>
</sws:query>

<!-- The server is HTML form driven. This example describes
  the Copac quick saerch form. -->
<sws:query>
  <sws:form>
   <sws:field name="au">            <!-- General author field. -->
    <sws:author type="normalized"/> <!-- Normalize names if possible. -->
   </sws:field>
   <sws:field name="ti"/>           <!-- Title field. -->
    <sws:title/>
   </sws:field>
   <sws:field name="any"/>          <!-- General keyword field. -->
  </sws:form>
</sws:query>

<!-- A Google style single field query. -->
<sws:query>
  <sws:field name="q">
   <sws:boolean-and/> <!-- Boolean AND is the default. -->
   <sws:boolean-or infix=" OR "/>
   <sws:boolean-not prefix="-"/>
   <sws:phrase quote="&quot;"/>
  </sws:field>
</sws:query>

3. In describing the Copac quick search form, the elements
sws:author and sws:title are meant to have some semantics
behind them. I would envisage defining a set of such elements
with their semantics -- something that looks like (dare I say
it) a set of z39.50 Use attributes or something that maps
to Dublin Core type classifications.

I think that's all I have time for right now. I'll try and
read the email over the Christmas break, but I'm not back in
the office until the 2nd Jan.

Merry Christmas and a happy New Year to all.

Ashley.
-- 
Ashley Sanders               a.sanders@manchester.ac.uk
Copac http://copac.ac.uk A Mimas service funded by JISC



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]