first shot on tabulated feature overview - much needs to be done yet
[idzebra-moved-to-github.git] / doc / introduction.xml
index 7f0374a..29d759d 100644 (file)
@@ -1,8 +1,8 @@
 <chapter id="introduction">
- <!-- $Id: introduction.xml,v 1.37 2006-06-30 14:36:12 marc Exp $ -->
+ <!-- $Id: introduction.xml,v 1.41 2007-02-01 20:49:05 marc Exp $ -->
  <title>Introduction</title>
  
- <sect1>
+ <section id="overview">
   <title>Overview</title>
   
   <para>
@@ -23,8 +23,8 @@
    programs and toolkits, both commercial and free, which understand
    this protocol.  Application libraries are available to allow
    bespoke clients to be written in Perl, C, C++, Java, Tcl, Visual
-   Basic, Python, PHP and more - see
-   <ulink url="http://zoom.z3950.org/">the ZOOM web site</ulink>
+   Basic, Python, PHP and more - see the
+   <ulink url="&url.zoom;">ZOOM web site</ulink>
    for more information on some of these client toolkits.
   </para>
 
    and how to configure the server to give you the
    functionality that you need.
   </para>
- </sect1>
+ </section>
  
- <sect1 id="features">
-  <title>Features</title>
+ <section id="features">
+  <title>Zebra Features Overview</title>
   
-  <para>
-   This is an overview of some of Zebra's most important features:
-  </para>
-  
-  <para>
-   <itemizedlist>
 
-    <listitem>
-     <para>
-      Very large databases: logical files can be
-      automatically partitioned over multiple disks.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Arbitrarily complex records.  The internal data format
-      is a structured format conceptually similar to XML or GRS-1,
-      which allows lists, nested structured data elements and
-      variant forms of data.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Robust updating - records can be added and deleted ``on the fly''
+   <table id="table-features-overview" frame="top">
+    <title>Zebra Features Overview</title>
+    <tgroup cols="4">
+     <thead>
+      <row>
+       <entry>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row>
+       <entry>Boolean query language</entry>
+       <entry>CQL and RPN/PQF</entry>
+       <entry>The type-1 Reverse Polish Notation (RPN)
+       and it's textual representation Prefix Query Format (PQF) are
+       supported. The Common Query Language (CQL) can be configured as
+       a mapping from CQL to RPN/PQF</entry>
+       <entry><xref linkend="querymodel-query-languages-pqf"/>
+       <xref linkend="querymodel-cql-to-pqf"/></entry>
+      </row>
+      <row>
+       <entry>Operation types</entry>
+       <entry> Z39.50/SRU explain, search, and scan</entry>
+       <entry></entry>
+       <entry><xref linkend="querymodel-operation-types"/></entry>
+      </row>
+      <row>
+       <entry>Recursive boolean query tree</entry>
+       <entry>CQL and RPN/PQF</entry>
+       <entry>Both CQL and RPN/PQF allow atomic query parts (APT) to
+       be combined into complex boolean query trees</entry>
+       <entry><xref linkend="querymodel-rpn-tree"/></entry>
+      </row>
+      <row>
+       <entry>Large databases</entry>
+       <entry>64 file pointers assure that register files can extend
+       the 2 GB limit. Logical files can be
+        automatically partitioned over multiple disks, thus allowing for
+       large databases.</entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Complex semi-structured Documents</entry>
+       <entry>XML and GRS-1 Documents</entry>
+       <entry>Both XML and GRS-1 documents exhibit a DOM like internal
+       representation allowing for complex indexing and display rules</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Database updates</entry>
+       <entry>live, incremental updates</entry>
+       <entry>Robust updating - records can be added and deleted ``on the fly''
       without rebuilding the index from scratch.
       Records can be safely updated even while users are accessing
       the server.
       The update procedure is tolerant to crashes or hard interrupts
       during database updating - data can be reconstructed following
