Implementation details
The latest release of PerX Toolkit (Beta 1.5 27/03/07) includes an SRU/W server. PerX can now be cross-searched via SRU by data service providers or can be embedded in other services such as VLEs
CQL queries are parsed by an SRU/W wrapper (please see below image, which shows the SRU Server within the PerX architecture context.) The SRU/W wrapper passes the query to the PerX toolkit engine, which converts the query into Lucene syntax (for OAI targets), CQL syntax (for SRU targets), custom API syntax (e.g. for Google) and PQF/PQN syntax (for Z39.50 targets.), and forwards them to the relevant wrappers for resolution. When the wrappers return hits, they are converted into a simple "search results" XML file that is placed into the SRU Response object.
We have not implemented an SRW-oriented (SOAP-type) server as the literature has indicated that there are reasons to be concerned about the efficiency of SRW and SOAP-based Web Services as opposed to SRU and REST-style services, at least in high-throughput multi-threaded clients.
Basic SRU featuresexplain:
Fully supported
searchRetrieve:
Supports only version 1.1
Supports all SRU parameters except recordPacking, recordSchema, recordXPath, resultSetTTL, stylesheet and extraRequestData (which are silently ignored by the PerX CQL parser.) However, it supports the following extra-data parameter:
scan:
It is currently disabled
Search/Retrieve Response
The format of the response objects is dictated by a PerX XML template file. However, any number of recordSchemas can be created, using any combination of fields from the targets. The PerX default response format try to use as much as possible DC encoding. Currently only the PerX default response format is available
Operations Usage and Sample SRU queries
explain
This operation returns a simple but enough description of our SRU service.
Examples:
http://www.engineering.ac.uk/sru/?operation=explain&version=1.1
or
http://www.engineering.ac.uk/sru/
searchRetrieve
This operation is used to search and retrieve records from the SRU server. The records are returned in dc format and / or using a PerX default response format to be formally defined.
Usage Example 1: will search all collections and retrieve the number of records containing the keyword "corrosion"
http://www.engineering.ac.uk/sru/?operation=searchRetrieve&version=1.1&query=corrosion
Usage Example 2: will search category 1 (articles)
http://www.engineering.ac.uk/sru/?operation=searchRetrieve&version=1.1&query=management&x-categoryID=1
Usage Example 3: will search database 18 (NASA)
http://www.engineering.ac.uk/sru/?operation=searchRetrieve&version=1.1&query=corrosion&x-databaseID=18
Usage Example 4: will retrieve the first chunck of records containing "web services", found in a previous search, from database IoP
http://www.engineering.ac.uk/sru/?operation=searchRetrieve&version=1.1&query=web%20services&x-databaseID=26&x-queryID=22
Last Updated 10-May-07