cleaning a bit. more cleaning needed
[idzebra-moved-to-github.git] / doc / introduction.xml
1 <chapter id="introduction">
2  <!-- $Id: introduction.xml,v 1.45 2007-02-02 14:42:44 marc Exp $ -->
3  <title>Introduction</title>
4  
5  <section id="overview">
6   <title>Overview</title>
7   
8       <para>
9         &zebra; is a free, fast, friendly information management system. It can
10         index records in &xml;/&sgml;, &marc;, e-mail archives and many other
11         formats, and quickly find them using a combination of boolean
12         searching and relevance ranking. Search-and-retrieve applications can
13         be written using &api;s in a wide variety of languages, communicating
14         with the &zebra; server using industry-standard information-retrieval
15         protocols or web services. 
16       </para>
17       <para>
18         &zebra; is licensed Open Source, and can be
19         deployed by anyone for any purpose without license fees. The C source
20         code is open to anybody to read and change under the GPL license.  
21       </para>
22       <para>
23         &zebra; is a networked component which acts as a reliable &z3950; server 
24         for both record/document search, presentation, insert, update and 
25         delete operations. In addition, it understands the &sru; family of 
26         webservices, which exist in &rest; &get;/&post; and truly &soap; flavors.
27       </para>
28       <para>
29         &zebra; is available as MS Windows 2003 Server (32 bit) self-extracting
30         package as well as GNU/Debian Linux (32 bit and 64 bit) precompiled
31         packages. It has been deployed successfully on other Unix systems,
32         including Sun Sparc, HP Unix, and many variants of Linux and BSD
33         based systems.  
34       </para>
35       <para>
36         <ulink url="http://www.indexdata.com/zebra/">http://www.indexdata.com/zebra/</ulink>
37         <ulink url="http://ftp.indexdata.dk/pub/zebra/win32/">http://ftp.indexdata.dk/pub/zebra/win32/</ulink>
38         <ulink url="http://ftp.indexdata.dk/pub/zebra/debian/">http://ftp.indexdata.dk/pub/zebra/debian/</ulink>
39       </para>
40
41   <para>
42    <ulink url="http://indexdata.dk/zebra/">&zebra;</ulink>
43    is a high-performance, general-purpose structured text
44    indexing and retrieval engine. It reads records in a
45    variety of input formats (eg. email, &xml;, &marc;) and provides access
46    to them through a powerful combination of boolean search
47    expressions and relevance-ranked free-text queries.
48   </para>
49
50   <para>
51    &zebra; supports large databases (tens of millions of records,
52    tens of gigabytes of data). It allows safe, incremental
53    database updates on live systems. Because &zebra; supports
54    the industry-standard information retrieval protocol, &z3950;,
55    you can search &zebra; databases using an enormous variety of
56    programs and toolkits, both commercial and free, which understand
57    this protocol.  Application libraries are available to allow
58    bespoke clients to be written in Perl, C, C++, Java, Tcl, Visual
59    Basic, Python, &php; and more - see the
60    <ulink url="&url.zoom;">&zoom; web site</ulink>
61    for more information on some of these client toolkits.
62   </para>
63
64   <para>
65    This document is an introduction to the &zebra; system. It explains
66    how to compile the software, how to prepare your first database,
67    and how to configure the server to give you the
68    functionality that you need.
69   </para>
70  </section>
71  
72  <section id="features">
73   <title>&zebra; Features Overview</title>
74   
75
76       <!--
77       <row>
78        <entry></entry>
79        <entry></entry>
80        <entry></entry>
81        <entry><xref linkend=""/></entry>
82       </row>
83       <row>
84        <entry></entry>
85        <entry></entry>
86        <entry></entry>
87        <entry><xref linkend=""/></entry>
88       </row>
89       <row>
90        <entry></entry>
91        <entry></entry>
92        <entry></entry>
93        <entry><xref linkend=""/></entry>
94       </row>
95       -->
96
97
98    <table id="table-features-protocol" frame="top">
99     <title>&zebra; networked protocols</title>
100     <tgroup cols="4">
101      <thead>
102       <row>
103        <entry>Feature</entry>
104        <entry>Availability</entry>
105        <entry>Notes</entry>
106        <entry>Reference</entry>
107       </row>
108      </thead>
109      <tbody>
110       <row>
111        <entry>Fundamental operation types</entry>
112        <entry>&z3950;/&sru; explain, search, and scan</entry>
113        <entry></entry>
114        <entry><xref linkend="querymodel-operation-types"/></entry>
115       </row>
116       <row>
117        <entry>&z3950; protocol support</entry>
118        <entry>yes</entry>
119        <entry> Protocol facilities supported are: 
120        Init, Search, Present (retrieval),
121        Segmentation (support for very large records), Delete, Scan
122        (index browsing), Sort, Close and support for the ``update''
123        Extended Service to add or replace an existing &xml;
124        record. Piggy-backed presents are honored in the search
125        request. Named result sets are supported.</entry>
126        <entry><xref linkend=""/></entry>
127       </row>
128       <row>
129        <entry>Web Service support</entry>
130        <entry>&sru_gps;</entry>
131        <entry> The protocol operations <literal>explain</literal>, 
132        <literal>searchRetrieve</literal> and <literal>scan</literal>
133        are supported. <ulink url="&url.cql;">&cql;</ulink> to internal
134        query model &rpn;
135        conversion is supported. Extended RPN queries
136        for search/retrieve and scan are supported.</entry>
137        <entry><xref linkend=""/></entry>
138       </row>
139      </tbody>
140     </tgroup>
141    </table>
142
143
144    <table id="table-features-search" frame="top">
145     <title>&zebra; search functionality</title>
146     <tgroup cols="4">
147      <thead>
148       <row>
149        <entry>Feature</entry>
150        <entry>Availability</entry>
151        <entry>Notes</entry>
152        <entry>Reference</entry>
153       </row>
154      </thead>
155      <tbody>
156       <row>
157        <entry>Query languages</entry>
158        <entry>&cql; and &rpn;/&pqf;</entry>
159        <entry>The type-1 Reverse Polish Notation (&rpn;)
160        and it's textual representation Prefix Query Format (&pqf;) are
161        supported. The Common Query Language (&cql;) can be configured as
162        a mapping from &cql; to &rpn;/&pqf;</entry>
163        <entry><xref linkend="querymodel-query-languages-pqf"/>
164        <xref linkend="querymodel-cql-to-pqf"/></entry>
165       </row>
166       <row>
167        <entry>Complex boolean query tree</entry>
168        <entry>&cql; and &rpn;/&pqf;</entry>
169        <entry>Both &cql; and &rpn;/&pqf; allow atomic query parts (&apt;) to
170        be combined into complex boolean query trees</entry>
171        <entry><xref linkend="querymodel-rpn-tree"/></entry>
172       </row>
173       <row>
174        <entry>Field search</entry>
175        <entry>user defined</entry>
176        <entry>Atomic query parts (&apt;) are either general, or
177        directed at user-specified document fields
178       </entry>
179        <entry><xref linkend=""/></entry>
180       </row>
181       <row>
182        <entry>Data normalization</entry>
183        <entry></entry>
184        <entry>Data normalization, text tokenization and character mappings can be
185           applied during indexing and searching</entry>
186        <entry><xref linkend=""/></entry>
187       </row>
188       <row>
189        <entry>Predefined field types</entry>
190        <entry></entry>
191        <entry>Data fields can be indexed as phrase, as into word tokenized text,
192           as numeric values, url's, dates, and raw binary data.</entry>
193        <entry><xref linkend=""/></entry>
194       </row>
195       <row>
196        <entry>Regular expression matching</entry>
197        <entry>Regexp </entry>
198        <entry>Full regular expression matching and "approximate
199         matching" (eg. spelling mistake corrections) are handled.</entry>
200        <entry><xref linkend=""/></entry>
201       </row>
202       <row>
203        <entry>Search truncation</entry>
204        <entry></entry>
205        <entry></entry>
206        <entry><xref linkend=""/></entry>
207       </row>
208       <row>
209        <entry>Fuzzy searches</entry>
210        <entry></entry>
211        <entry>In addition, fuzzy searches are implemented, where one 
212           spelling mistake in search terms is matched</entry>
213        <entry><xref linkend=""/></entry>
214       </row>
215      </tbody>
216     </tgroup>
217    </table>
218
219
220    <table id="table-features-scan" frame="top">
221     <title>&zebra; index scanning</title>
222     <tgroup cols="4">
223      <thead>
224       <row>
225        <entry>Feature</entry>
226        <entry>Availability</entry>
227        <entry>Notes</entry>
228        <entry>Reference</entry>
229       </row>
230      </thead>
231      <tbody>
232       <row>
233        <entry>Scan</entry>
234        <entry>yes</entry>
235        <entry><literal>Scan</literal> on a given named index returns all the 
236           indexed terms in lexicographical order near the given start term.</entry>
237        <entry><xref linkend=""/></entry>
238       </row>
239       <row>
240        <entry>Facetted browsing</entry>
241        <entry>partial</entry>
242        <entry>&zebra; supports <literal>scan inside a hit 
243           set</literal> from a previous search, thus reducing the listed 
244           terms to the 
245           subset of terms found in the documents/records of the hit set.</entry>
246        <entry><xref linkend=""/></entry>
247       </row>
248       <row>
249        <entry>Drill-down or refine-search</entry>
250        <entry>partially</entry>
251        <entry>scanning in result sets can be used to implement
252        drill-down in search clients</entry>
253        <entry><xref linkend=""/></entry>
254       </row>
255      </tbody>
256     </tgroup>
257    </table>
258
259
260    <table id="table-features-presentation" frame="top">
261     <title>&zebra; document presentation</title>
262     <tgroup cols="4">
263      <thead>
264       <row>
265        <entry>Feature</entry>
266        <entry>Availability</entry>
267        <entry>Notes</entry>
268        <entry>Reference</entry>
269       </row>
270      </thead>
271      <tbody>
272       <row>
273        <entry>Hit count</entry>
274        <entry>yes</entry>
275        <entry>Search results include at any time the total hit count of a given
276           query, either exact computed, or approximative, in case that the
277           hit count exceeds a possible pre-defined hit set truncation
278        level.
279 </entry>
280        <entry><xref linkend=""/></entry>
281       </row>
282       <row>
283        <entry>Paged result sets</entry>
284        <entry>yes</entry>
285        <entry>Paging of search requests and present/display request can return any
286           successive number of records from any start position in the hit set,
287           i.e. it is trivial to provide search results in successive pages of
288           any size.</entry>
289        <entry><xref linkend=""/></entry>
290       </row>
291       <row>
292        <entry>&xml;ocument transformations</entry>
293        <entry>&xslt; based</entry>
294        <entry> Record presentation can be performed in many pre-defined &xml; data
295           formats, where the original &xml; records are on-the-fly transformed
296           through any preconfigured &xslt; transformation. It is therefore
297           trivial to present records in short/full &xml; views, transforming to
298           RSS, Dublin Core, or other &xml; based data formats, or transform
299           records to XHTML snippets ready for inserting in XHTML pages.</entry>
300        <entry><xref linkend=""/></entry>
301       </row>
302       <row>
303        <entry>Binary record transformations</entry>
304        <entry>&marc;, &usmarc;, &marc21; and &marcxml;</entry>
305        <entry></entry>
306        <entry><xref linkend=""/></entry>
307       </row>
308       <row>
309        <entry>Record Syntaxes</entry>
310        <entry></entry>
311        <entry> Multiple record syntaxes
312       for data retrieval: &grs1;, &sutrs;,
313       &xml;, ISO2709 (&marc;), etc. Records can be mapped between record syntaxes
314       and schemas on the fly.</entry>
315        <entry><xref linkend=""/></entry>
316       </row>
317      </tbody>
318     </tgroup>
319    </table>
320
321
322    <table id="table-features-sort-rank" frame="top">
323     <title>&zebra; sorting and ranking</title>
324     <tgroup cols="4">
325      <thead>
326       <row>
327        <entry>Feature</entry>
328        <entry>Availability</entry>
329        <entry>Notes</entry>
330        <entry>Reference</entry>
331       </row>
332      </thead>
333      <tbody>
334       <row>
335        <entry>Sort</entry>
336        <entry>numeric, lexicographic</entry>
337        <entry>Sorting on the basis of alpha-numeric and numeric data
338        is supported. Alphanumeric sorts can be configured for different data encodings
339           and locales for European languages.  </entry>
340        <entry><xref linkend=""/></entry>
341       </row>
342       <row>
343        <entry>Combined sorting</entry>
344        <entry>yes</entry>
345        <entry>Sorting on the basis of combined sorts Â­ e.g. combinations of 
346           ascending/descending sorts of lexicographical/numeric/date field data
347           is supported</entry>
348        <entry><xref linkend=""/></entry>
349       </row>
350       <row>
351        <entry>Relevance ranking</entry>
352        <entry>TF-IDF like</entry>
353        <entry>Relevance-ranking of free-text queries is supported
354        using a TF-IDF like algorithm.</entry>
355        <entry><xref linkend=""/></entry>
356       </row>
357       <row>
358        <entry>Relevence ranking</entry>
359        <entry>TDF-IDF like</entry>
360        <entry></entry>
361        <entry><xref linkend=""/></entry>
362       </row>
363      </tbody>
364     </tgroup>
365    </table>
366
367
368
369    <table id="table-features-document" frame="top">
370     <title>&zebra; document model</title>
371     <tgroup cols="4">
372      <thead>
373       <row>
374        <entry>Feature</entry>
375        <entry>Availability</entry>
376        <entry>Notes</entry>
377        <entry>Reference</entry>
378       </row>
379      </thead>
380      <tbody>
381       <row>
382        <entry>Complex semi-structured Documents</entry>
383        <entry>&xml; and &grs1; Documents</entry>
384        <entry>Both &xml; and &grs1; documents exhibit a &dom; like internal
385        representation allowing for complex indexing and display rules</entry>
386        <entry><xref linkend=""/></entry>
387       </row>
388       <row>
389        <entry>Input document formats</entry>
390        <entry>&xml;, &sgml;, Text, ISO2709 (&marc;)</entry>
391        <entry>
392         A system of input filters driven by
393         regular expressions allows most ASCII-based
394         data formats to be easily processed.
395         &sgml;, &xml;, ISO2709 (&marc;), and raw text are also
396         supported.</entry>
397        <entry><xref linkend=""/></entry>
398       </row>
399       <row>
400        <entry>Document storage</entry>
401        <entry>Index-only, Key storage, Document storage</entry>
402        <entry>Data can be, and usually is, imported
403         into &zebra;'s own storage, but &zebra; can also refer to
404         external files, building and maintaining indexes of "live"
405         collections.</entry>
406        <entry><xref linkend=""/></entry>
407       </row>
408
409      </tbody>
410     </tgroup>
411    </table>
412
413
414
415    <table id="table-features-scalability" frame="top">
416     <title>&zebra; data size and scalability</title>
417     <tgroup cols="4">
418      <thead>
419       <row>
420        <entry>Feature</entry>
421        <entry>Availability</entry>
422        <entry>Notes</entry>
423        <entry>Reference</entry>
424       </row>
425      </thead>
426      <tbody>
427       <row>
428        <entry>No of records</entry>
429        <entry>40-60 million</entry>
430        <entry></entry>
431        <entry><xref linkend=""/></entry>
432       </row>
433       <row>
434        <entry>Data size</entry>
435        <entry>100 GB of record data</entry>
436        <entry></entry>
437        <entry><xref linkend=""/></entry>
438       </row>
439       <row>
440        <entry>File pointers</entry>
441        <entry>64 bit</entry>
442        <entry></entry>
443        <entry><xref linkend=""/></entry>
444       </row>
445       <row>
446        <entry>Scale out</entry>
447        <entry>multiple discs</entry>
448        <entry></entry>
449        <entry><xref linkend=""/></entry>
450       </row>
451       <row>
452        <entry>Performance</entry>
453        <entry><literal>O(n * log N)</literal></entry>
454        <entry> &zebra; query speed and performance is affected roughly by 
455           <literal>O(log N)</literal>,
456           where <literal>N</literal> is the total database size, and by 
457           <literal>O(n)</literal>, where <literal>n</literal> is the
458           specific query hit set size.</entry>
459        <entry><xref linkend=""/></entry>
460       </row>
461       <row>
462        <entry>Average search times</entry>
463        <entry></entry>
464        <entry> Even on very large size databases hit rates of 20 queries per
465           seconds with average query answering time of 1 second are possible,
466           provided that the boolean queries are constructed sufficiently
467           precise to result in hit sets of the order of 1000 to 5.000
468           documents.</entry>
469        <entry><xref linkend=""/></entry>
470       </row>
471       <row>
472        <entry>Large databases</entry>
473        <entry>64 file pointers assure that register files can extend
474        the 2 GB limit. Logical files can be
475         automatically partitioned over multiple disks, thus allowing for
476        large databases.</entry>
477        <entry></entry>
478        <entry><xref linkend=""/></entry>
479       </row>
480      </tbody>
481     </tgroup>
482    </table>
483
484
485    <table id="table-features-updates" frame="top">
486     <title>&zebra; live updates</title>
487     <tgroup cols="4">
488      <thead>
489       <row>
490        <entry>Feature</entry>
491        <entry>Availability</entry>
492        <entry>Notes</entry>
493        <entry>Reference</entry>
494       </row>
495      </thead>
496      <tbody>
497       <row>
498        <entry>Batch updates</entry>
499        <entry></entry>
500        <entry>It is possible to schedule record inserts/updates/deletes in any
501         quantity, from single individual handled records to batch updates
502         in strikes of any size, as well as total re-indexing of all records
503         from file system. </entry>
504        <entry><xref linkend=""/></entry>
505       </row>
506       <row>
507        <entry>Incremental updates</entry>
508        <entry></entry>
509        <entry></entry>
510        <entry><xref linkend=""/></entry>
511       </row>
512       <row>
513        <entry>Remote updates</entry>
514        <entry>&z3950; extended services</entry>
515        <entry></entry>
516        <entry><xref linkend=""/></entry>
517       </row>
518       <row>
519        <entry>Live updates</entry>
520        <entry></entry>
521        <entry> Data updates are transaction based and can be performed on running
522         &zebra; systems.  Full searchability is preserved during life data update due to use
523         of shadow disk areas for update operations. Multiple update transactions at the same time are lined up, to be
524         performed one after each other. Data integrity is preserved.</entry>
525        <entry><xref linkend=""/></entry>
526       </row>
527       <row>
528        <entry>Database updates</entry>
529        <entry>live, incremental updates</entry>
530        <entry>Robust updating - records can be added and deleted ``on the fly''
531       without rebuilding the index from scratch.
532       Records can be safely updated even while users are accessing
533       the server.
534       The update procedure is tolerant to crashes or hard interrupts
535       during database updating - data can be reconstructed following
536       a crash.</entry>
537        <entry><xref linkend=""/></entry>
538       </row>
539      </tbody>
540     </tgroup>
541    </table>
542
543    <table id="table-features-platforms" frame="top">
544     <title>&zebra; supported platforms</title>
545     <tgroup cols="4">
546      <thead>
547       <row>
548        <entry>Feature</entry>
549        <entry>Availability</entry>
550        <entry>Notes</entry>
551        <entry>Reference</entry>
552       </row>
553      </thead>
554      <tbody>
555       <row>
556        <entry>Linux</entry>
557        <entry></entry>
558        <entry>GNU Linux (32 and 64bit), journaling Reiser or (better) JFS filesystem
559         on disks. GNU/Debian Linux packages are available</entry>
560        <entry><xref linkend=""/></entry>
561       </row>
562       <row>
563        <entry>Unix</entry>
564        <entry>tarball</entry>
565        <entry>Usual tarball install possible on many major Unix systems</entry>
566        <entry><xref linkend=""/></entry>
567       </row>
568       <row>
569        <entry>Windows</entry>
570        <entry></entry>
571        <entry>Windows installer packages available</entry>
572        <entry><xref linkend=""/></entry>
573       </row>
574       <row>
575        <entry>Supported Platforms</entry>
576        <entry>UNIX, Linux, Windows (NT/2000/2003/XP)</entry>
577        <entry>&zebra; is written in portable C, so it runs on most
578        Unix-like systems as well as Windows (NT/2000/2003/XP).  Binary
579        distributions are 
580        available for GNU/Debian Linux and Windows</entry>
581        <entry><xref linkend=""/></entry>
582       </row>
583      </tbody>
584     </tgroup>
585    </table>
586
587
588   
589  </section>
590  
591   <section id="introduction-apps">
592   <title>References and &zebra; based Applications</title>
593   <para>
594    &zebra; has been deployed in numerous applications, in both the
595    academic and commercial worlds, in application domains as diverse
596    as bibliographic catalogues, geospatial information, structured
597    vocabulary browsing, government information locators, civic
598    information systems, environmental observations, museum information
599    and web indexes.
600   </para>
601   <para>
602    Notable applications include the following:
603   </para>
604
605
606   <section id="koha-ils">
607    <title>Koha free open-source ILS</title>
608    <para>
609      <ulink url="http://www.koha.org/">Koha</ulink> is a full-featured
610      open-source ILS, initially developed  in 
611      New Zealand by Katipo Communications Ltd, and first deployed in
612      January of 2000 for Horowhenua Library Trust. It is currently
613      maintained by a team of software providers and library technology
614      staff from around the globe. 
615     </para>
616     <para>
617      <ulink url="http://liblime.com/">LibLime</ulink>, 
618      a company that is marketing and supporting Koha, adds in
619      the new release of Koha 3.0 the &zebra;
620      database server to drive its bibliographic database.
621     </para>
622     <para>
623      In early 2005, the Koha project development team began looking at
624      ways to improve &marc; support and overcome scalability limitations
625      in the Koha 2.x series. After extensive evaluations of the best
626      of the Open Source textual database engines - including MySQL
627      full-text searching, PostgreSQL, Lucene and Plucene - the team
628      selected &zebra;. 
629     </para>
630     <para>
631      "&zebra; completely eliminates scalability limitations, because it
632      can support tens of millions of records." explained Joshua
633      Ferraro, LibLime's Technology President and Koha's Project
634      Release Manager. "Our performance tests showed search results in
635      under a second for databases with over 5 million records on a
636      modest i386 900Mhz test server." 
637     </para>
638     <para>
639      "&zebra; also includes support for true boolean search expressions
640      and relevance-ranked free-text queries, both of which the Koha
641      2.x series lack. &zebra; also supports incremental and safe
642      database updates, which allow on-the-fly record
643      management. Finally, since &zebra; has at its heart the &z3950;
644      protocol, it greatly improves Koha's support for that critical
645      library standard." 
646     </para>
647     <para> 
648      Although the bibliographic database will be moved to &zebra;, Koha
649      3.0 will continue to use a relational SQL-based database design
650      for the 'factual' database. "Relational database managers have
651      their strengths, in spite of their inability to handle large
652      numbers of bibliographic records efficiently," summed up Ferraro,
653      "We're taking the best from both worlds in our redesigned Koha
654      3.0. 
655      </para>
656      <para>
657      See also LibLime's newsletter article
658       <ulink url="http://www.liblime.com/newsletter/2006/01/features/koha-earns-its-stripes/">
659      Koha Earns its Stripes</ulink>.
660      </para>
661    </section>
662
663   <section id="emilda-ils">
664    <title>Emilda open source ILS</title>
665    <para>
666      <ulink url="http://www.emilda.org/">Emilda</ulink> 
667      is a complete Integrated Library System, released under the 
668      GNU General Public License. It has a
669      full featured Web-OPAC, allowing comprehensive system management
670      from virtually any computer with an Internet connection, has
671      template based layout allowing anyone to alter the visual
672      appearance of Emilda, and is
673      &xml; based language for fast and easy portability to virtually any
674      language.
675      Currently, Emilda is used at three schools in Espoo, Finland.
676     </para>
677     <para>
678      As a surplus, 100% &marc; compatibility has been achieved using the
679     &zebra; Server from Index Data as backend server. 
680     </para> 
681    </section>
682
683   <section id="reindex-ils">
684    <title>ReIndex.Net web based ILS</title>
685     <para>
686      <ulink url="http://www.reindex.net/index.php?lang=en">Reindex.net</ulink>
687      is a netbased library service offering all
688      traditional functions on a very high level plus many new
689      services. Reindex.net is a comprehensive and powerful WEB system
690      based on standards such as &xml; and &z3950;.
691      updates. Reindex supports &marc21;, dan&marc; eller Dublin Core with
692      UTF8-encoding.  
693     </para>
694     <para>
695      Reindex.net runs on GNU/Debian Linux with &zebra; and Simpleserver
696      from Index 
697      Data for bibliographic data. The relational database system
698      Sybase 9 &xml; is used for
699      administrative data. 
700      Internally &marcxml; is used for bibliographical records. Update
701      utilizes &z3950; extended services. 
702     </para>
703    </section>
704
705    <section id="dads-article-database">
706     <title>DADS - the DTV Article Database
707      Service</title>
708     <para>
709     DADS is a huge database of more than ten million records, totalling
710     over ten gigabytes of data.  The records are metadata about academic
711     journal articles, primarily scientific; about 10% of these
712     metadata records link to the full text of the articles they
713     describe, a body of about a terabyte of information (although the
714     full text is not indexed.)
715    </para>
716    <para>
717     It allows students and researchers at DTU (Danmarks Tekniske
718     Universitet, the Technical College of Denmark) to find and order
719     articles from multiple databases in a single query.  The database
720     contains literature on all engineering subjects.  It's available
721     on-line through a web gateway, though currently only to registered
722     users.
723    </para>
724    <para>
725     More information can be found at
726     <ulink url="http://www.dtv.dk/"/> and
727     <ulink url="http://dads.dtv.dk"/>
728    </para>
729   </section>
730
731   <section id="infonet-eprints">
732    <title>Infonet Eprints</title>
733    <para>
734      The InfoNet Eprints service from the 
735      <ulink url="http://www.dtv.dk/">
736       Technical Knowledge Center of Denmark</ulink>
737      provides access to documents stored in
738      eprint/preprint servers and institutional research archives around
739      the world. The service is based on Open Archives Initiative metadata
740      harvesting of selected scientific archives around the world. These
741      open archives offer free and unrestricted access to their contents.
742     </para>
743    <para>
744     Infonet Eprints currently holds 1.4 million records from 16 archives.
745     The online search facility is found at
746     <ulink url="http://preprints.cvt.dk"/>.
747    </para>
748   </section>
749
750   <section id="alvis-project">
751    <title>Alvis</title>
752    <para>
753      The <ulink url="http://www.alvis.info/alvis/">Alvis</ulink> EU
754      project run under the 6th Framework (IST-1-002068-STP)
755      is building a semantic-based peer-to-peer search engine. A
756      consortium of eleven partners from six different European
757      Community countries plus Switzerland and China contribute
758      with expertise in a broad range of specialties including network
759      topologies, routing algorithms, linguistic analysis and
760      bioinformatics. 
761     </para>
762     <para>
763      The &zebra; information retrieval indexing machine is used inside
764      the Alvis framework to
765      manage huge collections of natural language processed and
766      enhanced &xml; data, coming from a topic relevant web crawl.
767      In this application, &zebra; swallows and manages 37GB of &xml; data
768      in about 4 hours, resulting in search times of fractions of
769      seconds. 
770      </para>
771    </section>
772
773
774   <section id="uls">
775    <title>ULS (Union List of Serials)</title>
776    <para>
777     The M25 Systems Team
778     has created a union catalogue for the periodicals of the
779     twenty-one constituent libraries of the University of London and
780     the University of Westminster
781     (<ulink url="http://www.m25lib.ac.uk/ULS/"/>).
782     They have achieved this using an
783     unusual architecture, which they describe as a
784     ``non-distributed virtual union catalogue''.
785    </para>
786    <para>
787     The member libraries send in data files representing their
788     periodicals, including both brief bibliographic data and summary
789     holdings.  Then 21 individual &z3950; targets are created, each
790     using &zebra;, and all mounted on the single hardware server.
791     The live service provides a web gateway allowing &z3950; searching
792     of all of the targets or a selection of them.  &zebra;'s small
793     footprint allows a relatively modest system to comfortably host
794     the 21 servers.
795    </para>
796    <para>
797     More information can be found at
798     <ulink url="http://www.m25lib.ac.uk/ULS/"/>
799    </para>
800   </section>
801
802   <section id="nli">
803    <title>NLI-&z3950; - a Natural Language Interface for Libraries</title>
804    <para>
805     Fernuniversit&#x00E4;t Hagen in Germany have developed a natural
806     language interface for access to library databases.
807     <!-- <ulink
808     url="http://ki212.fernuni-hagen.de/nli/NLIintro.html"/> -->
809     In order to evaluate this interface for recall and precision, they
810     chose &zebra; as the basis for retrieval effectiveness.  The &zebra;
811     server contains a copy of the GIRT database, consisting of more
812     than 76000 records in &sgml; format (bibliographic records from
813     social science), which are mapped to &marc; for presentation.
814    </para>
815    <para>
816     (GIRT is the German Indexing and Retrieval Testdatabase.  It is a
817     standard German-language test database for intelligent indexing
818     and retrieval systems.  See
819     <ulink url="http://www.gesis.org/forschung/informationstechnologie/clef-delos.htm"/>)
820    </para>
821    <para>
822     Evaluation will take place as part of the TREC/CLEF campaign 2003 
823     <ulink url="http://clef.iei.pi.cnr.it"/>.
824     <!-- or <ulink url="http://www4.eurospider.ch/CLEF/"/> -->
825    </para>
826    <para>
827     For more information, contact Johannes Leveling
828     <email>Johannes.Leveling@FernUni-Hagen.De</email>
829    </para>
830   </section>
831
832   <section id="various-web-indexes">
833    <title>Various web indexes</title>
834    <para>
835     &zebra; has been used by a variety of institutions to construct
836     indexes of large web sites, typically in the region of tens of
837     millions of pages.  In this role, it functions somewhat similarly
838     to the engine of google or altavista, but for a selected intranet
839     or a subset of the whole Web.
840    </para>
841    <para>
842     For example, Liverpool University's web-search facility (see on
843     the home page at
844     <ulink url="http://www.liv.ac.uk/"/>
845     and many sub-pages) works by relevance-searching a &zebra; database
846     which is populated by the Harvest-NG web-crawling software.
847    </para>
848    <para>
849     For more information on Liverpool university's intranet search
850     architecture, contact John Gilbertson
851     <email>jgilbert@liverpool.ac.uk</email>
852    </para>
853    <para>
854     Kang-Jin Lee
855     has recently modified the Harvest web indexer to use &zebra; as
856     its native repository engine.  His comments on the switch over
857     from the old engine are revealing:
858     <blockquote>
859      <para>
860       The first results after some testing with &zebra; are very
861       promising.  The tests were done with around 220,000 SOIF files,
862       which occupies 1.6GB of disk space.
863      </para>
864      <para>
865       Building the index from scratch takes around one hour with &zebra;
866       where [old-engine] needs around five hours.  While [old-engine]
867       blocks search requests when updating its index, &zebra; can still
868       answer search requests.
869       [...]
870       &zebra; supports incremental indexing which will speed up indexing
871       even further.
872      </para>
873      <para>
874       While the search time of [old-engine] varies from some seconds
875       to some minutes depending how expensive the query is, &zebra;
876       usually takes around one to three seconds, even for expensive
877       queries.
878       [...]
879       &zebra; can search more than 100 times faster than [old-engine]
880       and can process multiple search requests simultaneously
881      </para>
882      <para>
883       I am very happy to see such nice software available under GPL.
884      </para>
885     </blockquote>
886    </para>
887   </section>
888  </section>
889   
890   
891   <section id="introduction-support">
892    <title>Support</title>
893    <para>
894     You can get support for &zebra; from at least three sources.
895    </para>
896    <para>
897     First, there's the &zebra; web site at
898     <ulink url="&url.idzebra;"/>,
899      which always has the most recent version available for download.
900      If you have a problem with &zebra;, the first thing to do is see
901      whether it's fixed in the current release.
902    </para>
903    <para>
904     Second, there's the &zebra; mailing list.  Its home page at
905     <ulink url="&url.idzebra.mailinglist;"/>
906      includes a complete archive of all messages that have ever been
907      posted on the list.  The &zebra; mailing list is used both for
908      announcements from the authors (new
909      releases, bug fixes, etc.) and general discussion.  You are welcome
910      to seek support there.  Join by filling the form on the list home page.
911    </para>
912    <para>
913     Third, it's possible to buy a commercial support contract, with
914     well defined service levels and response times, from Index Data.
915     See
916     <ulink url="&url.indexdata.support;"/>
917      for details.
918    </para>
919   </section>  
920
921
922  <section id="future">
923   <title>Future Directions</title>
924   
925   <para>
926    These are some of the plans that we have for the software in the near
927    and far future, ordered approximately as we expect to work on them.
928   </para>
929   
930   <para>
931    <itemizedlist>
932
933     <listitem>
934      <para>
935        Improved support for &xml; in search and retrieval. Eventually,
936        the goal is for &zebra; to pull double duty as a flexible
937        information retrieval engine and high-performance &xml;
938        repository.  The recent addition of XPath searching is one
939        example of the kind of enhancement we're working on.
940      </para>
941      <para>
942        There is also the experimental <literal>ALVIS &xslt;</literal>
943        &xml; input filter, which unleashes the full power of &dom; based
944        &xslt; transformations during indexing and record retrieval. Work
945        on this filter has been sponsored by the ALVIS EU project
946        <ulink url="http://www.alvis.info/alvis/"/>. We expect this filter to
947        mature soon, as it is planned to be included in the version 2.0
948        release of &zebra;. 
949      </para>
950     </listitem>
951
952     <listitem>
953      <para>
954        Finalisation and documentation of &zebra;'s C programming
955        &api;, allowing updates, database management and other functions
956        not readily expressed in &z3950;.  We will also consider
957        exposing the &api; through &soap;.
958      </para>
959     </listitem>
960
961     <listitem>
962      <para>
963        Improved free-text searching. We're first and foremost octet jockeys and
964        we're actively looking for organisations or people who'd like
965        to contribute experience in relevance ranking and text
966        searching.
967      </para>
968     </listitem>
969
970    </itemizedlist>
971   </para>
972   
973   <para>
974    Programmers thrive on user feedback. If you are interested in a
975    facility that you don't see mentioned here, or if there's something
976    you think we could do better, please drop us a mail.  Better still,
977    implement it and send us the patches.
978   </para>
979   <para>
980    If you think it's all really neat, you're welcome to drop us a line
981    saying that, too. You can email us on
982    <email>info@indexdata.dk</email>
983    or check the contact info at the end of this manual.
984   </para>
985   
986  </section>
987 </chapter>
988  <!-- Keep this comment at the end of the file
989  Local variables:
990  mode: sgml
991  sgml-omittag:t
992  sgml-shorttag:t
993  sgml-minimize-attributes:nil
994  sgml-always-quote-attributes:t
995  sgml-indent-step:1
996  sgml-indent-data:t
997  sgml-parent-document: "zebra.xml"
998  sgml-local-catalogs: nil
999  sgml-namecase-general:t
1000  End:
1001  -->