GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


rfc:rfc2056

Network Working Group R. Denenberg Request for Comments: 2056 Library of Congress Category: Standards Track J. Kunze

                               University of California, San Francisco
                                                              D. Lynch
                                        SilverPlatter Information Ltd.
                                                               Editors
                                                         November 1996
                Uniform Resource Locators for Z39.50

Status of this Memo

 This document specifies an Internet standards track protocol for the
 Internet community, and requests discussion and suggestions for
 improvements.  Please refer to the current edition of the "Internet
 Official Protocol Standards" (STD 1) for the standardization state
 and status of this protocol.  Distribution of this memo is unlimited.

1. Introduction

 Z39.50 is an information retrieval protocol that does not fit neatly
 into a retrieval model designed primarily around the stateless fetch
 of data.  Instead, it models a general user inquiry as a session-
 oriented, multi-step task, any step of which may be suspended
 temporarily while the server requests additional parameters from the
 client before continuing.  Some, none, or all of these client/server
 interactions may require participation of the client user, depending
 only on the client software (the protocol itself makes no such
 requirements).
 On the other hand, retrieval of "well-known" data may be performed in
 a single step, that is, with a degenerate Z39.50 session consisting
 of exactly one protocol search request and response.  Besides the
 basic search sub-service, there are several ancillary sub-services
 (e.g., Scan, Result Set Delete).  Among the functions covered by
 combinations of the sub-services, two core functions emerge as
 appropriately handled by two separate URL schemes:  the Session URL
 and the Retrieval URL.
 Using two schemes instead of one makes a critical distinction between
 a Z39.50 Session URL, which opens a client session initialized for
 interactive use by the user, and a Z39.50 Retrieval URL, which opens
 and closes a client session to retrieve a specific information item.
 Making this distinction at the scheme level allows the user interface
 to reflect it on to the user, without requiring the user interface to

Denenberg, et. al. Standards Track [Page 1] RFC 2056 URLs for Z39.50 November 1996

 parse otherwise opaque parts of the URL (consistent with current
 practice).

2. Some Basic Concepts

 This section briefly describes the usage of Z39.50-specific
 terminology within the URL definitions below: specifically, the terms
 database, elementset, recordsyntax, and docid.
 The Z39.50 protocol specifies various information retrieval
 operations, the two most basic of which are Search and Present. In a
 Search operation a client provides search criteria and indicates a
 database (or several databases) on the server to search.  The
 essential result of a Search operation is that a result set is
 created at the server, consisting of pointers to the selected
 database records.
 Z39.50 models database records, abstract database records, and
 retrieval records.  A database record is a unit of information in a
 database, represented in a data structure local to the server.  An
 abstract database record is an abstract representation of that
 information, where the client and server share a common understanding
 of the representation.  This allows logical elements to be addressed
 and selected for transfer, via an element set specification, or, as
 used below, an "elementset".  A retrieval record is the set of
 selected elements packaged in an exportable structure, by the
 application of a "recordsyntax".
 Thus a Search operation results in entries pointing to database
 records; via a Present operation, a client requests a retrieval
 record, corresponding to a database record, corresponding to an entry
 in the result set. The client indicates the composition and format of
 the retrieval record by specifying an elementset and recordsyntax,
 respectively.
 A special case of a Z39.50 search is a "known-item" search, when a
 client intends that a search identify a single, known database
 record, or "document" (for purposes of illustration, assume that a
 database record corresponds to a document), and further, the client
 knows an identifier for the document that can be used to effect this
 known-item search.  In this case, this identifier is often referred
 to as a document identifier, or "docid".

Denenberg, et. al. Standards Track [Page 2] RFC 2056 URLs for Z39.50 November 1996

3. The Z39.50 Session URL

 The Z39.50 Session URL may be informally described as providing the
 mechanism to switch the user to a Z39.50 client application.
  1. Host is required.
  2. Port is optional, and defaults to 210.
  3. All other parameters are optional.
  4. The Z39.50 client will start a session to the specified host/port

(alternatively, it need not explicitly start a session, but may

    instead utilize an already open session to the same host/port).
 -  A database must be included if docid is included.
 -  If docid is included, the client will perform the specified search
    (in the same manner as for the retrieval URL, specified below).
 -  If docid is not included, and other parameters (besides host/port)
    are specified, the client may use those parameters as "hints".
    Various clients may choose to treat them as requirements, or as
    preferences, or ignore them.
 -  In any case (whether a search is performed or not), the client
    will leave the Z39.50 session open for the user, to do
    retrievals, new searches, etc.  (This is the main distinction
    from the Retrieval URL which leaves it up to the client whether
    or not to keep the Z39.50 session open.)

4. The Z39.50 Retrieval URL

 The Z39.50 Retrieval URL is intended to allow a Z39.50 session to be
 used as a transparent transfer mechanism to retrieve a specific
 information object.  A Z39.50 client uses information in the URL to
 formulate a Search Request.  The server's Search Response indicates
 how many records match the Request.  If the number of matching
 records does not equal one, the retrieval is considered unsuccessful,
 and the client application's behavior is not defined.  If the number
 of matching records equals one, the server may have included the
 desired record in the Search Response.  If not, the client requests
 transmission of the record with a Present Request.  After the client
 has received the specified record it may close the Z39.50 session
 immediately, or keep it open for subsequent retrievals.
  1. Host is required.
  2. Port is optional, and defaults to 210.
  3. A database is required.
  4. The meaning of a retrieval URL with no docid is undefined.
  5. The docid is placed into a type-1 query, as the single term, in

