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