<chapter id="introduction">
+ <!-- $Id: introduction.xml,v 1.7 2002-08-05 08:27:05 quinn Exp $ -->
<title>Introduction</title>
<sect1>
<title>Overview</title>
<para>
- The Zebra system is a fielded free-text indexing and retrieval engine with a
- Z39.50 frontend. You can use any commercial or freeware Z39.50 client
- to access data stored in Zebra.
- </para>
-
- <para>
- The Zebra server is our first step towards the development of a fully
- configurable, open information system. Eventually, it will be paired
- off with a powerful Z39.50 client to support complex information
- management tasks within almost any application domain. We're making
- the server available now because it's no fun to be in the open
- information retrieval business all by yourself. We want to allow
- people with interesting data to make their things
- available in interesting ways, without having to start out
- by implementing yet another protocol stack from scratch.
- </para>
-
+ The
+ <ulink url="http://www.indexdata.dk/zebra/">
+ Zebra</ulink>
+ server is a high-performance, general-purpose structured text
+ indexing and retrieval engine. It reads structured records in a
+ variety of input formats (eg. email, XML, MARC) and allows access
+ to them through exact boolean search expressions and
+ relevance-ranked free-text queries.
+ </para>
+
+ <para>
+ Zebra supports large databases (more than ten gigabytes of data,
+ tens of millions of records). It supports incremental, safe
+ database updates on live systems. You can access data stored in
+ Zebra using a variety of Index Data tools (eg. YAZ and PHP/YAZ) as
+ well as commercial and freeware Z39.50 clients and toolkits.
+ </para>
+
<para>
This document is an introduction to the Zebra system. It will tell you
how to compile the software, and how to prepare your first database.
</para>
<para>
- If you find the software interesting, you should join the support
- mailing-list by sending email to
- <literal>zebra-request@indexdata.dk</literal>.
+
+ If you find the software interesting, you should visit the
+ <ulink url="http://www.indexdata.dk/zebra/">
+ Zebra web site</ulink>, where you can join the
+ <ulink url="http://www.indexdata.dk/mailman/listinfo/zebralist">
+ mailing-list</ulink>
+ by sending email to
</para>
</sect1>
<title>Features</title>
<para>
- This is a list of some of the most important features of the
+ This is an overview of some of the most important features of the
system.
</para>
<para>
-
<itemizedlist>
+
<listitem>
-
- <para>
- Supports updating - records can be added and deleted without
- rebuilding the index from scratch.
- The update procedure is tolerant to crashes or hard interrupts
- during register updating - registers can be reconstructed following
- a crash.
- Registers can be safely updated even while users are accessing
- the server.
- </para>
- </listitem>
- <listitem>
-
<para>
Supports large databases - files for indices, etc. can be
automatically partitioned over multiple disks.
-
</para>
</listitem>
+
<listitem>
-
<para>
Supports arbitrarily complex records - base input format is an
SGML-like syntax which allows nested (structured) data elements, as
well as variant forms of data.
-
</para>
</listitem>
+
+ <listitem>
+ <para>
+ Robust updating - records can be added and deleted without
+ rebuilding the index from scratch.
+ The update procedure is tolerant to crashes or hard interrupts
+ during register updating - registers can be reconstructed following
+ a crash.
+ Registers can be safely updated even while users are accessing
+ the server.
+ </para>
+ </listitem>
+
<listitem>
-
<para>
Supports random storage formats. A system of input filters driven by
regular expressions allows you to easily process most ASCII-based
- data formats. SGML, ISO2709 (MARC), and raw text are also supported.
-
+ data formats. SGML, XML, ISO2709 (MARC), and raw text are also
+ supported.
</para>
</listitem>
- <listitem>
-
+
+ <listitem>
<para>
Supports boolean queries as well as relevance-ranking (free-text)
searching. Right truncation and masking in terms are supported, as
well as full regular expressions.
-
</para>
</listitem>
+
+ <listitem>
+ <para>
+ Can import the data into Zebras own storage, or just refer to
+ external files (good for building indexes of "live"
+ collections).
+ </para>
+ </listitem>
+
<listitem>
-
<para>
Supports multiple concrete syntaxes
for record exchange (depending on the configuration): GRS-1, SUTRS,
- ISO2709 (*MARC). Records can be mapped between record syntaxes and
- schema on the fly.
-
+ XML, ISO2709 (*MARC). Records can be mapped between record syntaxes
+ and schema on the fly.
</para>
</listitem>
- <listitem>
-
+
+ <listitem>
<para>
Supports approximate matching in registers (ie. spelling mistakes,
etc).
-
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Zebra is written in portable C, so it runs on most Unix-like systems
+ as well as Windows NT - a binary distribution for Windows NT is available.
</para>
</listitem>
</para>
<para>
- Protocol support:
+ Z39.50 protocol support:
</para>
- <para>
-
+ <para>
<itemizedlist>
<listitem>
-
<para>
- Protocol facilities: Init, Search, Retrieve, Browse and Sort.
-
+ Protocol facilities: Init, Search, Retrieve, Delete, Browse and Sort.
</para>
</listitem>
+
<listitem>
-
<para>
Piggy-backed presents are honored in the search-request.
-
</para>
</listitem>
+
<listitem>
-
<para>
Named result sets are supported.
-
</para>
</listitem>
<listitem>
-
<para>
Easily configured to support different application profiles, with
tables for attribute sets, tag sets, and abstract syntaxes.
Additional tables control facilities such as element mappings to
different schema (eg., GILS-to-USMARC).
-
</para>
</listitem>
+
<listitem>
-
<para>
Complex composition specifications using Espec-1 are partially
supported (simple element requests only).
-
</para>
</listitem>
+
<listitem>
-
<para>
Element Set Names are defined using the Espec-1 capability of the
system, and are given in configuration files as simple element
requests (and possibly variant requests).
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- Some variant support (not fully implemented yet).
-
- </para>
- </listitem>
- <listitem>
-
- <para>
- Using the YAZ toolkit for the protocol implementation, the
- server can utilise a plug-in XTI/mOSI implementation (not included) to
- provide SR services over an OSI stack, as well as Z39.50 over TCP/IP.
-
</para>
</listitem>
- <listitem>
-
- <para>
- Zebra runs on most Unix-like systems as well as Windows NT - a binary
- distribution for Windows NT is forthcoming - so far, the installation
- requires MSVC++ to compile the system (we use version 5.0).
-
- </para>
- </listitem>
-
+
</itemizedlist>
</para>
<para>
These are some of the plans that we have for the software in the near
and far future, approximately ordered after their relative importance.
- Items marked with an
- asterisk will be implemented before the
- last beta release.
</para>
<para>
<itemizedlist>
- <listitem>
- <para>
- *Complete the support for variants.
- </para>
- </listitem>
<listitem>
<para>
- *Finalize the data element <emphasis>include</emphasis> facility
- to support multimedia data elements in records.
+ Improved support for XML in search and retrieval. Eventually,
+ the goal is for Zebra to pull double duty as a flexible
+ information retrieval engine and high-performance XML
+ repository.
</para>
</listitem>
<listitem>
<para>
- Add more sophisticated relevance ranking mechanisms.
- Add support for soundex and stemming.
- Add relevance <emphasis>feedback</emphasis> support.
+ Access to search engine through SOAP/RPC API to allow the
+ construction of applications without requiring Z39.50 tools.
</para>
</listitem>
<listitem>
<para>
- Complete EXPLAIN support.
+ Finalisation, documentation of the Zebra API. Consider
+ exposing the API through SOAP as well (allowing updates,
+ database management).
</para>
</listitem>
<listitem>
<para>
- Add support for very large records by implementing segmentation and/or
- variant pieces.
+ Improved free-text searching. We're first and foremost octet jockeys and
+ we're actively looking for organisations or people who'd like
+ to contribute experience in relevance ranking and text
+ searching.
</para>
</listitem>
- <listitem>
- <para>
- Support the Item Update extended service of the protocol.
- </para>
- </listitem>
-
- <listitem>
- <para>
- We want to add a management system that allows you to
- control your databases and configuration tables from a graphical
- interface.
- </para>
- </listitem>
</itemizedlist>
</para>