cleaning a bit. more cleaning needed
[idzebra-moved-to-github.git] / doc / introduction.xml
index ff4e41e..9778008 100644 (file)
@@ -1,5 +1,5 @@
 <chapter id="introduction">
- <!-- $Id: introduction.xml,v 1.42 2007-02-02 09:58:39 marc Exp $ -->
+ <!-- $Id: introduction.xml,v 1.45 2007-02-02 14:42:44 marc Exp $ -->
  <title>Introduction</title>
  
  <section id="overview">
@@ -7,10 +7,10 @@
   
       <para>
         &zebra; is a free, fast, friendly information management system. It can
-        index records in XML/SGML, MARC, e-mail archives and many other
+        index records in &xml;/&sgml;, &marc;, e-mail archives and many other
         formats, and quickly find them using a combination of boolean
         searching and relevance ranking. Search-and-retrieve applications can
-        be written using APIs in a wide variety of languages, communicating
+        be written using &api;s in a wide variety of languages, communicating
         with the &zebra; server using industry-standard information-retrieval
         protocols or web services. 
       </para>
@@ -23,7 +23,7 @@
         &zebra; is a networked component which acts as a reliable &z3950; server 
         for both record/document search, presentation, insert, update and 
         delete operations. In addition, it understands the &sru; family of 
-        webservices, which exist in REST GET/POST and truly SOAP flavors.
+        webservices, which exist in &rest; &get;/&post; and truly &soap; flavors.
       </para>
       <para>
         &zebra; is available as MS Windows 2003 Server (32 bit) self-extracting
@@ -42,7 +42,7 @@
    <ulink url="http://indexdata.dk/zebra/">&zebra;</ulink>
    is a high-performance, general-purpose structured text
    indexing and retrieval engine. It reads records in a
-   variety of input formats (eg. email, XML, MARC) and provides access
+   variety of input formats (eg. email, &xml;, &marc;) and provides access
    to them through a powerful combination of boolean search
    expressions and relevance-ranked free-text queries.
   </para>
    &zebra; supports large databases (tens of millions of records,
    tens of gigabytes of data). It allows safe, incremental
    database updates on live systems. Because &zebra; supports
-   the industry-standard information retrieval protocol, Z39.50,
+   the industry-standard information retrieval protocol, &z3950;,
    you can search &zebra; databases using an enormous variety of
    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 the
-   <ulink url="&url.zoom;">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>
 
   <title>&zebra; Features Overview</title>
   
 
-   <table id="table-features-overview" frame="top">
-    <title>&zebra; Features Overview</title>
+      <!--
+      <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>
+      -->
+
+
+   <table id="table-features-protocol" frame="top">
+    <title>&zebra; networked protocols</title>
     <tgroup cols="4">
      <thead>
       <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>Fundamental operation types</entry>
+       <entry>&z3950;/&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>
+       <entry>&z3950; protocol support</entry>
+       <entry>yes</entry>
+       <entry> Protocol facilities supported are: 
+       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. Piggy-backed presents are honored in the search
+       request. Named result sets are supported.</entry>
+       <entry><xref linkend=""/></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>Web Service support</entry>
+       <entry>&sru_gps;</entry>
+       <entry> The protocol operations <literal>explain</literal>, 
+       <literal>searchRetrieve</literal> and <literal>scan</literal>
+       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>
+     </tbody>
+    </tgroup>
+   </table>
+
+
+   <table id="table-features-search" frame="top">
+    <title>&zebra; search functionality</title>
+    <tgroup cols="4">
+     <thead>
       <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>
+       <entry>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
       </row>
+     </thead>
+     <tbody>
       <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.</entry>
-       <entry><xref linkend=""/></entry>
+       <entry>Query languages</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>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>Complex 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>Field search</entry>
+       <entry>user defined</entry>
+       <entry>Atomic query parts (&apt;) are either general, or
+       directed at user-specified document fields
+      </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>Data normalization</entry>
+       <entry></entry>
+       <entry>Data normalization, text tokenization and character mappings can be
+          applied during indexing and searching</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.</entry>
+       <entry>Predefined field types</entry>
+       <entry></entry>
+       <entry>Data fields can be indexed as phrase, as into word tokenized text,
+          as numeric values, url's, dates, and raw binary data.</entry>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
-       <entry>Remote update</entry>
-       <entry>Z39.50 extended services</entry>
+       <entry>Fuzzy searches</entry>
        <entry></entry>
+       <entry>In addition, fuzzy searches are implemented, where one 
+          spelling mistake in search terms is matched</entry>
        <entry><xref linkend=""/></entry>
       </row>
+     </tbody>
+    </tgroup>
+   </table>
+
+
+   <table id="table-features-scan" frame="top">
+    <title>&zebra; index scanning</title>
+    <tgroup cols="4">
+     <thead>
       <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>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row>
+       <entry>Scan</entry>
+       <entry>yes</entry>
+       <entry><literal>Scan</literal> on a given named index returns all the 
+          indexed terms in lexicographical order near the given start term.</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. Piggy-backed presents are honored in the search
-       request. Named result sets are supported.</entry>
+       <entry>Facetted browsing</entry>
+       <entry>partial</entry>
+       <entry>&zebra; supports <literal>scan inside a hit 
+          set</literal> from a previous search, thus reducing the listed 
+          terms to the 
+          subset of terms found in the documents/records of the hit set.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Drill-down or refine-search</entry>
+       <entry>partially</entry>
+       <entry>scanning in result sets can be used to implement
+       drill-down in search clients</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+     </tbody>
+    </tgroup>
+   </table>
+
+
+   <table id="table-features-presentation" frame="top">
+    <title>&zebra; document presentation</title>
+    <tgroup cols="4">
+     <thead>
+      <row>
+       <entry>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row>
+       <entry>Hit count</entry>
+       <entry>yes</entry>
+       <entry>Search results include at any time the total hit count of a given
+          query, either exact computed, or approximative, in case that the
+          hit count exceeds a possible pre-defined hit set truncation
+       level.
+</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Paged result sets</entry>
+       <entry>yes</entry>
+       <entry>Paging of search requests and present/display request can return any
+          successive number of records from any start position in the hit set,
+          i.e. it is trivial to provide search results in successive pages of
+          any size.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>&xml;ocument transformations</entry>
+       <entry>&xslt; based</entry>
+       <entry> Record presentation can be performed in many pre-defined &xml; data
+          formats, where the original &xml; records are on-the-fly transformed
+          through any preconfigured &xslt; transformation. It is therefore
+          trivial to present records in short/full &xml; views, transforming to
+          RSS, Dublin Core, or other &xml; based data formats, or transform
+          records to XHTML snippets ready for inserting in XHTML pages.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Binary record transformations</entry>
+       <entry>&marc;, &usmarc;, &marc21; and &marcxml;</entry>
+       <entry></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
+      for data retrieval: &grs1;, &sutrs;,
+      &xml;, ISO2709 (&marc;), etc. Records can be mapped between record syntaxes
       and schemas on the fly.</entry>
        <entry><xref linkend=""/></entry>
       </row>
+     </tbody>
+    </tgroup>
+   </table>
+
+
+   <table id="table-features-sort-rank" frame="top">
+    <title>&zebra; sorting and ranking</title>
+    <tgroup cols="4">
+     <thead>
       <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. <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>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row>
+       <entry>Sort</entry>
+       <entry>numeric, lexicographic</entry>
+       <entry>Sorting on the basis of alpha-numeric and numeric data
+       is supported. Alphanumeric sorts can be configured for different data encodings
+          and locales for European languages.  </entry>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
-       <entry></entry>
-       <entry></entry>
-       <entry></entry>
+       <entry>Combined sorting</entry>
+       <entry>yes</entry>
+       <entry>Sorting on the basis of combined sorts ­ e.g. combinations of 
+          ascending/descending sorts of lexicographical/numeric/date field data
+          is supported</entry>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
-       <entry></entry>
-       <entry></entry>
-       <entry></entry>
+       <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></entry>
-       <entry></entry>
+       <entry>Relevence ranking</entry>
+       <entry>TDF-IDF like</entry>
        <entry></entry>
        <entry><xref linkend=""/></entry>
       </row>
+     </tbody>
+    </tgroup>
+   </table>
+
+
+
+   <table id="table-features-document" frame="top">
+    <title>&zebra; document model</title>
+    <tgroup cols="4">
+     <thead>
+      <row>
+       <entry>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
+      </row>
+     </thead>
+     <tbody>
       <row>
-       <entry></entry>
-       <entry></entry>
-       <entry></entry>
+       <entry>Complex semi-structured Documents</entry>
+       <entry>&xml; and &grs1; Documents</entry>
+       <entry>Both &xml; and &grs1; documents exhibit a &dom; like internal
+       representation allowing for complex indexing and display rules</entry>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
-       <entry></entry>
-       <entry></entry>
+       <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>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.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+
+     </tbody>
+    </tgroup>
+   </table>
+
+
+
+   <table id="table-features-scalability" frame="top">
+    <title>&zebra; data size and scalability</title>
+    <tgroup cols="4">
+     <thead>
+      <row>
+       <entry>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row>
+       <entry>No of records</entry>
+       <entry>40-60 million</entry>
        <entry></entry>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
+       <entry>Data size</entry>
+       <entry>100 GB of record data</entry>
        <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>File pointers</entry>
+       <entry>64 bit</entry>
        <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Scale out</entry>
+       <entry>multiple discs</entry>
        <entry></entry>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
+       <entry>Performance</entry>
+       <entry><literal>O(n * log N)</literal></entry>
+       <entry> &zebra; query speed and performance is affected roughly by 
+          <literal>O(log N)</literal>,
+          where <literal>N</literal> is the total database size, and by 
+          <literal>O(n)</literal>, where <literal>n</literal> is the
+          specific query hit set size.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Average search times</entry>
        <entry></entry>
+       <entry> Even on very large size databases hit rates of 20 queries per
+          seconds with average query answering time of 1 second are possible,
+          provided that the boolean queries are constructed sufficiently
+          precise to result in hit sets of the order of 1000 to 5.000
+          documents.</entry>
+       <entry><xref linkend=""/></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>
+     </tbody>
+    </tgroup>
+   </table>
+
+
+   <table id="table-features-updates" frame="top">
+    <title>&zebra; live updates</title>
+    <tgroup cols="4">
+     <thead>
+      <row>
+       <entry>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row>
+       <entry>Batch updates</entry>
        <entry></entry>
+       <entry>It is possible to schedule record inserts/updates/deletes in any
+        quantity, from single individual handled records to batch updates
+        in strikes of any size, as well as total re-indexing of all records
+        from file system. </entry>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
+       <entry>Incremental updates</entry>
        <entry></entry>
        <entry></entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Remote updates</entry>
+       <entry>&z3950; extended services</entry>
        <entry></entry>
        <entry><xref linkend=""/></entry>
       </row>
       <row>
+       <entry>Live updates</entry>
        <entry></entry>
+       <entry> Data updates are transaction based and can be performed on running
+        &zebra; systems.  Full searchability is preserved during life data update due to use
+        of shadow disk areas for update operations. Multiple update transactions at the same time are lined up, to be
+        performed one after each other. Data integrity is preserved.</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.</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+     </tbody>
+    </tgroup>
+   </table>
+
+   <table id="table-features-platforms" frame="top">
+    <title>&zebra; supported platforms</title>
+    <tgroup cols="4">
+     <thead>
+      <row>
+       <entry>Feature</entry>
+       <entry>Availability</entry>
+       <entry>Notes</entry>
+       <entry>Reference</entry>
+      </row>
+     </thead>
+     <tbody>
+      <row>
+       <entry>Linux</entry>
        <entry></entry>
+       <entry>GNU Linux (32 and 64bit), journaling Reiser or (better) JFS filesystem
+        on disks. GNU/Debian Linux packages are available</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Unix</entry>
+       <entry>tarball</entry>
+       <entry>Usual tarball install possible on many major Unix systems</entry>
+       <entry><xref linkend=""/></entry>
+      </row>
+      <row>
+       <entry>Windows</entry>
        <entry></entry>
+       <entry>Windows installer packages available</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>
      </tbody>
     </para>
     <para>
      In early 2005, the Koha project development team began looking at
-     ways to improve MARC support and overcome scalability limitations
+     ways to improve &marc; support and overcome scalability limitations
      in the Koha 2.x series. After extensive evaluations of the best
      of the Open Source textual database engines - including MySQL
      full-text searching, PostgreSQL, Lucene and Plucene - the team
      and relevance-ranked free-text queries, both of which the Koha
      2.x series lack. &zebra; also supports incremental and safe
      database updates, which allow on-the-fly record
-     management. Finally, since &zebra; has at its heart the Z39.50
+     management. Finally, since &zebra; has at its heart the &z3950;
      protocol, it greatly improves Koha's support for that critical
      library standard." 
     </para>
      from virtually any computer with an Internet connection, has
      template based layout allowing anyone to alter the visual
      appearance of Emilda, and is
-     XML based language for fast and easy portability to virtually any
+     &xml; based language for fast and easy portability to virtually any
      language.
      Currently, Emilda is used at three schools in Espoo, Finland.
     </para>
     <para>
-     As a surplus, 100% MARC compatibility has been achieved using the
+     As a surplus, 100% &marc; compatibility has been achieved using the
     &zebra; Server from Index Data as backend server. 
     </para> 
    </section>
      is a netbased library service offering all
      traditional functions on a very high level plus many new
      services. Reindex.net is a comprehensive and powerful WEB system
-     based on standards such as XML and Z39.50.
-     updates. Reindex supports MARC21, danMARC eller Dublin Core with
+     based on standards such as &xml; and &z3950;.
+     updates. Reindex supports &marc21;, dan&marc; eller Dublin Core with
      UTF8-encoding.  
     </para>
     <para>
      Reindex.net runs on GNU/Debian Linux with &zebra; and Simpleserver
      from Index 
      Data for bibliographic data. The relational database system
-     Sybase 9 XML is used for
+     Sybase 9 &xml; is used for
      administrative data. 
-     Internally MARCXML is used for bibliographical records. Update
-     utilizes Z39.50 extended services. 
+     Internally &marcxml; is used for bibliographical records. Update
+     utilizes &z3950; extended services. 
     </para>
    </section>
 
      The &zebra; information retrieval indexing machine is used inside
      the Alvis framework to
      manage huge collections of natural language processed and
-     enhanced XML data, coming from a topic relevant web crawl.
-     In this application, &zebra; swallows and manages 37GB of XML data
+     enhanced &xml; data, coming from a topic relevant web crawl.
+     In this application, &zebra; swallows and manages 37GB of &xml; data
      in about 4 hours, resulting in search times of fractions of
      seconds. 
      </para>
    <para>
     The member libraries send in data files representing their
     periodicals, including both brief bibliographic data and summary
-    holdings.  Then 21 individual Z39.50 targets are created, each
+    holdings.  Then 21 individual &z3950; targets are created, each
     using &zebra;, and all mounted on the single hardware server.
-    The live service provides a web gateway allowing Z39.50 searching
+    The live service provides a web gateway allowing &z3950; searching
     of all of the targets or a selection of them.  &zebra;'s small
     footprint allows a relatively modest system to comfortably host
     the 21 servers.
   </section>
 
   <section id="nli">
-   <title>NLI-Z39.50 - a Natural Language Interface for Libraries</title>
+   <title>NLI-&z3950; - a Natural Language Interface for Libraries</title>
    <para>
     Fernuniversit&#x00E4;t Hagen in Germany have developed a natural
     language interface for access to library databases.
     In order to evaluate this interface for recall and precision, they
     chose &zebra; as the basis for retrieval effectiveness.  The &zebra;
     server contains a copy of the GIRT database, consisting of more
-    than 76000 records in SGML format (bibliographic records from
-    social science), which are mapped to MARC for presentation.
+    than 76000 records in &sgml; format (bibliographic records from
+    social science), which are mapped to &marc; for presentation.
    </para>
    <para>
     (GIRT is the German Indexing and Retrieval Testdatabase.  It is a
 
     <listitem>
      <para>
-       Improved support for XML in search and retrieval. Eventually,
+       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
+       information retrieval engine and high-performance &xml;
        repository.  The recent addition of XPath searching is one
        example of the kind of enhancement we're working on.
      </para>
      <para>
-       There is also the experimental <literal>ALVIS XSLT</literal>
-       XML input filter, which unleashes the full power of DOM based
-       XSLT transformations during indexing and record retrieval. Work
+       There is also the experimental <literal>ALVIS &xslt;</literal>
+       &xml; input filter, which unleashes the full power of &dom; based
+       &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 2.0
     <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
-       exposing the API through SOAP.
+       &api;, allowing updates, database management and other functions
+       not readily expressed in &z3950;.  We will also consider
+       exposing the &api; through &soap;.
      </para>
     </listitem>