1 |
|
2 |
IETF URI Working Group R. Denenberg |
3 |
Internet-Draft J. Kunze |
4 |
draft-ietf-uri-url-irp-04.txt D. Lynch |
5 |
5 February 1996 Editors |
6 |
Expires in six months |
7 |
|
8 |
Uniform Resource Locators for Z39.50 |
9 |
|
10 |
|
11 |
1. Status of this Document |
12 |
|
13 |
This document is an Internet-Draft. Internet-Drafts are working documents |
14 |
of the Internet Engineering Task Force (IETF), its Areas, and its Working |
15 |
Groups. Note that other groups may also distribute working documents as |
16 |
Internet-Drafts. |
17 |
|
18 |
Internet-Drafts are working documents valid for a maximum of six months. |
19 |
Internet-Drafts may be updated, replaced, or obsoleted by other documents |
20 |
at any time. It is not appropriate to use Internet-Drafts as reference |
21 |
material or to cite them other than as a ``working draft' or ``work in |
22 |
progress.'' |
23 |
|
24 |
To learn the current status of any Internet-Draft, please check the |
25 |
1id-abstracts.txt listing contained in the Internet-Drafts Shadow |
26 |
Directories on ds.internic.net, nic.nordu.net, ftp.isi.edu, or |
27 |
munnari.oz.au. |
28 |
|
29 |
Distribution of this document is unlimited. Please send comments to |
30 |
jak@violet.berkeley.edu, or to the discussion lists uri@bunyip.com and |
31 |
z3950iw@nervm.nerdc.ufl.edu. |
32 |
|
33 |
|
34 |
2. Introduction |
35 |
|
36 |
Z39.50 is an information retrieval protocol that does not fit neatly into |
37 |
a retrieval model designed primarily around the stateless fetch of data. |
38 |
Instead, it models a general user inquiry as a session-oriented, multi- |
39 |
step task, any step of which may be suspended temporarily while the |
40 |
server requests additional parameters from the client before continuing. |
41 |
Some, none, or all of these client/server interactions may require |
42 |
participation of the client user, depending only on the client software |
43 |
(the protocol itself makes no such requirements). |
44 |
|
45 |
On the other hand, retrieval of "well-known" data may be performed in |
46 |
a single step, that is, with a degenerate Z39.50 session consisting of |
47 |
exactly one protocol search request and response. Besides the basic |
48 |
search sub-service, there are several ancillary sub-services (e.g., Scan, |
49 |
Result Set Delete). Among the functions covered by combinations of the |
50 |
sub-services, two core functions emerge as appropriately handled by two |
51 |
separate URL schemes: the Session URL and the Retrieval URL. |
52 |
|
53 |
Using two schemes instead of one makes a critical distinction between a |
54 |
Z39.50 Session URL, which opens a client session initialized for |
55 |
interactive use by the user, and a Z39.50 Retrieval URL, which opens and |
56 |
closes a client session to retrieve a specific information item. Making |
57 |
this distinction at the scheme level allows the user interface to reflect |
58 |
it on to the user, without requiring the user interface to parse otherwise |
59 |
opaque parts of the URL (consistent with current practice). |
60 |
|
61 |
|
62 |
3. The Z39.50 Session URL |
63 |
|
64 |
The Z39.50 Session URL may be informally described as providing the |
65 |
mechanism to switch the user to a Z39.50 client application. |
66 |
|
67 |
- Host is required. |
68 |
- Port is optional, and defaults to 210. |
69 |
- All other parameters are optional. |
70 |
- The Z39.50 client will start a session to the specified host/port |
71 |
(alternatively, it need not explicitly start a session, but may |
72 |
instead utilize an already open session to the same host/port). |
73 |
- A database must be included if docid is included. |
74 |
- If docid is included, the client will perform the specified search |
75 |
(in the same manner as for the retrieval URL, specified below). |
76 |
- If docid is not included, and other parameters (besides host/port) |
77 |
are specified, the client may use those parameters as "hints". |
78 |
Various clients may choose to treat them as requirements, or as |
79 |
preferences, or ignore them. |
80 |
- In any case (whether a search is performed or not), the client will |
81 |
leave the Z39.50 session open for the user, to do retrievals, new |
82 |
searches, etc. (This is the main distinction from the Retrieval URL |
83 |
which leaves it up to the client whether or not to keep the Z39.50 |
84 |
session open.) |
85 |
|
86 |
|
87 |
4. The Z39.50 Retrieval URL |
88 |
|
89 |
The Z39.50 Retrieval URL is intended to allow a Z39.50 session to be used as |
90 |
a transparent transfer mechanism to retrieve a specific information object. |
91 |
A Z39.50 client uses information in the URL to formulate a Search Request. |
92 |
The server's Search Response indicates how many records match the Request. |
93 |
If the number of matching records does not equal one, the retrieval is |
94 |
considered unsuccessful, and the client application's behavior is not defined. |
95 |
If the number of matching records equals one, the server may have included |
96 |
the desired record in the Search Response. If not, the client requests |
97 |
transmission of the record with a Present Request. After the client has |
98 |
received the specified record it may close the Z39.50 session immediately, |
99 |
or keep it open for subsequent retrievals. |
100 |
|
101 |
- Host is required. |
102 |
- Port is optional, and defaults to 210. |
103 |
- A database is required. |
104 |
- The meaning of a retrieval URL with no docid is undefined. |
105 |
- The docid is placed into a type-1 query, as the single term, in |
106 |
the general format (tag 45), using the Bib-1 attribute set, with |
107 |
a Use attribute value of docid, and a structure attribute of URx. |
108 |
The docid string is server-defined and completely opaque to the client. |
109 |
- If element set name (esn) is not specified, it is the client's choice. |
110 |
If esn is specified, it should be used either in the Search |
111 |
request for the value of small- and/or medium- set-element-set-names |
112 |
or in a Present request following a Search. These terms and their |
113 |
use are defined within the Z39.50 Standard [2]. |
114 |
- If record syntax (rs) is not specified, it is the client's choice. |
115 |
If one or more record syntaxes are specified, the client should select |
116 |
one (preferably the first in the list that it supports) and use it in |
117 |
a Search or Present request as the value of PreferredRecordSyntax. |
118 |
|
119 |
|
120 |
5. BNF for Z39.50 URLs |
121 |
|
122 |
The Z39.50 Session and Retrieval URLs follow the Common Internet Scheme |
123 |
Syntax as defined in RFC 1738, "Uniform Resource Locators (URL)" [1]. |
124 |
In the definition, literals are quoted with "", optional elements |
125 |
are enclosed in [brackets], "|" is used to designate alternatives, |
126 |
and elements may be preceded with <n>* to designate n or more |
127 |
repetitions of the following element; n defaults to 0. |
128 |
|
129 |
z39.50url = zscheme "://" host [":" port] |
130 |
["/" [database *["+" database] |
131 |
["?" docid]] |
132 |
[";esn=" elementset] |
133 |
[";rs=" recordsyntax *[ "+" recordsyntax]]] |
134 |
|
135 |
zscheme = "z39.50r" | "z39.50s" |
136 |
database = uchar |
137 |
docid = uchar |
138 |
elementset = uchar |
139 |
recordsyntax = uchar |
140 |
|
141 |
Future extensions to these URLs will be of the form of [;keyword=value]. |
142 |
|
143 |
The following definitions are from RFC 1738. Between the Internet Draft |
144 |
version and RFC 1738 two relevant changes were made: '=' was moved from |
145 |
the <extra> character class to <reserved>, and <national> was removed from |
146 |
the alternatives in <unreserved>. Neither <national> nor <punctuation> is |
147 |
referred to in this document nor in RFC 1738. |
148 |
|
149 |
lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | |
150 |
"i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | |
151 |
"q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | |
152 |
"y" | "z" |
153 |
hialpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | |
154 |
"J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | |
155 |
"S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" |
156 |
|
157 |
alpha = lowalpha | hialpha |
158 |
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | |
159 |
"8" | "9" |
160 |
safe = "$" | "-" | "_" | "." | "+" |
161 |
extra = "!" | "*" | "'" | "(" | ")" | "," |
162 |
national = "{" | "}" | "|" | "\" | "^" | "~" | "[" | "]" | "`" |
163 |
punctuation = "<" | ">" | "#" | "%" | <"> |
164 |
|
165 |
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" |
166 |
hex = digit | "A" | "B" | "C" | "D" | "E" | "F" | |
167 |
"a" | "b" | "c" | "d" | "e" | "f" |
168 |
escape = "%" hex hex |
169 |
unreserved = alpha | digit | safe | extra |
170 |
uchar = unreserved | escape |
171 |
xchar = unreserved | reserved | escape |
172 |
digits = 1*digit |
173 |
|
174 |
6. Security Considerations |
175 |
|
176 |
The two Z39.50 URL schemes are subject to the same security implications |
177 |
as the general URL scheme [1], so the usual precautions apply. This means, |
178 |
for example, that a locator might no longer point to the object that was |
179 |
originally intended. It also means that it may be possible to construct |
180 |
a URL so that an attempt to perform a harmless idempotent operation such |
181 |
as the retrieval of an object will in fact cause a possibly damaging |
182 |
remote operation to occur. |
183 |
|
184 |
|
185 |
7. Acknowledgements |
186 |
|
187 |
The Z39.50 Implementors Group contributed the substance of this document. |
188 |
|
189 |
|
190 |
8. References |
191 |
|
192 |
[1] Berners-Lee, T., Masinter, L., McCahill, M. (editors), "Uniform |
193 |
Resource Locators (URL)", RFC 1738, December 1994. |
194 |
ftp://ds.internic.net/rfc/rfc1738.txt |
195 |
|
196 |
[2] ANSI/NISO Z39.50-1994, "ANSI Z39.50: Information Retrieval Service |
197 |
and Protocol", 1994. ftp://ftp.loc.gov/pub/z3950/ |
198 |
|
199 |
[3] ANSI/NISO Z39.50-1992, "ANSI Z39.50: Information Retrieval Service |
200 |
and Protocol", 1992. |
201 |
ftp://ftp.cni.org/pub/NISO/docs/Z39.50-1992/www/Z39.50.toc.html |
202 |
(also available in hard copy from Omnicom Information Service, |
203 |
115 Park St., SE, Vienna, VA 22180). |
204 |
|
205 |
|
206 |
7. Editors' Addresses |
207 |
|
208 |
Ray Denenberg |
209 |
Library of Congress |
210 |
Collections Services |
211 |
Network Development/MSO |
212 |
Washington DC 20540 |
213 |
ray@rden.loc.gov |
214 |
Voice: (202) 707-5795 |
215 |
Fax: (202) 707-0115 |
216 |
|
217 |
John A. Kunze |
218 |
Center for Knowledge Management |
219 |
University of California, San Francisco |
220 |
530 Parnassus Ave, Box 0840 |
221 |
San Francisco, CA 94143-0840 |
222 |
jak@ckm.ucsf.edu |
223 |
Voice: (415) 502-6660 |
224 |
Fax: (415) 476-4653 |
225 |
|
226 |
Denis Lynch |
227 |
TRW Business Intelligence Systems |
228 |
1329 Moffet Park Drive |
229 |
Sunnyvale, CA 94089 |
230 |
dml@bis.trw.com |
231 |
Voice: (408) 541-6418 |
232 |
Fax: (408) 541-6401 |