The SRW (Search & Retrieve Web Service) initiative is part of an international collaborative effort to develop a standard web-based text-searching interface. It draws heavily on the abstract models and functionality of Z39.50, but removes much of the complexity. SRW is built using common web development tools (WSDL, SOAP, HTTP and XML) and development of SRW interfaces to data repositories is significantly easier than for Z39.50. In addition, such arcane record formats as MARC and GRS-1 have been replaced with XML.
SRU (Search & Retrieve URL Service) is a URL-based alternative to SRW. Messages are sent via HTTP using the GET method and the components of the SRW SOAP request are mapped to simple HTTP parameters. The response to an SRU request is identical to the response to an SRW request, with the SOAP wrapper removed.
Note: SRU became an OASIS (Organization for the Advancement of Structured Information Standards) standard in February 2013. The official SRU website, hosted by the Library of Congress, provides access to the published standard (including associated XML schemas).
SRW/U is being deployed as the search API for the DSpace initiative. It is being considered as the standard search API by a number of communities, including the meta-searching and geospatial searching communities.
OCLC Research's role in this project was to develop:
- SRW/U Web Service standards
- a reference implementation
- a DSpace Implementation
- a Lucene Implementation
- a Pears Implementation
As noted above, SRU became an OASIS standard in February 2013. All of the implementation goals were reached by 2008.
- SRW/U Web Service standards
- add support for Linked Data
- add support for the Atom Publishing Protocol
- add support of RSS/Atom feeds on SRW/U databases
Classic Z39.50 has not been widely used by the Web community because it:
- is complicated
- requires connection-based sessions
- uses binary encoding
- is transmitted directly over TCP/IP.
On the other hand, it allows for:
- result sets
- abstract access points/attribute sets
- abstract record schemas.
The SRW project
- the Simple Object Access Protocol (known as SOAP) as the information-exchange mechanism, and
- the Web Service Description Language (WSDL) for record description.
In contrast to the eighteen native and extended services supported under classic Z39.50, SRW supports only one service:
SRW is semantically equivalent to classic Z39.50, which:
- makes gateways trivial
- preserves the experience of the Z39.50 community without the overhead of the standard aspects of SRW requests and responses
SRW is superior to Z39.50 in that its common query language supports the explain service, which was never practical in classic Z39.50.
SRU, or Search & Retrieve URL Service, can be thought of as SRW without the SOAP wrapper. SRU adds a ResponseSchema parameter and is intended for thin clients, where the browser is the application.
The market for SRU currently is underdeveloped, and it may be a while before the library community adopts it. It could show up in other communities first, and may be seen as a competitor with XML Query.
The SRW/U project will accomplish its goals by:
- contributing to the development of the SRW/U standards
- developing an Open Source SRW/U client and server
- hosting an SRW/U testbed for SRW and SRU clients and servers.
The testbed will provide clients with:
- a target server
- a known database
- a script of searches to be performed.
It will also:
- provide records for servers to use to build a known database
- host a client that will run a published script against registered servers.
- Test results will be compared to benchmark tests.
The Open Source SRW/U Client and Server constitute reference implementations of SRW and SRU.
The SRW/U standards development is following the model used by the OAI community. The current release is 1.1, and the standards group is working toward a 2.0 release of the SRU standard. A testbed is also available.
Our SRW/U server has been extended to support Linked Data.
The essential requirements of Linked Data are:
- URI’s for records
- HTTP 303 (See Other) redirects for Real World Objects
- Generic records that support Content Negotiation
- Provision of RDF records as one of the support media types in Content Negotiation
- Support for URI’s that can directly access the records that are delivered as a result of Content Negotiation
This can be seen with our VIAF prototype. The URI for the Thom Hickey record is http://viaf.org/viaf/72734757. Clicking on that link gets your browser redirected to http://viaf.org/viaf/72734757/. (That redirection is a hint to Linked Data clients that the second URI will support Content Negotiation for RDF.) Requesting that URI from a client with its Accept header set to "application/rdf+xml" will result in an RDF version of the VIAF record being returned. That record can also be retrieved directly with this URI: http://viaf.org/viaf/72734757/rdf.xml (Note! Your browser may not be prepared to handle application/rdf+xml data and may just offer you the opportunity to download the data rather than display it.)
For additional information, two webinars on the topic of Linked Data are available as part of the OCLC Research TAI CHI series, as is a presentation made at Access 2010. A general overview of Linked Data is available on Wikipedia.
Atom Publishing Protocol (APP)
The Atom Publishing Protocol supports the creation and editing of records in collections. We have implemented support for APP in our SRW/U server and are using it to edit records in a collection of Name Authority records related to VIAF. The project built on this editing process is not yet public, but the code that supports it has been committed to the software repository.
One of the expectations of the Linked Data community is that Linked Data records should be freely available for bulk downloads. While not all OCLC data that is available as Linked Data is available for bulk download, we feel that support for bulk downloads should be supported. This work is only in the beginning planning phase.
- More information about SRW, SRU, and related initiatives is available on the Web at http://www.loc.gov/standards/sru.
- Report of the April 2002 ZIG meeting at OCLC.
Software and License
The SRW/U Open Source project offers software that implements both the SRW Web Service and the SRU REST model interface to databases. Included are interfaces that support DSpace and Lucene repository. A simple demonstration interface is provided for access to records simply sitting in a filesystem.
The SRW/SRU server code and documentation are now hosted on GoogleTMCode, at http://code.google.com/p/oclcsrw/. The software may be used without charge in accord with the terms of the Apache License, Version 2.0.
Background information about SRW/U
Powered By SRW/U
Applications running interfaces on top of our SRW server may display the "Powered By SRW/U" icon:
This icon can be added to your pages by copying the HTML fragment below:
<a href="http://www.oclc.org/research/software/srw"> <img src="http://www.oclc.org/content/dam/research/images/badges/oclc_srwu.gif" alt="Powered by OCLC SRW/U" width="80" height="15"/></a>
This activity is a part of the Infrastructure and Standards Support theme.