Page 228 - Building Digital Libraries
P. 228
Thinking about Discovery
SEARCH
Like the SCAN command, the SRU/W SEARCH command is
very analogous to the SEARCH command within Z39.50. Like
Z39.50, the SRU/W SEARCH command returns a record set
that contains access to the item’s full bibliographic metadata.
Unlike Z39.50, SRU/W allows for a finer granularity of con-
trol over how metadata is returned to the user in regard to the
record set’s size and number of records. What’s more, SRU/W
is a stateless protocol by virtue of its reliance on the HTTP
communication protocol, meaning that record sets are created
dynamically on each SRU/W request.
However, unlike Z39.50, SRU/W is a fully XML-based protocol that returns
XML-encoded data. What’s more, queries within SRU/W are made as string
queries using textual tags to represent indexes as defined by a supported
context set. A context set works essentially like a namespace within an XML
document—it defines the list of indexes available for search. Currently,
SRU/W recognizes a number of common context sets, including CQL
(Common Query Language), DC (Dublin Core), and bath (Z39.50 Bath
Profile), but SRU/W is not restricted to the use of just these common sets
of context sets. SRU/W allows the server to define the context sets that are
17
currently being supported.
The greatest difference between Z39.50 and SRU/W is the method of
communication. Unlike Z39.50, SRU/W primarily communicates between
the client and server over an HTTP connection. SRW provides a more
robust version of the protocol by encoding responses between the client
and server using SOAP messages, while SRU simplifies the communication
process by utilizing simple URLs (HTTP GET requests) to issue queries
and retrieve results in XML. For example, a developer wanting to utilize
an SRU/W server would make an initial request to the server asking for an
explanation of the services supported. Using SRU, this request can be made
using a simple URL. Utilizing the Library of Congress’s catalog, we can send
the following EXPLAIN request: http://lx2.10c.gov:210/LCDB?operation=e
xplain&version=1.1, to the server to discover the supported services: http://
lx2.10c.gov:210/LCDB. (See figure 9.5.)
From the response, we can discern a number of things about the Library
of Congress’s SRU/W service. First, the server supports a number of different
context sets. Within the IndexInfo tag, we find the following:
<set identifier=“info:srw/cql-context-set/1/cql-v1.1” name=“cql”/>
<set identifier=“info:srw/cql-context-set/1/dc-v1.1” name=“dc”/>
<set identifier=“http://zing.z3950.org/cql/bath/2.0” name=“bath”/>
<set identifier=“http://zing.z3950.org/cql/local/1.1” name=“local”/>
These tags define the context sets that will be utilized for query. Further
examining the EXPLAIN request, we can see how these context sets are
defined. Within the EXPLAIN response, we can see that a “subject” index
has been defined.
213