-      a crash.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Configurable to understand many input formats.
-      A system of input filters driven by
-      regular expressions allows most ASCII-based
-      data formats to be easily processed.
-      SGML, XML, ISO2709 (MARC), and raw text are also
-      supported.
-     </para>
-    </listitem>
-
-    <listitem>     
-     <para>
-      Searching supports a powerful combination of boolean queries as
-      well as relevance-ranking (free-text) queries.  Truncation,
-      masking, full regular expression matching and "approximate
-      matching" (eg. spelling mistakes) are all handled.
-     </para>
-    </listitem>
-
-    <listitem>
-      <para>
-       Index-only databases: data can be, and usually is, imported
+      a crash.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Input document formats</entry>
+       <entry>XML, SGML, Text, ISO2709 (MARC)</entry>
+       <entry>
+        A system of input filters driven by
+        regular expressions allows most ASCII-based
+        data formats to be easily processed.
+        SGML, XML, ISO2709 (MARC), and raw text are also
+        supported.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Relevance ranking</entry>
+       <entry>TF-IDF like</entry>
+       <entry>Relevance-ranking of free-text queries is supported
+       using a TF-IDF like algorithm.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Document storage</entry>
+       <entry>Index-only, Key storage, Document storage</entry>
+       <entry>Data can be, and usually is, imported
         into Zebra's own storage, but Zebra can also refer to
         external files, building and maintaining indexes of "live"
-       collections.
-      </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 at
-      <ulink url="http://ftp.indexdata.dk/pub/zebra/win32/"/>,
-      and pre-built packages are available for 
-      <!--- some Linux
-      distributions:
-      Red Hat 7.x RPMs at
-      <ulink url="http://ftp.indexdata.dk/pub/zebra/RedHat7.X/"/>
-      and Debian packages at
-      -->
-      <literal>GNU/Debian Linux</literal> at 
-      <ulink url="http://ftp.indexdata.dk/pub/zebra/debian/"/>.
-     </para>
-    </listitem>
-    
-   </itemizedlist>
-   
-  </para>
-  
-  <para>
-     <ulink url="&url.z39.50;">Z39.50</ulink> protocol support:
-  </para>
-  
-  <para>   
-   <itemizedlist>
-    <listitem>
-     <para>
-      Protocol facilities: Init, Search, Present (retrieval),
+       collections.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Regular expression matching</entry>
+       <entry>Regexp </entry>
+       <entry>Full regular expression matching and "approximate
+        matching" (eg. spelling mistake corrections) are handled.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Search truncation</entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Remote update</entry>
+       <entry>Z39.50 extended services</entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Supported Platforms</entry>
+       <entry>UNIX, Linux, Windows (NT/2000/2003/XP)</entry>
+       <entry>Zebra is written in portable C, so it runs on most
+       Unix-like systems as well as Windows (NT/2000/2003/XP).  Binary
+       distributions are 
+       available for GNU/Debian Linux and Windows</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Z39.50</entry>
+       <entry>Z39.50  protocol support</entry>
+       <entry> Protocol facilities: Init, Search, Present (retrieval),
       Segmentation (support for very large records), Delete, Scan
       (index browsing), Sort, Close and support for the ``update''
-      Extended Service to add or replace an existing XML record.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Piggy-backed presents are honored in the search request - that
-      is, a subset of the found records can be returned directly with
-      a search response, enabling search and retrieval to happen in a
-      single round-trip.
-     </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 (partial support).
-      Element sets are defined using the Espec-1 capability,
-      and are specified in configuration files as simple element
-      requests (and, optionally, variant requests).
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
-      Multiple record syntaxes
+      Extended Service to add or replace an existing XML
+       record. Piggy-backed presents are honored in the search
+       request. Named result sets are supported.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Record Syntaxes</entry>
+       <entry></entry>
+       <entry> Multiple record syntaxes
       for data retrieval: GRS-1, SUTRS,
       XML, ISO2709 (MARC), etc. Records can be mapped between record syntaxes
-      and schemas on the fly.      
-     </para>
-    </listitem>
-
-   </itemizedlist>
-   
-  </para>
-
-  
-  <para>
-    <ulink url="&url.sru;">SRU</ulink> Web Service support:
-  </para>
-  <para>   
-   <itemizedlist>
-    <listitem>
-     <para>
-       The protocol operations <literal>explain</literal>, 
+      and schemas on the fly.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Web Service support</entry>
+       <entry>SRU GET/POST/SOAP</entry>
+       <entry> The protocol operations <literal>explain</literal>, 
        <literal>searchRetrieve</literal> and <literal>scan</literal>
