Change makefiles so that html files are automatically installed and
authorAdam Dickmeiss <adam@indexdata.dk>
Sun, 3 Sep 2006 21:37:26 +0000 (21:37 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Sun, 3 Sep 2006 21:37:26 +0000 (21:37 +0000)
part of dist. No more maintenance of HTMLFILES ...
Section about fields and character maps moved to separate chapter
because it relates to all record types (not only grs).
Added lots of id attributes to sections to get rid of docbook xsl
warnings and to ensure proper HTML file name.
Added Olegs paper on MARC indexing to grs chapter.

14 files changed:
doc/Makefile.am
doc/administration.xml
doc/architecture.xml
doc/entities.ent
doc/examples.xml
doc/field-structure.xml [new file with mode: 0644]
doc/installation.xml
doc/introduction.xml
doc/license.xml
doc/querymodel.xml
doc/recordmodel-alvisxslt.xml
doc/recordmodel-grs.xml
doc/server.xml
doc/zebra.xml

index c678466..43308ed 100644 (file)
@@ -1,4 +1,4 @@
-## $Id: Makefile.am,v 1.57 2006-08-14 19:33:38 adam Exp $
+## $Id: Makefile.am,v 1.58 2006-09-03 21:37:26 adam Exp $
 docdir=$(datadir)/doc/$(PACKAGE)$(PACKAGE_SUFFIX)
 
 SUBDIRS = common
@@ -7,6 +7,7 @@ XMLFILES =  \
    administration.xml \
    architecture.xml \
    examples.xml \
+   field-structure.xml \
    idzebra-config-man.xml \
    indexdata.xml \
    installation.xml \
@@ -28,55 +29,7 @@ XMLFILES =  \
    zebrasrv-synopsis.xml \
    zebrasrv-virtual.xml
 
-HTMLFILES =  \
-   administration-extended-services.html \
-   administration-ranking.html \
-   administration.html \
-   architecture-maincomponents.html \
-   architecture-workflow.html \
-   architecture.html \
-   configuration-file.html \
-   example1.html \
-   example2.html \
-   examples.html \
-   features.html \
-   file-ids.html \
-   future.html \
-   generic-ids.html \
-   gfs-config.html \
-   grs-exchange-formats.html \
-   grs-internal-representation.html \
-   index.html \
-   indexdata.html \
-   installation-upgrade.html \
-   installation.debian.html \
-   installation.html \
-   installation.win32.html \
-   introduction-apps.html \
-   introduction-support.html \
-   introduction.html \
-   license.html \
-   locating-records.html \
-   protocol-support.html \
-   querymodel-cql-to-pqf.html \
-   querymodel-pqf.html \
-   querymodel-zebra.html \
-   querymodel.html \
-   quick-start.html \
-   record-model-alvisxslt-conf.html \
-   record-model-alvisxslt.html \
-   record-model-grs-conf.html \
-   record-model-grs.html \
-   register-location.html \
-   server-sru-support.html \
-   server-sru.html \
-   server.html \
-   shadow-registers.html \
-   simple-indexing.html \
-   zebraidx.html \
-   htmlhelp.hhp \
-   toc.hhc 
-
+HTMLFILES =  index.html
 
 PNGFILES=zebra.png
 EPSFILES=zebra.eps
@@ -108,6 +61,7 @@ idzebra-config$(PACKAGE_SUFFIX).1: idzebra-config-man.xml
        mv idzebra-config.1 idzebra-config$(PACKAGE_SUFFIX).1
 
 $(HTMLFILES): $(XMLFILES)
+       rm -f *.html
        $(HTML_COMPILE) $(srcdir)/zebra.xml
 
 index.tkl: $(XMLFILES)
@@ -135,21 +89,16 @@ clean-data-hook:
        rm -f [0-9]* *.bak
 
 dist-hook:
-       if test -f index.html; then for f in *.html; do \
-               found=0; \
-               b=`basename $$f`; \
-               for h in $(HTMLFILES); do \
-                       if test "$$h" = "$$b"; then \
-                               found=1; \
-                       fi \
-               done; \
-               if test "$$found" = "0"; then \
-                       echo "$$f not found in HTMLFILES"; \
-                       exit 1; \
-               fi \
-       done; fi
+       if test -d index.html; then d=.; else d="$(srcdir)"; fi; \
+       for p in $$d/*.html; do \
+               cp $$p $(distdir); \
+       done
 
 install-data-hook:
        cd $(DESTDIR)$(man1dir) && ln -sf zebraidx$(PACKAGE_SUFFIX).1 zebraidx.1
        cd $(DESTDIR)$(man8dir) && ln -sf zebrasrv$(PACKAGE_SUFFIX).8 zebrasrv.8
        cd $(DESTDIR)$(man1dir) && ln -sf idzebra-config$(PACKAGE_SUFFIX).1 idzebra-config.1
+       if test -d index.html; then d=.; else d="$(srcdir)"; fi; \
+       for p in $$d/*.html; \
+               do $(docDATA_INSTALL) $$p $(DESTDIR)/$(docdir); \
+       done
index 0445860..beba166 100644 (file)
@@ -1,5 +1,5 @@
 <chapter id="administration">
- <!-- $Id: administration.xml,v 1.42 2006-08-14 22:33:46 adam Exp $ -->
+ <!-- $Id: administration.xml,v 1.43 2006-09-03 21:37:26 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
@@ -94,7 +94,7 @@
   
  </sect1>
  
- <sect1 id="configuration-file">
+ <sect1 id="zebra-cfg">
   <title>The Zebra Configuration File</title>
   
   <para>
   </para>
   
   <para>
-   (see <xref linkend="record-model-grs"/>
+   (see <xref linkend="grs"/>
     for details of how the mapping between elements of your records and
     searchable attributes is established).
   </para>
  <sect1 id="shadow-registers">
   <title>Safe Updating - Using Shadow Registers</title>
   
-  <sect2>
+  <sect2 id="shadow-registers-description">
    <title>Description</title>
    
    <para>
    
   </sect2>
   
-  <sect2>
+  <sect2 id="shadow-registers-how-to-use">
    <title>How to Use Shadow Register Files</title>
    
    <para>
  <sect1 id="administration-ranking">
   <title>Relevance Ranking and Sorting of Result Sets</title>
 
-  <sect2>
+  <sect2 id="administration-overview">
    <title>Overview</title>
    <para>
     The default ordering of a result set is left up to the server,
index a4872f6..307b828 100644 (file)
@@ -1,11 +1,11 @@
  <chapter id="architecture">
-  <!-- $Id: architecture.xml,v 1.11 2006-06-30 14:36:12 marc Exp $ -->
+  <!-- $Id: architecture.xml,v 1.12 2006-09-03 21:37:26 adam Exp $ -->
   <title>Overview of Zebra Architecture</title>
   
 
-  <sect1 id="architecture-representation">
+  <section id="architecture-representation">
    <title>Local Representation</title>
-
+   
    <para>
     As mentioned earlier, Zebra places few restrictions on the type of
     data that you can index and manage. Generally, whatever the form of
@@ -30,9 +30,9 @@
     "grs" keyword, separated by "." characters.
     -->
    </para>
-  </sect1>
+  </section>
 
-  <sect1 id="architecture-maincomponents">
+  <section id="architecture-maincomponents">
    <title>Main Components</title>
    <para>
     The Zebra system is designed to support a wide range of data management
@@ -58,7 +58,7 @@
     documentation and modules. 
   </para>    
    
-   <sect2 id="componentcore">
+   <section id="componentcore">
     <title>Core Zebra Libraries Containing Common Functionality</title>
     <para>
      The core Zebra module is the meat of the <command>zebraidx</command>
      <literal>idzebra-2.0-common</literal>
      includes common essential Zebra configuration files.
     </para>
-   </sect2>
+   </section>
    
 
-   <sect2 id="componentindexer">
+   <section id="componentindexer">
     <title>Zebra Indexer</title>
     <para>
      The  <command>zebraidx</command>
      The Debian  package <literal>idzebra-2.0-utils</literal> contains
      the  <command>zebraidx</command> utility.
     </para>
-   </sect2>
+   </section>
 
-   <sect2 id="componentsearcher">
+   <section id="componentsearcher">
     <title>Zebra Searcher/Retriever</title>
     <para>
      This is the executable which runs the Z39.50/SRU/SRW server and
      The Debian  package <literal>idzebra-2.0-utils</literal> contains
      the  <command>zebrasrv</command> utility.
     </para>
-   </sect2>
+   </section>
 
-   <sect2 id="componentyazserver">
+   <section id="componentyazserver">
     <title>YAZ Server Frontend</title>
     <para>
      The YAZ server frontend is 
      It is packaged in the Debian packages     
      <literal>yaz</literal> and <literal>libyaz</literal>.
     </para>
-   </sect2>
+   </section>
    
-   <sect2 id="componentmodules">
+   <section id="componentmodules">
     <title>Record Models and Filter Modules</title>
     <para>
      The hard work of knowing <emphasis>what</emphasis> to index, 
     </para>
 
    
-   <sect3 id="componentmodulestext">
+   <section id="componentmodulestext">
     <title>TEXT Record Model and Filter Module</title>
     <para>
       Plain ASCII text filter. TODO: add information here.
     </para>
-   </sect3>
+   </section>
 
-   <sect3 id="componentmodulesgrs">
+   <section id="componentmodulesgrs">
     <title>GRS Record Model and Filter Modules</title>
     <para>
     The GRS filter modules described in 
-    <xref linkend="record-model-grs"/>
+    <xref linkend="grs"/>
     are all based on the Z39.50 specifications, and it is absolutely
     mandatory to have the reference pages on BIB-1 attribute sets on
     you hand when configuring GRS filters. The GRS filters come in
       trees. Have also a look at the Alvis XML/XSLT filter described in
       the next session.
     </para>
-   </sect3>
+   </section>
 
-   <sect3 id="componentmodulesalvis">
+   <section id="componentmodulesalvis">
     <title>ALVIS Record Model and Filter Module</title>
      <para>
       The Alvis filter for XML files is an XSLT based input
       The Debian package <literal>libidzebra-2.0-mod-alvis</literal>
       contains the Alvis filter module.
      </para>
-    </sect3>
+    </section>
 
     <!--
-   <sect3 id="componentmodulessafari">
+   <section id="componentmodulessafari">
     <title>SAFARI Record Model and Filter Module</title>
     <para>
      SAFARI filter module TODO: add information here.
     </para>
-   </sect3>
+   </section>
     -->
 
-   </sect2>
+   </section>
 
-  </sect1>
+  </section>
 
 
-  <sect1 id="architecture-workflow">
+  <section id="architecture-workflow">
    <title>Indexing and Retrieval Workflow</title>
 
   <para>
    </itemizedlist>
 
   </para>
-  </sect1>
-
-
+  </section>
 
  </chapter> 
 
index b0713e4..2ad5801 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: entities.ent,v 1.2 2006-06-13 09:27:01 marc Exp $ -->
+<!-- $Id: entities.ent,v 1.3 2006-09-03 21:37:26 adam Exp $ -->
 <!ENTITY chap-introduction SYSTEM "introduction.xml">
 <!ENTITY chap-installation SYSTEM "installation.xml">
 <!ENTITY chap-quickstart SYSTEM "quickstart.xml">
@@ -10,6 +10,7 @@
 <!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">
 
@@ -25,6 +26,6 @@
 <!ENTITY ref-record-types '
        <xref linkend="record-types"/>'>
 <!ENTITY ref-configuration-file '
-       <xref linkend="configuration-file"/>'>
+       <xref linkend="zebra-cfg"/>'>
 <!ENTITY ref-shadow-registers '
        <xref linkend="shadow-registers"/>'>
index c8b89a3..298df4b 100644 (file)
@@ -1,8 +1,8 @@
 <chapter id="examples">
- <!-- $Id: examples.xml,v 1.22 2006-07-03 12:30:24 sondberg Exp $ -->
+ <!-- $Id: examples.xml,v 1.23 2006-09-03 21:37:26 adam Exp $ -->
  <title>Example Configurations</title>
 
- <sect1>
+ <sect1 id="examples-overview">
   <title>Overview</title>
 
   <para>
diff --git a/doc/field-structure.xml b/doc/field-structure.xml
new file mode 100644 (file)
index 0000000..c354795
--- /dev/null
@@ -0,0 +1,257 @@
+ <chapter id="fields-and-charsets">
+  <!-- $Id: field-structure.xml,v 1.1 2006-09-03 21:37:26 adam Exp $ -->
+  <title>Field Structure and Character Sets
+  </title>
+  
+  <para>
+   In order to provide a flexible approach to national character set
+   handling, Zebra allows the administrator to configure the set up the
+   system to handle any 8-bit character set &mdash; including sets that
+   require multi-octet diacritics or other multi-octet characters. The
+   definition of a character set includes a specification of the
+   permissible values, their sort order (this affects the display in the
+   SCAN function), and relationships between upper- and lowercase
+   characters. Finally, the definition includes the specification of
+   space characters for the set.
+  </para>
+
+  <para>
+   The operator can define different character sets for different fields,
+   typical examples being standard text fields, numerical fields, and
+   special-purpose fields such as WWW-style linkages (URx).
+  </para>
+
+  <section id="default-idx-file">
+   <title>The default.idx file</title>
+   <para>
+    The field types, and hence character sets, are associated with data
+    elements by the .abs files (see above).
+    The file <literal>default.idx</literal>
+    provides the association between field type codes (as used in the .abs
+    files) and the character map files (with the .chr suffix). The format
+    of the .idx file is as follows
+   </para>
+
+   <para>
+    <variablelist>
+
+     <varlistentry>
+      <term>index <emphasis>field type code</emphasis></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"/>.
+       </para>
+      </listitem></varlistentry>
+     <varlistentry>
+      <term>sort <emphasis>field code type</emphasis></term>
+      <listitem>
+       <para>
+       This directive introduces a 
+       sort index. The argument is a one-character code to be used in the
+       .abs fie to select this particular index type. The corresponding
+       use attribute must be used in the sort request to refer to this
+       particular sort index. The corresponding character map (see below)
+       is used in the sort process.
+       </para>
+      </listitem></varlistentry>
+     <varlistentry>
+      <term>completeness <emphasis>boolean</emphasis></term>
+      <listitem>
+       <para>
+       This directive enables or disables complete field indexing.
+       The value of the <emphasis>boolean</emphasis> 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
+       (normalized to " " on display). When completeness is
+       disabled, each word is indexed as a separate entry. Complete subfield
+       indexing is most useful for fields which are typically browsed (eg.
+       titles, authors, or subjects), or instances where a match on a
+       complete subfield is essential (eg. exact title searching). For fields
+       where completeness is disabled, the search engine will interpret a
+       search containing space characters as a word proximity search.
+       </para>
+      </listitem></varlistentry>
+     <varlistentry>
+      <term>charmap <emphasis>filename</emphasis></term>
+      <listitem>
+       <para>
+       This is the filename of the character
+       map to be used for this index for field type.
+       </para>
+      </listitem></varlistentry>
+    </variablelist>
+   </para>
+  </section>
+
+  <section id="character-map-files">
+   <title>The character map file format</title>
+   <para>
+    The contents of the character map files are structured as follows:
+   </para>
+
+   <para>
+    <variablelist>
+
+     <varlistentry>
+      <term>lowercase <emphasis>value-set</emphasis></term>
+      <listitem>
+       <para>
+       This directive introduces the basic value set of the field type.
+       The format is an ordered list (without spaces) of the
+       characters which may occur in "words" of the given type.
+       The order of the entries in the list determines the
+       sort order of the index. In addition to single characters, the
+       following combinations are legal:
+       </para>
+
+       <para>
+
+       <itemizedlist>
+        <listitem>
+         <para>
+          Backslashes may be used to introduce three-digit octal, or
+          two-digit hex representations of single characters
+          (preceded by <literal>x</literal>).
+          In addition, the combinations
+          \\, \\r, \\n, \\t, \\s (space &mdash; remember that real
+          space-characters may not occur in the value definition), and
+          \\ are recognized, with their usual interpretation.
+         </para>
+        </listitem>
+
+        <listitem>
+         <para>
+          Curly braces {} may be used to enclose ranges of single
+          characters (possibly using the escape convention described in the
+          preceding point), eg. {a-z} to introduce the
+          standard range of ASCII characters.
+          Note that the interpretation of such a range depends on
+          the concrete representation in your local, physical character set.
+         </para>
+        </listitem>
+
+        <listitem>
+         <para>
+          paranthesises () may be used to enclose multi-byte characters -
+          eg. diacritics or special national combinations (eg. Spanish
+          "ll"). When found in the input stream (or a search term),
+          these characters are viewed and sorted as a single character, with a
+          sorting value depending on the position of the group in the value
+          statement.
+         </para>
+        </listitem>
+
+       </itemizedlist>
+
+       </para>
+      </listitem></varlistentry>
+     <varlistentry>
+      <term>uppercase <emphasis>value-set</emphasis></term>
+      <listitem>
+       <para>
+       This directive introduces the
+       upper-case equivalencis to the value set (if any). The number and
+       order of the entries in the list should be the same as in the
+       <literal>lowercase</literal> directive.
+       </para>
+      </listitem></varlistentry>
+     <varlistentry>
+      <term>space <emphasis>value-set</emphasis></term>
+      <listitem>
+       <para>
+       This directive introduces the character
+       which separate words in the input stream. Depending on the
+       completeness mode of the field in question, these characters either
+       terminate an index entry, or delimit individual "words" in
+       the input stream. The order of the elements is not significant &mdash;
+       otherwise the representation is the same as for the
+       <literal>uppercase</literal> and <literal>lowercase</literal>
+       directives.
+       </para>
+      </listitem></varlistentry>
+     <varlistentry>
+      <term>map <emphasis>value-set</emphasis>
+       <emphasis>target</emphasis></term>
+      <listitem>
+       <para>
+       This directive introduces a mapping between each of the
+       members of the value-set on the left to the character on the
+       right. The character on the right must occur in the value
+       set (the <literal>lowercase</literal> directive) of the
+       character set, but it may be a paranthesis-enclosed
+       multi-octet character. This directive may be used to map
+       diacritics to their base characters, or to map HTML-style
+       character-representations to their natural form, etc. The
+       map directive can also be used to ignore leading articles in
+       searching and/or sorting, and to perform other special
+       transformations. See section <xref
+        linkend="leading-articles"/>.
+       </para>
+      </listitem></varlistentry>
+    </variablelist>
+   </para>
+  </section>
+  <section id="leading-articles">
+   <title>Ignoring leading articles</title>
+   <para>
+    In addition to specifying sort orders, space (blank) handling,
+    and upper/lowercase folding, you can also use the character map
+    files to make Zebra ignore leading articles in sorting records,
+    or when doing complete field searching.
+   </para>
+   <para>
+    This is done using the <literal>map</literal> directive in the
+    character map file. In a nutshell, what you do is map certain
+    sequences of characters, when they occur <emphasis> in the
+     beginning of a field</emphasis>, to a space. Assuming that the
+    character "@" is defined as a space character in your file, you
+    can do:
+    <screen>
+     map (^The\s) @
+     map (^the\s) @
+    </screen>
+    The effect of these directives is to map either 'the' or 'The',
+    followed by a space character, to a space. The hat ^ character
+    denotes beginning-of-field only when complete-subfield indexing
+    or sort indexing is taking place; otherwise, it is treated just
+    as any other character.
+   </para>
+   <para>
+    Because the <literal>default.idx</literal> file can be used to
+    associate different character maps with different indexing types
+    -- and you can create additional indexing types, should the need
+    arise -- it is possible to specify that leading articles should
+    be ignored either in sorting, in complete-field searching, or
+    both.
+   </para>
+   <para>
+    If you ignore certain prefixes in sorting, then these will be
+    eliminated from the index, and sorting will take place as if
+    they weren't there. However, if you set the system up to ignore
+    certain prefixes in <emphasis>searching</emphasis>, then these
+    are deleted both from the indexes and from query terms, when the
+    client specifies complete-field searching. This has the effect
+    that a search for 'the science journal' and 'science journal'
+    would both produce the same results.
+   </para>
+  </section>
+ </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 e1c77d3..c19627f 100644 (file)
@@ -1,25 +1,23 @@
-<!-- $Id: installation.xml,v 1.28 2006-08-14 19:56:50 adam Exp $ -->
+<!-- $Id: installation.xml,v 1.29 2006-09-03 21:37:26 adam Exp $ -->
  <chapter id="installation">
   <title>Installation</title>
   <para>
    Zebra is written in ANSI C and was implemented with portability in mind. 
-   We primarily use <ulink url="http://gcc.gnu.org/">GCC</ulink> on UNIX and 
-   <ulink url="http://msdn.microsoft.com/vstudio/">
-    Microsoft Visual C++</ulink>
-   on Windows.
+   We primarily use <ulink url="&url.gcc;">GCC</ulink> on UNIX and 
+   <ulink url="&url.vstudio;">Microsoft Visual C++</ulink> on Windows.
   </para>
 
   <para>
    The software is regularly tested on
-   <ulink url="http://www.debian.org/">Debian GNU/Linux</ulink>,
-   <ulink url="http://www.redhat.com/">Redhat Linux</ulink>,
-   <ulink url="http://www.gentoo.org/">Gentoo Linux</ulink>,
-   <ulink url="http://www.suse.com/">SuSE Linux</ulink>,
-   <ulink url="http://www.freebsd.org/">FreeBSD (i386)</ulink>,
-   <ulink url="http://www.apple.com/macosx/">MAC OSX</ulink>,
-   <ulink url="http://www.sun.com/software/solaris/">SunOS 5.8
+   <ulink url="&url.debian;">Debian GNU/Linux</ulink>,
+   <ulink url="&url.redhat;">Redhat Linux</ulink>,
+   <ulink url="&url.gentoo;">Gentoo Linux</ulink>,
+   <ulink url="&url.suse;">SuSE Linux</ulink>,
+   <ulink url="&url.freebsd;">FreeBSD (i386)</ulink>,
+   <ulink url="&url.macosx;">MAC OSX</ulink>,
+   <ulink url="&url.solaris;">SunOS 5.8
     (sparc)</ulink>,
-   <ulink url="http://www.microsoft.com/windows2000/">Windows 2000</ulink>.
+   <ulink url="&url.windows2000;">Windows 2000</ulink>.
   </para>
   
   <para>
 
    <variablelist>
     <varlistentry>
-     <term><ulink url="http://www.indexdata.dk/yaz/">yaz</ulink>
+     <term><ulink url="&url.yaz;">yaz</ulink>
       (required)</term>
      <listitem>
       <para>
-       Zebra uses YAZ to support Z39.50/ <ulink url="http://www.loc.gov/standards/sru/srw/">SRW</ulink>. Also the memory management
-       utilites from YAZ is used by Zebra.
+       Zebra uses YAZ to support <ulink url="&url.z39.50;">Z39.50</ulink> / 
+       <ulink url="&url.sru;">SRU</ulink>.
+       Also the memory management utilites from YAZ is used by Zebra.
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
-     <term><ulink url="http://www.gnu.org/software/libiconv/">iconv</ulink>
+     <term><ulink url="&url.libiconv;">iconv</ulink>
       (optional)</term>
      <listitem>
       <para>
@@ -49,7 +48,7 @@
      </listitem>
     </varlistentry>
     <varlistentry>
-     <term><ulink url="http://expat.sourceforge.net/">Expat</ulink>
+     <term><ulink url="&url.expat;">Expat</ulink>
       (optional)</term>
      <listitem>
       <para>
     </varlistentry>
     
     <varlistentry>
-     <term><ulink url="http://www.perl.com/">Perl</ulink> (optional)</term>
-     <listitem>
-      <para>
-       Perl is required if you're going to use the Zebra perl
-       filter facility or the Zebra perl API. Perl is preinstalled
-       on many Unixes. We've not tried the Perl extension on 
-       Windows ourselves.
-      </para>
-     </listitem>
-    </varlistentry>
-    
-    <varlistentry>
-     <term><ulink url="http://www.tcl.tk/">Tcl</ulink> (optional)</term>
+     <term><ulink url="&url.tcl;">Tcl</ulink> (optional)</term>
      <listitem>
       <para>
        Tcl is required if you  need to use the Tcl record filter
@@ -85,8 +72,8 @@
     
     <varlistentry>
      <term>
-      <ulink url="http://www.gnu.org/software/autoconf/">Autoconf</ulink>,
-      <ulink url="http://www.gnu.org/software/automake/">Automake</ulink>
+      <ulink url="&url.autoconf;">Autoconf</ulink>,
+      <ulink url="&url.automake;">Automake</ulink>
       (optional)</term>
      <listitem>
       <para>
@@ -98,7 +85,7 @@
     </varlistentry>
     
     <varlistentry>
-     <term><ulink url="http://docbook.org/">Docbook</ulink>
+     <term><ulink url="&url.docbook;">Docbook</ulink>
       and friends (optional)</term>
      <listitem>
       <para>
    </variablelist>
   </para>
 
-  <sect1 id="installation.unix"><title>UNIX</title>
+  <section id="installation-unix"><title>UNIX</title>
    <para>
     On Unix, GCC works fine, but any native
     C compiler should be possible to use as long as it is 
     You can override this with the <literal>--prefix</literal> option
     to configure.
    </para>
-  </sect1>
+  </section>
 
-  <sect1 id="installation.debian"><title>GNU/Debian</title>
-   <sect2 id="installation.debianlinux"><title>GNU/Debian Linux on
+  <section id="installation-debian"><title>GNU/Debian</title>
+   <section id="installation-debian-linux"><title>GNU/Debian Linux on
    i686 Platform</title>
     <para>
      Index Data provides pre-compiled GNU/Debian i686 Linux packages
       apt-get update
      </screen>
      as <literal>root</literal>, the 
-     <ulink url="http://indexdata.dk/zebra/">Zebra</ulink> indexer is
+     <ulink url="&url.idzebra;">Zebra</ulink> indexer is
      easily installed issuing
      <screen>
       apt-get install idzebra-2.0 idzebra-2.0-doc
      </screen>
     </para>
-   </sect2>
+   </section>
    
-   <sect2 id="installation.debianother">
+   <section id="installation-debia-nother">
     <title>Ubuntu/Debian and GNU/Debian on other platforms</title>
     <para>
-     These <ulink url="http://indexdata.dk/zebra/">Zebra</ulink>
+     These <ulink url="&url.idzebra;">Zebra</ulink>
      packages are specifically compiled for
      GNU/Debian Linux systems. Installation on other 
      GNU/Debian systems is possible by
       apt-get build-dep idzebra-2.0
      </screen>
      as <literal>root</literal>, the 
-     <ulink url="http://indexdata.dk/zebra/">Zebra</ulink> indexer is
+     <ulink url="&url.idzebra;">Zebra</ulink> indexer is
      recompiled and installed issuing
      <screen>
       apt-get source --compile idzebra-2.0
       dpkg -i install idzebra-2.0*.deb libidzebra-2.0*.deb
      </screen>
     </para>
-   </sect2>
-  </sect1>
+   </section>
+  </section>
 
-  <sect1 id="installation.win32"><title>WIN32</title>
+  <section id="installation-win32"><title>WIN32</title>
    <para>The easiest way to install Zebra on Windows is by downloading
     an installer from 
     <ulink url="http://ftp.indexdata.dk/pub/zebra/win32/">here</ulink>.
    
    <para>
     Zebra is shipped with "makefiles" for the NMAKE tool that comes
-    with <ulink url="http://msdn.microsoft.com/vstudio/">
-     Microsoft Visual C++</ulink>.
-    Version 6 has been tested. We expect that zebra compiles
-    with version 5 as well.
+    with <ulink url="&url.vstudio;">Microsoft Visual C++</ulink>.
+    Version 2003 and 2005 has been tested. We expect that zebra compiles
+    with version 6 as well.
    </para>
    <para>
     Start a command prompt and switch the sub directory
        <literal>EXPAT_DIR</literal></term>
       <listitem><para>
         If <literal>HAVE_EXPAT</literal> is set to 1, Zebra is compiled
-        with <ulink url="http://expat.sourceforge.net/">Expat</ulink> support. In this configuration, set 
-        <literal>ZEBRA_DIR</literal> to the <ulink url="http://expat.sourceforge.net/">Expat</ulink> source directory.
+        with <ulink url="&url.expat;">Expat</ulink> support.
+       In this configuration, set 
+        <literal>ZEBRA_DIR</literal> to the Expat source directory.
        Windows version of Expat can be downloaded from
-       <ulink url="http://sourceforge.net/projects/expat/">
-        SourceForge
-       </ulink>.
+       <ulink url="&url.expat;">SourceForge</ulink>.
        </para></listitem>
      </varlistentry>
      
         with iconv support. In this configuration, set 
         <literal>ICONV_DIR</literal> to the iconv source directory.
         Iconv binaries can be downloaded from
-        <ulink url="http://www.zlatkovic.com/projects/libxml/binaries.html">
-         this site
-       </ulink>.
+        <ulink url="&url.libxml2.download.win32;">this site</ulink>.
        </para>
       </listitem>
      </varlistentry>
       </term>
       <listitem><para>
         Define these symbols if Zebra is to be compiled with
-       <ulink url="http://sources.redhat.com/bzip2/">BZIP2</ulink>
-       record compression support.
+       <ulink url="&url.bzip2;">BZIP2</ulink> record compression support.
        </para></listitem>
      </varlistentry>
      
     </variablelist>
     
    </para>
-  </sect1>
+  </section>
 
 
-  <sect1 id="installation-upgrade">
+  <section id="installation-upgrade">
    <title>Upgrading from Zebra version 1.3.x</title>
    <para>
     Zebra's installation directories have changed a bit. In addition,
      attset: idxpath.att
     </screen>
     </para>
-  </sect1>
+  </section>
   
  </chapter>
  <!-- Keep this comment at the end of the file
index 49e26bc..947b4a8 100644 (file)
@@ -1,8 +1,8 @@
 <chapter id="introduction">
- <!-- $Id: introduction.xml,v 1.38 2006-07-03 12:00:03 sondberg Exp $ -->
+ <!-- $Id: introduction.xml,v 1.39 2006-09-03 21:37:26 adam Exp $ -->
  <title>Introduction</title>
  
- <sect1>
+ <section id="overview">
   <title>Overview</title>
   
   <para>
@@ -34,9 +34,9 @@
    and how to configure the server to give you the
    functionality that you need.
   </para>
- </sect1>
+ </section>
  
- <sect1 id="features">
+ <section id="features">
   <title>Features</title>
   
   <para>
   </para>
 
   
- </sect1>
+ </section>
  
-  <sect1 id="introduction-apps">
+  <section id="introduction-apps">
   <title>References and Zebra based Applications</title>
   <para>
    Zebra has been deployed in numerous applications, in both the
   </para>
 
 
-  <sect2>
+  <section id="koha-ils">
    <title>Koha free open-source ILS</title>
    <para>
      <ulink url="http://www.koha.org/">Koha</ulink> is a full-featured
       <ulink url="http://www.liblime.com/newsletter/2006/01/features/koha-earns-its-stripes/">
      Koha Earns its Stripes</ulink>.
      </para>
-   </sect2>
+   </section>
 
-  <sect2>
+  <section id="emilda-ils">
    <title>Emilda open source ILS</title>
    <para>
      <ulink url="http://www.emilda.org/">Emilda</ulink> 
      As a surplus, 100% MARC compatibility has been achieved using the
     Zebra Server from Index Data as backend server. 
     </para> 
-   </sect2>
+   </section>
 
-  <sect2>
+  <section id="reindex-ils">
    <title>ReIndex.Net web based ILS</title>
     <para>
      <ulink url="http://www.reindex.net/index.php?lang=en">Reindex.net</ulink>
      Internally MARCXML is used for bibliographical records. Update
      utilizes Z39.50 extended services. 
     </para>
-   </sect2>
+   </section>
 
-
-  <sect2>
-   <title>DADS - the DTV Article Database Service</title>
-   <para>
+   <section id="dads-article-database">
+    <title>DADS - the DTV Article Database
+     Service</title>
+    <para>
     DADS is a huge database of more than ten million records, totalling
     over ten gigabytes of data.  The records are metadata about academic
     journal articles, primarily scientific; about 10% of these
     <ulink url="http://www.dtv.dk/"/> and
     <ulink url="http://dads.dtv.dk"/>
    </para>
-  </sect2>
+  </section>
 
-  <sect2>
+  <section id="infonet-eprints">
    <title>Infonet Eprints</title>
    <para>
      The InfoNet Eprints service from the 
     The online search facility is found at
     <ulink url="http://preprints.cvt.dk"/>.
    </para>
-  </sect2>
+  </section>
 
-  <sect2>
+  <section id="alvis-project">
    <title>Alvis</title>
    <para>
      The <ulink url="http://www.alvis.info/alvis/">Alvis</ulink> EU
      in about 4 hours, resulting in search times of fractions of
      seconds. 
      </para>
-   </sect2>
+   </section>
 
 
-  <sect2>
+  <section id="uls">
    <title>ULS (Union List of Serials)</title>
    <para>
     The M25 Systems Team
     More information can be found at
     <ulink url="http://www.m25lib.ac.uk/ULS/"/>
    </para>
-  </sect2>
+  </section>
 
-  <sect2>
+  <section id="nli">
    <title>NLI-Z39.50 - a Natural Language Interface for Libraries</title>
    <para>
     Fernuniversit&#x00E4;t Hagen in Germany have developed a natural
     For more information, contact Johannes Leveling
     <email>Johannes.Leveling@FernUni-Hagen.De</email>
    </para>
-  </sect2>
+  </section>
 
-  <sect2>
+  <section id="various-web-indexes">
    <title>Various web indexes</title>
    <para>
     Zebra has been used by a variety of institutions to construct
      </para>
     </blockquote>
    </para>
-  </sect2>
- </sect1>
+  </section>
+ </section>
 
 
- <sect1 id="introduction-support">
+ <section id="introduction-support">
   <title>Support</title>
   <para>
    You can get support for Zebra from at least three sources.
    <ulink url="http://indexdata.dk/support/"/>
    for details.
   </para>
- </sect1>  
+ </section>  
 
 
- <sect1 id="future">
+ <section id="future">
   <title>Future Directions</title>
   
   <para>
    or check the contact info at the end of this manual.
   </para>
   
- </sect1>
+ </section>
 </chapter>
  <!-- Keep this comment at the end of the file
  Local variables:
index 070f69f..fae0454 100644 (file)
@@ -1,5 +1,5 @@
 <appendix id="license">
- <!-- $Id: license.xml,v 1.11 2006-08-14 10:40:12 adam Exp $ -->
+ <!-- $Id: license.xml,v 1.12 2006-09-03 21:37:26 adam Exp $ -->
  <title>License</title>
 
   <para>
@@ -28,7 +28,8 @@
    02111-1307, USA.
    </para>
   
-  <sect1><title>GNU General Public License</title>
+  <sect1 id="gpl">
+   <title>GNU General Public License</title>
    <screen>
                     GNU GENERAL PUBLIC LICENSE
                        Version 2, June 1991
index 82d25ec..bbadb28 100644 (file)
@@ -1,11 +1,11 @@
  <chapter id="querymodel">
-  <!-- $Id: querymodel.xml,v 1.24 2006-08-14 22:33:46 adam Exp $ -->
+  <!-- $Id: querymodel.xml,v 1.25 2006-09-03 21:37:26 adam Exp $ -->
   <title>Query Model</title>
   
-  <sect1 id="querymodel-overview">
+  <section id="querymodel-overview">
    <title>Query Model Overview</title>  
    
-   <sect2 id="querymodel-query-languages">
+   <section id="querymodel-query-languages">
     <title>Query Languages</title>
  
     <para>
@@ -29,7 +29,7 @@
     </para>
     
     
-    <sect3 id="querymodel-query-languages-pqf">
+    <section id="querymodel-query-languages-pqf">
      <title>Prefix Query Format (PQF)</title>
      <para>
       Index Data has defined a textual representation in the 
@@ -44,9 +44,9 @@
       <xref linkend="querymodel-pqf"/> for further explanations and
       descriptions of Zebra's capabilities.  
      </para>
-    </sect3>    
+    </section>    
     
-    <sect3 id="querymodel-query-languages-cql">
+    <section id="querymodel-query-languages-cql">
      <title>Common Query Language (CQL)</title>
      <para>
       The query model of the type-1 RPN,
       Zebra can be configured to understand and map CQL to PQF. See
       <xref linkend="querymodel-cql-to-pqf"/>.
      </para>
-    </sect3>    
+    </section>    
  
-   </sect2>
+   </section>
 
-   <sect2 id="querymodel-operation-types">
+   <section id="querymodel-operation-types">
     <title>Operation types</title>
     <para>
      Zebra supports all of the three different
@@ -73,7 +73,7 @@
      functionality and purpose of each is quite in order here. 
     </para>
 
-    <sect3 id="querymodel-operation-type-explain">
+    <section id="querymodel-operation-type-explain">
      <title>Explain Operation</title>
      <para>
       The <emphasis>syntax</emphasis> of Z39.50/SRU queries is
       auto-configure a client user interface to the servers
       capabilities.  
      </para>
-    </sect3>
+    </section>
 
-    <sect3 id="querymodel-operation-type-search">
+    <section id="querymodel-operation-type-search">
      <title>Search Operation</title>
      <para>
       Search and retrieve interactions are the raison d'être. 
       query semantic specifications. Search interactions are the heart
       and soul of Z39.50/SRU servers.
      </para>
-    </sect3>
+    </section>
 
-    <sect3 id="querymodel-operation-type-scan">
+    <section id="querymodel-operation-type-scan">
      <title>Scan Operation</title>
      <para>
       The scan operation is a helper functionality,
       spelling of search terms, to auto-fill search boxes, or to 
       display  controlled vocabularies.
      </para>
-    </sect3>
+    </section>
 
-   </sect2>
+   </section>
 
- </sect1>
+ </section>
 
   
-  <sect1 id="querymodel-pqf">
+  <section id="querymodel-pqf">
    <title>Prefix Query Format syntax and semantics</title>
    <para>
     The <ulink url="&url.yaz.pqf;">PQF grammar</ulink>
     query parse tree. 
    </para>
    
-   <sect2 id="querymodel-pqf-tree">
+   <section id="querymodel-pqf-tree">
     <title>PQF tree structure</title>
     <para>
      The PQF parse tree - or the equivalent textual representation -
      complex query trees.   
     </para>
     
-    <sect3 id="querymodel-attribute-sets">
+    <section id="querymodel-attribute-sets">
      <title>Attribute sets</title>
      <para>
       Attribute sets define the exact meaning and semantics of queries
       </para>
      </note>
      
-    </sect3>
+    </section>
     
-    <sect3 id="querymodel-boolean-operators">
+    <section id="querymodel-boolean-operators">
      <title>Boolean operators</title>
      <para>
       A pair of sub query trees, or of atomic queries, is combined
        Z> find "information retrieval"
       </screen>
      </para>
-    </sect3>
+    </section>
     
     
-    <sect3 id="querymodel-atomic-queries">
+    <section id="querymodel-atomic-queries">
      <title>Atomic queries (APT)</title>
      <para>
       Atomic queries are the query parts which work on one access point
        Z> scan @attr 1=4 debussy
       </screen>
      </para>
-    </sect3>
+    </section>
     
     
-    <sect3 id="querymodel-resultset">
+    <section id="querymodel-resultset">
      <title>Named Result Sets</title>
      <para>
       Named result sets are supported in Zebra, and result sets can be
        the SRU protocol.
       </para>
      </note>
-    </sect3>
+    </section>
     
-    <sect3 id="querymodel-use-string">
+    <section id="querymodel-use-string">
      <title>Zebra's special access point of type 'string'</title>
      <para>
       The numeric <literal>use (type 1)</literal> attribute is usually 
      </para>
      <para>
       See also <xref linkend="querymodel-pqf-apt-mapping"/> for details, and 
-      <xref linkend="server-sru"/>
+      <xref linkend="zebrasrv-sru"/>
       for the SRU PQF query extension using string names as a fast
       debugging facility.
      </para>
-    </sect3>
+    </section>
     
-    <sect3 id="querymodel-use-xpath">
+    <section id="querymodel-use-xpath">
      <title>Zebra's special access point of type 'XPath' 
       for GRS filters</title>
      <para>
      </para>
      <para>
       When using the <literal>GRS Record Model</literal> 
-      (see  <xref linkend="record-model-grs"/>), we have the
+      (see  <xref linkend="grs"/>), we have the
       possibility to embed <emphasis>life</emphasis> 
       XPath expressions
       in the PQF queries, which are here called
        size is medium to large.
       </para>
      </warning>
-    </sect3>
-   </sect2>
+    </section>
+   </section>
    
-   <sect2 id="querymodel-exp1">
+   <section id="querymodel-exp1">
     <title>Explain Attribute Set</title>
     <para>
      The Z39.50 standard defines the  
      within any explain query. 
     </para>
     
-    <sect3 id="querymodel-exp1-use">
+    <section id="querymodel-exp1-use">
     <title>Use Attributes (type = 1)</title>
      <para>
       The following Explain search attributes are supported:
       <ulink url="&url.z39.50;">Z39.50</ulink> standard
       for more information.
      </para>
-    </sect3>
+    </section>
     
-    <sect3>
+    <section id="querymodel-examples">
      <title>Explain searches with yaz-client</title>
      <para>
       Classic Explain only defines retrieval of Explain information
        Z> find @attrset exp1 @and @attr 1=1 attributedetails @attr 1=3 Default
       </screen>
      </para>
-    </sect3>
+    </section>
     
-   </sect2>
+   </section>
    
-   <sect2 id="querymodel-bib1">
+   <section id="querymodel-bib1">
     <title>Bib1 Attribute Set</title>
     <para>
      Most of the information contained in this section is an excerpt of
     </para>
     
     
-   <sect3 id="querymodel-bib1-use">
+   <section id="querymodel-bib1-use">
      <title>Use Attributes (type 1)</title>
 
     <para>
       Z> scan @attr 1=4 information
      </screen>
     </para>
-    </sect3>
+    </section>
 
-   </sect2>
+   </section>
 
 
-   <sect2 id="querymodel-bib1-nonuse">
+   <section id="querymodel-bib1-nonuse">
      <title>Zebra general Bib1 Non-Use Attributes (type 2-6)</title>
     
-    <sect3 id="querymodel-bib1-relation">
+    <section id="querymodel-bib1-relation">
      <title>Relation Attributes (type 2)</title>
      
      <para>
      </para>
 
 
-    </sect3>
+    </section>
 
-    <sect3 id="querymodel-bib1-position">
+    <section id="querymodel-bib1-position">
      <title>Position Attributes (type 3)</title>
  
      <para>
       <literal>any position in field (3)</literal>. A proper diagnostic
       should have been issued.
       </para>
-    </sect3>
+    </section>
     
-    <sect3 id="querymodel-bib1-structure">
+    <section id="querymodel-bib1-structure">
      <title>Structure Attributes (type 4)</title>
    
      <para>
        <xref linkend="querymodel-pqf-apt-mapping"/>.
       </para>
      </note>
-    </sect3>
+    </section>
     
-    <sect3 id="querymodel-bib1-truncation">
+    <section id="querymodel-bib1-truncation">
      <title>Truncation Attributes (type = 5)</title>
 
      <para>
        ...
       </screen>
       </para>  
-    </sect3>
+    </section>
     
-    <sect3 id="querymodel-bib1-completeness">
+    <section id="querymodel-bib1-completeness">
     <title>Completeness Attributes (type = 6)</title>
 
 
        <xref linkend="querymodel-pqf-apt-mapping"/>.
       </para>
      </note>
-    </sect3>
-   </sect2>
+    </section>
+   </section>
   
-   </sect1>
+   </section>
 
 
-  <sect1 id="querymodel-zebra">
+  <section id="querymodel-zebra">
    <title>Advanced Zebra PQF Features</title>
    <para>
     The Zebra internal query engine has been extended to specific needs
     <literal>idxpath</literal> attribute set.  
    </para>
     
-   <sect2 id="querymodel-zebra-attr-allrecords">
+   <section id="querymodel-zebra-attr-allrecords">
     <title>Zebra specific retrieval of all records</title>
     <para>
      Zebra defines a hardwired <literal>string</literal> index name
       well change in future releases of Zebra.
      </para>
     </warning>
-   </sect2>
+   </section>
 
-   <sect2 id="querymodel-zebra-attr-search">
+   <section id="querymodel-zebra-attr-search">
     <title>Zebra specific Search Extensions to all Attribute Sets</title>
     <para>
      Zebra extends the Bib1 attribute types, and these extensions are
      </tgroup>
     </table>      
     
-    <sect3 id="querymodel-zebra-attr-sorting">
+    <section id="querymodel-zebra-attr-sorting">
      <title>Zebra Extension Embedded Sort Attribute (type 7)</title>
      <para>
       The embedded sort is a way to specify sort within a query - thus
        Z> find @or @or @attr 1=1016 water @attr 7=1 @attr 1=4 0 @attr 7=2 @attr 1=30 1
       </screen>
      </para>
-    </sect3>
+    </section>
 
      <!--
     Zebra Extension Term Set Attribute
     -->
 
      <!--
-    <sect3 id="querymodel-zebra-attr-estimation">
+    <section id="querymodel-zebra-attr-estimation">
      <title>Zebra Extension Term Set Attribute (type 8)</title>
     <para>
      The Term Set feature is a facility that allows a search to store
      The model has one serious flaw: we don't know the size of term
      set. Experimental. Do not use in production code.
     </warning>
-    </sect3>
+    </section>
     -->
 
 
-    <sect3 id="querymodel-zebra-attr-weight">
+    <section id="querymodel-zebra-attr-weight">
      <title>Zebra Extension Rank Weight Attribute (type 9)</title>
      <para>
       Rank weight is a way to pass a value to a ranking algorithm - so
        Z> find @attr 2=102 @or @attr 9=30 @attr 1=4 utah @attr 9=20 utah
       </screen>
      </para>
-     </sect3>
+     </section>
      
-    <sect3 id="querymodel-zebra-attr-limit">
+    <section id="querymodel-zebra-attr-limit">
      <title>Zebra Extension Approximative Limit Attribute (type 11)</title>
      <para>
       Zebra  computes - unless otherwise configured -
        extension. Do not use in production code.
       </para>
      </warning>
-    </sect3>
+    </section>
 
-    <sect3 id="querymodel-zebra-attr-termref">
+    <section id="querymodel-zebra-attr-termref">
      <title>Zebra Extension Term Reference Attribute (type 10)</title>
      <para>
       Zebra supports the searchResult-1 facility. 
        </para>
      </warning>
      
-    </sect3>
-   </sect2>
+    </section>
+   </section>
     
 
-   <sect2 id="querymodel-zebra-attr-scan">
+   <section id="querymodel-zebra-attr-scan">
     <title>Zebra specific Scan Extensions to all Attribute Sets</title>
     <para>
      Zebra extends the Bib1 attribute types, and these extensions are
      </tgroup>
     </table>      
     
-    <sect3 id="querymodel-zebra-attr-narrow">
+    <section id="querymodel-zebra-attr-narrow">
      <title>Zebra Extension Result Set Narrow (type 8)</title>
      <para>
       If attribute Result Set Narrow (type 8)
        Experimental. Do not use in production code.
       </para>
      </warning>
-    </sect3>
+    </section>
 
-    <sect3 id="querymodel-zebra-attr-approx">
+    <section id="querymodel-zebra-attr-approx">
      <title>Zebra Extension Approximative Limit (type 11)</title>
      <para>
       The Zebra Extension Approximative Limit (type 11) is a way to
        Experimental and buggy. Definitely not to be used in production code.
       </para>
      </warning>
-    </sect3>
-   </sect2>
+    </section>
+   </section>
    
-   <sect2 id="querymodel-idxpath">
+   <section id="querymodel-idxpath">
     <title>Zebra special IDXPATH Attribute Set for GRS indexing</title>
     <para>
      The attribute-set <literal>idxpath</literal> consists of a single 
      </para>
     </warning>
 
-    <sect3 id="querymodel-idxpath-use">
+    <section id="querymodel-idxpath-use">
     <title>IDXPATH Use Attributes (type = 1)</title>
      <para>
       This attribute set allows one to search GRS filter indexed
       </screen>
      </para>
 
-    </sect3>
-   </sect2>
+    </section>
+   </section>
 
 
-   <sect2 id="querymodel-pqf-apt-mapping">
+   <section id="querymodel-pqf-apt-mapping">
     <title>Mapping from PQF atomic APT queries to Zebra internal 
      register indexes</title>
     <para>
      the named register. 
     </para>
 
-   <sect3 id="querymodel-pqf-apt-mapping-accesspoint">
+   <section id="querymodel-pqf-apt-mapping-accesspoint">
     <title>Mapping of PQF APT access points</title>
     <para>
       Zebra understands four fundamental different types of access
      </para>
 
 
-    </sect3>
+    </section>
 
 
-   <sect3 id="querymodel-pqf-apt-mapping-structuretype">
+   <section id="querymodel-pqf-apt-mapping-structuretype">
      <title>Mapping of PQF APT structure and completeness to 
       register type</title>
     <para>
      contents.
     </para>
 
-     </sect3>
-   </sect2>
+     </section>
+   </section>
 
-   <sect2  id="querymodel-regular">
+   <section  id="querymodel-regular">
     <title>Zebra Regular Expressions in Truncation Attribute (type = 5)</title>
     
     <para>
       Z> find @attr 1=4 @attr 5=102 @attr 2=102 "informat.* retrieval"
      </screen>
     </para>
-   </sect2>
+   </section>
 
   
    <!--
     Zebra can read structured records in many different formats.
    </para>
    -->
-  </sect1>
+  </section>
 
 
-  <sect1 id="querymodel-cql-to-pqf">
+  <section id="querymodel-cql-to-pqf">
    <title>Server Side CQL to PQF Query Translation</title>
    <para>
     Using the
     attributes.
    </para>
    -->
- </sect1>
-
-
+ </section>
 
 </chapter>
 
index 970e922..d067622 100644 (file)
@@ -1,5 +1,5 @@
  <chapter id="record-model-alvisxslt">
-  <!-- $Id: recordmodel-alvisxslt.xml,v 1.8 2006-06-13 13:45:08 marc Exp $ -->
+  <!-- $Id: recordmodel-alvisxslt.xml,v 1.9 2006-09-03 21:37:27 adam Exp $ -->
   <title>ALVIS XML Record Model and Filter Module</title>
   
 
@@ -19,7 +19,7 @@
   </para>
   
   
-  <sect1 id="record-model-alvisxslt-filter">
+  <section id="record-model-alvisxslt-filter">
    <title>ALVIS Record Filter</title>
    <para>
     The experimental, loadable  Alvis XML/XSLT filter module
@@ -76,7 +76,7 @@
     <literal>identifier="http://indexdata.dk/zebra/xslt/1"</literal>.
    </para>
 
-   <sect2 id="record-model-alvisxslt-internal">
+   <section id="record-model-alvisxslt-internal">
     <title>ALVIS Internal Record Representation</title>   
     <para>When indexing, an XML Reader is invoked to split the input
     files into suitable record XML pieces. Each record piece is then
@@ -89,9 +89,9 @@
     you can use this functionality inside the Alvis
     filter configuration XSLT stylesheets.
     </para>
-   </sect2>
+   </section>
 
-   <sect2 id="record-model-alvisxslt-canonical">
+   <section id="record-model-alvisxslt-canonical">
     <title>ALVIS Canonical Indexing Format</title>   
     <para>The output of the indexing XSLT stylesheets must contain
     certain elements in the magic 
       http://localhost:9999/?version=1.1&operation=scan&x-pScanClause=@attr+1=dc:date+@attr+4=2+a
       ]]>
      </screen>
-     See <xref linkend="server-sru"/> for more information on SRU/SRW
+     See <xref linkend="zebrasrv-sru"/> for more information on SRU/SRW
      configuration, and <xref linkend="gfs-config"/> or 
      <ulink url="http://www.indexdata.dk/yaz/doc/tools.tkl#tools.cql">
       the YAZ manual CQL section</ulink>
      filter configuration files involves in this process, and that the
      literal index names are used during search and retrieval.
     </para>
-   </sect2>
-  </sect1>
+   </section>
+  </section>
 
 
-  <sect1 id="record-model-alvisxslt-conf">
+  <section id="record-model-alvisxslt-conf">
    <title>ALVIS Record Model Configuration</title>
 
 
-  <sect2 id="record-model-alvisxslt-index">
+  <section id="record-model-alvisxslt-index">
    <title>ALVIS Indexing Configuration</title>
     <para>
      As mentioned above, there can be only one indexing
      to suffering and pain, and universal
      disentigration of your project schedule.
     </para>
-  </sect2>
+  </section>
 
-  <sect2 id="record-model-alvisxslt-elementset">
+  <section id="record-model-alvisxslt-elementset">
    <title>ALVIS Exchange Formats</title>
    <para>
      An exchange format can be anything which can be the outcome of an
      </screen>
     </para>
 
-  </sect2>
+  </section>
 
-  <sect2 id="record-model-alvisxslt-example">
+  <section id="record-model-alvisxslt-example">
    <title>ALVIS Filter OAI Indexing Example</title>
    <para>
      The sourcecode tarball contains a working Alvis filter example in
      <ulink url="http://www.oaforum.org/tutorial/">
       http://www.oaforum.org/tutorial/</ulink>.
     </para>
-   </sect2>
+   </section>
 
-  </sect1>
+  </section>
 
   
  </chapter>
index a2c798e..bd11180 100644 (file)
@@ -1,7 +1,6 @@
- <chapter id="record-model-grs">
-  <!-- $Id: recordmodel-grs.xml,v 1.3 2006-04-25 12:26:26 marc Exp $ -->
+ <chapter id="grs">
+  <!-- $Id: recordmodel-grs.xml,v 1.4 2006-09-03 21:37:27 adam Exp $ -->
   <title>GRS Record Model and Filter Modules</title>
-  
 
   <para>
    The record model described in this chapter applies to the fundamental,
@@ -11,7 +10,7 @@
   </para>
 
 
-  <sect1 id="grs-record-filters">
+  <section id="grs-filters">
    <title>GRS Record Filters</title>
    <para>
     Many basic subtypes of the <emphasis>grs</emphasis> type are
    <para>
     <variablelist>
      <varlistentry>
-      <term>grs.sgml</term>
+      <term><literal>grs.sgml</literal></term>
       <listitem>
        <para>
         This is the canonical input format
         described <xref linkend="grs-canonical-format"/>. It is using
         simple SGML-like syntax. 
        </para>
-       <!--
-       <para>
-         <literal>libidzebra1.4-mod-grs-sgml not packaged yet ??</literal>
-       </para>
-       -->
       </listitem>
      </varlistentry>
      <varlistentry>
-      <term>grs.marc<!--.<emphasis>abstract syntax</emphasis>--></term>
+      <term><literal>grs.marc.</literal><replaceable>type</replaceable></term>
       <listitem>
        <para>
         This allows Zebra to read
         records in the ISO2709 (MARC) encoding standard. 
-        <!-- In this case, the
-        last parameter <emphasis>abstract syntax</emphasis> names the
+        Last parameter <replaceable>type</replaceable> names the
         <literal>.abs</literal> file (see below)
         which describes the specific MARC structure of the input record as
-        well as the indexing rules. -->
+        well as the indexing rules.
+       </para>
+       <para>The <literal>grs.marc</literal> uses an internal represtantion
+       which is not XML conformant. In particular MARC tags are
+       presented as elements with the same name. And XML elements
+       may not start with digits. Therefore this filter is only
+       suitable for systems returning GRS-1 and MARC records. For XML
+       use <literal>grs.marcxml</literal> filter instead (see below).
        </para>
        <para>
          The loadable <literal>grs.marc</literal> filter module
          is packaged in the GNU/Debian package
-        <literal>libidzebra1.4-mod-grs-marc</literal>
-        </para>
+        <literal>libidzebra2.0-mod-grs-marc</literal>
+       </para>
       </listitem>
      </varlistentry>
      <varlistentry>
-      <term>grs.marcxml<!--.<emphasis>abstract syntax</emphasis>--></term>
+      <term><literal>grs.marcxml.</literal><replaceable>type</replaceable></term>
       <listitem>
        <para>
-        This allows Zebra to read
-        records in the ISO2709??? (MARCXML) encoding standard.
+        This allows Zebra to read ISO2709 encoded records.
+        Last parameter <replaceable>type</replaceable> names the
+        <literal>.abs</literal> file (see below)
+        which describes the specific MARC structure of the input record as
+        well as the indexing rules.
        </para>
        <para>
-         The loadable <literal>grs.marcxml</literal> filter module
-         is also contained in the GNU/Debian package
-        <literal>libidzebra1.4-mod-grs-marc</literal>
-        </para>
-      </listitem>
-     </varlistentry>
-     <varlistentry>
-      <term>grs.danbib</term>
-      <listitem>
-       <para>
-        The <literal>grs.danbib</literal> filter parses DanBib
-        records, a danish MARC record variant called DANMARC.
-        DanBib is the Danish Union Catalogue hosted by the
-        Danish Bibliographic Centre (DBC).
+       The internal representation for <literal>grs.marcxml</literal>
+       is the same as for <ulink url="&url.marcxml;">MARCXML</ulink>.
+       It slightly more complicated to work with than 
+       <literal>grs.marc</literal> but XML conformant.
        </para>
-       <para>The loadable  <literal>grs.danbib</literal> filter module
-         is packages in the GNU/Debian package 
-         <literal>libidzebra1.4-mod-grs-danbib</literal>.
+       <para>
+       The loadable <literal>grs.marcxml</literal> filter module
+       is also contained in the GNU/Debian package
+        <literal>libidzebra2.0-mod-grs-marc</literal>
        </para>
       </listitem>
      </varlistentry>
      <varlistentry>
-      <term>grs.xml</term>
+      <term><literal>grs.xml</literal></term>
       <listitem>
        <para>
-        This filter reads XML records and uses <ulink url="http://expat.sourceforge.net/">Expat</ulink> to
+        This filter reads XML records and uses
+       <ulink url="http://expat.sourceforge.net/">Expat</ulink> to
         parse them and convert them into IDZebra's internal 
         <literal>grs</literal> record model.
-        Only one record per file
-        is supported. The filter is only available if Zebra/YAZ
-        is compiled with EXPAT support.
+        Only one record per file is supported, due to the fact XML does
+       not allow two documents to "follow" each other (there is no way
+       to know when a document is finished).
+       This filter is only available if Zebra is compiled with EXPAT support.
        </para>
        <para>
-         The loadable <literal>grs.xml</literal> filter module
-         is packagged in the GNU/Debian package
-        <literal>libidzebra1.4-mod-grs-xml</literal>
+       The loadable <literal>grs.xml</literal> filter module
+       is packagged in the GNU/Debian package
+        <literal>libidzebra2.0-mod-grs-xml</literal>
         </para>
       </listitem>
      </varlistentry>
      <varlistentry>
-      <term>grs.regx<!--.<emphasis>filter</emphasis>--></term>
+      <term><literal>grs.regx.</literal><replaceable>filter</replaceable></term>
       <listitem>
        <para>
         This enables a user-supplied Regular Expressions input
-        filter described in
-        <xref linkend="grs-regx-tcl"/>.
+        filter described in <xref linkend="grs-regx-tcl"/>.
        </para>
        <para>
-         The loadable  <literal>grs.regx</literal> filter module
-         is packaged in the GNU/Debian package
-        <literal>libidzebra1.4-mod-grs-regx</literal>
-        </para>
+       The loadable <literal>grs.regx</literal> filter module
+       is packaged in the GNU/Debian package
+        <literal>libidzebra2.0-mod-grs-regx</literal>
+       </para>
       </listitem>
      </varlistentry>
      <varlistentry>
-      <term>grs.tcl<!--.<emphasis>filter</emphasis>--></term>
+      <term><literal>grs.tcl.</literal><replaceable>filter</replaceable></term>
       <listitem>
        <para>
         Similar to grs.regx but using Tcl for rules, described in 
         <xref linkend="grs-regx-tcl"/>.
        </para>
        <para>
-         The loadable <literal>grs.tcl</literal> filter module
-         is also packaged in the GNU/Debian package
-        <literal>libidzebra1.4-mod-grs-regx</literal>
-        </para>
+       The loadable <literal>grs.tcl</literal> filter module
+       is also packaged in the GNU/Debian package
+        <literal>libidzebra2.0-mod-grs-regx</literal>
+       </para>
       </listitem>
      </varlistentry>
 
     </variablelist>
    </para>
 
-   <sect2 id="grs-canonical-format">
+   <section id="grs-canonical-format">
     <title>GRS Canonical Input Format</title>
 
     <para>
      structured data element such a <emphasis>Supplier</emphasis> element.
     </para>
 
-    <sect3>
+    <section id="grs-record-root">
      <title>Record Root</title>
 
      <para>
 
      </para>
 
-    </sect3>
+    </section>
 
-    <sect3><!-- ### we shouldn't make such a big deal about this -->
+    <section id="grs-variants">
      <title>Variants</title>
 
      <para>
       The available values for the <emphasis>class</emphasis> and
       <emphasis>type</emphasis> fields are given by the variant set
       that is associated with the current schema
-      (see <xref linkend="variant-set"/>).
+      (see <xref linkend="grs-variants"/>).
      </para>
 
      <para>
       of the end-user.
      </para>
 
-    </sect3>
+    </section>
 
-   </sect2>
+   </section>
 
-   <sect2 id="grs-regx-tcl">
+   <section id="grs-regx-tcl">
     <title>GRS REGX And TCL Input Filters</title>
 
     <para>
      mechanisms for modifying the elements of a record.
     </para>
 
-   </sect2>
+   </section>
 
-  </sect1>
+  </section>
 
-  <sect1 id="grs-internal-representation">
+  <section id="grs-internal-representation">
    <title>GRS Internal Record Representation</title>
 
    <para>
     different tag path.
    </para>
 
-   <sect2>
+   <section id="grs-tagged-elements">
     <title>Tagged Elements</title>
 
     <para>
      reached from the root of the record).
     </para>
 
-   </sect2>
+   </section>
 
-   <sect2>
+   <section id="grs-variant-details">
     <title>Variants</title>
 
     <para>
      type, value, corresponding to the variant mechanism of Z39.50.
     </para>
     
-   </sect2>
+   </section>
    
-   <sect2>
+   <section id="grs-data-elements">
     <title>Data Elements</title>
     
     <para>
    </para>
     -->
     
-   </sect2>
+   </section>
    
-  </sect1>
+  </section>
   
-  <sect1 id="record-model-grs-conf">
+  <section id="grs-conf">
    <title>GRS Record Model Configuration</title>
    
    <para>
     setting in the <literal>zebra.cfg</literal> file.
    </para>
 
-   <sect2>
+   <section id="grs-abstract-syntax">
     <title>The Abstract Syntax</title>
 
     <para>
      describe the given objects.
     </para>
 
-   </sect2>
+   </section>
 
-   <sect2>
+   <section id="grs-configuration-files">
     <title>The Configuration Files</title>
 
     <para>
      mandatory (m).
     </para>
     
-   </sect2>
+   </section>
    
-   <sect2 id="abs-file">
+   <section id="abs-file">
     <title>The Abstract Syntax (.abs) Files</title>
     
     <para>
        </listitem>
       </varlistentry>
       <varlistentry>
-       <term>any <replaceable>tags</replaceable></term>
+       <term>all <replaceable>tags</replaceable></term>
        <listitem>
         <para>
          (o) This directive specifies a list of attributes
          the <replaceable>attributes</replaceable>
          specifies which attributes to use when indexing the element in a
          comma-separated list.
-         A ! in place of the attribute name is equivalent to
-         specifying an attribute name identical to the element name.
-         A - in place of the attribute name
+         A <literal>!</literal> in place of the attribute name is equivalent
+        to specifying an attribute name identical to the element name.
+         A <literal>-</literal> in place of the attribute name
          specifies that no indexing is to take place for the given element.
          The attributes can be qualified with <replaceable>field
           types</replaceable> to specify which
          character set should govern the indexing procedure for that field.
          The same data element may be indexed into several different
          fields, using different character set definitions.
-         See the <xref linkend="field-structure-and-character-sets"/>.
+         See the <xref linkend="fields-and-charsets"/>.
          The default field type is <literal>w</literal> for
          <emphasis>word</emphasis>.
         </para>
 
     </para>
 
-   </sect2>
+   </section>
 
-   <sect2 id="attset-files">
+   <section id="attset-files">
     <title>The Attribute Set (.att) Files</title>
 
     <para>
 
     </para>
 
-   </sect2>
+   </section>
 
-   <sect2>
+   <section id="grs-tag-files">
     <title>The Tag Set (.tag) Files</title>
 
     <para>
      </screen>
     </para>
 
-   </sect2>
+   </section>
 
-   <sect2 id="variant-set">
+   <section id="grs-var-files">
     <title>The Variant Set (.var) Files</title>
 
     <para>
 
     </para>
 
-   </sect2>
+   </section>
 
-   <sect2>
+   <section id="grs-est-files">
     <title>The Element Set (.est) Files</title>
 
     <para>
 
     </para>
 
-   </sect2>
+   </section>
 
-   <sect2 id="schema-mapping">
+   <section id="schema-mapping">
     <title>The Schema Mapping (.map) Files</title>
 
     <para>
      </variablelist>
     </para>
 
-   </sect2>
+   </section>
 
-   <sect2>
+   <section id="grs-mar-files">
     <title>The MARC (ISO2709) Representation (.mar) Files</title>
 
     <para>
       handled by the system.</emphasis>
     -->
 
-   </sect2>
-
-   <sect2 id="field-structure-and-character-sets">
-    <title>Field Structure and Character Sets
-    </title>
-
-    <para>
-     In order to provide a flexible approach to national character set
-     handling, Zebra allows the administrator to configure the set up the
-     system to handle any 8-bit character set &mdash; including sets that
-     require multi-octet diacritics or other multi-octet characters. The
-     definition of a character set includes a specification of the
-     permissible values, their sort order (this affects the display in the
-     SCAN function), and relationships between upper- and lowercase
-     characters. Finally, the definition includes the specification of
-     space characters for the set.
-    </para>
-
-    <para>
-     The operator can define different character sets for different fields,
-     typical examples being standard text fields, numerical fields, and
-     special-purpose fields such as WWW-style linkages (URx).
-    </para>
-
-    <sect3 id="default-idx-file">
-     <title>The default.idx file</title>
-     <para>
-      The field types, and hence character sets, are associated with data
-      elements by the .abs files (see above).
-      The file <literal>default.idx</literal>
-      provides the association between field type codes (as used in the .abs
-      files) and the character map files (with the .chr suffix). The format
-      of the .idx file is as follows
-     </para>
-
-     <para>
-      <variablelist>
-
-       <varlistentry>
-       <term>index <emphasis>field type code</emphasis></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"/>.
-        </para>
-       </listitem></varlistentry>
-       <varlistentry>
-       <term>sort <emphasis>field code type</emphasis></term>
-       <listitem>
-        <para>
-         This directive introduces a 
-         sort index. The argument is a one-character code to be used in the
-         .abs fie to select this particular index type. The corresponding
-         use attribute must be used in the sort request to refer to this
-         particular sort index. The corresponding character map (see below)
-         is used in the sort process.
-        </para>
-       </listitem></varlistentry>
-       <varlistentry>
-       <term>completeness <emphasis>boolean</emphasis></term>
-       <listitem>
-        <para>
-         This directive enables or disables complete field indexing.
-         The value of the <emphasis>boolean</emphasis> 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
-         (normalized to " " on display). When completeness is
-         disabled, each word is indexed as a separate entry. Complete subfield
-         indexing is most useful for fields which are typically browsed (eg.
-         titles, authors, or subjects), or instances where a match on a
-         complete subfield is essential (eg. exact title searching). For fields
-         where completeness is disabled, the search engine will interpret a
-         search containing space characters as a word proximity search.
-        </para>
-       </listitem></varlistentry>
-       <varlistentry>
-       <term>charmap <emphasis>filename</emphasis></term>
-       <listitem>
-        <para>
-         This is the filename of the character
-         map to be used for this index for field type.
-        </para>
-       </listitem></varlistentry>
-      </variablelist>
-     </para>
-    </sect3>
-
-    <sect3 id="character-map-files">
-     <title>The character map file format</title>
-     <para>
-      The contents of the character map files are structured as follows:
-     </para>
+   </section>
+  </section>
 
-     <para>
-      <variablelist>
-
-       <varlistentry>
-       <term>lowercase <emphasis>value-set</emphasis></term>
-       <listitem>
-        <para>
-         This directive introduces the basic value set of the field type.
-         The format is an ordered list (without spaces) of the
-         characters which may occur in "words" of the given type.
-         The order of the entries in the list determines the
-         sort order of the index. In addition to single characters, the
-         following combinations are legal:
-        </para>
-
-        <para>
-
-         <itemizedlist>
-          <listitem>
-           <para>
-            Backslashes may be used to introduce three-digit octal, or
-            two-digit hex representations of single characters
-            (preceded by <literal>x</literal>).
-            In addition, the combinations
-            \\, \\r, \\n, \\t, \\s (space &mdash; remember that real
-            space-characters may not occur in the value definition), and
-            \\ are recognized, with their usual interpretation.
-           </para>
-          </listitem>
-
-          <listitem>
-           <para>
-            Curly braces {} may be used to enclose ranges of single
-            characters (possibly using the escape convention described in the
-            preceding point), eg. {a-z} to introduce the
-            standard range of ASCII characters.
-            Note that the interpretation of such a range depends on
-            the concrete representation in your local, physical character set.
-           </para>
-          </listitem>
-
-          <listitem>
-           <para>
-            paranthesises () may be used to enclose multi-byte characters -
-            eg. diacritics or special national combinations (eg. Spanish
-            "ll"). When found in the input stream (or a search term),
-            these characters are viewed and sorted as a single character, with a
-            sorting value depending on the position of the group in the value
-            statement.
-           </para>
-          </listitem>
-
-         </itemizedlist>
-
-        </para>
-       </listitem></varlistentry>
-       <varlistentry>
-       <term>uppercase <emphasis>value-set</emphasis></term>
-       <listitem>
-        <para>
-         This directive introduces the
-         upper-case equivalencis to the value set (if any). The number and
-         order of the entries in the list should be the same as in the
-         <literal>lowercase</literal> directive.
-        </para>
-       </listitem></varlistentry>
-       <varlistentry>
-       <term>space <emphasis>value-set</emphasis></term>
-       <listitem>
-        <para>
-         This directive introduces the character
-         which separate words in the input stream. Depending on the
-         completeness mode of the field in question, these characters either
-         terminate an index entry, or delimit individual "words" in
-         the input stream. The order of the elements is not significant &mdash;
-         otherwise the representation is the same as for the
-         <literal>uppercase</literal> and <literal>lowercase</literal>
-         directives.
-        </para>
-       </listitem></varlistentry>
-       <varlistentry>
-       <term>map <emphasis>value-set</emphasis>
-        <emphasis>target</emphasis></term>
-       <listitem>
-        <para>
-         This directive introduces a mapping between each of the
-         members of the value-set on the left to the character on the
-         right. The character on the right must occur in the value
-         set (the <literal>lowercase</literal> directive) of the
-         character set, but it may be a paranthesis-enclosed
-         multi-octet character. This directive may be used to map
-         diacritics to their base characters, or to map HTML-style
-         character-representations to their natural form, etc. The
-         map directive can also be used to ignore leading articles in
-         searching and/or sorting, and to perform other special
-         transformations. See section <xref
-         linkend="leading-articles"/>.
-        </para>
-       </listitem></varlistentry>
-      </variablelist>
-     </para>
-    </sect3>
-    <sect3 id="leading-articles">
-     <title>Ignoring leading articles</title>
-     <para>
-      In addition to specifying sort orders, space (blank) handling,
-      and upper/lowercase folding, you can also use the character map
-      files to make Zebra ignore leading articles in sorting records,
-      or when doing complete field searching.
-     </para>
-     <para>
-      This is done using the <literal>map</literal> directive in the
-      character map file. In a nutshell, what you do is map certain
-      sequences of characters, when they occur <emphasis> in the
-      beginning of a field</emphasis>, to a space. Assuming that the
-      character "@" is defined as a space character in your file, you
-      can do:
-      <screen>
-       map (^The\s) @
-       map (^the\s) @
-      </screen>
-      The effect of these directives is to map either 'the' or 'The',
-      followed by a space character, to a space. The hat ^ character
-      denotes beginning-of-field only when complete-subfield indexing
-      or sort indexing is taking place; otherwise, it is treated just
-      as any other character.
-     </para>
-     <para>
-      Because the <literal>default.idx</literal> file can be used to
-      associate different character maps with different indexing types
-      -- and you can create additional indexing types, should the need
-      arise -- it is possible to specify that leading articles should
-      be ignored either in sorting, in complete-field searching, or
-      both.
-     </para>
-     <para>
-      If you ignore certain prefixes in sorting, then these will be
-      eliminated from the index, and sorting will take place as if
-      they weren't there. However, if you set the system up to ignore
-      certain prefixes in <emphasis>searching</emphasis>, then these
-      are deleted both from the indexes and from query terms, when the
-      client specifies complete-field searching. This has the effect
-      that a search for 'the science journal' and 'science journal'
-      would both produce the same results.
-     </para>
-    </sect3>
-   </sect2>
-  </sect1>
-
-  <sect1 id="grs-exchange-formats">
+  <section id="grs-exchange-formats">
    <title>GRS Exchange Formats</title>
 
    <para>
    
     </itemizedlist>
    </para>
-  </sect1>
+  </section>
+  
+  <section id="grs-extended-marc-indexing">
+   <title>Extended indexing of MARC records</title>
+   
+   <para>Extended indexing of MARC records will help you if you need index a
+    combination of subfields, or index only a part of the whole field,
+    or use during indexing process embedded fields of MARC record.
+   </para>
+   
+   <para>Extended indexing of MARC records additionally allows:
+    <itemizedlist>
+     
+     <listitem>
+      <para>to index data in LEADER of MARC record</para>
+     </listitem>
+     
+     <listitem>
+      <para>to index data in control fields (with fixed length)</para>
+     </listitem>
+     
+     <listitem>
+      <para>to use during indexing the values of indicators</para>
+     </listitem>
+     
+     <listitem>
+      <para>to index linked fields for UNIMARC based formats</para>
+     </listitem>
+     
+    </itemizedlist>
+   </para>
+   
+   <note><para>In compare with simple indexing process the extended indexing
+     may increase (about 2-3 times) the time of indexing process for MARC
+     records.</para></note>
+   
+   <section id="formula">
+    <title>The index-formula</title>
+    
+    <para>At the beginning, we have to define the term
+     <emphasis>index-formula</emphasis> for MARC records. This term helps
+     to understand the notation of extended indexing of MARC records by Zebra.
+     Our definition is based on the document
+     <ulink url="http://www.rba.ru/rusmarc/soft/Z39-50.htm">"The table
+      of conformity for Z39.50 use attributes and RUSMARC fields"</ulink>.
+     The document is available only in russian language.</para>
+    
+    <para>
+     The <emphasis>index-formula</emphasis> is the combination of
+     subfields presented in such way:
+    </para>
+    
+    <screen>
+     71-00$a, $g, $h ($c){.$b ($c)} , (1)
+    </screen>
+    
+    <para>
+     We know that Zebra supports a Bib-1 attribute - right truncation.
+     In this case, the <emphasis>index-formula</emphasis> (1) consists from 
+     forms, defined in the same way as (1)</para>
+    
+    <screen>
+     71-00$a, $g, $h
+     71-00$a, $g
+     71-00$a
+    </screen>
+    
+    <note>
+     <para>The original MARC record may be without some elements, which included in <emphasis>index-formula</emphasis>.
+     </para>
+    </note>
+    
+    <para>This notation includes such operands as:
+     <variablelist>
+      
+      <varlistentry>
+       <term>#</term>
+       <listitem><para>It means whitespace character.</para></listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>-</term>
+       <listitem><para>The position may contain any value, defined by
+        MARC format.
+        For example, <emphasis>index-formula</emphasis></para>
+       
+       <screen>
+        70-#1$a, $g , (2)
+       </screen>
+       
+       <para>includes</para> 
+       
+       <screen>
+        700#1$a, $g
+        701#1$a, $g
+        702#1$a, $g
+       </screen>
+       
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>{...}</term>
+       <listitem>
+       <para>The repeatable elements are defined in figure-brackets {}.
+        For example,
+        <emphasis>index-formula</emphasis></para>
+       
+       <screen>
+        71-00$a, $g, $h ($c){.$b ($c)} , (3)
+       </screen>
+       
+       <para>includes</para>
+       
+       <screen>
+        71-00$a, $g, $h ($c). $b ($c)
+        71-00$a, $g, $h ($c). $b ($c). $b ($c)
+        71-00$a, $g, $h ($c). $b ($c). $b ($c). $b ($c)
+       </screen>
+       
+       </listitem>
+      </varlistentry>
+     </variablelist>
+     
+     <note>
+      <para>
+       All another operands are the same as accepted in MARC world.
+      </para>
+     </note>
+    </para>
+   </section>
+   
+   <section id="notation">
+    <title>Notation of <emphasis>index-formula</emphasis> for Zebra</title>
+    
+    
+    <para>Extended indexing overloads <literal>path</literal> of
+     <literal>elm</literal> definition in abstract syntax file of Zebra
+     (<literal>.abs</literal> file). It means that names beginning with
+     <literal>"mc-"</literal> are interpreted by Zebra as
+     <emphasis>index-formula</emphasis>. The database index is created and
+     linked with <emphasis>access point</emphasis> (Bib-1 use attribute)
+     according to this formula.</para>
+    
+    <para>For example, <emphasis>index-formula</emphasis></para>
+    
+    <screen>
+     71-00$a, $g, $h ($c){.$b ($c)} , (4)
+    </screen>
+    
+    <para>in <literal>.abs</literal> file looks like:</para>
+    
+    <screen>
+     mc-71.00_$a,_$g,_$h_(_$c_){.$b_(_$c_)}
+    </screen>
+    
+    
+    <para>The notation of <emphasis>index-formula</emphasis> uses the operands:
+     <variablelist>
+      
+      <varlistentry>
+       <term>_</term>
+       <listitem><para>It means whitespace character.</para></listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>.</term>
+       <listitem><para>The position may contain any value, defined by
+        MARC format. For example,
+        <emphasis>index-formula</emphasis></para>
+       
+       <screen>
+        70-#1$a, $g , (5)
+       </screen>
+       
+       <para>matches <literal>mc-70._1_$a,_$g_</literal> and includes</para>
+       
+       <screen>
+        700_1_$a,_$g_
+        701_1_$a,_$g_
+        702_1_$a,_$g_
+       </screen>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>{...}</term>
+       <listitem><para>The repeatable elements are defined in
+        figure-brackets {}. For example,
+        <emphasis>index-formula</emphasis></para>
+       
+       <screen>
+        71#00$a, $g, $h ($c) {.$b ($c)} , (6)
+       </screen>
+       
+       <para>matches 
+        <literal>mc-71.00_$a,_$g,_$h_(_$c_){.$b_(_$c_)}</literal> and
+        includes</para>
+       
+       <screen>
+        71.00_$a,_$g,_$h_(_$c_).$b_(_$c_)
+        71.00_$a,_$g,_$h_(_$c_).$b_(_$c_).$b_(_$c_)
+        71.00_$a,_$g,_$h_(_$c_).$b_(_$c_).$b_(_$c_).$b_(_$c_)
+       </screen>
+       </listitem>
+      </varlistentry>
+      
+      <varlistentry>
+       <term>&#60;...&#62;</term>
+       <listitem><para>Embedded <emphasis>index-formula</emphasis> (for
+        linked fields) is between &#60;&#62;. For example,
+        <emphasis>index-formula</emphasis>
+       </para>
+       
+       <screen>
+        4--#-$170-#1$a, $g ($c) , (7)
+       </screen>
+       
+       <para>matches
+        <literal>mc-4.._._$1&#60;70._1_$a,_$g_(_$c_)&#62;_</literal> and
+        includes</para>
+       
+       <screen>
+        463_._$1&#60;70._1_$a,_$g_(_$c_)&#62;_
+       </screen>
+       
+       </listitem>
+      </varlistentry>
+     </variablelist>
+    </para>
+    
+    <note>
+     <para>All another operands are the same as accepted in MARC world.</para>
+    </note>
+    
+    <section id="grs-examples">
+     <title>Examples</title>
+     
+     <para>
+      <orderedlist>
+       
+       <listitem>
+       
+       <para>indexing LEADER</para>
+       
+       <para>You need to use keyword "ldr" to index leader. For example,
+        indexing data from 6th and 7th position of LEADER</para>
+       
+       <screen>
+        elm mc-ldr[6] Record-type !
+        elm mc-ldr[7] Bib-level   !
+       </screen>
+       
+       </listitem>
+       
+       <listitem>
+       
+       <para>indexing data from control fields</para>
+       
+       <para>indexing date (the time added to database)</para>
+       
+       <screen>
+        elm mc-008[0-5] Date/time-added-to-db !        
+       </screen>
+       
+       <para>or for RUSMARC (this data included in 100th field)</para>
+       
+       <screen>
+        elm mc-100___$a[0-7]_ Date/time-added-to-db !
+       </screen>
+       
+       </listitem>
+       
+       <listitem>
+       
+       <para>using indicators while indexing</para>
+
+       <para>For RUSMARC <emphasis>index-formula</emphasis>
+        <literal>70-#1$a, $g</literal> matches</para>
+       
+       <screen>
+        elm 70._1_$a,_$g_ Author !:w,!:p
+       </screen>
+       
+       <para>When Zebra finds a field according to 
+        <literal>"70."</literal> pattern it checks the indicators. In this
+        case the value of first indicator doesn't mater, but the value of
+        second one must be whitespace, in another case a field is not 
+        indexed.</para>
+       </listitem>
+       
+       <listitem>
+       
+       <para>indexing embedded (linked) fields for UNIMARC based
+        formats</para>
+       
+       <para>For RUSMARC <emphasis>index-formula</emphasis> 
+        <literal>4--#-$170-#1$a, $g ($c)</literal> matches</para>
+       
+       <screen><![CDATA[
+        elm mc-4.._._$1<70._1_$a,_$g_(_$c_)>_ Author !:w,!:p
+        ]]></screen>
+       
+       <para>Data are extracted from record if the field matches to
+        <literal>"4.._."</literal> pattern and data in linked field
+        match to embedded
+        <emphasis>index-formula</emphasis>
+        <literal>70._1_$a,_$g_(_$c_)</literal>.</para>
+       
+       </listitem>
+       
+      </orderedlist>
+     </para>
+     
+     
+    </section>
+   </section>
 
+  </section>
+  
  </chapter>
  <!-- Keep this comment at the end of the file
  Local variables:
index af98f12..5a2f114 100644 (file)
@@ -1,8 +1,8 @@
-<chapter id="server">
- <!-- $Id: server.xml,v 1.25 2006-06-30 14:36:12 marc Exp $ -->
+<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">
+ <sect1 id="zebrasrv-running">
   <title>Running the Z39.50 Server (zebrasrv)</title>
 
   <!--
@@ -16,7 +16,7 @@
    zebrasrv manpage -->
 
 
- <sect2><title>Description</title>
+ <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
    </para>
   </sect2>
 
- <sect2>
+ <sect2 id="zebrasrv-synopsis">
    <title>Synopsis</title>
     &zebrasrv-synopsis;
  </sect2>
 
- <sect2>
+ <sect2 id="zebrasrv-options">
    <title>Options</title>
     
    <para>
   &zebrasrv-options;
   </sect2>
 
-  <sect2><title>Files</title>
+  <sect2 id="zebrasrv-files"><title>Files</title>
    <para>
     <filename>zebra.cfg</filename>
    </para>
   </sect2>
-  <sect2><title>See Also</title>
+  <sect2 id="zebrasrv-see-also"><title>See Also</title>
    <para>
     <citerefentry>
      <refentrytitle>zebraidx</refentrytitle>
  <sect1 id="protocol-support">
   <title>Z39.50 Protocol Support and Behavior</title>
 
-  <sect2>
+  <sect2 id="zebrasrv-initialization">
    <title>Initialization</title>
 
    <para>
 
    </sect2>
    
-  <sect2>
+  <sect2 id="zebrasrv-present">
    <title>Present</title>
    <para>
     The present facility is supported in a standard fashion. The requested
     provided by the relevant record profiles.
    </para>
   </sect2>
-  <sect2>
+  <sect2 id="zebrasrv-scan">
    <title>Scan</title>
    <para>
     The attribute combinations provided with the termListAndStartPoint are
     the termInfo structure.
    </para>
   </sect2>
-  <sect2>
+  <sect2 id="zebrasrv-sort">
    <title>Sort</title>
 
    <para>
     be the same as the output result set.
    </para>
   </sect2>
-  <sect2>
+  <sect2 id="zebrasrv-close">
    <title>Close</title>
    <para>
     If a Close PDU is received, the server will respond with a Close PDU
    </para>
   </sect2>
    
-   <sect2>
+   <sect2 id="zebrasrv-explain">
     <title>Explain</title>
     <para>
      Zebra maintains a "classic" 
 </chapter>
 
 
-<chapter id="server-sru">
+<chapter id="zebrasrv-sru">
  <title>The SRU/SRW Server</title>
  <para>
   In addition to Z39.50, Zebra supports the more recent and
   the protocol packets and Zebra's support for them is equivalent.
  </para>
 
- <sect1 id="server-sru-run">
+ <sect1 id="zebrasrv-sru-run">
   <title>Running the SRU Server (zebrasrv)</title>
   <para>
    Because Zebra supports all three protocols on one port, it would
   </screen>
  </sect1>
 
- <sect1 id="server-sru-support">
+ <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
    following elements of the protocol.
   </para>
 
-  <sect2>
+  <sect2 id="zebrasrvr-search-and-retrieval">
    <title>Search and Retrieval</title>
    <para>
     Zebra fully supports SRU's core
    </para>
   </sect2>
 
-  <sect2>
+  <sect2 id="zebrasrv-scan">
    <title>Scan</title>
    <para>
     Zebra supports SRU's
    </para>
   </sect2>
 
-  <sect2>
+  <sect2 id="zebrasrv-explain">
    <title>Explain</title>
    <para>
     Zebra fully supports SRU's core
      </para>
   </sect2>
 
-  <sect2>
+  <sect2 id="zebrasrv-sru-examples">
    <title>Some SRU Examples</title>
     <para>
      Surf into <literal>http://localhost:9999</literal>
     </para>
   </sect2>
 
-  <sect2>
+  <sect2 id="zebrasrv-non-sru-ops">
    <title>Initialization, Present, Sort, Close</title>
    <para>
     In the Z39.50 protocol, Initialization, Present, Sort and Close
index 8c5dfe9..d68594c 100644 (file)
@@ -9,7 +9,7 @@
      <!ENTITY % common  SYSTEM "common/common.ent">
      %common;
 ]>
-<!-- $Id: zebra.xml,v 1.7 2006-06-30 12:31:22 marc Exp $ -->
+<!-- $Id: zebra.xml,v 1.8 2006-09-03 21:37:27 adam Exp $ -->
 <book id="zebra">
  <bookinfo>
   <title>Zebra - User's Guide and Reference</title>
@@ -69,6 +69,7 @@
   &chap-administration;
   &chap-recordmodel-grs;
   &chap-recordmodel-alvisxslt;
+  &chap-field-structure;
   &chap-zebraidx;
   &chap-server;
   &app-license;