645c0aa635a7e0a4438e86bc5cf6f93a7114071b
[idzebra-moved-to-github.git] / doc / introduction.xml
1 <chapter id="introduction">
2  <!-- $Id: introduction.xml,v 1.5 2002-04-10 14:47:49 heikki 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       FIXME - Itemupdate. (Remove delete until that time, confuses people) -H
151      </para>
152     </listitem>
153
154     <listitem>
155      <para>
156       Piggy-backed presents are honored in the search-request.
157      </para>
158     </listitem>
159
160     <listitem>
161      <para>
162       Named result sets are supported.
163      </para>
164     </listitem>
165     <listitem>
166      <para>
167       Easily configured to support different application profiles, with
168       tables for attribute sets, tag sets, and abstract syntaxes.
169       Additional tables control facilities such as element mappings to
170       different schema (eg., GILS-to-USMARC).
171      </para>
172     </listitem>
173
174     <listitem>
175      <para>
176       Complex composition specifications using Espec-1 are partially
177       supported (simple element requests only).
178      </para>
179     </listitem>
180
181     <listitem>
182      <para>
183       Element Set Names are defined using the Espec-1 capability of the
184       system, and are given in configuration files as simple element
185       requests (and possibly variant requests).
186      </para>
187     </listitem>
188
189     <listitem>
190      <para>
191       Some variant support (not fully implemented yet).
192       FIXME - Test if complete enough - is it worth mentioning at all -H
193      </para>
194     </listitem>
195
196    </itemizedlist>
197    
198   </para>
199   
200  </sect1>
201  
202  <sect1 id="future">
203   <title>Future Work</title>
204   
205   <para>
206    These are some of the plans that we have for the software in the near
207    and far future, approximately ordered after their relative importance.
208    Items marked with an
209    asterisk will be implemented before the
210    last beta release.
211    FIXME - What are the current plans? 
212   </para>
213   
214   <para>
215    <itemizedlist>
216     <listitem>
217      <para>
218       *Complete the support for variants.
219       FIXME - who cares -H
220      </para>
221     </listitem>
222
223     <listitem>
224      <para>
225       *Finalize the data element <emphasis>include</emphasis> facility
226       to support multimedia data elements in records.
227      </para>
228     </listitem>
229
230     <listitem>
231      <para>
232       Add more sophisticated relevance ranking mechanisms.
233       Add support for soundex and stemming.
234       Add relevance <emphasis>feedback</emphasis> support.
235      </para>
236     </listitem>
237
238     <listitem>
239      <para>
240       Complete EXPLAIN support.
241      </para>
242     </listitem>
243
244     <listitem>
245      <para>
246       Add support for very large records by implementing segmentation and/or
247       variant pieces.
248      </para>
249     </listitem>
250
251     <listitem>
252      <para>
253       Support the Item Update extended service of the protocol.
254      </para>
255     </listitem>
256
257     <listitem>
258      <para>
259       We want to add a management system that allows you to
260       control your databases and configuration tables from a graphical
261       interface.
262      </para>
263     </listitem>
264    </itemizedlist>
265   </para>
266   
267   <para>
268    Programmers thrive on user feedback. If you are interested in a
269    facility that you don't see mentioned here, or if there's something
270    you think we could do better, please drop us a mail.
271    If you think it's all really neat, you're welcome to drop us a line
272    saying that, too. You'll find contact info at the end of this file.
273   </para>
274   
275  </sect1>
276 </chapter>
277  <!-- Keep this comment at the end of the file
278  Local variables:
279  mode: sgml
280  sgml-omittag:t
281  sgml-shorttag:t
282  sgml-minimize-attributes:nil
283  sgml-always-quote-attributes:t
284  sgml-indent-step:1
285  sgml-indent-data:t
286  sgml-parent-document: "zebra.xml"
287  sgml-local-catalogs: nil
288  sgml-namecase-general:t
289  End:
290  -->