remove stale $Id$
[irspy-moved-to-github.git] / web / htdocs / details / software.mc
1      <div class="essay">
2      <p>
3       Index Data uses
4       <b>IRSpy</b> to maintain a registry of information retrieval
5       targets supporting the standard IR protocol
6       <a href="http://lcweb.loc.gov/z3950/agency/"
7         >ANSI/NISO Z39.50 (ISO 23950)</a>
8       and
9       <a href="http://www.loc.gov/sru"
10         >the SRU/SRW web services</a>.
11       Each registry entry consists of both database level information,
12       such as the indexes supported for searching and the record
13       syntax and schemas supported for retrieval, and record level
14       metadata such as titles, authors and descriptions.
15      </p>
16      <p>
17       IRSpy supports editing of record level metadata, and
18       automatically discovers database level information by probing
19       the registered targets using a set of feature-tests.  Tests are
20       implemented by
21 %# Link to /doc.html?module=ZOOM/IRSpy/Test.pm is not ready yet
22       individual plugins,
23       so new tests can be added without changing the core code.
24      </p>
25      <p>
26       For efficiency, probing of targets is done in parallel, using a
27       pool of a few hundred concurrent connections which is refilled
28       from a queue whenever a target in the pool completes its tests.
29       Testing the entire current registry of 1908 targets takes about
30       three elapsed hours on commodity hardware (Intel CPU, 2.8 GHz,
31       256 Kb cache, 4 Mbit/s network connection).
32      </p>
33      <p>
34       IRSpy's Web user interface allows users to
35       <a href="/find.html">search</a>
36       and
37       <a href="/find.html?dc.title=^a*&amp;_sort=dc.title&amp;_count=9999&amp;_search=Search">browse</a>
38       the registry, and to view
39       <a href="/stats.html">statistics</a>.
40       Authenticated users may also edit target data, run tests and add
41       new targets from the Web UI.  A set of command-line tools is
42       also provided, together with facilities for re-running the tests
43       periodically.
44      </p>
45      <p>
46       IRSpy is implemented in Perl, using the
47       <a href="http://search.cpan.org/~mirk/Net-Z3950-ZOOM/"
48         >ZOOM-Perl</a>
49       module to access Z39.50 and SRU/SRW databases.  The registry
50       database is implemented using
51       <a href="http://indexdata.com/zebra/"
52         >Zebra</a>,
53       also accessed using ZOOM-Perl.  The database
54       <a href="/doc.html?module=ZOOM/IRSpy/WebService.pod"
55         >can be interrogated using SRU/SRW<a/>:
56       it conforms to the
57       <a href="http://srw.cheshire3.org/profiles/ZeeRex/"
58         >ZeeRex application profile</a>,
59       and can supply registry records both in extended
60       <a href="http://explain.z3950.org/dtd/"
61         >ZeeRex format</a>
62       (now ratified as
63       <a href="http://www.niso.org/standards/standard_detail.cfm?std_id=816"
64         >ANSI/NISO Z39.92</a>
65       and in
66       <a href="http://www.loc.gov/standards/sru/record-schemas.html"
67         >Dublin Core</a>
68       summary format.
69      </p>
70      </div>