the general format (tag 45), using the Bib-1 attribute set, with

    a Use attribute value of docid, and a structure attribute of URx.
    The docid string is server-defined and completely opaque to the
    client.

Denenberg, et. al. Standards Track [Page 3] RFC 2056 URLs for Z39.50 November 1996

  1. If element set name (esn) is not specified, it is the client's

choice. If esn is specified, it should be used either in the

    Search request for the value of small- and/or medium-
    set-element-set-names or in a Present request following a
    Search.  These terms and their use are defined within the Z39.50
    Standard [2].
 -  If record syntax (rs) is not specified, it is the client's choice.
    If one or more record syntaxes are specified, the client should
    select one (preferably the first in the list that it supports)
    and use it in a Search or Present request as the value of
    PreferredRecordSyntax.

5. BNF for Z39.50 URLs

 The Z39.50 Session and Retrieval URLs follow the Common Internet
 Scheme Syntax as defined in RFC 1738, "Uniform Resource Locators
 (URL)" [1].  In the definition, literals are quoted with "", optional
 elements are enclosed in [brackets], "|" is used to designate
 alternatives, and elements may be preceded with <n>* to designate n
 or more repetitions of the following element; n defaults to 0.

z39.50url = zscheme ":" host [":" port] ["/" [database *["+" database] ["?" docid]] [";esn=" elementset] [";rs=" recordsyntax *[ "+" recordsyntax]]] zscheme = "z39.50r" | "z39.50s" database = uchar docid = uchar elementset = uchar recordsyntax = uchar Future extensions to these URLs will be of the form of [;keyword=value]. The following definitions are from RFC 1738. Between the Internet Draft version and RFC 1738 two relevant changes were made: '=' was moved from the <extra> character class to <reserved>, and <national> was removed from the alternatives in <unreserved>. Neither <national> nor <punctuation> is referred to in this document nor in RFC 1738. Denenberg, et. al. Standards Track [Page 4] RFC 2056 URLs for Z39.50 November 1996 lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" hialpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" alpha = lowalpha | hialpha digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" safe = "$" | "-" | "_" | "." | "+" extra = "!" | "*" | "'" | "(" | ")" | "," national = "{" | "}" | "|" | "\" | "^" | "~" | "[" | "]" | "`" punctuation = "<" | ">" | "#" | "%" | <"> reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" hex = digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" escape = "%" hex hex unreserved = alpha | digit | safe | extra uchar = unreserved | escape xchar = unreserved | reserved | escape digits = 1*digit 6. Security Considerations The two Z39.50 URL schemes are subject to the same security implications as the general URL scheme [1], so the usual precautions apply. This means, for example, that a locator might no longer point to the object that was originally intended. It also means that it may be possible to construct a URL so that an attempt to perform a harmless idempotent operation such as the retrieval of an object will in fact cause a possibly damaging remote operation to occur. 7. Acknowledgements The Z39.50 Implementors Group contributed the substance of this document. 8. References [1] Berners-Lee, T., Masinter, L., McCahill, M. (editors), "Uniform Resource Locators (URL)", RFC 1738, December 1994. ftp://ds.internic.net/rfc/rfc1738.txt [2] ANSI/NISO Z39.50-1995, "ANSI Z39.50: Information Retrieval Service and Protocol", 1995. ftp://ftp.loc.gov/pub/z3950/ Denenberg, et. al. Standards Track [Page 5] RFC 2056 URLs for Z39.50 November 1996 [3] ANSI/NISO Z39.50-1992, "ANSI Z39.50: Information Retrieval Service and Protocol", 1992. ftp://ftp.cni.org/pub/NISO/docs/Z39.50-1992/www/Z39.50.toc.html (also available in hard copy from Omnicom Information Service, 115 Park St., SE, Vienna, VA 22180). 9. Editors' Addresses Ray Denenberg Library of Congress Collections Services Network Development/MSO Washington DC 20540 Phone: (202) 707-5795 Fax: (202) 707-0115 EMail: ray@rden.loc.gov John A. Kunze Center for Knowledge Management University of California, San Francisco 530 Parnassus Ave, Box 0840 San Francisco, CA 94143-0840 Phone: (415) 502-6660 Fax: (415) 476-4653 EMail: jak@ckm.ucsf.edu Denis Lynch SilverPlatter Information Ltd. 10 Barely Mow Passage Chiswick, London W4 4PH U.K. Voice: +44 (0)181-995-8242 Fax: +44 (0)181-995-5159 EMail: DenisL@SilverPlatter.com Denenberg, et. al. Standards Track [Page 6] RFC 2056 URLs for Z39.50 November 1996 Appendix. Examples of Z39.50 URLs A basic Z39.50 session URL that a client might use to open a connection to the MELVYL union catalog "cat" at the University of California is z39.50s:melvyl.ucop.edu/cat

 A URL that would open the MELVYL magazine database just long enough
 to fetch an article from volume 30, number 19 of a hypothetical
 periodical might look like
      z39.50r://melvyl.ucop.edu/mags?elecworld.v30.n19
 As a final example, here is another retrieval URL that a client could
 use to request a full record (element set "f") in the MARC syntax
 from a hypothetical database called TMF at CNIDR:
      z39.50r://cnidr.org:2100/tmf?bkirch_rules__a1;esn=f;rs=marc
 As in the previous example, the part of the string after the `?' is
 determined by the server.  In this example, the server is running on
 non-standard port 2100.

Denenberg, et. al. Standards Track [Page 7]

/data/webs/external/dokuwiki/data/pages/rfc/rfc2056.txt · Last modified: 1996/11/04 22:50 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki