summaryrefslogtreecommitdiff
path: root/www/p5-SRU/pkg-descr
blob: 4f4e60f2f37dceb503a5abed824db757b4eae745 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
The SRU package provides a framework for working with the Search and 
Retrieval by URL (SRU) protocol developed by the Library of Congress. SRU 
defines a web service for searching databases containing metadata and 
objects. SRU often goes under the name SRW which is a SOAP version of the 
protocol. You can think of SRU as a RESTful version of SRW, since all the 
requests are simple URLs instead of XML documents being sent via some sort 
of transport layer.

You might be interested in SRU if you want to provide a generic API for 
searching a data repository and a mechanism for returning metadata 
records. SRU defines three verbs: explain, scan and searchRetrieve which 
define the requests and responses in a SRU interaction.

This set of modules attempts to provide a framework for building an SRU 
service. The distribution is made up of two sets of Perl modules: modules 
in the SRU::Request::* namespace which represent the three types of 
requests; and modules in the SRU::Response::* namespace which represent 
the various responses.

Typical usage is that a request object is created using a factory method 
in the SRU::Request module. The factory is given either a URI or a CGI 
object for the HTTP request. SRU::Request will look at the URI and build 
the appropriate request object: SRU::Request::Explain, SRU::Request::Scan 
or SRU::Request::SearchRetrieve.

Once you've got a request object you can build a response object by using 
the factory method newFromRequest() in SRU::Request. This method will 
examine the request and build the corresponding result object which you 
can then populate with result data appropriately. When you are finished 
populating the response object with results you can call asXML() on it to 
get the full XML for your response.

To understand the meaning of the various requests and their responses 
you'll want to read the docs at the Library of Congress. A good place to 
start is SRW/U In Five Hundred Words 
http://www.loc.gov/z3950/agency/zing/srw/brief.html For more information 
about working with the various request and response objects in this 
distribution see the POD in the individual packages:

    * SRU::Request
    * SRU::Request::Explain
    * SRU::Request::Scan
    * SRU::Request::SearchRetrieve
    * SRU::Response
    * SRU::Response::Explain
    * SRU::Response::Scan
    * SRU::Response::SearchRetrieve
    * SRU::Server

Questions and comments are more than welcome. This software was developed 
as part of a National Science Foundation grant for building distributed 
library systems in the Ockham Project. More about Ockham can be found at 
http://www.ockham.org.

Author: Ed Summers <ehs@pobox.com>
WWW: http://search.cpan.org/dist/SRU/