Updated ICU config and adjusted description a little.
[pazpar2-moved-to-github.git] / doc / book.xml
index 68c0294..e321728 100644 (file)
@@ -9,7 +9,6 @@
      <!ENTITY % idcommon SYSTEM "common/common.ent">
      %idcommon;
 ]>
-<!-- $Id: book.xml,v 1.21 2007-06-20 08:37:10 adam Exp $ -->
 <book id="book">
  <bookinfo>
   <title>Pazpar2 - User's Guide and Reference</title>
@@ -22,6 +21,9 @@
   <author>
    <firstname>Marc</firstname><surname>Cromme</surname>
   </author>
+  <author>
+   <firstname>Jakub</firstname><surname>Skoczen</surname>
+  </author>
   <releaseinfo>&version;</releaseinfo>
   <copyright>
    <year>&copyright-year;</year>
@@ -35,7 +37,7 @@
     and faceted results.
    </simpara>
    <simpara>
-    This document is a guide and reference to Pazpar version &version;.
+    This document is a guide and reference to Pazpar2 version &version;.
    </simpara>
    <simpara>
     <inlinemediaobject>
@@ -55,7 +57,7 @@
   <para>
    Pazpar2 is a stand-alone metasearch client with a web-service API, designed
    to be used either from a browser-based client (JavaScript, Flash, Java,
-   etc.), from from server-side code, or any combination of the two.
+   etc.), from server-side code, or any combination of the two.
    Pazpar2 is a highly optimized client designed to
    search many resources in parallel. It implements record merging,
    relevance-ranking and sorting by arbitrary data content, and facet
@@ -65,7 +67,8 @@
    -- <ulink url="&url.xslt;">XSLT</ulink> is used to normalize and extract
    data from retrieval records for display and analysis. It can be used
    against any server which supports the 
-   <ulink url="&url.z39.50;">Z39.50</ulink> protocol. Proprietary
+   <ulink url="&url.z39.50;">Z39.50</ulink> and <ulink url="&url.sru;">SRU/SRW</ulink>
+   protocol. Proprietary
    backend modules can be used to support a large number of other protocols
    (please contact Index Data for further information about this).
   </para>
@@ -85,7 +88,7 @@
    scenes. Pazpar2 connects to servers, carries out searches, and
    retrieves, deduplicates, and stores results internally. Your application
    code may periodically inquire about the status of an ongoing operation,
-   and ask to see records or other result set facets. Result become
+   and ask to see records or other result set facets. Result becomes
    available immediately, and it is easy to build end-user interfaces which
    feel extremely responsive, even when searching more than 100 servers
    concurrently.
    If you wish to connect to commercial or other databases which do not
    support open standards, please contact Index Data. We have a licensing
    agreement with a third party vendor which will enable Pazpar2 to access
-   thousands of online databases, in addition the vast number of catalogs
-   and online services that support the Z39.50 protocol.
+   thousands of online databases, in addition to the vast number of catalogs
+   and online services that support the Z39.50/SRU/SRW protocols.
   </para>
   <para>
    Pazpar2 is our attempt to re-think the traditional paradigms for
  <chapter id="installation">
   <title>Installation</title>
   <para>
-   The Pazpar2 package very small. It includes documentation as well
+   The Pazpar2 package is very small. It includes documentation as well
    as the Pazpar2 server. The package also includes a simple user
    interface test1 which consists of a single HTML page and a single
    JavaScript file to illustrate the use of Pazpar2.
    </para>
   </section>
 
+  <section id="installation.win32">
+    <title>Installation on Windows (from Source)</title>
+    <para>
+      Pazpar2 can be built for Windows using
+      <ulink url="&url.vstudio;">Microsoft Visual Studio</ulink>.
+      The support files for building YAZ on Windows are located in the
+      <filename>win</filename> directory. The compilation is performed
+      using the <filename>win/makefile</filename> which is to be
+      processed by the NMAKE utility part of Visual Studio.
+    </para>
+    <para>
+      Ensure that the development libraries + header files are
+      available on your system before compiling Pazpar2. For installation
+      of YAZ, refer to the YAZ installation chapter.
+      It is easiest if YAZ and Pazpar2 are unpacked in the same
+      directory (side-by-side).
+    </para>
+    <para>
+      The compilation is tuned by editing the makefile of Pazpar2.
+      The process is similar to YAZ. Adjust the various directories
+      <literal>YAZ_DIR</literal>, <literal>ZLIB_DIR</literal>, ..
+    </para>
+    <para>
+      Compile Pazpar2 by invoking <application>nmake</application> in
+      the <filename>win</filename> directory.
+      The resulting binaries of the build process are located in the
+      <filename>bin</filename> of the Pazpar2 source
+      tree - including the <filename>pazpar2.exe</filename> and necessary DLLs.
+    </para>
+    <para>
+      The Windows version of Pazpar2 is a console application. It may
+      be installed as a Windows Service by adding option 
+      <literal>-install</literal> for the pazpar2 program. This will
+      register Pazpar2 as a service and use the other options provided
+      in the same invocation. For example:
+      <screen>
+       cd \MyPazpar2\etc
+       ..\bin\pazpar2 -install -c pazpar2.cfg -l pazpar2.log
+      </screen>
+      The Pazpar2 service may now be controlled via the Service Control
+      Panel. It may be unregistered by passing the <literal>-remove</literal>
+      option. Example:
+      <screen>
+       cd \MyPazpar2\etc
+       ..\bin\pazpar2 -remove
+      </screen>
+    </para>
+  </section>
+
   <section id="installation.test1">
    <title>Installation of test1 interface</title>
    <para>
 
    <para>
     Start the Pazpar2 daemon using the 'in-source' binary of the Pazpar2
-    daemon.
+    daemon. On Unix the process is:
     <screen>
      cd etc
      cp pazpar2.cfg.dist pazpar2.cfg
      ../src/pazpar2 -f pazpar2.cfg -t edu.xml
     </screen>
+    And on Windows:
+    <screen>
+     cd etc
+     copy pazpar2.cfg.dist pazpar2.cfg
+     ..\bin\pazpar2 -f pazpar2.cfg -t edu.xml
+    </screen>
     This will start a Pazpar2 listener on port 8004. It will proxy 
     HTTP requests to localhost - port 80, which we assume will be the regular
     HTTP server on the system. Inspect and modify pazpar2.cfg as needed
    <para>
     Index Data provides Debian packages for Pazpar2. These are prepared
     for Debian versions Etch and Lenny (as of 2007).
-    Theses packages are available at
+    These packages are available at
     <ulink url="&url.pazpar2.download.debian;"/>.
    </para>
   </section>
     Sometimes, it may be necessary to implement functionality on your
     regular webserver that makes use of search results, for example to
     implement data import functionality, emailing results, history
-    lists, personal citation lists, interlibrary loan functionality
-    ,etc. Fortunately, it is simple to exchange information between
+    lists, personal citation lists, interlibrary loan functionality,
+    etc. Fortunately, it is simple to exchange information between
     Pazpar2, your browser scripting, and backend server-side scripting.
     You can send a session ID and possibly a record ID from your browser
     code to your server code, and from there use Pazpar2s webservice API
    <title>Your data model</title>
    <para>
     Pazpar2 does not have a preconceived model of what makes up a data
-    model. There are no assumption that records have specific fields or
+    model. There are no assumptions that records have specific fields or
     that they are organized in any particular way. The only assumption
     is that data comes packaged in a form that the software can work
     with (presently, that means XML or MARC), and that you can provide
    </para>
   </section>
 
+  &sect-ajaxdev;
+
   <section id="nonstandard">
    <title>Connecting to non-standard resources</title>
    <para>
     Pazpar2 uses Z39.50 as its switchboard language -- i.e. as far as it
-    is concerned, all resources speak Z39.50. It is, however, equipped
+    is concerned, all resources speak Z39.50, or its webservices derivatives,
+    SRU/SRW. It is, however, equipped
     to handle a broad range of different server behavior, through
     configurable query mapping and record normalization. If you develop
     configuration, stylesheets, etc., for a new type of resources, we
    </para>
 
    <para>
-    But what about resources that don't support Z39.50 at all? The NISO
-    SRU (MXG) protocol is slowly gathering steam. Other resources might
+    But what about resources that don't support Z39.50 at all? Some resources might
     support OpenSearch, private, XML/HTTP-based protocols, or something
     else entirely. Some databases exist only as web user interfaces and
     will require screen-scraping. Still others exist only as static