-       are supported. 
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-       <ulink url="&url.cql;">CQL</ulink> to internal query model RPN 
-       conversion is supported. 
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-       Multiple XML record formats
-      for data retrieval are supported, modelled over the  GRS-1, SUTRS,
-      MARC record formats. Records can be mapped between record
-       schemas on the fly. Arbitrarily complex XSLT transformations
-      can be applied during record retrieval if one uses the 
-       <literal>alvis</literal> filter module.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-       Additional PQF query syntax for
-       <literal>searchRetrieve</literal>
-       and <literal>scan</literal> operations is supported.
-     </para>
-    </listitem>
+       are supported. <ulink url="&url.cql;">CQL</ulink> to internal
+       query model RPN  conversion is supported. Extended RPN queries
+       for search/retrieve and scan are supported.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry></entry>
+       <entry></entry>
+       <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+     </tbody>
+    </tgroup>
+   </table>
 
-   </itemizedlist>
-   
-  </para>
 
   
- </sect1>
+ </section>
  
-  <sect1 id="introduction-apps">
+  <section id="introduction-apps">
   <title>References and Zebra based Applications</title>
   <para>
    Zebra has been deployed in numerous applications, in both the
   </para>
 
 
-  <sect2>
+  <section id="koha-ils">
    <title>Koha free open-source ILS</title>
    <para>
      <ulink url="http://www.koha.org/">Koha</ulink> is a full-featured
       <ulink url="http://www.liblime.com/newsletter/2006/01/features/koha-earns-its-stripes/">
      Koha Earns its Stripes</ulink>.
      </para>
-   </sect2>
+   </section>
 
-  <sect2>
+  <section id="emilda-ils">
    <title>Emilda open source ILS</title>
    <para>
      <ulink url="http://www.emilda.org/">Emilda</ulink> 
      As a surplus, 100% MARC compatibility has been achieved using the
     Zebra Server from Index Data as backend server. 
     </para> 
-   </sect2>
+   </section>
 
-  <sect2>
+  <section id="reindex-ils">
    <title>ReIndex.Net web based ILS</title>
     <para>
      <ulink url="http://www.reindex.net/index.php?lang=en">Reindex.net</ulink>
     <para>
      Reindex.net runs on GNU/Debian Linux with Zebra and Simpleserver
      from Index 
-     Data for bibliographic data. The reational database system
+     Data for bibliographic data. The relational database system
      Sybase 9 XML is used for
      administrative data. 
      Internally MARCXML is used for bibliographical records. Update
      utilizes Z39.50 extended services. 
     </para>
-   </sect2>
-
+   </section>
 
-  <sect2>
-   <title>DADS - the DTV Article Database Service</title>
-   <para>
+   <section id="dads-article-database">
+    <title>DADS - the DTV Article Database
+     Service</title>
+    <para>
     DADS is a huge database of more than ten million records, totalling
     over ten gigabytes of data.  The records are metadata about academic
     journal articles, primarily scientific; about 10% of these
     <ulink url="http://www.dtv.dk/"/> and
     <ulink url="http://dads.dtv.dk"/>
    </para>
-  </sect2>
+  </section>
 
-  <sect2>
+  <section id="infonet-eprints">
    <title>Infonet Eprints</title>
    <para>
      The InfoNet Eprints service from the 
     The online search facility is found at
     <ulink url="http://preprints.cvt.dk"/>.
    </para>
-  </sect2>
+  </section>
 
-  <sect2>
+  <section id="alvis-project">
    <title>Alvis</title>
    <para>
      The <ulink url="http://www.alvis.info/alvis/">Alvis</ulink> EU
      is building a semantic-based peer-to-peer search engine. A
      consortium of eleven partners from six different European
      Community countries plus Switzerland and China contribute
-     expertise in a broad range of specialties including network
+     with expertise in a broad range of specialties including network
      topologies, routing algorithms, linguistic analysis and
      bioinformatics. 
     </para>
      in about 4 hours, resulting in search times of fractions of
      seconds. 
      </para>
-   </sect2>
+   </section>
 
 
-  <sect2>
+  <section id="uls">
    <title>ULS (Union List of Serials)</title>
    <para>
     The M25 Systems Team
     More information can be found at
     <ulink url="http://www.m25lib.ac.uk/ULS/"/>
    </para>
-  </sect2>
+  </section>
 
-  <sect2>
+  <section id="nli">
    <title>NLI-Z39.50 - a Natural Language Interface for Libraries</title>
    <para>
     Fernuniversit&#x00E4;t Hagen in Germany have developed a natural
     For more information, contact Johannes Leveling
     <email>Johannes.Leveling@FernUni-Hagen.De</email>
    </para>
-  </sect2>
+  </section>
 
-  <sect2>
+  <section id="various-web-indexes">
    <title>Various web indexes</title>
    <para>
     Zebra has been used by a variety of institutions to construct
      </para>
     </blockquote>
    </para>
