Put man pages in reference section of main documentation . Avoid
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 5 Sep 2006 12:01:31 +0000 (12:01 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 5 Sep 2006 12:01:31 +0000 (12:01 +0000)
duplicated material for man pages. Put Zebra version in productnumber
tag of man page.

18 files changed:
doc/.cvsignore
doc/Makefile.am
doc/administration.xml
doc/entities.ent
doc/field-structure.xml
doc/idzebra-config-man.xml [deleted file]
doc/idzebra-config.xml [new file with mode: 0644]
doc/server.xml [deleted file]
doc/zebra.xml
doc/zebraidx-commands.xml [deleted file]
doc/zebraidx-man.xml [deleted file]
doc/zebraidx-options.xml [deleted file]
doc/zebraidx.xml
doc/zebrasrv-man.xml [deleted file]
doc/zebrasrv-options.xml
doc/zebrasrv-synopsis.xml
doc/zebrasrv-virtual.xml
doc/zebrasrv.xml [new file with mode: 0644]

index 7ba19de..6687c9d 100644 (file)
@@ -17,3 +17,4 @@ tkl.xsl
 *.php
 htmlhelp.hhp
 toc.hhc
+manref.xml
index 1e6dee9..e79db22 100644 (file)
@@ -1,14 +1,15 @@
-## $Id: Makefile.am,v 1.59 2006-09-04 12:11:40 adam Exp $
+## $Id: Makefile.am,v 1.60 2006-09-05 12:01:31 adam Exp $
 docdir=$(datadir)/doc/$(PACKAGE)$(PACKAGE_SUFFIX)
 
 SUBDIRS = common
 
+XMLMAN = zebraidx.xml zebrasrv.xml idzebra-config.xml
+
 XMLFILES =  \
    administration.xml \
    architecture.xml \
    examples.xml \
    field-structure.xml \
-   idzebra-config-man.xml \
    indexdata.xml \
    installation.xml \
    introduction.xml \
@@ -18,16 +19,11 @@ XMLFILES =  \
    quickstart.xml \
    recordmodel-alvisxslt.xml \
    recordmodel-grs.xml \
-   server.xml \
+   manref.xml \
    zebra.xml \
-   zebraidx-commands.xml \
-   zebraidx-man.xml \
-   zebraidx-options.xml \
-   zebraidx.xml \
-   zebrasrv-man.xml \
    zebrasrv-options.xml \
    zebrasrv-synopsis.xml \
-   zebrasrv-virtual.xml
+   zebrasrv-virtual.xml 
 
 HTMLFILES =  index.html
 
@@ -38,26 +34,24 @@ MANFILES=zebraidx$(PACKAGE_SUFFIX).1 \
        zebrasrv$(PACKAGE_SUFFIX).8 \
        idzebra-config$(PACKAGE_SUFFIX).1
 
-REFFILES=zebraidx-man.xml zebrasrv-man.xml idzebra-config-man.xml
-
 doc_DATA = $(HTMLFILES) $(PNGFILES)
 man_MANS = $(MANFILES)
 
-EXTRA_DIST = $(XMLFILES) $(REFFILES) \
-       $(doc_DATA) $(EPSFILES) $(man_MANS) $(REFFILES) \
+EXTRA_DIST = $(XMLFILES) $(XMLMAN) \
+       $(doc_DATA) $(EPSFILES) $(man_MANS) \
        marc_indexing.xml entities.ent local.ent.in
 
-zebraidx$(PACKAGE_SUFFIX).1: zebraidx-man.xml zebraidx-options.xml zebraidx-commands.xml
-       $(MAN_COMPILE) $(srcdir)/zebraidx-man.xml
+zebraidx$(PACKAGE_SUFFIX).1: zebraidx.xml
+       $(MAN_COMPILE) $(srcdir)/zebraidx.xml
        mv zebraidx.1 zebraidx$(PACKAGE_SUFFIX).1
 
-zebrasrv$(PACKAGE_SUFFIX).8: zebrasrv-man.xml  zebrasrv-options.xml \
+zebrasrv$(PACKAGE_SUFFIX).8: zebrasrv.xml  zebrasrv-options.xml \
             zebrasrv-synopsis.xml zebrasrv-virtual.xml
-       $(MAN_COMPILE) $(srcdir)/zebrasrv-man.xml
+       $(MAN_COMPILE) $(srcdir)/zebrasrv.xml
        mv zebrasrv.8 zebrasrv$(PACKAGE_SUFFIX).8
 
-idzebra-config$(PACKAGE_SUFFIX).1: idzebra-config-man.xml
-       $(MAN_COMPILE) $(srcdir)/idzebra-config-man.xml
+idzebra-config$(PACKAGE_SUFFIX).1: idzebra-config.xml
+       $(MAN_COMPILE) $(srcdir)/idzebra-config.xml
        mv idzebra-config.1 idzebra-config$(PACKAGE_SUFFIX).1
 
 $(HTMLFILES): $(XMLFILES)
@@ -77,6 +71,13 @@ zebra.pdf: $(XMLFILES)
        pdfjadetex zebra.tex >/dev/null
        pdfjadetex zebra.tex >/dev/null
 
+
+manref.xml: $(XMLMAN) $(srcdir)/common/ref2dbinc.xsl
+       rm -f manref.xml
+       for i in $(XMLMAN); do \
+               xsltproc $(srcdir)/common/stripref.xsl $(srcdir)/$$i | sed 1d >> manref.xml; \
+       done
+
 gils.txt: gils.sgml
        sgml2txt -f gils.sgml
 
index beba166..c4afea4 100644 (file)
@@ -1,5 +1,5 @@
 <chapter id="administration">
- <!-- $Id: administration.xml,v 1.43 2006-09-03 21:37:26 adam Exp $ -->
+ <!-- $Id: administration.xml,v 1.44 2006-09-05 12:01:31 adam Exp $ -->
  <title>Administrating Zebra</title>
  <!-- ### It's a bit daft that this chapter (which describes half of
           the configuration-file formats) is separated from
@@ -1748,23 +1748,6 @@ where g = rset_count(terms[i]->rset) is the count of all documents in this speci
     </sect2>
  </sect1>
 
-
-  <sect1 id="gfs-config">
-   <title>YAZ Frontend Virtual Hosts</title>
-    <para>
-     <command>zebrasrv</command> uses the YAZ server frontend and does
-     support multiple virtual servers behind multiple listening sockets.
-    </para>
-    &zebrasrv-virtual;
-   <para>
-    Section "Virtual Hosts" in the YAZ manual.
-    <filename>http://www.indexdata.dk/yaz/doc/server.vhosts.tkl</filename>
-   </para>
- </sect1>
-
-
 </chapter>
 
  <!-- Keep this comment at the end of the file
index 2ad5801..4c82c41 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: entities.ent,v 1.3 2006-09-03 21:37:26 adam Exp $ -->
+<!-- $Id: entities.ent,v 1.4 2006-09-05 12:01:31 adam Exp $ -->
 <!ENTITY chap-introduction SYSTEM "introduction.xml">
 <!ENTITY chap-installation SYSTEM "installation.xml">
 <!ENTITY chap-quickstart SYSTEM "quickstart.xml">
@@ -7,25 +7,14 @@
 <!ENTITY chap-administration SYSTEM "administration.xml">
 <!ENTITY chap-querymodel SYSTEM "querymodel.xml">
 <!ENTITY chap-zebraidx SYSTEM "zebraidx.xml">
-<!ENTITY chap-server SYSTEM "server.xml">
 <!ENTITY chap-recordmodel-grs SYSTEM "recordmodel-grs.xml">
 <!ENTITY chap-recordmodel-alvisxslt SYSTEM "recordmodel-alvisxslt.xml">
 <!ENTITY chap-field-structure SYSTEM "field-structure.xml">
 <!ENTITY app-license SYSTEM "license.xml">
 <!ENTITY app-indexdata SYSTEM "indexdata.xml">
-
-<!ENTITY zebraidx-options SYSTEM "zebraidx-options.xml">
-<!ENTITY zebraidx-commands SYSTEM "zebraidx-commands.xml">
+<!ENTITY manref SYSTEM "manref.xml">
 <!ENTITY zebrasrv-synopsis SYSTEM "zebrasrv-synopsis.xml">
 <!ENTITY zebrasrv-options SYSTEM "zebrasrv-options.xml">
 <!ENTITY zebrasrv-virtual SYSTEM "zebrasrv-virtual.xml">
 <!ENTITY gfs-synopsis-app "zebrasrv">
 
-<!ENTITY ref-architecture-representation '
-       <xref linkend="architecture-representation"/>'>
-<!ENTITY ref-record-types '
-       <xref linkend="record-types"/>'>
-<!ENTITY ref-configuration-file '
-       <xref linkend="zebra-cfg"/>'>
-<!ENTITY ref-shadow-registers '
-       <xref linkend="shadow-registers"/>'>
index c354795..758542b 100644 (file)
@@ -1,5 +1,5 @@
  <chapter id="fields-and-charsets">
-  <!-- $Id: field-structure.xml,v 1.1 2006-09-03 21:37:26 adam Exp $ -->
+  <!-- $Id: field-structure.xml,v 1.2 2006-09-05 12:01:31 adam Exp $ -->
   <title>Field Structure and Character Sets
   </title>
   
     <variablelist>
 
      <varlistentry>
-      <term>index <emphasis>field type code</emphasis></term>
+      <term>index <replaceable>field type code</replaceable></term>
       <listitem>
        <para>
        This directive introduces a new search index code.
        The argument is a one-character code to be used in the
        .abs files to select this particular index type. An index, roughly,
        corresponds to a particular structure attribute during search. Refer
-       to <xref linkend="search"/>.
+       to <xref linkend="zebrasrv-search"/>.
        </para>
       </listitem></varlistentry>
      <varlistentry>
-      <term>sort <emphasis>field code type</emphasis></term>
+      <term>sort <replaceable>field code type</replaceable></term>
       <listitem>
        <para>
        This directive introduces a 
        </para>
       </listitem></varlistentry>
      <varlistentry>
-      <term>completeness <emphasis>boolean</emphasis></term>
+      <term>completeness <replaceable>boolean</replaceable></term>
       <listitem>
        <para>
        This directive enables or disables complete field indexing.
-       The value of the <emphasis>boolean</emphasis> should be 0
+       The value of the <replaceable>boolean</replaceable> should be 0
        (disable) or 1. If completeness is enabled, the index entry will
        contain the complete contents of the field (up to a limit), with words
        (non-space characters) separated by single space characters
@@ -77,7 +77,7 @@
        </para>
       </listitem></varlistentry>
      <varlistentry>
-      <term>charmap <emphasis>filename</emphasis></term>
+      <term>charmap <replaceable>filename</replaceable></term>
       <listitem>
        <para>
        This is the filename of the character
