Towards GPL
[idzebra-moved-to-github.git] / doc / introduction.xml
1 <chapter id="introduction">
2  <!-- $Id: introduction.xml,v 1.6 2002-08-02 19:26:55 adam Exp $ -->
3  <title>Introduction</title>
4  
5  <sect1>
6   <title>Overview</title>
7   
8   <para>
9    The 
10    <ulink url="http://www.indexdata.dk/zebra/">
11      Zebra</ulink>
12    system is a fielded free-text indexing and retrieval engine with a
13    Z39.50 front-end. You can use our various toolkits or any commercial 
14    or free-ware Z39.50 client to access data stored in Zebra.
15   </para>
16   
17   <para>
18    FIXME - not a "first step" but a part of a complete system! -H
19   </para>
20   
21   <para>
22    The Zebra server is our first step towards the development of a fully
23    configurable, open information system. Eventually, it will be paired
24    off with a powerful Z39.50 client to support complex information
25    management tasks within almost any application domain. We're making
26    the server available now because it's no fun to be in the open
27    information retrieval business all by yourself. We want to allow
28    people with interesting data to make their things
29    available in interesting ways, without having to start out
30    by implementing yet another protocol stack from scratch.
31   </para>
32   
33   <para>
34    This document is an introduction to the Zebra system. It will tell you
35    how to compile the software, and how to prepare your first database.
36    It also explains how the server can be configured to give you the
37    functionality that you need.
38   </para>
39   
40   <para>
41    
42    If you find the software interesting, you should visit the 
43    <ulink url="http://www.indexdata.dk/zebra/">
44      Zebra web site</ulink>, where you can join the
45    <ulink url="http://www.indexdata.dk/mailman/listinfo/zebralist">
46    mailing-list</ulink>
47    by sending email to
48   </para>
49   
50  </sect1>
51  
52  <sect1 id="features">
53   <title>Features</title>
54   
55   <para>
56    This is a list of some of the most important features of the
57    system.
58   </para>
59   
60   <para>
61    <itemizedlist>
62
63     <listitem>
64      <para>
65       Supports large databases - files for indices, etc. can be
66       automatically partitioned over multiple disks.
67      </para>
68     </listitem>
69
70     <listitem>
71      <para>
72       Supports arbitrarily complex records - base input format is an
73       SGML-like syntax which allows nested (structured) data elements, as
74       well as variant forms of data.
75      </para>
76     </listitem>
77
78     <listitem>
79      <para>
80       Robust updating - records can be added and deleted without
81       rebuilding the index from scratch.
82       The update procedure is tolerant to crashes or hard interrupts
83       during register updating - registers can be reconstructed following
84       a crash.
85       Registers can be safely updated even while users are accessing
86       the server.
87      </para>
88     </listitem>
89
90     <listitem>
91      <para>
92       Supports random storage formats. A system of input filters driven by
93       regular expressions allows you to easily process most ASCII-based
94       data formats. SGML, XML, ISO2709 (MARC), and raw text are also
95       supported.
96      </para>
97     </listitem>
98
99     <listitem>     
100      <para>
101       Supports boolean queries as well as relevance-ranking (free-text)
102       searching. Right truncation and masking in terms are supported, as
103       well as full regular expressions.
104      </para>
105     </listitem>
106
107     <listitem>
108       <para>
109         Can import the data into Zebras own storage, or just refer to
110         external files (html pages).
111       </para>
112     </listitem>
113
114     <listitem>
115      <para>
116       Supports multiple concrete syntaxes
117       for record exchange (depending on the configuration): GRS-1, SUTRS,
118       XML, ISO2709 (*MARC). Records can be mapped between record syntaxes
119       and schema on the fly.      
120      </para>
121     </listitem>
122
123     <listitem>     
124      <para>
125       Supports approximate matching in registers (ie. spelling mistakes,
126       etc).
127      </para>
128     </listitem>
129     
130     <listitem>
131      <para>
132       Zebra is written in portable C, so it runs on most Unix-like systems 
133       as well as Windows NT - a binary distribution for Windows NT is available.
134      </para>
135     </listitem>
136     
137    </itemizedlist>
138    
139   </para>
140   
141   <para>
142    Protocol support:
143   </para>
144   
145   <para>   
146    <itemizedlist>
147     <listitem>
148      <para>
149       Protocol facilities: Init, Search, Retrieve, Delete, Browse and Sort.
150      </para>
151     </listitem>
152
153     <listitem>
154      <para>
155       Piggy-backed presents are honored in the search-request.
156      </para>
157     </listitem>
158
159     <listitem>
160      <para>
161       Named result sets are supported.
162      </para>
163     </listitem>
164     <listitem>
165      <para>
166       Easily configured to support different application profiles, with
167       tables for attribute sets, tag sets, and abstract syntaxes.
168       Additional tables control facilities such as element mappings to
169       different schema (eg., GILS-to-USMARC).
170      </para>
171     </listitem>
172
173     <listitem>
174      <para>
175       Complex composition specifications using Espec-1 are partially
176       supported (simple element requests only).
177      </para>
178     </listitem>
179
180     <listitem>
181      <para>
182       Element Set Names are defined using the Espec-1 capability of the
183       system, and are given in configuration files as simple element
184       requests (and possibly variant requests).
185      </para>
186     </listitem>
187
188    </itemizedlist>
189    
190   </para>
191   
192  </sect1>
193  
194  <sect1 id="future">
195   <title>Future Work</title>
196   
197   <para>
198    These are some of the plans that we have for the software in the near
199    and far future, approximately ordered after their relative importance.
200    Items marked with an
201    asterisk will be implemented before the
202    last beta release.
203    FIXME - What are the current plans? 
204   </para>
205   
206   <para>
207    <itemizedlist>
208
209     <listitem>
210      <para>
211       *Finalize the data element <emphasis>include</emphasis> facility
212       to support multimedia data elements in records.
213      </para>
214     </listitem>
215
216     <listitem>
217      <para>
218       Add more sophisticated relevance ranking mechanisms.
219       Add support for soundex and stemming.
220       Add relevance <emphasis>feedback</emphasis> support.
221      </para>
222     </listitem>
223
224     <listitem>
225      <para>
226       Complete EXPLAIN support.
227      </para>
228     </listitem>
229
230     <listitem>
231      <para>
232       Add support for very large records by implementing segmentation and/or
233       variant pieces.
234      </para>
235     </listitem>
236
237     <listitem>
238      <para>
239       Support the Item Update extended service of the protocol.
240      </para>
241     </listitem>
242
243     <listitem>
244      <para>
245       We want to add a management system that allows you to
246       control your databases and configuration tables from a graphical
247       interface.
248      </para>
249     </listitem>
250    </itemizedlist>
251   </para>
252   
253   <para>
254    Programmers thrive on user feedback. If you are interested in a
255    facility that you don't see mentioned here, or if there's something
256    you think we could do better, please drop us a mail.
257    If you think it's all really neat, you're welcome to drop us a line
258    saying that, too. You'll find contact info at the end of this file.
259   </para>
260   
261  </sect1>
262 </chapter>
263  <!-- Keep this comment at the end of the file
264  Local variables:
265  mode: sgml
266  sgml-omittag:t
267  sgml-shorttag:t
268  sgml-minimize-attributes:nil
269  sgml-always-quote-attributes:t
270  sgml-indent-step:1
271  sgml-indent-data:t
272  sgml-parent-document: "zebra.xml"
273  sgml-local-catalogs: nil
274  sgml-namecase-general:t
275  End:
276  -->