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
   223   224   225   226   227   228   229   230   231   232   233