-  </sect2>
- </sect1>
-
-
- <sect1 id="introduction-support">
-  <title>Support</title>
-  <para>
-   You can get support for Zebra from at least three sources.
-  </para>
-  <para>
-   First, there's the Zebra web site at
-   <ulink url="http://indexdata.dk/zebra/"/>,
-   which always has the most recent version available for download.
-   If you have a problem with Zebra, the first thing to do is see
-   whether it's fixed in the current release.
-  </para>
-  <para>
-   Second, there's the Zebra mailing list.  Its home page at
-   <ulink url="http://lists.indexdata.dk/cgi-bin/mailman/listinfo/zebralist"/>
-   includes a complete archive of all messages that have ever been
-   posted on the list.  The Zebra mailing list is used both for
-   announcements from the authors (new
-   releases, bug fixes, etc.) and general discussion.  You are welcome
-   to seek support there.  Join by filling the form on the list home page.
-  </para>
-  <para>
-   Third, it's possible to buy a commercial support contract, with
-   well defined service levels and response times, from Index Data.
-   See
-   <ulink url="http://indexdata.dk/support/"/>
-   for details.
-  </para>
- </sect1>  
+  </section>
+ </section>
+  
+  
+  <section id="introduction-support">
+   <title>Support</title>
+   <para>
+    You can get support for Zebra from at least three sources.
+   </para>
+   <para>
+    First, there's the Zebra web site at
+    <ulink url="&url.idzebra;"/>,
+     which always has the most recent version available for download.
+     If you have a problem with Zebra, the first thing to do is see
+     whether it's fixed in the current release.
+   </para>
+   <para>
+    Second, there's the Zebra mailing list.  Its home page at
+    <ulink url="&url.idzebra.mailinglist;"/>
+     includes a complete archive of all messages that have ever been
+     posted on the list.  The Zebra mailing list is used both for
+     announcements from the authors (new
+     releases, bug fixes, etc.) and general discussion.  You are welcome
+     to seek support there.  Join by filling the form on the list home page.
+   </para>
+   <para>
+    Third, it's possible to buy a commercial support contract, with
+    well defined service levels and response times, from Index Data.
+    See
+    <ulink url="&url.indexdata.support;"/>
+     for details.
+   </para>
+  </section>  
 
 
- <sect1 id="future">
+ <section id="future">
   <title>Future Directions</title>
   
   <para>
        XSLT transformations during indexing and record retrieval. Work
        on this filter has been sponsored by the ALVIS EU project
        <ulink url="http://www.alvis.info/alvis/"/>. We expect this filter to
-       mature soon, as it is planned to be included in the version 1.4
+       mature soon, as it is planned to be included in the version 2.0
        release of Zebra. 
      </para>
     </listitem>
 
     <listitem>
      <para>
-       Access to the search engine through SOAP/RPC API to allow the
-       construction of applications without requiring Z39.50 tools.
-       <!-- 
-      This will shortly be available by means of Index Data's
-        <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>-to-Z39.50 gateway, currently in beta test.
-       -->
-       Experimental support of the 
-       Search/Retrieve Via URL ( <ulink url="&url.sru;">SRU</ulink>) 
-       <ulink url="&url.sru;"/>
-       REST webservice, and the 
-        Search/Retrieve Web Service ( <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>)
-       <ulink url="http://www.loc.gov/standards/sru/srw/"/>
-       SOAP Web Service have recently been added to the YAZ/Zebra
-       combo - including server side Common Query Language (<ulink url="&url.cql;">CQL</ulink>)
-       <ulink url="&url.cql;"/> parsing
-       and configuration. It remains to find a sponsor for further testing,
-       documentation and packaging of this exiting component.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
        Finalisation and documentation of Zebra's C programming
        API, allowing updates, database management and other functions
        not readily expressed in Z39.50.  We will also consider
 
     <listitem>
      <para>
-       Support for the use of Perl both for access to the Zebra API
-       and for building extension ``plug-ins'' such as input filters.
-       The code for this has been contributed to the source tree by
-       Peter Popovics
-       <email>pop@technomat.hu</email>,
-       and is in the process of being integrated and tested.
-     </para>
-    </listitem>
-
-    <listitem>
-     <para>
        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
    or check the contact info at the end of this manual.
   </para>
   
- </sect1>
+ </section>
 </chapter>
  <!-- Keep this comment at the end of the file
  Local variables: