added few comments
authorMarc Cromme <marc@indexdata.dk>
Sun, 25 Jun 2006 21:54:03 +0000 (21:54 +0000)
committerMarc Cromme <marc@indexdata.dk>
Sun, 25 Jun 2006 21:54:03 +0000 (21:54 +0000)
doc/querymodel.xml

index 88c2fd7..ee17061 100644 (file)
@@ -1,10 +1,9 @@
  <chapter id="querymodel">
  <chapter id="querymodel">
-  <!-- $Id: querymodel.xml,v 1.15 2006-06-23 13:45:41 marc Exp $ -->
+  <!-- $Id: querymodel.xml,v 1.16 2006-06-25 21:54:03 marc Exp $ -->
   <title>Query Model</title>
   
   <sect1 id="querymodel-overview">
   <title>Query Model</title>
   
   <sect1 id="querymodel-overview">
-   <title>Query Model Overview</title>
-   
+   <title>Query Model Overview</title>  
 
    <sect2 id="querymodel-query-languages">
     <title>Query Languages</title>
 
    <sect2 id="querymodel-query-languages">
     <title>Query Languages</title>
     <title>Prefix Query Format (PQF)</title>
 
    <para>
     <title>Prefix Query Format (PQF)</title>
 
    <para>
-     Index Data has defined a textual representaion in the 
+     Index Data has defined a textual representation in the 
      <literal>Prefix Query Format</literal>, short
      <literal>Prefix Query Format</literal>, short
-     <literal>PQF</literal>, which mappes 
+     <literal>PQF</literal>, which maps 
       <literal>one-to-one</literal> to binary encoded  
       <literal>type-1 RPN</literal> query packages.
       It has been adopted by other
       parties developing Z39.50 software, and is often referred to as
      <literal>Prefix Query Notation</literal>, or in short 
      <literal>PQN</literal>. See       
       <literal>one-to-one</literal> to binary encoded  
       <literal>type-1 RPN</literal> query packages.
       It has been adopted by other
       parties developing Z39.50 software, and is often referred to as
      <literal>Prefix Query Notation</literal>, or in short 
      <literal>PQN</literal>. See       
-     <xref linkend="querymodel-pqf"/> for further explanaitions and
+     <xref linkend="querymodel-pqf"/> for further explanations and
      descriptions of Zebra's capabilities.  
     </para>
    </sect3>    
      descriptions of Zebra's capabilities.  
     </para>
    </sect3>    
       of the general query model are supported.      
      </para>
      <para>
       of the general query model are supported.      
      </para>
      <para>
-      The Z39.50 embeddes the <literal>explain</literal> operation
-      by perfoming a 
+      The Z39.50 embeds the <literal>explain</literal> operation
+      by performing a 
       <literal>search</literal> in the magic 
       <literal>IR-Explain-1</literal> database;
       see <xref linkend="querymodel-exp1"/>. 
      </para>
      <para>
       <literal>search</literal> in the magic 
       <literal>IR-Explain-1</literal> database;
       see <xref linkend="querymodel-exp1"/>. 
      </para>
      <para>
-      In SRU, <literal>explain</literal> is an entirely  seperate
-      operation, which returns an  <literal>Zeerex
+      In SRU, <literal>explain</literal> is an entirely  separate
+      operation, which returns an  <literal>ZeeRex
       XML</literal> record according to the 
       structure defined by the protocol.
      </para>
       XML</literal> record according to the 
       structure defined by the protocol.
      </para>
      <para>
       It provides
       the means to investigate the content of specific indexes.
      <para>
       It provides
       the means to investigate the content of specific indexes.
-      Scanning an index returns a handfull of terms actually fond in
+      Scanning an index returns a handful of terms actually fond in
       the indexes, and in addition the <literal>scan</literal>
       the indexes, and in addition the <literal>scan</literal>
-      operation returns th enumber of documents indexed by each term.
+      operation returns the number of documents indexed by each term.
       A search client can use this information to propose proper
       spelling of search terms, to auto-fill search boxes, or to 
       display  controlled vocabularies.
       A search client can use this information to propose proper
       spelling of search terms, to auto-fill search boxes, or to 
       display  controlled vocabularies.
         <tr>
          <td><literal>GILS</literal></td>
          <td><literal>gils</literal></td>
         <tr>
          <td><literal>GILS</literal></td>
          <td><literal>gils</literal></td>
-         <td>Extention to the <literal>Bib1</literal> attribute set.</td>
+         <td>Extension to the <literal>Bib1</literal> attribute set.</td>
          <td>predefined</td>
         </tr>
         <!--
          <td>predefined</td>
         </tr>
         <!--
      <para>
       A pair of subquery trees, or of atomic queries, is combined
       using the standard boolean operators into new query trees.
      <para>
       A pair of subquery trees, or of atomic queries, is combined
       using the standard boolean operators into new query trees.
+      Thus, boolean operators are always internal nodes in the query tree.
      </para>
      
      <table id="querymodel-boolean-operators-table"
      </para>
      
      <table id="querymodel-boolean-operators-table"
       Querying for the intersection of all documents containing the
       terms <emphasis>information</emphasis> AND
       <emphasis>retrieval</emphasis>: 
       Querying for the intersection of all documents containing the
       terms <emphasis>information</emphasis> AND
       <emphasis>retrieval</emphasis>: 
-      The hit set is a subset of the coresponding
+      The hit set is a subset of the corresponding
       OR query.
       <screen>
        Z> find @and information retrieval
       OR query.
       <screen>
        Z> find @and information retrieval
       Querying for the intersection of all documents containing the
       terms <emphasis>information</emphasis> AND
       <emphasis>retrieval</emphasis>, taking proximity into account:
       Querying for the intersection of all documents containing the
       terms <emphasis>information</emphasis> AND
       <emphasis>retrieval</emphasis>, taking proximity into account:
-      The hit set is a subset of the coresponding
-      AND query.
+      The hit set is a subset of the corresponding
+      AND query        
+      (see the <ulink url="&url.yaz.pqf;">PQF grammar</ulink> for
+      details on the proximity operator):
       <screen>
        Z> find @prox 0 3 0 2 k 2 information retrieval
       </screen>
       <screen>
        Z> find @prox 0 3 0 2 k 2 information retrieval
       </screen>
-       See  <ulink url="&url.yaz.pqf;">PQF grammer</ulink> for details.
      </para>
      <para>
       Querying for the intersection of all documents containing the
       terms <emphasis>information</emphasis> AND
       <emphasis>retrieval</emphasis>, in the same order and near each
      </para>
      <para>
       Querying for the intersection of all documents containing the
       terms <emphasis>information</emphasis> AND
       <emphasis>retrieval</emphasis>, in the same order and near each
-      other as described in the term list  
-      The hit set is a subset of the coresponding
+      other as described in the term list.  
+      The hit set is a subset of the corresponding
       PROXIMY query.
       <screen>
        Z> find "information retrieval"
       PROXIMY query.
       <screen>
        Z> find "information retrieval"
     <sect3 id="querymodel-atomic-queries">
      <title>Atomic queries (APT)</title>
      <para>
     <sect3 id="querymodel-atomic-queries">
      <title>Atomic queries (APT)</title>
      <para>
-      Atomic queries are the query parts which work on one acess point
+      Atomic queries are the query parts which work on one access point
       only. These consist of <literal>an attribute list</literal>
       followed by a <literal>single term</literal> or a
       <literal>quoted term list</literal>, and are often called 
       <emphasis>Attributes-Plus-Terms (APT)</emphasis> queries.
      </para>
      <para>
       only. These consist of <literal>an attribute list</literal>
       followed by a <literal>single term</literal> or a
       <literal>quoted term list</literal>, and are often called 
       <emphasis>Attributes-Plus-Terms (APT)</emphasis> queries.
      </para>
      <para>
+      Atomic (APT) queries are always leaf nodes in the PQF query tree. 
       Unsupplied non-use attributes type 2-9 are either inherited from
       higher nodes in the query tree, or are set to Zebra's default values.
       See <xref linkend="querymodel-bib1"/> for details. 
       Unsupplied non-use attributes type 2-9 are either inherited from
       higher nodes in the query tree, or are set to Zebra's default values.
       See <xref linkend="querymodel-bib1"/> for details. 
      <table id="querymodel-atomic-queries-table"
       frame="all" rowsep="1" colsep="1" align="center">
 
      <table id="querymodel-atomic-queries-table"
       frame="all" rowsep="1" colsep="1" align="center">
 
-      <caption>Atomic queries</caption>
-       <!--
+      <caption>Atomic queries (APT)</caption>
        <thead>
        <thead>
-       <tr><td>one</td><td>two</td></tr>
+        <tr>
+         <td>Name</td>
+         <td>Type</td>
+         <td>Notes</td>
+        </tr>
       </thead>
       </thead>
-       -->
        <tbody>
         <tr>
          <td><emphasis>attribute list</emphasis></td>
        <tbody>
         <tr>
          <td><emphasis>attribute list</emphasis></td>
      </table>
      <para>
       Querying for the term <emphasis>information</emphasis> in the
      </table>
      <para>
       Querying for the term <emphasis>information</emphasis> in the
-      default index using the default attribite set, the server choice
+      default index using the default attribute set, the server choice
       of access point/index, and the default non-use attributes.
       <screen>
        Z> find information
       of access point/index, and the default non-use attributes.
       <screen>
        Z> find information
        Z> find @attrset bib-1 @attr 1=1017 @attr 2=3 @attr 3=3 @attr 4=1 @attr 5=100 @attr 6=1 information
       </screen>
      </para>
        Z> find @attrset bib-1 @attr 1=1017 @attr 2=3 @attr 3=3 @attr 4=1 @attr 5=100 @attr 6=1 information
       </screen>
      </para>
-     
+
      <para>
       Finding all documents which have the term
       <emphasis>debussy</emphasis> in the title field.
      <para>
       Finding all documents which have the term
       <emphasis>debussy</emphasis> in the title field.
       </screen>
      </para>
 
       </screen>
      </para>
 
+     <para>
+      The <literal>scan</literal> operation is only supported with 
+      atomic APT queries, as it is bound to one access point at a
+      time. Boolean query trees are not allowed during
+      <literal>scan</literal>.
+      </para>
+     
+     <para>
+      For example, we migh want to scan the title index, starting with
+      the term 
+      <emphasis>debussy</emphasis>, and displaying this and the
+      following terms in lexicographic order:
+      <screen>
+       Z> scan @attr 1=4 debussy
+      </screen>
+     </para>
     </sect3>
     
     
     </sect3>
     
     
      <title>Named Result Sets</title>
      <para>
       Named result sets are supported in Zebra, and result sets can be
      <title>Named Result Sets</title>
      <para>
       Named result sets are supported in Zebra, and result sets can be
-      used as operands without limitations.
+      used as operands without limitations. It follows that named
+      result sets are leaf nodes in the PQF query tree, exactly as
+      atomic APT queries are.
      </para>
      <para>      
       After the execution of a search, the result set is available at
       the server, such that the client can use it for subsequent
       searches or retrieval requests. The Z30.50 standard actually
      </para>
      <para>      
       After the execution of a search, the result set is available at
       the server, such that the client can use it for subsequent
       searches or retrieval requests. The Z30.50 standard actually
-      stresses the fact that result sets are voliatile. It may cease
+      stresses the fact that result sets are volatile. It may cease
       to exist at any time point after search, and the server will
       send a diagnostic to the effect that the requested
       result set does not exist any more.
       to exist at any time point after search, and the server will
       send a diagnostic to the effect that the requested
       result set does not exist any more.
      <note>
       Named result sets are only supported by the Z39.50 protocol.
       The SRU web service is stateless, and therefore the notion of
      <note>
       Named result sets are only supported by the Z39.50 protocol.
       The SRU web service is stateless, and therefore the notion of
-      named result sets does not exist when acessing a Zebra server by
+      named result sets does not exist when accessing a Zebra server by
       the SRU protocol.
      </note>
     </sect3>
       the SRU protocol.
      </note>
     </sect3>
      <title>Zebra's special access point of type 'string'</title>
      <para>
       The numeric <literal>use (type 1)</literal> attribute is usually 
      <title>Zebra's special access point of type 'string'</title>
      <para>
       The numeric <literal>use (type 1)</literal> attribute is usually 
-      refered to from a given
+      referred to from a given
       attribute set. In addition, Zebra let you use 
       <emphasis>any internal index
        name defined in your configuration</emphasis> 
       attribute set. In addition, Zebra let you use 
       <emphasis>any internal index
        name defined in your configuration</emphasis> 
-      as use atribute value. This is a great feature for
+      as use attribute value. This is a great feature for
       debugging, and when you do
       debugging, and when you do
-      not need the complecity of defined use attribute values. It is
+      not need the complexity of defined use attribute values. It is
       the preferred way of accessing Zebra indexes directly.  
      </para>
      <para>
       the preferred way of accessing Zebra indexes directly.  
      </para>
      <para>
      <para>
       See also <xref linkend="querymodel-pqf-apt-mapping"/> for details, and 
       <xref linkend="server-sru"/>
      <para>
       See also <xref linkend="querymodel-pqf-apt-mapping"/> for details, and 
       <xref linkend="server-sru"/>
-      for the SRU PQF query extention using string names as a fast
+      for the SRU PQF query extension using string names as a fast
       debugging facility.
      </para>
     </sect3>
       debugging facility.
      </para>
     </sect3>
       idea) to emulate 
       <ulink url="http://www.w3.org/TR/xpath">XPath 1.0</ulink> based
       search by defining <literal>use (type 1)</literal> 
       idea) to emulate 
       <ulink url="http://www.w3.org/TR/xpath">XPath 1.0</ulink> based
       search by defining <literal>use (type 1)</literal> 
-      <emphasis>string</emphasis> attributes which in appearence 
+      <emphasis>string</emphasis> attributes which in appearance 
       <emphasis>resemble XPath queries</emphasis>. There are two
       problems with this approach: first, the XPath-look-alike has to
       be defined at indexation time, no new undefined
       <emphasis>resemble XPath queries</emphasis>. There are two
       problems with this approach: first, the XPath-look-alike has to
       be defined at indexation time, no new undefined
       <literal>use (type 1)</literal> <emphasis>xpath</emphasis>
       attributes. You must enable the 
       <literal>xpath enable</literal> directive in your 
       <literal>use (type 1)</literal> <emphasis>xpath</emphasis>
       attributes. You must enable the 
       <literal>xpath enable</literal> directive in your 
-      <literal>.abs</literal> config files. 
+      <literal>.abs</literal> configuration files. 
      </para>
      <note>
       Only a <emphasis>very</emphasis> restricted subset of the 
      </para>
      <note>
       Only a <emphasis>very</emphasis> restricted subset of the 
       Finding all documents which have the term "content" 
       inside a text node found in a specific XML DOM
       <emphasis>subtree</emphasis>, whose starting element is 
       Finding all documents which have the term "content" 
       inside a text node found in a specific XML DOM
       <emphasis>subtree</emphasis>, whose starting element is 
-      adressed by XPath. 
+      addressed by XPath. 
       <screen>
        Z> find @attr 1=/root content 
        Z> find @attr 1=/root/first content
       </screen>
       <emphasis>Notice that the
        XPath must be absolute, i.e., must start with '/', and that the
       <screen>
        Z> find @attr 1=/root content 
        Z> find @attr 1=/root/first content
       </screen>
       <emphasis>Notice that the
        XPath must be absolute, i.e., must start with '/', and that the
-       XPath <literal>decendant-or-self</literal> axis followed by a
+       XPath <literal>descendant-or-self</literal> axis followed by a
        text node selection <literal>text()</literal> is implicitly
        appended to the stated XPath.
       </emphasis>
        text node selection <literal>text()</literal> is implicitly
        appended to the stated XPath.
       </emphasis>
       </para>
 
      <para>     
       </para>
 
      <para>     
-      Filter the adressing XPath by a predicate working on exact
+      Filter the addressing XPath by a predicate working on exact
       string values in
       attributes (in the XML sense) can be done: return all those docs which
       have the term "english" contained in one of all text subnodes of
       string values in
       attributes (in the XML sense) can be done: return all those docs which
       have the term "english" contained in one of all text subnodes of
      </para>
      <warning>
       It is worth mentioning that these dynamic performed XPath
      </para>
      <warning>
       It is worth mentioning that these dynamic performed XPath
-      queries are a performance bottelneck, as no optimized
+      queries are a performance bottleneck, as no optimized
       specialized indexes can be used. Therefore, avoid the use of
       this facility when speed is essential, and the database content
       size is medium to large. 
       specialized indexes can be used. Therefore, avoid the use of
       this facility when speed is essential, and the database content
       size is medium to large. 
     <sect3 id="querymodel-exp1-use">
     <title>Use Attributes (type = 1)</title>
      <para>
     <sect3 id="querymodel-exp1-use">
     <title>Use Attributes (type = 1)</title>
      <para>
-      The following Explain search atributes are supported:
+      The following Explain search attributes are supported:
       <literal>ExplainCategory</literal> (@attr 1=1), 
       <literal>DatabaseName</literal> (@attr 1=3), 
       <literal>DateAdded</literal> (@attr 1=9), 
       <literal>ExplainCategory</literal> (@attr 1=1), 
       <literal>DatabaseName</literal> (@attr 1=3), 
       <literal>DateAdded</literal> (@attr 1=9), 
      <title>Explain searches with yaz-client</title>
      <para>
       Classic Explain only defines retrieval of Explain information
      <title>Explain searches with yaz-client</title>
      <para>
       Classic Explain only defines retrieval of Explain information
-      via ASN.1. Pratically no Z39.50 clients supports this. Fortunately
+      via ASN.1. Practically no Z39.50 clients supports this. Fortunately
       they don't have to - Zebra allows retrieval of this information
       in other formats:
       <literal>SUTRS</literal>, <literal>XML</literal>, 
       they don't have to - Zebra allows retrieval of this information
       in other formats:
       <literal>SUTRS</literal>, <literal>XML</literal>, 
      Most of the information contained in this section is an excerpt of
      the <literal>ATTRIBUTE SET BIB-1 (Z39.50-1995)
       SEMANTICS</literal>, 
      Most of the information contained in this section is an excerpt of
      the <literal>ATTRIBUTE SET BIB-1 (Z39.50-1995)
       SEMANTICS</literal>, 
-     found at  <ulink url="&url.z39.50.attset.bib1.1995;">. The BIB-1
+     found at <ulink url="&url.z39.50.attset.bib1.1995;">. The BIB-1
       Attribute Set Semantics</ulink> from 1995, also in an updated 
      <ulink url="&url.z39.50.attset.bib1;">Bib-1
       Attribute Set</ulink> 
       Attribute Set Semantics</ulink> from 1995, also in an updated 
      <ulink url="&url.z39.50.attset.bib1;">Bib-1
       Attribute Set</ulink> 
 
     <para>
      A use attribute specifies an access point for any atomic query.
 
     <para>
      A use attribute specifies an access point for any atomic query.
-     These acess points are highly dependent on the attribute set used
+     These access points are highly dependent on the attribute set used
      in the query, and are user configurable using the following
      default configuration files:
      <filename>tab/bib1.att</filename>,
      in the query, and are user configurable using the following
      default configuration files:
      <filename>tab/bib1.att</filename>,
      </para>
 
     <para>
      </para>
 
     <para>
-     In addition, Zebra allows the acess of 
+     In addition, Zebra allows the access of 
      <emphasis>internal index names</emphasis> and <emphasis>dynamic
      XPath</emphasis> as use attributes; see
       <xref linkend="querymodel-use-string"/> and 
      <emphasis>internal index names</emphasis> and <emphasis>dynamic
      XPath</emphasis> as use attributes; see
       <xref linkend="querymodel-use-string"/> and 
       <literal>structure attribute (type 4)</literal> can be defined
       using the configuration file <filename>
       tab/default.idx</filename>.
       <literal>structure attribute (type 4)</literal> can be defined
       using the configuration file <filename>
       tab/default.idx</filename>.
-      The default configuration is summerized in this table.
+      The default configuration is summarized in this table.
      </para>
 
      <table id="querymodel-bib1-structure-table"
      </para>
 
      <table id="querymodel-bib1-structure-table"
       Z> find @attr 1=Body-of-text @attr 4=106 "bach salieri teleman"
       Z> find @attr 1=Body-of-text @or bach @or salieri teleman 
      </screen>
       Z> find @attr 1=Body-of-text @attr 4=106 "bach salieri teleman"
       Z> find @attr 1=Body-of-text @or bach @or salieri teleman 
      </screen>
-     This <literal>OR</literal> list of terms is very usefull in
+     This <literal>OR</literal> list of terms is very useful in
      combination with relevance ranking:
      <screen>
       Z> find @attr 1=Body-of-text @attr 2=102 @attr 4=105 "bach salieri teleman"
      combination with relevance ranking:
      <screen>
       Z> find @attr 1=Body-of-text @attr 2=102 @attr 4=105 "bach salieri teleman"
 
      <para>
       The truncation attribute specifies whether variations of one or
 
      <para>
       The truncation attribute specifies whether variations of one or
-      more characters are allowed between serch term and hit terms, or
+      more characters are allowed between search term and hit terms, or
       not. Using non-default truncation attributes will broaden the
       document hit set of a search query.
      </para>
       not. Using non-default truncation attributes will broaden the
       document hit set of a search query.
      </para>
       <literal>Process # in search term (101)</literal> is a
       poor-man's regular expression search. It maps
       each <literal>#</literal> to <literal>.*</literal>, and
       <literal>Process # in search term (101)</literal> is a
       poor-man's regular expression search. It maps
       each <literal>#</literal> to <literal>.*</literal>, and
-      performes then a <literal>Regexp-1 (102)</literal> regular
+      performs then a <literal>Regexp-1 (102)</literal> regular
       expression search. The following two queries are equivalent:
       <screen>
        Z> find @attr 1=Body-of-text  @attr 5=101 schnit#ke
       expression search. The following two queries are equivalent:
       <screen>
        Z> find @attr 1=Body-of-text  @attr 5=101 schnit#ke
 
      <para>
        The truncation attribute value 
 
      <para>
        The truncation attribute value 
-      <literal>Regexp-2 (103) </literal> is a Zebra specific extention
+      <literal>Regexp-2 (103) </literal> is a Zebra specific extension
       which allows <emphasis>fuzzy</emphasis> matches. One single
       error in spelling of search terms is allowed, i.e., a document
       is hit if it includes a term which can be mapped to the used
       search term by one character substitution, addition, deletion or
       which allows <emphasis>fuzzy</emphasis> matches. One single
       error in spelling of search terms is allowed, i.e., a document
       is hit if it includes a term which can be mapped to the used
       search term by one character substitution, addition, deletion or
-      change of posiiton. 
+      change of position. 
       <screen>
        Z> find @attr 1=Body-of-text  @attr 5=100 schnittke
        ...
       <screen>
        Z> find @attr 1=Body-of-text  @attr 5=100 schnittke
        ...
    <para>
     The Zebra internal query engine has been extended to specific needs
     not covered by the <literal>bib-1</literal> attribute set query
    <para>
     The Zebra internal query engine has been extended to specific needs
     not covered by the <literal>bib-1</literal> attribute set query
-    model. These extentions are <emphasis>non-standard</emphasis>
-    and <emphasis>non-portable</emphasis>: most functional extentions
+    model. These extensions are <emphasis>non-standard</emphasis>
+    and <emphasis>non-portable</emphasis>: most functional extensions
     are modeled over the <literal>bib-1</literal> attribute set,
     defining type 7-9 attributes.
     are modeled over the <literal>bib-1</literal> attribute set,
     defining type 7-9 attributes.
-    There are also the speciel 
+    There are also the special 
     <literal>string</literal> type index names for the
     <literal>idxpath</literal> attribute set.  
    </para>
     <literal>string</literal> type index names for the
     <literal>idxpath</literal> attribute set.  
    </para>
    </sect2>
 
    <sect2 id="querymodel-zebra-attr-search">
    </sect2>
 
    <sect2 id="querymodel-zebra-attr-search">
-    <title>Zebra specific Search Extentions to all Attribute Sets</title>
+    <title>Zebra specific Search Extensions to all Attribute Sets</title>
     <para>
     <para>
-     Zebra extends the Bib1 attribute types, and these extentions are
+     Zebra extends the Bib1 attribute types, and these extensions are
      recognized regardless of attribute 
      set used in a <literal>search</literal> operation query.
     </para>
      recognized regardless of attribute 
      set used in a <literal>search</literal> operation query.
     </para>
      <table id="querymodel-zebra-attr-search-table"
       frame="all" rowsep="1" colsep="1" align="center">
 
      <table id="querymodel-zebra-attr-search-table"
       frame="all" rowsep="1" colsep="1" align="center">
 
-      <caption>Zebra Search Attribute Extentions</caption>
+      <caption>Zebra Search Attribute Extensions</caption>
        <thead>
         <tr>
          <td>Name</td>
        <thead>
         <tr>
          <td>Name</td>
       </table>      
 
     <sect3 id="querymodel-zebra-attr-sorting">
       </table>      
 
     <sect3 id="querymodel-zebra-attr-sorting">
-     <title>Zebra Extention Embedded Sort Attribute (type 7)</title>
+     <title>Zebra Extension Embedded Sort Attribute (type 7)</title>
     </sect3>
     <para>
      The embedded sort is a way to specify sort within a query - thus
     </sect3>
     <para>
      The embedded sort is a way to specify sort within a query - thus
     </para>
     
     <sect3 id="querymodel-zebra-attr-estimation">
     </para>
     
     <sect3 id="querymodel-zebra-attr-estimation">
-     <title>Zebra Extention Term Set Attribute (type 8)</title>
+     <title>Zebra Extension Term Set Attribute (type 8)</title>
     </sect3>
     <para>
      The Term Set feature is a facility that allows a search to store
     </sect3>
     <para>
      The Term Set feature is a facility that allows a search to store
     </warning>
 
     <sect3 id="querymodel-zebra-attr-weight">
     </warning>
 
     <sect3 id="querymodel-zebra-attr-weight">
-     <title>Zebra Extention Rank Weight Attribute (type 9)</title>
+     <title>Zebra Extension Rank Weight Attribute (type 9)</title>
     </sect3>
     <para>
      Rank weight is a way to pass a value to a ranking algorithm - so
     </sect3>
     <para>
      Rank weight is a way to pass a value to a ranking algorithm - so
     </para>
 
     <sect3 id="querymodel-zebra-attr-limit">
     </para>
 
     <sect3 id="querymodel-zebra-attr-limit">
-     <title>Zebra Extention Approximative Limit Attribute (type 9)</title>
+     <title>Zebra Extension Approximative Limit Attribute (type 9)</title>
     </sect3>
     <para>
     </sect3>
     <para>
-     Newer Zebra versions normally estemiates hit count for every APT
+     Newer Zebra versions normally estimate hit count for every APT
      (leaf) in the query tree. These hit counts are returned as part of
      the searchResult-1 facility in the binary encoded Z39.50 search
      response packages.
      (leaf) in the query tree. These hit counts are returned as part of
      the searchResult-1 facility in the binary encoded Z39.50 search
      response packages.
      reached. A value of zero means exact hit count.
     </para>
     <para>
      reached. A value of zero means exact hit count.
     </para>
     <para>
-     For example, we might be intersted in exact hit count for a, but
+     For example, we might be interested in exact hit count for a, but
      for b we allow hit count estimates for 1000 and higher. 
      <screen>
       Z> find @and a @attr 9=1000 b
      </screen>
     </para>
     <note>
      for b we allow hit count estimates for 1000 and higher. 
      <screen>
       Z> find @and a @attr 9=1000 b
      </screen>
     </para>
     <note>
-     The estimated hit count fascility makes searches faster, as one
+     The estimated hit count facility makes searches faster, as one
      only needs to process large hit lists partially.
     </note>
     <warning>
      only needs to process large hit lists partially.
     </note>
     <warning>
      documents in the hit lists need to be examined for scoring and
      re-sorting.
      It is an experimental
      documents in the hit lists need to be examined for scoring and
      re-sorting.
      It is an experimental
-     extention. Do not use in production code.
+     extension. Do not use in production code.
     </warning>
 
     <sect3 id="querymodel-zebra-attr-termref">
     </warning>
 
     <sect3 id="querymodel-zebra-attr-termref">
-     <title>Zebra Extention Term Reference Attribute (type 10)</title>
+     <title>Zebra Extension Term Reference Attribute (type 10)</title>
     </sect3>
     <para>
      Zebra supports the <literal>searchResult-1</literal> facility. 
     </sect3>
     <para>
      Zebra supports the <literal>searchResult-1</literal> facility. 
     
 
    <sect2 id="querymodel-zebra-attr-scan">
     
 
    <sect2 id="querymodel-zebra-attr-scan">
-    <title>Zebra specific Scan Extentions to all Attribute Sets</title>
+    <title>Zebra specific Scan Extensions to all Attribute Sets</title>
     <para>
     <para>
-     Zebra extends the Bib1 attribute types, and these extentions are
+     Zebra extends the Bib1 attribute types, and these extensions are
      recognized regardless of attribute 
      set used in a <literal>scan</literal> operation query.
     </para>
      <table id="querymodel-zebra-attr-scan-table"
       frame="all" rowsep="1" colsep="1" align="center">
 
      recognized regardless of attribute 
      set used in a <literal>scan</literal> operation query.
     </para>
      <table id="querymodel-zebra-attr-scan-table"
       frame="all" rowsep="1" colsep="1" align="center">
 
-      <caption>Zebra Scan Attribute Extentions</caption>
+      <caption>Zebra Scan Attribute Extensions</caption>
        <thead>
         <tr>
          <td>Name</td>
        <thead>
         <tr>
          <td>Name</td>
       </table>      
 
     <sect3 id="querymodel-zebra-attr-narrow">
       </table>      
 
     <sect3 id="querymodel-zebra-attr-narrow">
-     <title>Zebra Extention Result Set Narrow (type 8)</title>
+     <title>Zebra Extension Result Set Narrow (type 8)</title>
     </sect3>
     <para>
      If attribute <literal>Result Set Narrow (type 8)</literal> 
     </sect3>
     <para>
      If attribute <literal>Result Set Narrow (type 8)</literal> 
      the case of scanning all title fields around the
      scanterm <emphasis>mozart</emphasis>, then refining the scan by
      issuing a filtering query for <emphasis>amadeus</emphasis> to
      the case of scanning all title fields around the
      scanterm <emphasis>mozart</emphasis>, then refining the scan by
      issuing a filtering query for <emphasis>amadeus</emphasis> to
-     restric the scan to the result set of the query:  
+     restrict the scan to the result set of the query:  
      <screen>
       Z> scan @attr 1=4 mozart 
       ...
      <screen>
       Z> scan @attr 1=4 mozart 
       ...
     </warning>
 
     <sect3 id="querymodel-zebra-attr-approx">
     </warning>
 
     <sect3 id="querymodel-zebra-attr-approx">
-     <title>Zebra Extention Approximative Limit (type 9)</title>
+     <title>Zebra Extension Approximative Limit (type 9)</title>
     </sect3>
     <para>
     </sect3>
     <para>
-     The <literal>Zebra Extention Approximative Limit (type
-      9)</literal> is a way to enable approx
+     The <literal>Zebra Extension Approximative Limit (type
+      9)</literal> is a way to enable approximate
      hit counts for <literal>scan</literal> hit counts, in the same
      way as for <literal>search</literal> hit counts. 
     </para>
      hit counts for <literal>scan</literal> hit counts, in the same
      way as for <literal>search</literal> hit counts. 
     </para>
      <literal>xpath enable</literal> option in the GRS filter
      <filename>*.abs</filename> configuration files. If one wants to use
      the special <literal>idxpath</literal> numeric attribute set, the
      <literal>xpath enable</literal> option in the GRS filter
      <filename>*.abs</filename> configuration files. If one wants to use
      the special <literal>idxpath</literal> numeric attribute set, the
-     main Zebra configuraiton file <filename>zebra.cfg</filename>
+     main Zebra configuration file <filename>zebra.cfg</filename>
      directive <literal>attset: idxpath.att</literal> must be enabled.
     </para>
     <warning>The <literal>idxpath</literal> is depreciated, may not be
      directive <literal>attset: idxpath.att</literal> must be enabled.
     </para>
     <warning>The <literal>idxpath</literal> is depreciated, may not be
       </screen>
      </para>
      <para>
       </screen>
      </para>
      <para>
-      Combining usual <literal>bib-1</literal> attribut set searches
+      Combining usual <literal>bib-1</literal> attribute set searches
       with <literal>idxpath</literal> attribute set searches:
       <screen>
        Z> find @and @attr idxpath 1=1 @attr 4=3 link/ @attr 1=4 mozart
       with <literal>idxpath</literal> attribute set searches:
       <screen>
        Z> find @and @attr idxpath 1=1 @attr 4=3 link/ @attr 1=4 mozart
       </screen>
      </para>
      <para>
       </screen>
      </para>
      <para>
-      Scanning is supportet on all <literal>idxpath</literal>
+      Scanning is supported on all <literal>idxpath</literal>
       indexes, both specified as numeric use attributes, or as string
       index names. 
       <screen>
       indexes, both specified as numeric use attributes, or as string
       index names. 
       <screen>
      <table id="querymodel-zebra-mapping-accesspoint-types"
       frame="all" rowsep="1" colsep="1" align="center">
 
      <table id="querymodel-zebra-mapping-accesspoint-types"
       frame="all" rowsep="1" colsep="1" align="center">
 
-      <caption>Acces point name mapping</caption>
+      <caption>Access point name mapping</caption>
        <thead>
         <tr>
        <thead>
         <tr>
-         <td>Acess Point</td>
+         <td>Access Point</td>
          <td>Type</td>
          <td>Grammar</td>
          <td>Notes</td>
          <td>Type</td>
          <td>Grammar</td>
          <td>Notes</td>
       </thead>
       <tbody>
        <tr>
       </thead>
       <tbody>
        <tr>
-        <td>Use attibute</td>
+        <td>Use attribute</td>
         <td>numeric</td>
         <td>[1-9][1-9]*</td>
         <td>directly mapped to string index name</td>
         <td>numeric</td>
         <td>[1-9][1-9]*</td>
         <td>directly mapped to string index name</td>
      <para>
       <emphasis>Numeric use attributes</emphasis> are mapped 
       to the Zebra internal
      <para>
       <emphasis>Numeric use attributes</emphasis> are mapped 
       to the Zebra internal
-      string index according to the attribute set defintion in use.
+      string index according to the attribute set definition in use.
       The default attribute set is <literal>Bib-1</literal>, and may be
       omitted in the PQF query.
      </para>
       The default attribute set is <literal>Bib-1</literal>, and may be
       omitted in the PQF query.
      </para>
     </para>
 
      <para>
     </para>
 
      <para>
-      <literal>String indexes</literal> can be acessed directly,
+      <literal>String indexes</literal> can be accessed directly,
       independently which attribute set is in use. These are just
       ignored. The above mentioned name normalization applies.
       <literal>String index names</literal> are defined in the
       independently which attribute set is in use. These are just
       ignored. The above mentioned name normalization applies.
       <literal>String index names</literal> are defined in the
      </para>
 
      <para>
      </para>
 
      <para>
-      <literal>Zebra internal indexes</literal> can be acessed directly,
+      <literal>Zebra internal indexes</literal> can be accessed directly,
       according to the same rules as the user defined
       <literal>string indexes</literal>. The only difference is that   
       according to the same rules as the user defined
       <literal>string indexes</literal>. The only difference is that   
-      <literal>Zebra internal indexe names</literal> are hardwired,
+      <literal>Zebra internal index names</literal> are hardwired,
       all uppercase and
       must start with the character <literal>'_'</literal>. 
      </para>
       all uppercase and
       must start with the character <literal>'_'</literal>. 
      </para>
      <para>
       Finally, <literal>XPATH</literal> access points are only
       available using the <literal>GRS</literal> filter for indexing.
      <para>
       Finally, <literal>XPATH</literal> access points are only
       available using the <literal>GRS</literal> filter for indexing.
-      These acees point names must start with the character
+      These access point names must start with the character
       <literal>'/'</literal>, they are <emphasis>not
       normalized</emphasis>, but passed unaltered to the Zebra internal
       XPATH engine. See <xref linkend="querymodel-use-xpath"/>.
       <literal>'/'</literal>, they are <emphasis>not
       normalized</emphasis>, but passed unaltered to the Zebra internal
       XPATH engine. See <xref linkend="querymodel-use-xpath"/>.
       Internally Zebra has in it's default configuration several
      different types of registers or indexes, whose tokenization and
       character normalization rules differ. This reflects the fact that 
       Internally Zebra has in it's default configuration several
      different types of registers or indexes, whose tokenization and
       character normalization rules differ. This reflects the fact that 
-      serching fundamental different tokens like dates, numbers,
+      searching fundamental different tokens like dates, numbers,
       bitfields and string based text needs different rulesets. 
      </para>
 
       bitfields and string based text needs different rulesets. 
      </para>
 
 
     <para>
      If the <emphasis>Structure</emphasis> attribute is
 
     <para>
      If the <emphasis>Structure</emphasis> attribute is
-     <emphasis>URx</emphasis> the term is treated as a URX (URL) entity.
+     <emphasis>URX</emphasis> the term is treated as a URX (URL) entity.
      The search is performed on those fields that are indexed as type
      <literal>u</literal> in the <filename>*.abs</filename> file.
     </para>
      The search is performed on those fields that are indexed as type
      <literal>u</literal> in the <filename>*.abs</filename> file.
     </para>