<!ENTITY % common SYSTEM "common/common.ent">
%common;
]>
-<!-- $Id: pazpar2_conf.xml,v 1.3 2007-01-19 18:28:08 quinn Exp $ -->
+<!-- $Id: pazpar2_conf.xml,v 1.11 2007-03-30 01:07:37 quinn Exp $ -->
<refentry id="pazpar2_conf">
<refentryinfo>
<productname>Pazpar2</productname>
If this item is given, pazpar2 will forward all incoming HTTP
requests that do not contain the filename 'search.pz2' to the
host and port specified using the 'host' and 'port'
- attributes. This functionality is crucial if you wish to use
+ attributes. The 'myurl' attribute is required, and should provide
+ the base URL of the server. Generally, the HTTP URL for the host
+ specified in the 'listen' parameter. This functionality is
+ crucial if you wish to use
pazpar2 in conjunction with browser-based code (JS, Flash,
applets, etc.) which operates in a security sandbox. Such code
can only connect to the same server from which the enclosing
</varlistentry>
<varlistentry>
+ <term>zproxy</term>
+ <listitem>
+ <para>
+ If this item is given, pazpar2 will send all Z39.50
+ packages through this Z39.50 proxy server.
+ At least one of the 'host' and 'post' attributes is required.
+ The 'host' attribute may contain both host name and port
+ number, seperated by a colon ':', or only the host name.
+ An empty 'host' attribute sets the Z39.50 host address
+ to 'localhost'.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>service</term>
<listitem>
<para>
respect to your data model. In pazpar2, incoming records are
normalized, using XSLT, into an internal representation (see
the <link
- id="config-retrievalprofile">retrievalprofile</link> secion.
+ linkend="config-retrievalprofile">retrievalprofile</link> secion.
The 'service' section controls the further processing and
extraction of data from the internal representation, primarily
through the 'metdata' sub-element.
<variablelist> <!-- Level 2 -->
<varlistentry><term>metadata</term>
- <para>
- One of these elements is required for every data element in
- the internal representation of the record (see
- <xref linkend="data_model"/>. It governs
- subsequent processing as pertains to sorting, relevance
- ranking, merging, and display of data elements. It supports
- the following attributes:
- </para>
-
- <variablelist> <!-- level 3 -->
- <varlistentry><term>name</term>
- <listentry>
- <para>
- This is the name of the data element. It is matched
- against the 'type' attribute of the 'metadata' element
- in the normalized record. A warning is produced if
- metdata elements with an unknown name are found in the
- normalized record. This name is also used to represent
- data elements in the records returned by the
- webservice API, and to name sort lists and browse
- facets.
- </para>
- </listentry>
- </varlistentry>
-
- <varlistentry><term>type</term>
- <listentry>
- <para>
- The type of data element. This value governs any
- normalization or special processing that might take
- place on an element. Possible values are 'generic'
- (basic string), 'year' (a range is computed if
- multiple years are found in the record). Note: This
- list is likely to increase in the future.
- </para>
- </listentry>
- </varlistentry>
-
- <varlistentry><term>brief</term>
- <listentry>
- <para>
- If this is set to 'yes', then the data element is
- includes in brief records in the webservice API. Note
- that this only makes sense for metadata elements that
- are merged (see below). The default value is 'no'.
- </para>
- </listentry>
- </varlistentry>
-
- <varlistentry><term>sortkey</term>
- <listentry>
- <para>
- Specifies that this data element is to be used for
- sorting. The possible values are 'numeric' (numeric
- value), 'skiparticle' (string; skip common, leading
- articles), and 'no' (no sorting). The default value is
- 'no'.
- </para>
- </listentry>
- </varlistentry>
-
- <varlistentry><term>rank</term>
- <listentry>
- <para>
- Specifies that this element is to be used to help rank
- records against the user's query (when ranking is
- requested). The value is an integer, used as a
- multiplier against the basic TF*IDF score. A value of
- 1 is the base, higher values give additional weight to
- elements of this type. The default is '0', which
- excludes this element from the rank calculation.
- </para>
- </listentry>
- </varlistentry>
-
- <varlistentry><term>termlist</term>
- <listentry>
- <para>
- Specifies that this element is to be used as a
- termlist, or browse facet. Values are tabulated from
- incoming records, and a highscore of values (with
- their associated frequency) is made available to the
- client through the webservice API. The possible values
- are 'yes' and 'no' (default).
- </para>
- </listentry>
- </varlistentry>
-
- <varlistentry><term>merge</term>
- <listentry>
- <para>
- This governs whether, and how elements are extracted
- from individual records and merged into cluster
- records. The possible values are: 'unique' (include
- all unique elements), 'longest' (include only the
- longest element (strlen), 'range' (calculate a range
- of values across al matching records), 'all' (include
- all elements), or 'no' (don't merge; this is the
- default);
- </para>
- </listentry>
- </varlistentry>
- </variablelist> <!-- attributes to metadata -->
+ <listitem>
+ <para>
+ One of these elements is required for every data element in
+ the internal representation of the record (see
+ <xref linkend="data_model"/>. It governs
+ subsequent processing as pertains to sorting, relevance
+ ranking, merging, and display of data elements. It supports
+ the following attributes:
+ </para>
+
+ <variablelist> <!-- level 3 -->
+ <varlistentry><term>name</term>
+ <listitem>
+ <para>
+ This is the name of the data element. It is matched
+ against the 'type' attribute of the 'metadata' element
+ in the normalized record. A warning is produced if
+ metdata elements with an unknown name are found in the
+ normalized record. This name is also used to represent
+ data elements in the records returned by the
+ webservice API, and to name sort lists and browse
+ facets.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>type</term>
+ <listitem>
+ <para>
+ The type of data element. This value governs any
+ normalization or special processing that might take
+ place on an element. Possible values are 'generic'
+ (basic string), 'year' (a range is computed if
+ multiple years are found in the record). Note: This
+ list is likely to increase in the future.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>brief</term>
+ <listitem>
+ <para>
+ If this is set to 'yes', then the data element is
+ includes in brief records in the webservice API. Note
+ that this only makes sense for metadata elements that
+ are merged (see below). The default value is 'no'.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>sortkey</term>
+ <listitem>
+ <para>
+ Specifies that this data element is to be used for
+ sorting. The possible values are 'numeric' (numeric
+ value), 'skiparticle' (string; skip common, leading
+ articles), and 'no' (no sorting). The default value is
+ 'no'.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>rank</term>
+ <listitem>
+ <para>
+ Specifies that this element is to be used to help rank
+ records against the user's query (when ranking is
+ requested). The value is an integer, used as a
+ multiplier against the basic TF*IDF score. A value of
+ 1 is the base, higher values give additional weight to
+ elements of this type. The default is '0', which
+ excludes this element from the rank calculation.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>termlist</term>
+ <listitem>
+ <para>
+ Specifies that this element is to be used as a
+ termlist, or browse facet. Values are tabulated from
+ incoming records, and a highscore of values (with
+ their associated frequency) is made available to the
+ client through the webservice API. The possible values
+ are 'yes' and 'no' (default).
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>merge</term>
+ <listitem>
+ <para>
+ This governs whether, and how elements are extracted
+ from individual records and merged into cluster
+ records. The possible values are: 'unique' (include
+ all unique elements), 'longest' (include only the
+ longest element (strlen), 'range' (calculate a range
+ of values across al matching records), 'all' (include
+ all elements), or 'no' (don't merge; this is the
+ default);
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist> <!-- attributes to metadata -->
+
+ </listitem>
</varlistentry>
</variablelist> <!-- Data elements in service directive -->
</listitem>
</variablelist> <!-- Data elements in server directive -->
</refsect2>
- <refsect2 id="config-queryprofile">
+ <refsect2 id="config-queryprofile"><title>queryprofile</title>
<para>
At the moment, this directive is ignored; there is one global
CCL-mapping file which governs the mapping of queries to Z39.50
</para>
</refsect2>
- <refsect2 id="config-retrievalprofile">
+ <refsect2 id="config_retrievalprofile"><title>retrievalprofile</title>
<para>
Note: In the present version, there is a single retrieval
profile. However, in a future release, it will be possible to
</refsect1>
- <refsect1><title>OPTIONS</title>
- <para></para>
- </refsect1>
+ <refsect1><title>EXAMPLE</title>
+ <para>Below is a working example configuration:
+ <screen><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<pazpar2 xmlns="http://www.indexdata.com/pazpar2/1.0">
+
+<server>
+ <listen port="9004"/>
+ <proxy host="us1.indexdata.com" myurl="us1.indexdata.com"/>
+
+ <!-- <zproxy host="localhost" port="9000"/> -->
+ <!-- <zproxy host="localhost:9000"/> -->
+ <!-- <zproxy port="9000"/> -->
- <refsect1><title>EXAMPLES</title>
- <para></para>
+ <service>
+ <metadata name="title" brief="yes" sortkey="skiparticle" merge="longest" rank="6"/>
+ <metadata name="isbn" merge="unique"/>
+ <metadata name="date" brief="yes" sortkey="numeric" type="year" merge="range"
+ termlist="yes"/>
+ <metadata name="author" brief="yes" termlist="yes" merge="longest" rank="2"/>
+ <metadata name="subject" merge="unique" termlist="yes" rank="3"/>
+ <metadata name="url" merge="unique"/>
+ </service>
+</server>
+
+<queryprofile/> <!-- Like a CCL profile++ . Can optionally refer to XSLT to
+ convert ZeeRex into queryprofile. Multiple profiles can exist. -->
+
+<retrievalprofile>
+ <requestsyntax>marc21</requestsyntax>
+ <nativesyntax name="iso2709" format="marc21" encoding="marc8s" mapto="marcxml"/>
+ <map type="xslt" stylesheet="marc21.xsl"/>
+</retrievalprofile>
+
+</pazpar2>
+]]></screen>
+ </para>
</refsect1>
- <refsect1><title>FILES</title>
- <para></para>
+ <refsect1><title>TARGET SETTINGS</title>
+ <para>
+ Pazpar2 features a cunning scheme by which you can associate various
+ kinds of attributes, or settings with search targets. This is done
+ through XML files; each file can associate one or more settings
+ with one or more targets. The file format is generic in nature,
+ designed to support a wide range of application requirements. The
+ settings can be purely technical things, like, how to perform a title
+ search against a given target, or it can associate arbitrary name=value
+ pairs with groups of targets -- for instance, if you would like to
+ place all commercial full-text bases in one group for selection
+ purposes, or you would like to control what targets are accessible to a
+ given user.
+ </para>
+
+ <para>
+ During startup, pazpar2 will recursively read a specified directory
+ (can be identified in the pazpar2.cfg file or on the command line), and
+ process any settings files found therein.
+ </para>
+
+ <refsect2><title>SETTINGS FILE FORMAT</title>
+ <para>
+ Each file contains a root element named <settings>. It may
+ contain one or more <set> elements. The settings and set
+ elements may contain the following attributes. Attributes in set
+ overrides those in the setting root element. Each set node must
+ specify (directly, or inherited from the parent node) at least a
+ target, name, and value.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>target</term>
+ <listitem>
+ <para>
+ This specifies the search target to which this setting should be
+ applied. Targets are identified by their Z39.50 URL, generally
+ including the host, port, and database name, (e.g.
+ bagel.indexdata.com:210/marc). Two wildcard forms are accepted:
+ * (asterisk) matches all known targets;
+ bagel.indexdata.com:210/* matches all known databases on the given
+ host.
+ </para>
+ <para>
+ A precedence system determines what happens if there are
+ overlapping values for the same setting name for the same
+ target. A setting for a specific target name overrides a
+ setting whch specifies target using a wildcard. This makes it
+ easy to set defaults for all targets, and then override them
+ for specific targets or hosts. If there are
+ multiple overlapping settings with the same name and target
+ value, the 'precedence' attribute determines what happens.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>user</term>
+ <listitem>
+ <para>
+ This specifies the user ID to which this setting applies. A
+ given setting may have values for any number of users, or it
+ may have a 'default' value which is applied when no user is
+ specified, or when no user-specific value is available.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>name</term>
+ <listitem>
+ <para>
+ The name of the setting. This can be anything you like.
+ However, pazpar2 reserves a number of setting names for
+ specific purposes, all starting with 'pz:', and it is a good
+ idea to avoid that prefix if you make up your own setting
+ names. See below for a list of reserved variables.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>value</term>
+ <listitem>
+ <para>
+ The value of the setting. Generally, this can be anything you
+ want -- however, some of the reserved settings may expect
+ specific kinds of values.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>precedence</term>
+ <listitem>
+ <para>
+ This should be an integer. If not provided, the default value
+ is 0. If two (or more) settings have the same content for
+ target and name, the precedence value determines the outcome.
+ If both settings have the same precedence value, they are both
+ applied to the target(s). If one has a higher value, then the
+ value of that setting is applied, and the other one is ignored.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>
+ By setting defaults for user, target, name, or value in the root
+ settings node, you can use the settings files in many different
+ ways. For instance, you can use a single file to set defaults for
+ many different settings, like search fields, retrieval syntaxes,
+ etc. You can have one file per server, which groups settings for
+ that server or target. You could also have one file which associates
+ a number of targets with a given setting, for instance, to associate
+ many databases with a given category or class that makes sense
+ within your application.
+ </para>
+
+ </refsect2>
+
+ <refsect2><title>RESERVED SETTING NAMES</title>
+ <para>
+ The following setting names are reserved by pazpar2 to control the
+ behavior of the client function.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>pz:cclmap:xxx</term>
+ <listitem>
+ <para>
+ This establishes a CCL field definition or other setting, for
+ the purpose of mapping end-user queries. XXX is the field or
+ setting name, and the value of the setting provides parameters
+ (e.g. parameters to send to the server, etc.). Please consult
+ the YAZ manual for a full overview of the many capabilities of
+ the powerful and flexible CCL parser.
+ </para>
+ <para>
+ Note that it is easy to etablish a set of default parameters,
+ and then override them individually for a given target.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pz:syntax</term>
+ <listitem>
+ <para>
+ This specifies the record syntax to use when requesting
+ records from a given server.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>pz:elements</term>
+ <listitem>
+ <para>
+ The element set name to be used when retrieving records from a
+ server.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect2>
+
</refsect1>
</refentry>
-
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml