NAME
yaz-client - Z39.50/SRU client for implementors
SYNOPSIS
- yaz-client [-a filename]
[-b filename] [-c filename]
[-d dump] [-k size]
[-m filename] [-p addr]
[-q filename] [-u auth]
[-xV] [addr]
DESCRIPTION
yaz-client
- is a Z39.50/SRU client (origin) with a simple command line
interface that allows you to test behavior and performance of
Z39.50 targets and SRU servers.
If the addr is specified, the client creates a connection
to the Z39.50/SRU target at the address given.
When yaz-client is invoked it attemps to read the
following files: $HOME/.yazclientrc (home directory, Unix only) and
(current directory - any platform) For those files that are
readable, the YAZ client executes commands in those files. See
COMMANDS section for description of commands.
OPTIONS
-a filename
- If specified, logging of protocol packages will be appended
file given. If filename is specified as -, the output is
written to stdout.
-b filename
- If specified, YAZ will dump BER data in readable notation to
the file specified. If filename is specified as - the output
is written to stdout.
-c filename
- If specified, CCL configuration will be read from the file
given.
-d dump
- If specified, YAZ will dump BER data for all PDUs sent and
received to individual files, named dump.DDD.raw, where DDD
is 001, 002, 003, ..
-k size
- Sets preferred messages and maximum record size for Initialize
Request in kilobytes. Default value is 1024 (1 MB).
-m filename
- If specified, retrieved records will be appended to the file
given.
-p addr
- If specified, the client will use the proxy at the address
given.
-q filename
- If specified, CQL configuration will be read from the file
given.
-u auth
- If specified, the auth string will be used for
authentication.
-V
- Prints YAZ version.
-x
- Makes the YAZ client print hex dumps of packages sent and
received on standard output.
COMMANDS
The YAZ client accepts the following commands.
open zurl
- Opens a connection to a server. The syntax for zurl is
the same as described above for connecting from the command line.
Syntax:
[(tcp|ssl|unix|http)':']host
[:port][/base]
quit
- Quits YAZ client
find query
- Sends a Search Request using the query given. By default
the query is assumed to be PQF. See command querytype.
delete setname
- Deletes result set with name setname on the server.
base base1 base2 ...
- Sets the name(s) of the database(s) to search. One or more
databases may be specified separated by blanks. This commands
overrides the database given in zurl.
show [start[+number]]
- Fetches records by sending a Present Request from the start
position given by start a number of records given by
number. If start is not given, then the client will
fetch from position of the last retrieved record plus 1. If
number is not given, then one record will be fetched at a
time.
scan term
- Scans database index for a term. The syntax resembles the
syntax for find. If you want to scan for the word water you could
write
-
scan water
but if you want to scan only in, say the title field,
scan water
but if you want to scan only in, say the title field,
you would write
-
scan @attr 1=4 water
scanpos pos
- Sets preferred position for scan. This value is used in next
scan. By default position is 1.
scansize size
- Sets number of entries to be returned by scan. Default number
of entries is 20.
scanstep step
- Set step-size for scan. This value is used in next scan sent to
the target. By default step-size is 0.
sort sortspecs
- Sorts a result set. The sort command takes a sequence of
space-separated sort specifications, with each sort specification
consisting of two space-separated words (so that the whole
specification list is made up of an even number of words). The
first word of each specification holds a field (sort criterion) and
the second holds flags. If the sort criterion includes = it is
assumed that the SortKey is of type sortAttributes using Bib-1: in
this case the integer before = is the attribute type and the
integer following = is the attribute value. If no = is in the
criterion it is treated as a sortfield of type InternationalString.
The flags word of each sort specification must consist of s for
case sensitive or i for case insensitive, and < for ascending
order or > for descending order.
sort+
- Same as sort but stores the sorted result set in a new result
set.
authentication openauth
- Sets up a authentication string if a server requires
authentication (v2 OpenStyle). The authentication string is first
sent to the server when the open command is issued and the Z39.50
Initialize Request is sent, so this command must be used before
open in order to be effective. A common convention for the
authopen string is that the username - and password is
separated by a slash, e.g. myusername/mysecret.
sru method
- Selects SRU method. Must be one of POST, GET, SOAP
(default).
list_all
- This command displays status and values for many settings.
lslb n
- Sets the limit for when no records should be returned together
with the search result. See the [1] Z39.50 standard for more
details.
ssub n
- Sets the limit for when all records should be returned with the
search result. See the [1] Z39.50 standard for more
details.
mspn n
- Sets the number of records should be returned if the number of
records in the result set is between the values of lslb and ssub.
See the [1] Z39.50 standard for more details.
status
- Displays the values of lslb, ssub and mspn.
setname
- Switches named result sets on and off. Default is on.
cancel
- Sends a Trigger Resource Control Request to the target.
format oid
- Sets the preferred transfer syntax for retrieved records.
yaz-client supports all the record syntaxes that currently are
registered. See [2] Z39.50 Standard for more details.
Commonly used records syntaxes include usmarc, sutrs, grs1 and
xml.
elements e
- Sets the element set name for the records. Many targets support
element sets are B (for brief) and F (for full).
close
- Sends a Z39.50 Close APDU and closes connection with the
peer
querytype type
- Sets the query type as used by command find. The following is
supported: prefix for Prefix Query Notation (Type-1 Query); ccl for
CCL search (Type-2 Query), cql for CQL (Type-104 search with CQL
OID), ccl2rpn for CCL to RPN conversion (Type-1 Query). cql2rpn for
CQL to RPN conversion (Type-1 Query).
attributeset set
- Sets attribute set OID for prefix queries (RPN, Type-1).
refid id
- Sets reference ID for Z39.50 Request(s).
itemorder type no
- Sends an Item Order Request using the ILL External. type
is either 1 or 2 which corresponds to ILL-Profile 1 and 2
respectively. The no is the Result Set position of the
record to be ordered.
update action recid doc
- Sends Item Update Request. The action argument must be
the action type: one of insert, replace, delete and update. The
second argument, recid, is the record identifier (any
string). Third argument which is optional is the record document
for the request. If doc is a quoted string (double quotes) the
string content is used verbatim. If doc is not a quoted string, it
is assumed to be a filename which is read, then sent as the
docuemnt content. If doc is omitted, the last received record (as
parf of present response or piggybacked search response) is used
for the update.
filename
- Executes list of commands from file filename, just like
source on most UNIX shells.
! args
- Executes command args in subshell using the system
call.
push_command command
- The push_command takes another command as its argument. That
command is then added to the history information (so you can
retrieve it later). The command itself is not executed. This
command only works if you have GNU readline/history enabled.
set_apdufile filename
- Sets that APDU should be logged to file filename.
Another way to achieve APDU log is by using command-line option
-a.
set_auto_reconnect flag
- Specifies whether YAZ client automatically reconnect if target
closes connection (Z39.50 only).
flag must be either on or off.
set_auto_wait flag
- Specifies whether YAZ client should wait for response protocol
packages after a request. By default YAZ client waits (on) for
response packages immediately after a command (find, show) has been
issued. If off is used, YAZ client does not attempt to receive
packages automatically. These will have to be manually received
when command wait_response is used.
flag must be either on or off.
set_marcdump filename
- Specifies that all retrieved records should be appended to file
filename. This command does the thing as option -m.
schema schemaid
- Specifies schema for retrieval. Schema may be specified as an
OID for Z39.50. For SRU, schema is a simple string URI.
charset negotiationcharset [displaycharset]
[[marccharset]]
- Specifies character set (encoding) for Z39.50 negotiation / SRU
encoding and/or character set for output (terminal).
negotiationcharset is the name of the character set to be
negotiated by the server. The special name - for
negotiationcharset specifies no character set to be
negotiated.
If displaycharset is given, it specifies name of the
character set of the output (on the terminal on which YAZ client is
running). To disable conversion of characters to the output
encoding, the special name - (dash) can be used. If the special
name auto is given, YAZ client will convert strings to the encoding
of the terminal as returned by nl_langinfo call.
If marcharset is given, it specifies name of the
character set of retrieved MARC records from server. See also
marcharset command.
Note Since character set negotation takes effect in the
Z39.50 Initialize Request you should issue this command before
command open is used.
Note MARC records are not covered by Z39.50 character set
negotiation, so that's why there is a separate character that must
be known in order to do meaningful converson(s).
negcharset charset
- Specifies character set for negotiation (Z39.50). The argument
is the same as second argument for command charset.
displaycharset charset
- Specifies character set for output (display). The argument is
the same as second argument for command charset.
marccharset charset
- Specifies character set for retrieved MARC records so that YAZ
client can display them in a character suitable for your display.
See charset command. If auto is given, YAZ will assume that
MARC21/USMARC is using MARC8/UTF8 and ISO-8859-1 for all other MARC
variants. The charset argument is the same as third argument for
command charset.
set_cclfile filename
- Specifies that CCL fields should be read from file file
filename. This command does the thing as option -c.
set_cqlfile filename
- Specifies that CQL fields should be read from file file
filename. This command does the thing as option -q.
register_oid name class OID
- This command allows you to register your own object identifier
- so that instead of entering a long dot-notation you can use a
short name instead. The name is your name for the OID,
class is the class, and OID is the raw OID in dot
notation. Class is one appctx, absyn, attet, transyn, diagset,
recsyn, resform, accform, extserv, userinfo, elemspec, varset,
schema, tagset, general. If you're in doubt use the general
class.
register_tab command string
- This command registers a TAB completion string for the command
given.
sleep seconds
- This command makes YAZ client sleep (be idle) for the number of
seconds given.
wait_response [ number]
- This command makes YAZ client wait for a number of response
packages from target. If number is omitted, 1 is assumed.
This command is rarely used and is only useful if command
set_auto_wait is set to off.
xmles OID doc
- Sends XML Extended Services request using the OID and doc
given.
zversion ver
- This command sets Z39.50 version for negotiation. Should be
used before open. By default 3 (version 3) is used.
options op1 op2..
- This command sets Z39.50 options for negotiation. Should be
used before open.
The following options are supported: search, present, delSet,
resourceReport, triggerResourceCtrl, resourceCtrl, accessCtrl,
scan, sort, extendedServices, level_1Segmentation,
level_2Segmentation, concurrentOperations, namedResultSets,
encapsulation, resultCount, negotiationModel, duplicationDetection,
queryType104, pQESCorrection, stringSchema.
FILES
yaz-<version>/client/client.c
.yazclientrc
$HOME/.yazclientrc
SEE ALSO
(7)
Section "The YAZ Client" in the YAZ manual.
Section "Prefix Query Format" in the YAZ manual.
Section "Common Command Language" in the YAZ manual.
Section "Common Query Language" in the YAZ manual.
REFERENCES
- 1. Z39.50 standard
- http://www.loc.gov/z3950/agency/markup/04.html#3.2.2.1.6
- 2. Z39.50 Standard
-