Trying to use Solr name consistently
[yaz-moved-to-github.git] / doc / introduction.xml
index 3fbd789..bd327b5 100644 (file)
@@ -1,53 +1,55 @@
-<!-- $Id: introduction.xml,v 1.15 2003-11-03 10:54:49 adam Exp $ -->
  <chapter id="introduction"><title>Introduction</title>
 
   <para>
    &yaz; is a C/C++ library for information retrieval applications
-   using the Z39.50/SRW/SRU protocols for information retrieval.
+   using the Z39.50/SRU/Solr protocols for information retrieval.
   </para>
 
   <para>
    Properties of &yaz;:
    <itemizedlist>
     <listitem><para>
-      Complete 
-      <ulink url="http://www.loc.gov/z3950/agency/">Z39.50</ulink>
-      version 3 support. Amendments and Z39.50-2002 revision is
-      supported.
+      Complete
+      <ulink url="&url.z39.50;">Z39.50</ulink> version 3 support.
+      Amendments and Z39.50-2002 revision is supported.
      </para></listitem>
     <listitem><para>
-      Supports 
-      <ulink url="http://www.loc.gov/z3950/agency/zing/srw/">SRW/SRU</ulink>
-      version 1.0 (over HTTP and HTTPS).
+      Supports
+      <ulink url="&url.sru;">SRU GET/POST/SOAP</ulink>
+      version 1.2 (over HTTP and HTTPS).
      </para></listitem>
     <listitem><para>
-      Includes BER encoders/decoders for the 
-      <ulink url="http://www.nlc-bnc.ca/iso/ill/">ISO ILL</ulink>
+      Includes BER encoders/decoders for the
+      <ulink url="&url.ill;">ISO ILL</ulink>
       protocol.
      </para></listitem>
     <listitem><para>
+      Supports
+      <ulink url="&url.solr;">Solr</ulink> Web Service version 1.4.x (client side only)
+     </para></listitem>
+    <listitem><para>
       Supports the following transports: BER over TCP/IP
-      (<ulink url="http://www.faqs.org/rfcs/rfc1729.html">RFC1729</ulink>),
-      BER over unix local socket, and 
-      <ulink url="http://www.w3.org/Protocols/rfc2616/rfc2616.html">HTTP
-       1.1</ulink>.
+      (<ulink url="&url.ber.over.tcpip;">RFC1729</ulink>),
+      BER over unix local socket, and
+      <ulink url="&url.http.1.1;">HTTP 1.1</ulink>.
      </para></listitem>
     <listitem><para>
       Secure Socket Layer support using
-      <ulink url="http://www.openssl.org/">OpenSSL</ulink>.
+      <ulink url="&url.gnutls;">GNU TLS</ulink> or
+      <ulink url="&url.openssl;">OpenSSL</ulink>.
       If enabled, &yaz; uses HTTPS transport (for SOAP) or
       "Secure BER" (for Z39.50).
      </para></listitem>
     <listitem><para>
-      Offers 
-      <ulink url="http://zoom.z3950.org/">ZOOM</ulink>
-      C API implementing both Z39.50 and SRW.
+      Offers
+      <ulink url="&url.zoom;">ZOOM</ulink> C API implementing
+      Z39.50, SRU and Solr Web Service.
      </para></listitem>
     <listitem><para>
       The &yaz; library offers a set of useful utilities
       related to the protocols, such as MARC (ISO2709) parser,
-      CCL (ISO8777) parser, 
-      <ulink url="http://www.loc.gov/z3950/agency/zing/cql/">CQL</ulink>
+      CCL (ISO8777) parser,
+      <ulink url="&url.cql;">CQL</ulink>
       parser, memory management routines, character set conversion.
      </para></listitem>
     <listitem><para>
@@ -72,7 +74,7 @@
    <itemizedlist>
     <listitem>
      <para>
-      <xref linkend="installation"/> contains installation 
+      <xref linkend="installation"/> contains installation
       instructions for &yaz;. You don't need reading this
       if you expect to download &yaz; binaries.
       However, the chapter contains information about how
     <listitem>
      <para>
       <xref linkend="zoom"/> describes the ZOOM API of &yaz;.
-      This is definitely worth a read if you wish to develop a Z39.50/SRW
-     client.
-    </para>
+      This is definitely worth a read if you wish to develop a Z39.50/SRU
+      client.
+     </para>
     </listitem>
-    
+
     <listitem>
      <para>
       <xref linkend="server"/> describes the generic frontend server
-      and explains how to develop server Z39.50/SRW applications for &yaz;.
-     Obviously worth reading if you're to develop a server.
+      and explains how to develop server Z39.50/SRU applications for &yaz;.
+      Obviously worth reading if you're to develop a server.
     </para>
     </listitem>
 
     <listitem>
      <para>
-      <xref linkend="client"/> describes how to use the &yaz; Z39.50
+      <xref linkend="yaz-client"/> describes how to use the &yaz; Z39.50
       client. If you're developer and wish to test your server
       or a server from another party, you might find this chapter
       useful.
 
     <listitem>
      <para>
-      <xref linkend="soap"/> describes how SRW and SOAP is used 
-      in &yaz;. Only if you're developing SOAP/SRW applications
+      <xref linkend="soap"/> describes how SRU and SOAP is used
+      in &yaz;. Only if you're developing SRU applications
       this section is a must.
      </para>
     </listitem>
      <para>
       <xref linkend="tools"/> contains sections for the various
       tools offered by &yaz;. Scan through the material quickly
-      and see what's relevant to you! SRW/SRU implementors
-      might find the <link linkend="tools.cql">CQL</link> section
+      and see what's relevant to you! SRU implementors
+      might find the <link linkend="cql">CQL</link> section
       particularly useful.
      </para>
     </listitem>
      <para>
       <xref linkend="odr"/> goes through the details of the
       ODR module which is the work horse that encodes and decodes
-      BER packages. Implementors using ZOOM only do <emphasis>not</emphasis>
+      BER packages. Implementors using ZOOM only, do <emphasis>not</emphasis>
       need reading this.
       Most other Z39.50 implementors only need to read the first two
       sections (<xref linkend="odr.introduction"/> and
    </itemizedlist>
   </sect1>
   <sect1 id="introduction.api"><title>The API</title>
-   
+
    <para>
-    The <ulink url="http://www.indexdata.dk/yaz/">&yaz;</ulink>
+    The <ulink url="&url.yaz;">&yaz;</ulink>
     toolkit offers several different levels of access to the
-    <ulink url="http://www.loc.gov/z3950/agency/">ISO23950/Z39.50</ulink>,
-    <ulink url="http://www.nlc-bnc.ca/iso/ill/">ILL</ulink> and
-    <ulink url="http://www.loc.gov/z3950/agency/zing/srw/">SRW</ulink>
+    <ulink url="&url.z39.50;">ISO23950/Z39.50</ulink>,
+    <ulink url="&url.ill;">ILL</ulink> and
+    <ulink url="&url.sru;">SRU</ulink>
     protocols.
     The level that you need to use depends on your requirements, and
     the role (server or client) that you want to implement.
     If you're developing a client application you should consider the
     <link linkend="zoom">ZOOM</link> API.
     It is, by far, the easiest way to develop clients in C.
-    Server implementers should consider the 
+    Server implementers should consider the
     <link linkend="server">generic frontend server</link>.
     None of those high-level APIs support the whole protocol, but
-    they do include most facilities used in existing Z39.50
-    applications.
+    they do include most facilities used in existing Z39.50 applications.
    </para>
    <para>
     If you're using 'exotic' functionality (meaning anything not included in
     you're going to develop an ILL application you'll have to learn the lower
     level APIs of &yaz;.
    </para>
-
-   
    <para>
     The YAZ toolkit modules is shown in figure <xref linkend="yaz.layer"/>.
    </para>
      </listitem>
      <listitem>
       <para>
-       The second layer provides a C represenation of the 
+       The second layer provides a C represenation of the
        protocol units (packages) for Z39.50 ASN.1, ILL ASN.1,
-       SRW SOAP.
+       SRU.
       </para>
      </listitem>
      <listitem>
     The &asn; library also provides functions (which are, in turn,
     defined using &odr; primitives) for encoding and decoding data values.
     Their general form is
-    
+
     <funcsynopsis>
      <funcprototype><funcdef>int <function>z_<replaceable>xxx</replaceable></function></funcdef>
       <paramdef>ODR <parameter>o</parameter></paramdef>
     </funcsynopsis>
     (note the lower-case &quot;z&quot; in the function name)
    </para>
-   
+
    <note>
     <para>
      If you are using the premade definitions of the &asn; module, and you
      are not adding new protocol of your own, the only parts of &odr; that you
-     need to worry about are documented in section 
-     <link linkend="odr-use">Using ODR</link>.
+     need to worry about are documented in
+     <xref linkend="odr.use"/>.
     </para>
    </note>
-   
+
   <para>
     When you have created a BER-encoded buffer, you can use the &comstack;
     subsystem to transmit (or receive) data over the network. The &comstack;