@@ -98,7 +98,7 @@
     <variablelist>
 
      <varlistentry>
-      <term>lowercase <emphasis>value-set</emphasis></term>
+      <term>lowercase <replaceable>value-set</replaceable></term>
       <listitem>
        <para>
        This directive introduces the basic value set of the field type.
        </para>
       </listitem></varlistentry>
      <varlistentry>
-      <term>uppercase <emphasis>value-set</emphasis></term>
+      <term>uppercase <replaceable>value-set</replaceable></term>
       <listitem>
        <para>
        This directive introduces the
        </para>
       </listitem></varlistentry>
      <varlistentry>
-      <term>space <emphasis>value-set</emphasis></term>
+      <term>space <replaceable>value-set</replaceable></term>
       <listitem>
        <para>
        This directive introduces the character
        </para>
       </listitem></varlistentry>
      <varlistentry>
-      <term>map <emphasis>value-set</emphasis>
-       <emphasis>target</emphasis></term>
+      <term>map <replaceable>value-set</replaceable>
+       <replaceable>target</replaceable></term>
       <listitem>
        <para>
        This directive introduces a mapping between each of the
diff --git a/doc/idzebra-config-man.xml b/doc/idzebra-config-man.xml
deleted file mode 100644 (file)
index 6be1056..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
-[
-     <!ENTITY % local SYSTEM "local.ent">
-     %local;
-]>
-<!-- $Id: idzebra-config-man.xml,v 1.2 2006-08-14 12:18:48 adam Exp $ -->
-<refentry id="idzebra-config">
- <refmeta>
-  <refentrytitle>idzebra-config</refentrytitle>
-  <manvolnum>1</manvolnum>
- </refmeta>
- <refnamediv>
-  <refname>idzebra-config</refname>
-  <refpurpose>Script to get information about idzebra</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
-  <cmdsynopsis>
-   <command>idzebra-config</command>
-   <arg choice="opt"><option>--prefix[=<replaceable>DIR</replaceable>]</option></arg>
-   <arg choice="opt"><option>--version</option></arg>
-   <arg choice="opt"><option>--libs</option></arg>
-   <arg choice="opt"><option>--lalibs</option></arg>
-   <arg choice="opt"><option>--cflags</option></arg>
-   <arg choice="opt"><option>--tab</option></arg>
-   <arg choice="opt"><option>--modules</option></arg>
-   <arg choice="opt" rep="repeat">libraries</arg>
-  </cmdsynopsis>
- </refsynopsisdiv>
- <refsect1><title>DESCRIPTION</title>
-  <para>
-   <command>idzebra-config</command> is a script that returns information
-   that your own software should use to build software that uses idzebra.
-  </para>
-
-  <para>
-   The following libraries are supported:
-  </para>
-
-  <para>
-   None
-  </para>
-  
- </refsect1>
- <refsect1><title>OPTIONS</title>
-  
-  <variablelist>
-   <varlistentry>
-    <term>--prefix[=<replaceable>DIR</replaceable>]</term>
-    <listitem><para>
-      Returns prefix of idzebra or assume a different one if DIR is
-      specified.
-     </para></listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>--version</term>
-    <listitem><para>
-      Returns version of idzebra.
-     </para></listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>--libs</term>
-    <listitem><para>
-      Library specification be used when linking with idzebra.
-     </para></listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>--lalibs</term>
-    <listitem><para>
-      Return library specification.
-     </para></listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>--cflags</term>
-    <listitem><para>
-      Return C Compiler flags.
-     </para></listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>--tab</term>
-    <listitem><para>
-      Return directory of idzebra tables.
-     </para></listitem>
-   </varlistentry>
-
-   <varlistentry>
-    <term>--modules</term>
-    <listitem><para>
-      Return directory for Zebra modules.
-     </para></listitem>
-   </varlistentry>
-
-  </variablelist>
- </refsect1>
- <refsect1><title>FILES</title>
-  <para>
-   <filename>&prefix;/bin/idzebra-config-2.0</filename>
-  </para>
-  <para>
-   <filename>&prefix;/lib/libidzebra*2.0.a</filename>
-  </para>
-  <para>
-   <filename>&prefix;/include/idzebra-2.0/idzebra/*.h</filename>
-  </para>
- </refsect1>
- <!--
- <refsect1><title>SEE ALSO</title>
- <para>
- yaz(7)
-  </para>
- <para>
- Section "How to make apps using YAZ on UNIX" in the YAZ manual.
-  </para>
- </refsect1>
- -->
-</refentry>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-local-catalogs: nil
-sgml-namecase-general:t
-End:
--->
diff --git a/doc/idzebra-config.xml b/doc/idzebra-config.xml
new file mode 100644 (file)
index 0000000..efb9e78
--- /dev/null
@@ -0,0 +1,141 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+[
+     <!ENTITY % local SYSTEM "local.ent">
+     %local;
+     <!ENTITY % entities  SYSTEM "entities.ent">
+     %entities;
+     <!ENTITY % common  SYSTEM "common/common.ent">
+     %common;
+]>
+<!-- $Id: idzebra-config.xml,v 1.1 2006-09-05 12:01:31 adam Exp $ -->
+<refentry id="idzebra-config">
+ <refentryinfo>
+  <productname>ZEBRA</productname>
+  <productnumber>&version;</productnumber>
+ </refentryinfo>
+ <refmeta>
+  <refentrytitle>idzebra-config</refentrytitle>
+  <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+  <refname>idzebra-config</refname>
+  <refpurpose>Script to get information about idzebra</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+  <cmdsynopsis>
+   <command>idzebra-config</command>
+   <arg choice="opt"><option>--prefix[=<replaceable>DIR</replaceable>]</option></arg>
+   <arg choice="opt"><option>--version</option></arg>
+   <arg choice="opt"><option>--libs</option></arg>
+   <arg choice="opt"><option>--lalibs</option></arg>
+   <arg choice="opt"><option>--cflags</option></arg>
+   <arg choice="opt"><option>--tab</option></arg>
+   <arg choice="opt"><option>--modules</option></arg>
+   <arg choice="opt" rep="repeat">libraries</arg>
+  </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1><title>DESCRIPTION</title>
+  <para>
+   <command>idzebra-config</command> is a script that returns information
+   that your own software should use to build software that uses idzebra.
+  </para>
+
+  <para>
+   The following libraries are supported:
+  </para>
+
+  <para>
+   None
+  </para>
+  
+ </refsect1>
+ <refsect1><title>OPTIONS</title>
+  
+  <variablelist>
+   <varlistentry>
+    <term>--prefix[=<replaceable>DIR</replaceable>]</term>
+    <listitem><para>
+      Returns prefix of idzebra or assume a different one if DIR is
+      specified.
+     </para></listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term>--version</term>
+    <listitem><para>
+      Returns version of idzebra.
+     </para></listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term>--libs</term>
+    <listitem><para>
+      Library specification be used when linking with idzebra.
+     </para></listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term>--lalibs</term>
+    <listitem><para>
+      Return library specification.
+     </para></listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term>--cflags</term>
+    <listitem><para>
+      Return C Compiler flags.
+     </para></listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term>--tab</term>
+    <listitem><para>
+      Return directory of idzebra tables.
+     </para></listitem>
+   </varlistentry>
+
+   <varlistentry>
+    <term>--modules</term>
+    <listitem><para>
+      Return directory for Zebra modules.
+     </para></listitem>
+   </varlistentry>
+
+  </variablelist>
+ </refsect1>
+ <refsect1><title>FILES</title>
+  <para>
+   <filename>&prefix;/bin/idzebra-config-2.0</filename>
+  </para>
+  <para>
+   <filename>&prefix;/lib/libidzebra*2.0.a</filename>
+  </para>
+  <para>
+   <filename>&prefix;/include/idzebra-2.0/idzebra/*.h</filename>
+  </para>
+ </refsect1>
+
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-local-catalogs: nil
+sgml-namecase-general:t
+End:
+-->
diff --git a/doc/server.xml b/doc/server.xml
deleted file mode 100644 (file)
index 5a2f114..0000000
+++ /dev/null
@@ -1,671 +0,0 @@
-<chapter id="zebrasrv">
- <!-- $Id: server.xml,v 1.26 2006-09-03 21:37:27 adam Exp $ -->
- <title>The Z39.50 Server</title>
- <sect1 id="zebrasrv-running">
-  <title>Running the Z39.50 Server (zebrasrv)</title>
-
-  <!--
-   FIXME - We need to be consistent here, zebraidx had the options at the
-           end, and lots of explaining text before them. Same for zebrasvr! -H
-   FIXME - At least we need a small intro, what is zebrasvr, and how it
-           can be run (inetd, nt service, stand-alone program, daemon...) -H
-  -->
-
-  <!-- re-write by MC, using the newly created input files for the 
-   zebrasrv manpage -->
-
-
- <sect2 id="zebrasrv-description"><title>Description</title>
-    <para>Zebra 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>
-    <command>zebrasrv</command> is the Z39.50 and  <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>/U frontend
-    server for the <command>Zebra</command> indexer.
-   </para> 
-   <para> 
-    On Unix you can run the <command>zebrasrv</command>
-    server from the command line - and put it
-    in the background. It may also operate under the inet daemon.
-    On WIN32 you can run the server as a console application or
-    as a WIN32 Service.
-   </para>
-  </sect2>
-
- <sect2 id="zebrasrv-synopsis">
-   <title>Synopsis</title>
-    &zebrasrv-synopsis;
- </sect2>
-
- <sect2 id="zebrasrv-options">
-   <title>Options</title>
-    
-   <para>
-    The options for <command>zebrasrv</command> are the same
-    as those for YAZ' <command>yaz-ztest</command>.
-    Option <literal>-c</literal> specifies a Zebra configuration
-    file - if omitted <filename>zebra.cfg</filename> is read.
-   </para>
-   
-  &zebrasrv-options;
-  </sect2>
-
-  <sect2 id="zebrasrv-files"><title>Files</title>
-   <para>
-    <filename>zebra.cfg</filename>
-   </para>
-  </sect2>
-  <sect2 id="zebrasrv-see-also"><title>See Also</title>
-   <para>
-    <citerefentry>
-     <refentrytitle>zebraidx</refentrytitle>
-     <manvolnum>1</manvolnum>
-    </citerefentry>,
-    <citerefentry>
-     <refentrytitle>yaz-ztest</refentrytitle>
-     <manvolnum>8</manvolnum>
-    </citerefentry>
-   </para>
-   <para>
-    The Zebra software is Copyright <command>Index Data</command> 
-    <filename>http://www.indexdata.dk</filename>
-    and distributed under the
-    GPLv2 license.
-   </para> 
-  </sect2>
-
-  <!--
-  <para>
-   <emphasis remap="bf">Syntax</emphasis>
-
-   <screen>
-    zebrasrv [options] [listener-address ...]
-   </screen>
-
-  </para>
-
-  <para>
-   <emphasis remap="bf">Options</emphasis>
-   <variablelist>
-
-    <varlistentry>
-     <term>-a <replaceable>APDU file</replaceable></term>
-     <listitem>
-      <para>
-       Specify a file for dumping PDUs (for diagnostic purposes).
-       The special name "-" sends output to <literal>stderr</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-c <replaceable>config-file</replaceable></term>
-     <listitem>
-      <para>
-       Read configuration information from
-       <replaceable>config-file</replaceable>.
-       The default configuration is <literal>./zebra.cfg</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-S</term>
-     <listitem>
-      <para>
-       Don't fork on connection requests. This can be useful for
-       symbolic-level debugging. The server can only accept a single
-       connection in this mode.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-z</term>
-     <listitem>
-      <para>
-       Use the Z39.50 protocol. Currently the only protocol supported.
-       The option is retained for historical reasons, and for future
-       extensions.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-l <replaceable>logfile</replaceable></term>
-     <listitem>
-      <para>
-       Specify an output file for the diagnostic messages.
-       The default is to write this information to <literal>stderr</literal>.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-v <replaceable>log-level</replaceable></term>
-     <listitem>
-      <para>
-       The log level. Use a comma-separated list of members of the set
-       {fatal,debug,warn,log,all,none}.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-u <replaceable>username</replaceable></term>
-     <listitem>
-      <para>
-       Set user ID. Sets the real UID of the server process to that of the
-       given <replaceable>username</replaceable>.
-       It's useful if you aren't comfortable with having the
-       server run as root, but you need to start it as such to bind a
-       privileged port.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-w <replaceable>working-directory</replaceable></term>
-     <listitem>
-      <para>
-       Change working directory.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-i</term>
-     <listitem>
-      <para>
-       Run under the Internet superserver, <literal>inetd</literal>.
-       Make sure you use the logfile option <literal>-l</literal> in
-       conjunction with this mode and specify the <literal>-l</literal>
-       option before any other options.
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-t <replaceable>timeout</replaceable></term>
-     <listitem>
-      <para>
-       Set the idle session timeout (default 60 minutes).
-      </para>
-     </listitem>
-    </varlistentry>
-    <varlistentry>
-     <term>-k <replaceable>kilobytes</replaceable></term>
-     <listitem>
-      <para>
-       Set the (approximate) maximum size of
-       present response messages. Default is 1024 KB (1 MB).
-      </para>
-     </listitem>
-    </varlistentry>
-   </variablelist>
-  </para>
-  -->
- </sect1>
-
-
- <sect1 id="protocol-support">
-  <title>Z39.50 Protocol Support and Behavior</title>
-
-  <sect2 id="zebrasrv-initialization">
-   <title>Initialization</title>
-
-   <para>
-    During initialization, the server will negotiate to version 3 of the
-    Z39.50 protocol, and the option bits for Search, Present, Scan,
-    NamedResultSets, and concurrentOperations will be set, if requested by
-    the client. The maximum PDU size is negotiated down to a maximum of
-    1 MB by default.
-   </para>
-
-  </sect2>
-
-  <sect2 id="search">
-   <title>Search</title>
-
-   <!--
-    FIXME - Need to explain the string tag stuff before people get bogged 
-            down with all these attribute numbers. Perhaps in its own
-            chapter? -H
-   -->
-
-   <para>
-    The supported query type are 1 and 101. All operators are currently
-    supported with the restriction that only proximity units of type "word"
-    are supported for the proximity operator.
-    Queries can be arbitrarily complex.
-    Named result sets are supported, and result sets can be used as operands
-    without limitations.
-    Searches may span multiple databases.
-   </para>
-
-   <para>
-    The server has full support for piggy-backed retrieval (see
-    also the following section).
-   </para>
-
-   </sect2>
-   
-  <sect2 id="zebrasrv-present">
-   <title>Present</title>
-   <para>
-    The present facility is supported in a standard fashion. The requested
-    record syntax is matched against the ones supported by the profile of
-    each record retrieved. If no record syntax is given, SUTRS is the
-    default. The requested element set name, again, is matched against any
-    provided by the relevant record profiles.
-   </para>
-  </sect2>
-  <sect2 id="zebrasrv-scan">
-   <title>Scan</title>
-   <para>
-    The attribute combinations provided with the termListAndStartPoint are
-    processed in the same way as operands in a query (see above).
-    Currently, only the term and the globalOccurrences are returned with
-    the termInfo structure.
-   </para>
-  </sect2>
-  <sect2 id="zebrasrv-sort">
-   <title>Sort</title>
-
-   <para>
-    Z39.50 specifies three different types of sort criteria.
-    Of these Zebra supports the attribute specification type in which
-    case the use attribute specifies the "Sort register".
-    Sort registers are created for those fields that are of type "sort" in
-    the default.idx file. 
-    The corresponding character mapping file in default.idx specifies the
-    ordinal of each character used in the actual sort.
-   </para>
-
-   <para>
-    Z39.50 allows the client to specify sorting on one or more input
-    result sets and one output result set.
-    Zebra supports sorting on one result set only which may or may not
-    be the same as the output result set.
-   </para>
-  </sect2>
-  <sect2 id="zebrasrv-close">
-   <title>Close</title>
-   <para>
-    If a Close PDU is received, the server will respond with a Close PDU
-    with reason=FINISHED, no matter which protocol version was negotiated
-    during initialization. If the protocol version is 3 or more, the
-    server will generate a Close PDU under certain circumstances,
-    including a session timeout (60 minutes by default), and certain kinds of
-    protocol errors. Once a Close PDU has been sent, the protocol
-    association is considered broken, and the transport connection will be
-    closed immediately upon receipt of further data, or following a short
-    timeout.
-   </para>
-  </sect2>
-   
-   <sect2 id="zebrasrv-explain">
-    <title>Explain</title>
-    <para>
-     Zebra maintains a "classic" 
-     <ulink url="&url.z39.50.explain;">Explain</ulink> database
-     on the side. 
-     This database is called <literal>IR-Explain-1</literal> and can be
-     searched using the attribute set <literal>exp-1</literal>.
-    </para>
-    <para>
-     The records in the explain database are of type 
-     <literal>grs.sgml</literal>.
-     The root element for the Explain grs.sgml records is 
-     <literal>explain</literal>, thus 
-     <filename>explain.abs</filename> is used for indexing.
-    </para>
-    <note>
-     <para>
-      Zebra <emphasis>must</emphasis> be able to locate
-      <filename>explain.abs</filename> in order to index the Explain
-      records properly. Zebra will work without it but the information
-      will not be searchable.
-     </para>
-    </note>
-   </sect2>
- </sect1>
-</chapter>
-
-
-<chapter id="zebrasrv-sru">
- <title>The SRU/SRW Server</title>
- <para>
-  In addition to Z39.50, Zebra supports the more recent and
-  web-friendly IR protocol SRU, described at
-  <ulink url="http://www.loc.gov/sru"/>.
-  SRU is ``Search/Retrieve via URL'', a simple, REST-like protocol
-  that uses HTTP GET to request search responses.  The request
-  itself is made of parameters such as
-  <literal>query</literal>,
-  <literal>startRecord</literal>,
-  <literal>maximumRecords</literal>
-  and
-  <literal>recordSchema</literal>;
-  the response is an XML document containing hit-count, result-set
-  records, diagnostics, etc.  SRU can be thought of as a re-casting
-  of Z39.50 semantics in web-friendly terms; or as a standardisation
-  of the ad-hoc query parameters used by search engines such as Google
-  and AltaVista; or as a superset of A9's OpenSearch (which it
-  predates).
- </para>
- <para>
-  Zebra further supports SRW, described at
-  <ulink url="http://www.loc.gov/srw"/>.
-  SRW is the ``Search/Retrieve Web Service'', a SOAP-based alternative
-  implementation of the abstract protocol that SRU implements as HTTP
-  GET requests.  In SRW, requests are encoded as XML documents which
-  are posted to the server.  The responses are identical to those
-  returned by SRU servers, except that they are wrapped in a several
-  layers of SOAP envelope.
- </para>
- <para>
-  Zebra supports all three protocols - Z39.50, SRU and SRW - on the
-  same port, recognising what protocol is used by each incoming
-  requests and handling them accordingly.  This is a achieved through
-  the use of Deep Magic; civilians are warned not to stand too close.
- </para>
- <para>
-  From here on, ``SRU'' is used to indicate both the SRU and SRW
-  protocols, as they are identical except for the transport used for
-  the protocol packets and Zebra's support for them is equivalent.
- </para>
-
- <sect1 id="zebrasrv-sru-run">
-  <title>Running the SRU Server (zebrasrv)</title>
-  <para>
-   Because Zebra supports all three protocols on one port, it would
-   seem to follow that the SRU server is run in the same way as
-   the Z39.50 server, as described above.  This is true, but only in
-   an uninterestingly vacuous way: a Zebra server run in this manner
-   will indeed recognise and accept SRU requests; but since it
-   doesn't know how to handle the CQL queries that these protocols
-   use, all it can do is send failure responses.
-  </para>
-  <note>
-   <para>
-    It is possible to cheat, by having SRU search Zebra with
-    a PQF query instead of CQL, using the
-    <literal>x-pquery</literal>
-    parameter instead of
-    <literal>query</literal>.
-    This is a
-    <emphasis role="strong">non-standard extension</emphasis>
-    of CQL, and a
-    <emphasis role="strong">very naughty</emphasis>
-    thing to do, but it does give you a way to see Zebra serving SRU
-    ``right out of the box''.  If you start your favourite Zebra
-    server in the usual way, on port 9999, then you can send your web
-    browser to:
-  </para>
-  <screen>
-       http://localhost:9999/Default?version=1.1
-               &amp;operation=searchRetrieve
-               &amp;x-pquery=mineral
-               &amp;startRecord=1
-               &amp;maximumRecords=1
-  </screen>
-  <para>
-    This will display the XML-formatted SRU response that includes the
-    first record in the result-set found by the query
-    <literal>mineral</literal>.  (For clarity, the SRU URL is shown
-    here broken across lines, but the lines should be joined to gether
-    to make single-line URL for the browser to submit.)
-   </para>
-  </note>
-  <para>
-   In order to turn on Zebra's support for CQL queries, it's necessary
-   to have the YAZ generic front-end (which Zebra uses) translate them
-   into the Z39.50 Type-1 query format that is used internally.  And
-   to do this, the generic front-end's own configuration file must be
-   used.  This file is described
-   <link linkend="gfs-config">elsewhere</link>;
-   the salient point for SRU support is that
-   <command>zebrasrv</command>
-   must be started with the
-   <literal>-f&nbsp;frontendConfigFile</literal>
-   option rather than the
-   <literal>-c&nbsp;zebraConfigFile</literal>
-   option,
-   and that the front-end configuration file must include both a
-   reference to the Zebra configuration file and the CQL-to-PQF
-   translator configuration file.
-  </para>
-  <para>
-   A minimal front-end configuration file that does this would read as
-   follows:
-  </para>
-  <screen><![CDATA[
-       <yazgfs>
-         <server>
-           <config>zebra.cfg</config>
-           <cql2rpn>../../tab/pqf.properties</cql2rpn>
-         </server>
-       </yazgfs>
-]]></screen>
-  <para>
-   The
-   <literal>&lt;config&gt;</literal>
-   element contains the name of the Zebra configuration file that was
-   previously specified by the
-   <literal>-c</literal>
-   command-line argument, and the
-   <literal>&lt;cql2rpn&gt;</literal>
-   element contains the name of the CQL properties file specifying how
-   various CQL indexes, relations, etc. are translated into Type-1
-   queries.
-  </para>
-  <para>
-   A zebra server running with such a configuration can then be
-   queried using proper, conformant SRU URLs with CQL queries:
-  </para>
-  <screen>
-       http://localhost:9999/Default?version=1.1
-               &amp;operation=searchRetrieve
-               &amp;query=title=utah and description=epicent*
-               &amp;startRecord=1
-               &amp;maximumRecords=1
-  </screen>
- </sect1>
-
- <sect1 id="zebrasrv-sru-support">
-  <title>SRU and SRW Protocol Support and Behavior</title>
-  <para>
-   Zebra running as an SRU server supports SRU version 1.1, including
-   CQL version 1.1.  In particular, it provides support for the
-   following elements of the protocol.
-  </para>
-
-  <sect2 id="zebrasrvr-search-and-retrieval">
-   <title>Search and Retrieval</title>
-   <para>
-    Zebra fully supports SRU's core
-    <literal>searchRetrieve</literal>
-    operation, as described at
-    <ulink url="http://www.loc.gov/standards/sru/sru-spec.html"/>
-   </para>
-   <para>
-    One of the great strengths of SRU is that it mandates a standard
-    query language, CQL, and that all conforming implementations can
-    therefore be trusted to correctly interpret the same queries.  It
-    is with some shame, then, that we admit that Zebra also supports
-    an additional query language, our own Prefix Query Format (PQF,
-    <ulink url="http://indexdata.com/yaz/doc/tools.tkl#PQF"/>).
-    A PQF query is submitted by using the extension parameter
-    <literal>x-pquery</literal>,
-    in which case the
-    <literal>query</literal>
-    parameter must be omitted, which makes the request not valid SRU.
-    Please don't do this.
-   </para>
-  </sect2>
-
-  <sect2 id="zebrasrv-scan">
-   <title>Scan</title>
-   <para>
-    Zebra supports SRU's
-    <literal>scan</literal>
-    operation, as described at
-    <ulink url="http://www.loc.gov/standards/sru/scan/"/>.
-      Scanning using CQL syntax is the default, where the
-      standard <literal>scanClause</literal> parameter is used.
-   </para>
-   <para>
-     In addition, a
-    mutant form of SRU scan is supported, using
-    the non-standard <literal>x-pScanClause</literal> parameter in
-    place of the standard <literal>scanClause</literal> to scan on a
-    PQF query clause.
-   </para>
-  </sect2>
-
-  <sect2 id="zebrasrv-explain">
-   <title>Explain</title>
-   <para>
-    Zebra fully supports SRU's core
-    <literal>explain</literal>
-    operation, as described at
-    <ulink url="http://www.loc.gov/standards/sru/explain/index.html"/>
-   </para>
-   <para>
-    The ZeeRex record explaining a database may be requested either
-    with a fully fledged SRU request (with
-    <literal>operation</literal>=<literal>explain</literal>
-    and version-number specified)
-    or with a simple HTTP GET at the server's basename.
-    The ZeeRex record returned in response is the one embedded
-    in the YAZ Frontend Server configuration file that is described in the
-    <link linkend="gfs-config">Virtual Hosts</link> documentation.
-   </para>
-    <para>
-     Unfortunately, the data found in the 
-     CQL-to-PQF text file must be added by hand-craft into the explain
-     section of the YAZ Frontend Server configuration file to be able
-     to provide a suitable explain record. 
-     Too bad, but this is all extreme
-     new alpha stuff, and a lot of work has yet to be done ..
-    </para>
-    <para>
-     There is no linkeage whatsoever between the Z39.50 explain model
-     and the SRU/SRW explain response (well, at least not implemented
-     in Zebra, that is ..).  Zebra does not provide a means using
-     Z39.50 to obtain the ZeeRex record.
-     </para>
-  </sect2>
-
-  <sect2 id="zebrasrv-sru-examples">
-   <title>Some SRU Examples</title>
-    <para>
-     Surf into <literal>http://localhost:9999</literal>
-     to get an explain response, or use
-     <screen><![CDATA[
-      http://localhost:9999/?version=1.1&operation=explain
-     ]]></screen>
-    </para>
-    <para>
-     See number of hits for a query
-     <screen><![CDATA[
-       http://localhost:9999/?version=1.1&operation=searchRetrieve
-                       &query=text=(plant%20and%20soil)
-     ]]></screen>
-    </para>
-    <para>
-      Fetch record 5-7 in Dublin Core format
-     <screen><![CDATA[
-       http://localhost:9999/?version=1.1&operation=searchRetrieve
-                       &query=text=(plant%20and%20soil)
-                       &startRecord=5&maximumRecords=2&recordSchema=dc
-     ]]></screen>
-    </para>
-    <para>
-     Even search using PQF queries using the <emphasis>extended naughty 
-     verb</emphasis> <literal>x-pquery</literal>
-     <screen><![CDATA[
-      http://localhost:9999/?version=1.1&operation=searchRetrieve
-                       &x-pquery=@attr%201=text%20@and%20plant%20soil
-     ]]></screen>
-    </para>
-    <para>
-     Or scan indexes using the <emphasis>extended extremely naughty 
-     verb</emphasis> <literal>x-pScanClause</literal>
-     <screen><![CDATA[
-      http://localhost:9999/?version=1.1&operation=scan
-                       &x-pScanClause=@attr%201=text%20something
-     ]]></screen>
-     <emphasis>Don't do this in production code!</emphasis>
-     But it's a great fast debugging aid.
-    </para>
-  </sect2>
-
-  <sect2 id="zebrasrv-non-sru-ops">
-   <title>Initialization, Present, Sort, Close</title>
-   <para>
-    In the Z39.50 protocol, Initialization, Present, Sort and Close
-    are separate operations.  In SRU, however, these operations do not
-    exist.
-   </para>
-   <itemizedlist>
-    <listitem>
-     <para>
-      SRU has no explicit initialization handshake phase, but
-      commences immediately with searching, scanning and explain
-      operations.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Neither does SRU have a close operation, since the protocol is
-      stateless and each request is self-contained.  (It is true that
-      multiple SRU request/response pairs may be implemented as
-      multiple HTTP request/response pairs over a single persistent
-      TCP/IP connection; but the closure of that connection is not a
-      protocol-level operation.)
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Retrieval in SRU is part of the
-      <literal>searchRetrieve</literal> operation, in which a search
-      is submitted and the response includes a subset of the records
-      in the result set.  There is no direct analogue of Z39.50's
-      Present operation which requests records from an established
-      result set.  In SRU, this is achieved by sending a subsequent
-      <literal>searchRetrieve</literal> request with the query
-      <literal>cql.resultSetId=</literal><emphasis>id</emphasis> where 
-      <emphasis>id</emphasis> is the identifier of the previously
-      generated result-set.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Sorting in CQL is done within the
-      <literal>searchRetrieve</literal> operation - in v1.1, by an
-      explicit <literal>sort</literal> parameter, but the forthcoming
-      v1.2 or v2.0 will most likely use an extension of the query
-      language, CQL for sorting: see
-      <ulink url="http://zing.z3950.org/cql/sorting.html"/>
-     </para>
-    </listitem>
-   </itemizedlist>
-   <para>
-    It can be seen, then, that while Zebra operating as an SRU server
-    does not provide the same set of operations as when operating as a
-    Z39.50 server, it does provide equivalent functionality.
-   </para>
-  </sect2>
- </sect1>
-</chapter>
-
- <!-- Keep this comment at the end of the file
- Local variables:
- mode: sgml
- sgml-omittag:t
- sgml-shorttag:t
- sgml-minimize-attributes:nil
- sgml-always-quote-attributes:t
- sgml-indent-step:1
- sgml-indent-data:t
- sgml-parent-document: "zebra.xml"
- sgml-local-catalogs: nil
- sgml-namecase-general:t
- End:
- -->
index d68594c..b0de59c 100644 (file)
@@ -4,12 +4,14 @@
 [
      <!ENTITY % local SYSTEM "local.ent">
      %local;
-     <!ENTITY % entities  SYSTEM "entities.ent">
+     <!ENTITY % entities SYSTEM "entities.ent">
      %entities;
-     <!ENTITY % common  SYSTEM "common/common.ent">
+     <!ENTITY % common SYSTEM "common/common.ent">
      %common;
+
+     <!ENTITY test SYSTEM "test.xml">
 ]>
-<!-- $Id: zebra.xml,v 1.8 2006-09-03 21:37:27 adam Exp $ -->
+<!-- $Id: zebra.xml,v 1.9 2006-09-05 12:01:31 adam Exp $ -->
 <book id="zebra">
  <bookinfo>
   <title>Zebra - User's Guide and Reference</title>
   &chap-recordmodel-grs;
   &chap-recordmodel-alvisxslt;
   &chap-field-structure;
-  &chap-zebraidx;
-  &chap-server;
-  &app-license;
-  &app-indexdata;
+ <reference>
+  <title>Reference</title>
+  &manref;
+ </reference>
+ &app-license;
+ &app-indexdata;
  
 </book>
 <!-- Keep this comment at the end of the file
diff --git a/doc/zebraidx-commands.xml b/doc/zebraidx-commands.xml
deleted file mode 100644 (file)
index 6ac67c1..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<!-- 
-   $Id: zebraidx-commands.xml,v 1.4 2006-04-25 12:26:27 marc Exp $
-   Commands for zebraidx.
-   Included in both manual and man page for zebraidx
--->
-<variablelist>
- <varlistentry>
-  <term>update <replaceable>directory</replaceable></term>
-  <listitem>
-   <para>
-    Update the register with the files contained in
-    <replaceable>directory</replaceable>.
-    If no directory is provided, a list of files is read from
-    <literal>stdin</literal>.
-    See <xref linkend="administration"/>.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>delete <replaceable>directory</replaceable></term>
-  <listitem>
-   <para>
-    Remove the records corresponding to the files found under
-    <replaceable>directory</replaceable> from the register.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>commit</term>
-  <listitem>
-   <para>
-    Write the changes resulting from the last <literal>update</literal>
-    commands to the register. This command is only available if the use of
-    shadow register files is enabled
-    (see <xref linkend="shadow-registers"/>).
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>clean</term>
-  <listitem><para>
-    Clean shadow files and "forget" changes.
-   </para></listitem>
- </varlistentry>
- <varlistentry>
-  <term>create <replaceable>database</replaceable></term>
-  <listitem><para>
-    Create database.
-   </para></listitem>
- </varlistentry>
- <varlistentry>
-  <term>drop <replaceable>database</replaceable></term>
-  <listitem><para>
-    Drop database (delete database).
-   </para></listitem>
- </varlistentry>
- <varlistentry>
-  <term>init</term>
-  <listitem><para>
-    Deletes an entire register (all files in shadow+register areas).
-   </para></listitem>
- </varlistentry>
-</variablelist>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document: "zebra.xml"
-sgml-local-catalogs: nil
-sgml-namecase-general:t
-End:
--->
diff --git a/doc/zebraidx-man.xml b/doc/zebraidx-man.xml
deleted file mode 100644 (file)
index f75cbd6..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
-[
-     <!ENTITY zebraidx-options SYSTEM "zebraidx-options.xml">
-     <!ENTITY zebraidx-commands SYSTEM "zebraidx-commands.xml">
-     <!ENTITY % ref-head "the section entitled">
-     <!ENTITY % ref-tail "in <citetitle>Zebra - User's Guide
-       and Reference</citetitle>">
-
-     <!ENTITY ref-architecture-representation "">
-     <!ENTITY ref-local-representation "<citetitle>Local Representation</citetitle>">
-     <!ENTITY ref-record-types "<citetitle>Record Types</citetitle>">
-     <!ENTITY ref-configuration-file "<citetitle>The Zebra Configuration File</citetitle>">
-     <!ENTITY ref-shadow-registers "<citetitle>Safe Updating - Using Shadow
-       Registers</citetitle>">
-]>
-<!-- $Id: zebraidx-man.xml,v 1.1 2006-05-24 19:12:46 adam Exp $ -->
-<refentry id="zebraidx">
- <refmeta>
-  <refentrytitle>zebraidx</refentrytitle>
-  <manvolnum>1</manvolnum>
- </refmeta>
- <refnamediv>
-  <refname>zebraidx</refname>
-  <refpurpose>Zebra Administrative Tool</refpurpose>
- </refnamediv>
- <refsynopsisdiv>
-  <cmdsynopsis>
-   <command>zebraidx</command>
-   <arg choice="opt"><option>-t <replaceable>type</replaceable></option></arg>
-   <arg choice="opt"><option>-c <replaceable>config</replaceable></option></arg>
-   <arg choice="opt"><option>-g <replaceable>group</replaceable></option></arg>
-   <arg choice="opt"><option>-d <replaceable>database</replaceable></option></arg>
-   <arg choice="opt"><option>-m <replaceable>mbytes</replaceable></option></arg>
-   <arg choice="opt"><option>-n</option></arg>
-   <arg choice="opt"><option>-s</option></arg>
-   <arg choice="opt"><option>-v <replaceable>level</replaceable></option></arg>
-   <arg choice="opt"><option>-l <replaceable>file</replaceable></option></arg>
-   <arg choice="opt"><option>-L</option></arg>
-   <arg choice="opt"><option>-f <replaceable>number</replaceable></option></arg>
-   <arg choice="opt"><option>-v</option></arg>
-   <arg choice="req"><replaceable>command</replaceable></arg>
-   <arg choice="opt" rep="repeat"><replaceable>file</replaceable></arg>
-  </cmdsynopsis>
- </refsynopsisdiv>
- <refsect1><title>DESCRIPTION</title>
-  <para>
-   <command>zebraidx</command> allows you to insert, delete or updates
-   records in Zebra. <command>zebraidx</command> accepts a set options
-   (see below) and exactly one command (mandatory).
-  </para>
- </refsect1>
- <refsect1>
-   <title>COMMANDS</title>
-  &zebraidx-commands;
- </refsect1>
- <refsect1>
-  <title>OPTIONS</title>
-  &zebraidx-options;
- </refsect1>
- <refsect1><title>FILES</title>
-  <para>
-   <filename>zebra.cfg</filename>
-  </para>
- </refsect1>
- <refsect1><title>SEE ALSO</title>
-  <para>
-   <citerefentry>
-    <refentrytitle>zebrasrv</refentrytitle>
-    <manvolnum>8</manvolnum>
-   </citerefentry>
-  </para>
-  <para id="shadow-registers">
-   See "shadow registers" in Zebra manual
-  </para>
-  <para id="administration">
-   See "administration" in Zebra manual
-  </para>
- </refsect1>
-</refentry>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-local-catalogs: nil
-sgml-namecase-general:t
-End:
--->
diff --git a/doc/zebraidx-options.xml b/doc/zebraidx-options.xml
deleted file mode 100644 (file)
index 6e686b1..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-<!-- 
-   $Id: zebraidx-options.xml,v 1.6 2006-04-25 12:26:27 marc Exp $
-   Options for zebraidx.
-   Included in both manual and man page for zebraidx
--->
-<variablelist>
- <varlistentry>
-  <term>-t <replaceable>type</replaceable></term>
-  <listitem>
-   <para>
-    Update all files as <replaceable>type</replaceable>. Currently, the
-    types supported are <literal>text</literal> and
-    <literal>grs</literal><replaceable>.subtype</replaceable>.
-    If no <replaceable>subtype</replaceable> is provided for the GRS
-    (General Record Structure) type, the canonical input format
-    is assumed (see &ref-architecture-representation;).
-    Generally, it is probably advisable to specify the record types
-    in the <literal>zebra.cfg</literal> file (see
-    &ref-record-types;), to avoid confusion at
-    subsequent updates.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-c <replaceable>config-file</replaceable></term>
-  <listitem>
-   <para>
-    Read the configuration file
-    <replaceable>config-file</replaceable> instead of
-    <literal>zebra.cfg</literal>.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-g <replaceable>group</replaceable></term>
-  <listitem>
-   <para>
-    Update the files according to the group
-    settings for <replaceable>group</replaceable>
-    (see &ref-configuration-file;).
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-d <replaceable>database</replaceable></term>
-  <listitem>
-   <para>
-    The records located should be associated with the database name
-    <replaceable>database</replaceable> for access through the Z39.50 server.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-l <replaceable>file</replaceable></term>
-  <listitem>
-   <para>
-    Write log messages to <replaceable>file</replaceable> instead
-    of <literal>stderr</literal>.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-m <replaceable>mbytes</replaceable></term>
-  <listitem>
-   <para>
-    Use <replaceable>mbytes</replaceable> of memory before flushing
-    keys to background storage. This setting affects performance when
-    updating large databases.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-L</term>
-  <listitem>
-   <para>
-    Makes zebraidx skip symbolic links. By default, zebraidx follows
-    them.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-n</term>
-  <listitem>
-   <para>
-    Disable the use of shadow registers for this operation
-    (see &ref-shadow-registers;).
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-s</term>
-  <listitem>
-   <para>
-    Show analysis of the indexing process. The maintenance
-    program works in a read-only mode and doesn't change the state
-    of the index. This options is very useful when you wish to test a
-    new profile.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-V</term>
-  <listitem>
-   <para>
-    Show Zebra version.
-   </para>
-  </listitem>
- </varlistentry>
- <varlistentry>
-  <term>-v <replaceable>level</replaceable></term>
-  <listitem>
-   <para>
-    Set the log level to <replaceable>level</replaceable>.
-    <replaceable>level</replaceable> should be one of
-    <literal>none</literal>, <literal>debug</literal>, and
-    <literal>all</literal>.
-   </para>
-  </listitem>
- </varlistentry>
-</variablelist>
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document: "zebra.xml"
-sgml-local-catalogs: nil
-sgml-namecase-general:t
-End:
--->
index 2432195..151f246 100644 (file)
@@ -1,16 +1,31 @@
-<chapter id="zebraidx">
- <!-- $Id: zebraidx.xml,v 1.8 2006-04-25 12:26:27 marc Exp $ -->
- <title>Running the Maintenance Interface (zebraidx)</title>
- <para>
-  The following is a complete reference to the command line interface to
-  the <literal>zebraidx</literal> application.
- </para>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 
+ "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+[
+     <!ENTITY % local SYSTEM "local.ent">
+     %local;
+     <!ENTITY % entities SYSTEM "entities.ent">
+     %entities;
+     <!ENTITY % common SYSTEM "common/common.ent">
+     %common;
+]>
+<!-- $Id: zebraidx.xml,v 1.9 2006-09-05 12:01:31 adam Exp $ -->
+<refentry id="zebraidx">
+ <refentryinfo>
+  <productname>ZEBRA</productname>
+  <productnumber>&version;</productnumber>
+ </refentryinfo>
 
- <para>
-  Syntax
-  </para>
-  
+ <refmeta>
+  <refentrytitle>zebraidx</refentrytitle>
+  <manvolnum>1</manvolnum>
+ </refmeta>
+ <refnamediv>
+  <refname>zebraidx</refname>
+  <refpurpose>Zebra Administrative Tool</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
   <cmdsynopsis>
    <command>zebraidx</command>
    <arg choice="opt"><option>-t <replaceable>type</replaceable></option></arg>
    <arg choice="req"><replaceable>command</replaceable></arg>
    <arg choice="opt" rep="repeat"><replaceable>file</replaceable></arg>
   </cmdsynopsis>
-  
- <!-- ### swap order of commands and options -->
+ </refsynopsisdiv>
  
- <para>
-  Commands
-   &zebraidx-commands;
+ <refsect1><title>DESCRIPTION</title>
+  <para>
+   <command>zebraidx</command> allows you to insert, delete or updates
+   records in Zebra. <command>zebraidx</command> accepts a set options
+   (see below) and exactly one command (mandatory).
   </para>
+ </refsect1>
+ <refsect1>
+  <title>COMMANDS</title>
   
+  <variablelist>
+   <varlistentry>
+    <term>update <replaceable>directory</replaceable></term>
+    <listitem>
+     <para>
+      Update the register with the files contained in
+      <replaceable>directory</replaceable>.
+      If no directory is provided, a list of files is read from
+      <literal>stdin</literal>.
+      See <link linkend="administration">Administration</link> in the Zebra
+      Manual.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>delete <replaceable>directory</replaceable></term>
+    <listitem>
+     <para>
+      Remove the records corresponding to the files found under
+      <replaceable>directory</replaceable> from the register.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>commit</term>
+    <listitem>
+     <para>
+      Write the changes resulting from the last <literal>update</literal>
+      commands to the register. This command is only available if the use of
+      shadow register files is enabled
+      (see <link linkend="shadow-registers">Shadow Registers</link> in the
+      Zebra Manual).
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>clean</term>
+    <listitem><para>
+      Clean shadow files and "forget" changes.
+   </para></listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>create <replaceable>database</replaceable></term>
+    <listitem><para>
+      Create database.
+     </para></listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>drop <replaceable>database</replaceable></term>
+    <listitem><para>
+      Drop database (delete database).
+     </para></listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>init</term>
+    <listitem><para>
+      Deletes an entire register (all files in shadow+register areas).
+     </para></listitem>
+   </varlistentry>
+  </variablelist>
+ </refsect1>
+ <refsect1>
+  <title>OPTIONS</title>
+  <variablelist>
+   
+   <varlistentry>
+    <term>-t <replaceable>type</replaceable></term>
+    <listitem>
+     <para>
+      Update all files as <replaceable>type</replaceable>. Currently, the
+      types supported are <literal>text</literal>, <literal>alvis</literal>
+      and <literal>grs</literal><replaceable>.subtype</replaceable>.
+      Generally, it is probably advisable to specify the record types
+      in the <literal>zebra.cfg</literal> file (see
+      <link linkend="record-types">Record Types</link> in the Zebra manual),
+      to avoid confusion at subsequent updates.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>-c <replaceable>config-file</replaceable></term>
+    <listitem>
+     <para>
+      Read the configuration file
+      <replaceable>config-file</replaceable> instead of
+      <literal>zebra.cfg</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>-g <replaceable>group</replaceable></term>
+    <listitem>
+     <para>
+      Update the files according to the group
+      settings for <replaceable>group</replaceable>
+      (see <link linkend="zebra-cfg">Zebra Configuration File</link> in
+      the Zebra manual).
+   </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>-d <replaceable>database</replaceable></term>
+    <listitem>
+     <para>
+      The records located should be associated with the database name
+      <replaceable>database</replaceable> for access through the Z39.50 server.
+     </para>
+    </listitem>
+   </varlistentry>
+   
+   <varlistentry>
+    <term>-l <replaceable>file</replaceable></term>
+    <listitem>
+   <para>
+      Write log messages to <replaceable>file</replaceable> instead
+      of <literal>stderr</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+   
+   <varlistentry>
+    <term>-m <replaceable>mbytes</replaceable></term>
+    <listitem>
+     <para>
+      Use <replaceable>mbytes</replaceable> of memory before flushing
+      keys to background storage. This setting affects performance when
+      updating large databases.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>-L</term>
+    <listitem>
+     <para>
+      Makes zebraidx skip symbolic links. By default, zebraidx follows
+      them.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>-n</term>
+    <listitem>
+     <para>
+      Disable the use of shadow registers for this operation
+      (see <link linkend="shadow-registers">Shadow Registers in
+       the Zebra manual</link>).
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>-s</term>
+    <listitem>
+     <para>
+      Show analysis of the indexing process. The maintenance
+      program works in a read-only mode and doesn't change the state
+      of the index. This options is very useful when you wish to test a
+      new profile.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>-V</term>
+    <listitem>
+     <para>
+      Show Zebra version.
+     </para>
+    </listitem>
+   </varlistentry>
+ <varlistentry>
+    <term>-v <replaceable>level</replaceable></term>
+    <listitem>
+     <para>
+      Set the log level to <replaceable>level</replaceable>.
+      <replaceable>level</replaceable> should be one of
+      <literal>none</literal>, <literal>debug</literal>, and
+      <literal>all</literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+ </refsect1>
+ <refsect1><title>FILES</title>
   <para>
-   Options:
-   &zebraidx-options;
- </para>
+   <filename>zebra.cfg</filename>
+  </para>
+ </refsect1>
+ <refsect1><title>SEE ALSO</title>
+  <para>
+   <citerefentry>
+    <refentrytitle>zebrasrv</refentrytitle>
+    <manvolnum>8</manvolnum>
+   </citerefentry>
+  </para>
+</refsect1>
+</refentry>
 
-</chapter>
- <!-- Keep this comment at the end of the file
- Local variables:
- mode: sgml
- sgml-omittag:t
- sgml-shorttag:t
- sgml-minimize-attributes:nil
- sgml-always-quote-attributes:t
- sgml-indent-step:1
- sgml-indent-data:t
- sgml-parent-document: "zebra.xml"
- sgml-local-catalogs: nil
- sgml-namecase-general:t
- End:
- -->
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-local-catalogs: nil
+sgml-namecase-general:t
+End:
+-->
diff --git a/doc/zebrasrv-man.xml b/doc/zebrasrv-man.xml
deleted file mode 100644 (file)
index 07aa192..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 
- "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
-[
-     <!ENTITY % local SYSTEM "local.ent">
-     %local;
-     <!ENTITY % entities  SYSTEM "entities.ent">
-     %entities;
-     <!ENTITY % common  SYSTEM "common/common.ent">
-     %common;
-     <!ENTITY zebrasrv-synopsis SYSTEM "zebrasrv-synopsis.xml">
-     <!ENTITY zebrasrv-options SYSTEM "zebrasrv-options.xml">
-     <!ENTITY zebrasrv-virtual SYSTEM "zebrasrv-virtual.xml">
-     <!ENTITY gfs-synopsis-app "zebrasrv">
-     <!ENTITY reference-tools-cql-map 'section "Specifiction of CQL to RPN mappings"'>
-]>
-
-     <!-- <!ENTITY zebrasrv-commands SYSTEM "zebrasrv-commands.xml"> -->
-
-
-<!-- $Id: zebrasrv-man.xml,v 1.2 2006-06-13 13:45:08 marc Exp $ -->
-<refentry id="zebrasrv">
- <refmeta>
-  <refentrytitle>zebrasrv</refentrytitle>
-  <manvolnum>8</manvolnum>
- </refmeta>
- <refnamediv>
-  <refname>zebrasrv</refname>
-  <refpurpose>Zebra Server</refpurpose>
- </refnamediv>
-  
- <refsynopsisdiv>
-  <!--
-  <cmdsynopsis>
-   <command>zebrasrv</command>
-   <arg choice="opt"><option>-a <replaceable>file</replaceable></option></arg>
-   <arg choice="opt"><option>-v <replaceable>level</replaceable></option></arg>
-   <arg choice="opt"><option>-l <replaceable>file</replaceable></option></arg>
-   <arg choice="opt"><option>-u <replaceable>uid</replaceable></option></arg>
-   <arg choice="opt"><option>-c <replaceable>config</replaceable></option></arg>
-   <arg choice="opt"><option>-t <replaceable>minutes</replaceable></option></arg>
-   <arg choice="opt"><option>-k <replaceable>kilobytes</replaceable></option></arg>
-   <arg choice="opt"><option>-d <replaceable>daemon</replaceable></option></arg>
-   <arg choice="opt"><option>-w <replaceable>dir</replaceable></option></arg>
-   <arg choice="opt"><option>-ziST1</option></arg>
-   <arg choice="opt" rep="repeat">listener-spec</arg>
-  </cmdsynopsis>
-  -->
-  &zebrasrv-synopsis;
- </refsynopsisdiv>
-  <refsect1><title>DESCRIPTION</title>
-    <para>Zebra 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>
-    <command>zebrasrv</command> is the Z39.50 and SRW/U frontend
-    server for the <command>Zebra</command> indexer.
-   </para> 
-   <para> 
-    On Unix you can run the <command>zebrasrv</command>
-    server from the command line - and put it
-    in the background. It may also operate under the inet daemon.
-    On WIN32 you can run the server as a console application or
-    as a WIN32 Service.
-   </para>
-  </refsect1>
- <!--
- <refsect1>
-   <title>COMMANDS</title>
-  &zebrasrv-commands;
- </refsect1>
- -->
-  <refsect1>
-   <title>OPTIONS</title>
-    
-   <para>
-    The options for <command>zebrasrv</command> are the same
-    as those for YAZ' <command>yaz-ztest</command>.
-    Option <literal>-c</literal> specifies a Zebra configuration
-    file - if omitted <filename>zebra.cfg</filename> is read.
-   </para>
-   
-  &zebrasrv-options;
-  </refsect1>
-  <refsect1><title>VIRTUAL HOSTS</title>
-    <para>
-     <command>zebrasrv</command> uses the YAZ server
-    </para>
-    &zebrasrv-virtual;
-  </refsect1>
-  <refsect1><title>FILES</title>
-   <para>
-    <filename>zebra.cfg</filename>
-   </para>
-  </refsect1>
-  <refsect1><title>SEE ALSO</title>
-   <para>
-    <citerefentry>
-     <refentrytitle>zebraidx</refentrytitle>
-     <manvolnum>1</manvolnum>
-    </citerefentry>,
-    <citerefentry>
-     <refentrytitle>yaz-ztest</refentrytitle>
-     <manvolnum>8</manvolnum>
-    </citerefentry>
-   </para>
-   <para>
-    Section "The Z39.50 Server" in the Zebra manual.
-    <filename>http://www.indexdata.dk/zebra/doc/server.tkl</filename>
-   </para>
-   <para>
-    Section "Virtual Hosts" in the YAZ manual.
-    <filename>http://www.indexdata.dk/yaz/doc/server.vhosts.tkl</filename>
-   </para>
-   <para>
-    Section "Specification of CQL to RPN mappings" in the YAZ manual.
-    <filename>http://www.indexdata.dk/yaz/doc/tools.tkl#tools.cql.map</filename>
-   </para>
-   <para>
-    The Zebra software is Copyright <command>Index Data</command> 
-    <filename>http://www.indexdata.dk</filename>
-    and distributed under the
-    GPLv2 license.
-   </para> 
-  </refsect1>
-</refentry>
-
-<!-- Keep this comment at the end of the file
-Local variables:
-mode: sgml
-sgml-omittag:t
-sgml-shorttag:t
-sgml-minimize-attributes:nil
-sgml-always-quote-attributes:t
-sgml-indent-step:1
-sgml-indent-data:t
-sgml-parent-document:nil
-sgml-local-catalogs: nil
-sgml-namecase-general:t
-End:
--->
index dcda2b0..ac884c4 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 
-   $Id: zebrasrv-options.xml,v 1.5 2006-04-25 12:26:27 marc Exp $
+   $Id: zebrasrv-options.xml,v 1.6 2006-09-05 12:01:31 adam Exp $
    Options for generic frontend server and yaz-ztest.
    Included in both manual and man page for yaz-ztest
    Note - these files have been altered for zebrasrv, and are not in
@@ -269,7 +269,7 @@ sgml-minimize-attributes:nil
 sgml-always-quote-attributes:t
 sgml-indent-step:1
 sgml-indent-data:t
-sgml-parent-document: "yaz.xml"
+sgml-parent-document: "zebrasrv.xml"
 sgml-local-catalogs: nil
 sgml-namecase-general:t
 End:
index b63a84c..2671aeb 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 
-   $Id: zebrasrv-synopsis.xml,v 1.3 2006-04-25 12:26:27 marc Exp $
+   $Id: zebrasrv-synopsis.xml,v 1.4 2006-09-05 12:01:31 adam Exp $
    cmd description of YAZ GFS application.
    Included in both manual and man page for yaz-ztest
 -->
@@ -34,7 +34,7 @@ sgml-minimize-attributes:nil
 sgml-always-quote-attributes:t
 sgml-indent-step:1
 sgml-indent-data:t
-sgml-parent-document: "yaz.xml"
+sgml-parent-document: "zebrasrv.xml"
 sgml-local-catalogs: nil
 sgml-namecase-general:t
 End:
index 248ab14..cc428f1 100644 (file)
@@ -1,5 +1,5 @@
 <!-- 
-   $Id: zebrasrv-virtual.xml,v 1.7 2006-06-13 13:45:08 marc Exp $
+   $Id: zebrasrv-virtual.xml,v 1.8 2006-09-05 12:01:31 adam Exp $
    Description of the virtual host mechanism in YAZ GFS
    Included in both manual and man page for yaz-ztest
 -->
@@ -12,9 +12,9 @@
 <para>
  A backend can be configured to execute in a particular working
  directory. Or the YAZ frontend may perform <ulink url="&url.cql;">CQL</ulink> to RPN conversion, thus
- allowing traditional Z39.50 backends to be offered as a  <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>/ <ulink url="&url.sru;">SRU</ulink>
- service.  <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>/ <ulink url="&url.sru;">SRU</ulink> Explain information for a particular backend may also
- be specified.
+ allowing traditional Z39.50 backends to be offered as a  
+<ulink url="&url.sru;">SRU</ulink> service. 
+ SRU Explain information for a particular backend may also be specified.
 </para>
 <para>
  For the HTTP protocol, the virtual host is specified in the Host header.
   <varlistentry><term>element <literal>explain</literal> (optional)</term>
    <listitem>
     <para>
-     Specifies  <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>/ <ulink url="&url.sru;">SRU</ulink> ZeeRex content for this server. Copied verbatim
-     to the client. As things are now, some of the Explain content
-     seems redundant because host information, etc. is also stored
-     elsewhere.
+     Specifies <ulink url="&url.sru;">SRU</ulink> ZeeRex content for this
+     server - copied verbatim to the client.
+     As things are now, some of the Explain content seems redundant
+     because host information, etc. is also stored elsewhere.
     </para>
     <para>
      The format of the Explain record is described in detail, with
-     examples, on the file ZeeRex web-site,
-     <ulink url="http://explain.z3950.org/"></ulink>.
+     examples, on the file at the
+     <ulink url="&url.zeerex.explain;">ZeeRex</ulink> web-site.
     </para>
    </listitem>
   </varlistentry>
@@ -218,7 +218,7 @@ sgml-minimize-attributes:nil
 sgml-always-quote-attributes:t
 sgml-indent-step:1
 sgml-indent-data:t
-sgml-parent-document: "yaz.xml"
+sgml-parent-document: "zebrasrv.xml"
 sgml-local-catalogs: nil
 sgml-namecase-general:t
 End:
diff --git a/doc/zebrasrv.xml b/doc/zebrasrv.xml
new file mode 100644 (file)
index 0000000..43c45c4
--- /dev/null
@@ -0,0 +1,509 @@
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 
+ "http://www.oasis-open.org/docbook/xml/4.1/docbookx.dtd"
+[
+     <!ENTITY % local SYSTEM "local.ent">
+     %local;
+     <!ENTITY % entities  SYSTEM "entities.ent">
+     %entities;
+     <!ENTITY % common  SYSTEM "common/common.ent">
+     %common;
+]>
+ <!-- $Id: zebrasrv.xml,v 1.1 2006-09-05 12:01:31 adam Exp $ -->
+<refentry id="zebrasrv">
+ <refentryinfo>
+  <productname>ZEBRA</productname>
+  <productnumber>&version;</productnumber>
+ </refentryinfo>
+
+ <refmeta>
+  <refentrytitle>zebrasrv</refentrytitle>
+  <manvolnum>8</manvolnum>
+ </refmeta>
+ <refnamediv>
+  <refname>zebrasrv</refname>
+  <refpurpose>Zebra Server</refpurpose>
+ </refnamediv>
+
+ <refsynopsisdiv>
+  &zebrasrv-synopsis;
+ </refsynopsisdiv>
+  <refsect1><title>DESCRIPTION</title>
+  <para>Zebra 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>
+   <command>zebrasrv</command> is the Z39.50 and SRU frontend
+   server for the <command>Zebra</command> search engine and indexer.
+  </para> 
+  <para> 
+   On Unix you can run the <command>zebrasrv</command>
+   server from the command line - and put it
+   in the background. It may also operate under the inet daemon.
+   On WIN32 you can run the server as a console application or
+   as a WIN32 Service.
+  </para>
+ </refsect1>
+ <refsect1>
+  <title>OPTIONS</title>
+  
+   <para>
+   The options for <command>zebrasrv</command> are the same
+   as those for YAZ' <command>yaz-ztest</command>.
+   Option <literal>-c</literal> specifies a Zebra configuration
+   file - if omitted <filename>zebra.cfg</filename> is read.
+  </para>
+  
+  &zebrasrv-options;
+ </refsect1>
+ <refsect1 id="protocol-support">
+  <title>Z39.50 Protocol Support and Behavior</title>
+
+  <refsect2 id="zebrasrv-initialization">
+   <title>Z39.50 Initialization</title>
+
+   <para>
+    During initialization, the server will negotiate to version 3 of the
+    Z39.50 protocol, and the option bits for Search, Present, Scan,
+    NamedResultSets, and concurrentOperations will be set, if requested by
+    the client. The maximum PDU size is negotiated down to a maximum of
+    1 MB by default.
+   </para>
+
+  </refsect2>
+
+  <refsect2 id="zebrasrv-search">
+   <title>Z39.50 Search</title>
+   
+   <para>
+    The supported query type are 1 and 101. All operators are currently
+    supported with the restriction that only proximity units of type "word"
+    are supported for the proximity operator.
+    Queries can be arbitrarily complex.
+    Named result sets are supported, and result sets can be used as operands
+    without limitations.
+    Searches may span multiple databases.
+   </para>
+   
+   <para>
+    The server has full support for piggy-backed retrieval (see
+    also the following section).
+   </para>
+
+   </refsect2>
+   
+  <refsect2 id="zebrasrv-present">
+   <title>Z39.50 Present</title>
+   <para>
+    The present facility is supported in a standard fashion. The requested
+    record syntax is matched against the ones supported by the profile of
+    each record retrieved. If no record syntax is given, SUTRS is the
+    default. The requested element set name, again, is matched against any
+    provided by the relevant record profiles.
+   </para>
+  </refsect2>
+  <refsect2 id="zebrasrv-scan">
+   <title>Z39.50 Scan</title>
+   <para>
+    The attribute combinations provided with the termListAndStartPoint are
+    processed in the same way as operands in a query (see above).
+    Currently, only the term and the globalOccurrences are returned with
+    the termInfo structure.
+   </para>
+  </refsect2>
+  <refsect2 id="zebrasrv-sort">
+   <title>Z39.50 Sort</title>
+
+   <para>
+    Z39.50 specifies three different types of sort criteria.
+    Of these Zebra supports the attribute specification type in which
+    case the use attribute specifies the "Sort register".
+    Sort registers are created for those fields that are of type "sort" in
+    the default.idx file. 
+    The corresponding character mapping file in default.idx specifies the
+    ordinal of each character used in the actual sort.
+   </para>
+
+   <para>
+    Z39.50 allows the client to specify sorting on one or more input
+    result sets and one output result set.
+    Zebra supports sorting on one result set only which may or may not
+    be the same as the output result set.
+   </para>
+  </refsect2>
+  <refsect2 id="zebrasrv-close">
+   <title>Z39.50 Close</title>
+   <para>
+    If a Close PDU is received, the server will respond with a Close PDU
+    with reason=FINISHED, no matter which protocol version was negotiated
+    during initialization. If the protocol version is 3 or more, the
+    server will generate a Close PDU under certain circumstances,
+    including a session timeout (60 minutes by default), and certain kinds of
+    protocol errors. Once a Close PDU has been sent, the protocol
+    association is considered broken, and the transport connection will be
+    closed immediately upon receipt of further data, or following a short
+    timeout.
+   </para>
+  </refsect2>
+   
+   <refsect2 id="zebrasrv-explain">
+    <title>Z39.50 Explain</title>
+    <para>
+     Zebra maintains a "classic" 
+    <ulink url="&url.z39.50.explain;">Z39.50 Explain</ulink> database
+    on the side. 
+    This database is called <literal>IR-Explain-1</literal> and can be
+    searched using the attribute set <literal>exp-1</literal>.
+   </para>
+   <para>
+    The records in the explain database are of type 
+    <literal>grs.sgml</literal>.
+    The root element for the Explain grs.sgml records is 
+    <literal>explain</literal>, thus 
+    <filename>explain.abs</filename> is used for indexing.
+   </para>
+   <note>
+     <para>
+     Zebra <emphasis>must</emphasis> be able to locate
+     <filename>explain.abs</filename> in order to index the Explain
+     records properly. Zebra will work without it but the information
+     will not be searchable.
+    </para>
+   </note>
+  </refsect2>
+ </refsect1>
+ <refsect1 id="zebrasrv-sru">
+  <title>The SRU Server</title>
+  <para>
+   In addition to Z39.50, Zebra supports the more recent and
+   web-friendly IR protocol <ulink url="&url.sru;">SRU</ulink>.
+    SRU can be carried over SOAP or a REST-like protocol
+    that uses HTTP GET or POST to request search responses.  The request
+    itself is made of parameters such as
+    <literal>query</literal>,
+    <literal>startRecord</literal>,
+    <literal>maximumRecords</literal>
+    and
+    <literal>recordSchema</literal>;
+    the response is an XML document containing hit-count, result-set
+    records, diagnostics, etc.  SRU can be thought of as a re-casting
+    of Z39.50 semantics in web-friendly terms; or as a standardisation
+    of the ad-hoc query parameters used by search engines such as Google
+    and AltaVista; or as a superset of A9's OpenSearch (which it
+    predates).
+  </para>
+  <para>
+   Zebra supports Z39.50, SRU GET, SRU POST, SRU SOAP (SRW)
+   - on the same port, recognising what protocol is used by each incoming
+   requests and handling them accordingly.  This is a achieved through
+   the use of Deep Magic; civilians are warned not to stand too close.
+  </para>
+ <refsect2 id="zebrasrv-sru-run">
+  <title>Running zebrasrv as an SRU Server</title>
+  <para>
+   Because Zebra supports all protocols on one port, it would
+   seem to follow that the SRU server is run in the same way as
+   the Z39.50 server, as described above.  This is true, but only in
+   an uninterestingly vacuous way: a Zebra server run in this manner
+   will indeed recognise and accept SRU requests; but since it
+   doesn't know how to handle the CQL queries that these protocols
+   use, all it can do is send failure responses.
+  </para>
+  <note>
+   <para>
+    It is possible to cheat, by having SRU search Zebra with
+    a PQF query instead of CQL, using the
+    <literal>x-pquery</literal>
+    parameter instead of
+    <literal>query</literal>.
+    This is a
+    <emphasis role="strong">non-standard extension</emphasis>
+    of CQL, and a
+    <emphasis role="strong">very naughty</emphasis>
+    thing to do, but it does give you a way to see Zebra serving SRU
+    ``right out of the box''.  If you start your favourite Zebra
+    server in the usual way, on port 9999, then you can send your web
+    browser to:
+  </para>
+   <screen>
+    http://localhost:9999/Default?version=1.1
+     &amp;operation=searchRetrieve
+     &amp;x-pquery=mineral
+     &amp;startRecord=1
+     &amp;maximumRecords=1
+   </screen>
+   <para>
+    This will display the XML-formatted SRU response that includes the
+    first record in the result-set found by the query
+    <literal>mineral</literal>.  (For clarity, the SRU URL is shown
+    here broken across lines, but the lines should be joined to gether
+    to make single-line URL for the browser to submit.)
+   </para>
+  </note>
+  <para>
+   In order to turn on Zebra's support for CQL queries, it's necessary
+   to have the YAZ generic front-end (which Zebra uses) translate them
+   into the Z39.50 Type-1 query format that is used internally.  And
+   to do this, the generic front-end's own configuration file must be
+   used.  See <xref linkend="gfs-config"/>;
+   the salient point for SRU support is that
+   <command>zebrasrv</command>
+   must be started with the
+   <literal>-f&nbsp;frontendConfigFile</literal>
+   option rather than the
+   <literal>-c&nbsp;zebraConfigFile</literal>
+   option,
+   and that the front-end configuration file must include both a
+   reference to the Zebra configuration file and the CQL-to-PQF
+   translator configuration file.
+  </para>
+  <para>
+   A minimal front-end configuration file that does this would read as
+   follows:
+  </para>
+  <screen>
+<![CDATA[
+       <yazgfs>
+         <server>
+           <config>zebra.cfg</config>
+           <cql2rpn>../../tab/pqf.properties</cql2rpn>
+         </server>
+       </yazgfs>
+]]></screen>
+  <para>
+   The
+   <literal>&lt;config&gt;</literal>
+   element contains the name of the Zebra configuration file that was
+   previously specified by the
+   <literal>-c</literal>
+   command-line argument, and the
+   <literal>&lt;cql2rpn&gt;</literal>
+   element contains the name of the CQL properties file specifying how
+   various CQL indexes, relations, etc. are translated into Type-1
+   queries.
+  </para>
+  <para>
+   A zebra server running with such a configuration can then be
+   queried using proper, conformant SRU URLs with CQL queries:
+  </para>
+  <screen>
+   http://localhost:9999/Default?version=1.1
+    &amp;operation=searchRetrieve
+    &amp;query=title=utah and description=epicent*
+    &amp;startRecord=1
+    &amp;maximumRecords=1
+   </screen>
+  </refsect2>
+ </refsect1>
+ <refsect1 id="zebrasrv-sru-support">
+  <title>SRU Protocol Support and Behavior</title>
+  <para>
+   Zebra running as an SRU server supports SRU version 1.1, including
+   CQL version 1.1.  In particular, it provides support for the
+   following elements of the protocol.
+  </para>
+  
+  <refsect2 id="zebrasrvr-search-and-retrieval">
+   <title>SRU Search and Retrieval</title>
+   <para>
+    Zebra supports the 
+    <ulink url="&url.sru.searchretrieve;">SRU searchRetrieve</ulink>
+    operation.
+   </para>
+   <para>
+    One of the great strengths of SRU is that it mandates a standard
+    query language, CQL, and that all conforming implementations can
+    therefore be trusted to correctly interpret the same queries.  It
+    is with some shame, then, that we admit that Zebra also supports
+    an additional query language, our own Prefix Query Format 
+    (<ulink url="&url.yaz.pqf;">PQF</ulink>).
+    A PQF query is submitted by using the extension parameter
+    <literal>x-pquery</literal>,
+    in which case the
+    <literal>query</literal>
+    parameter must be omitted, which makes the request not valid SRU.
+    Please don't do this.
+   </para>
+  </refsect2>
+  
+  <refsect2 id="zebrasrv-sru-scan">
+   <title>SRU Scan</title>
+   <para>
+    Zebra supports <ulink url="&url.sru.scan;">SRU scan</ulink>
+    operation.
+    Scanning using CQL syntax is the default, where the
+    standard <literal>scanClause</literal> parameter is used.
+   </para>
+   <para>
+    In addition, a
+    mutant form of SRU scan is supported, using
+    the non-standard <literal>x-pScanClause</literal> parameter in
+    place of the standard <literal>scanClause</literal> to scan on a
+    PQF query clause.
+   </para>
+  </refsect2>
+
+  <refsect2 id="zebrasrv-sru-explain">
+   <title>SRU Explain</title>
+   <para>
+    Zebra supports <ulink url="&url.sru.explain;">SRU explain</ulink>.
+   </para>
+   <para>
+    The ZeeRex record explaining a database may be requested either
+    with a fully fledged SRU request (with
+    <literal>operation</literal>=<literal>explain</literal>
+    and version-number specified)
+    or with a simple HTTP GET at the server's basename.
+    The ZeeRex record returned in response is the one embedded
+    in the YAZ Frontend Server configuration file that is described in the
+    <xref linkend="gfs-config"/>.
+   </para>
+    <para>
+     Unfortunately, the data found in the 
+    CQL-to-PQF text file must be added by hand-craft into the explain
+    section of the YAZ Frontend Server configuration file to be able
+    to provide a suitable explain record. 
+    Too bad, but this is all extreme
+    new alpha stuff, and a lot of work has yet to be done ..
+   </para>
+   <para>
+    There is no linkeage whatsoever between the Z39.50 explain model
+    and the SRU explain response (well, at least not implemented
+    in Zebra, that is ..).  Zebra does not provide a means using
+    Z39.50 to obtain the ZeeRex record.
+   </para>
+  </refsect2>
+
+  <refsect2 id="zebrasrv-non-sru-ops">
+   <title>Other SRU operations</title>
+   <para>
+    In the Z39.50 protocol, Initialization, Present, Sort and Close
+    are separate operations.  In SRU, however, these operations do not
+    exist.
+   </para>
+   <itemizedlist>
+    <listitem>
+     <para>
+      SRU has no explicit initialization handshake phase, but
+      commences immediately with searching, scanning and explain
+      operations.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Neither does SRU have a close operation, since the protocol is
+      stateless and each request is self-contained.  (It is true that
+      multiple SRU request/response pairs may be implemented as
+      multiple HTTP request/response pairs over a single persistent
+      TCP/IP connection; but the closure of that connection is not a
+      protocol-level operation.)
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Retrieval in SRU is part of the
+      <literal>searchRetrieve</literal> operation, in which a search
+      is submitted and the response includes a subset of the records
+      in the result set.  There is no direct analogue of Z39.50's
+      Present operation which requests records from an established
+      result set.  In SRU, this is achieved by sending a subsequent
+      <literal>searchRetrieve</literal> request with the query
+      <literal>cql.resultSetId=</literal><emphasis>id</emphasis> where 
+      <emphasis>id</emphasis> is the identifier of the previously
+      generated result-set.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Sorting in CQL is done within the
+      <literal>searchRetrieve</literal> operation - in v1.1, by an
+      explicit <literal>sort</literal> parameter, but the forthcoming
+      v1.2 or v2.0 will most likely use an extension of the query
+      language, <ulink url="&url.cql.sorting;">CQL sorting</ulink>.
+     </para>
+    </listitem>
+   </itemizedlist>
+   <para>
+    It can be seen, then, that while Zebra operating as an SRU server
+    does not provide the same set of operations as when operating as a
+    Z39.50 server, it does provide equivalent functionality.
+   </para>
+  </refsect2>
+ </refsect1>
+  
+ <refsect1 id="zebrasrv-sru-examples">
+   <title>SRU Examples</title>
+    <para>
+    Surf into <literal>http://localhost:9999</literal>
+     to get an explain response, or use
+    <screen><![CDATA[
+     http://localhost:9999/?version=1.1&operation=explain
+     ]]></screen>
+    </para>
+   <para>
+    See number of hits for a query
+    <screen><![CDATA[
+     http://localhost:9999/?version=1.1&operation=searchRetrieve
+     &query=text=(plant%20and%20soil)
+     ]]></screen>
+   </para>
+   <para>
+    Fetch record 5-7 in Dublin Core format
+    <screen><![CDATA[
+     http://localhost:9999/?version=1.1&operation=searchRetrieve
+                       &query=text=(plant%20and%20soil)
+                       &startRecord=5&maximumRecords=2&recordSchema=dc
+     ]]></screen>
+   </para>
+   <para>
+    Even search using PQF queries using the <emphasis>extended naughty 
+     verb</emphasis> <literal>x-pquery</literal>
+    <screen><![CDATA[
+      http://localhost:9999/?version=1.1&operation=searchRetrieve
+                       &x-pquery=@attr%201=text%20@and%20plant%20soil
+     ]]></screen>
+   </para>
+   <para>
+    Or scan indexes using the <emphasis>extended extremely naughty 
+     verb</emphasis> <literal>x-pScanClause</literal>
+    <screen><![CDATA[
+      http://localhost:9999/?version=1.1&operation=scan
+                       &x-pScanClause=@attr%201=text%20something
+     ]]></screen>
+    <emphasis>Don't do this in production code!</emphasis>
+    But it's a great fast debugging aid.
+   </para>
+
+ </refsect1>
+
+ <refsect1 id="gfs-config"><title>YAZ server virtual hosts</title>
+  &zebrasrv-virtual;
+ </refsect1>
+
+ <refsect1><title>SEE ALSO</title>
+  <para>
+   <citerefentry>
+    <refentrytitle>zebraidx</refentrytitle>
+    <manvolnum>1</manvolnum>
+   </citerefentry>
+  </para>
+</refsect1>
+</refentry>
+
+ <!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:t
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document: "zebra.xml"
+ sgml-local-catalogs: nil
+ sgml-namecase-general:t
+ End:
+ -->