1 |
IETF URI Working Group John A. Kunze |
2 |
Internet-Draft IS&T, UC Berkeley |
3 |
27 July 1994 Expires in six months |
4 |
|
5 |
|
6 |
|
7 |
Functional Requirements for Internet Resource Locators |
8 |
<draft-ietf-uri-irl-fun-req-01.txt> |
9 |
|
10 |
1. Status of this Document |
11 |
|
12 |
This document is an Internet-Draft. Internet-Drafts are working documents |
13 |
of the Internet Engineering Task Force (IETF), its Areas, and its Working |
14 |
Groups. Note that other groups may also distribute working documents as |
15 |
Internet-Drafts. |
16 |
|
17 |
Internet-Drafts are working documents valid for a maximum of six months. |
18 |
Internet-Drafts may be updated, replaced, or obsoleted by other documents |
19 |
at any time. It is not appropriate to use Internet-Drafts as reference |
20 |
material or to cite them other than as a ``working draft' or ``work in |
21 |
progress.'' |
22 |
|
23 |
To learn the current status of any Internet-Draft, please check the |
24 |
1id-abstracts.txt listing contained in the Internet-Drafts Shadow |
25 |
Directories on ds.internic.net, nic.nordu.net, ftp.isi.edu, or |
26 |
munnari.oz.au. |
27 |
|
28 |
Distribution of this document is unlimited. Please send comments to the |
29 |
author at jak@violet.berkeley.edu or to the discussion list uri@bunyip.com. |
30 |
|
31 |
|
32 |
2. Introduction |
33 |
|
34 |
This document specifies a minimum set of requirements for Internet |
35 |
resource locators, which convey location and access information for |
36 |
resources. Typical examples of resources include network accessible |
37 |
documents, WAIS databases, FTP servers, and Telnet destinations. |
38 |
|
39 |
Locators may apply to resources that are not always or not ever network |
40 |
accessible. Examples of the latter include human beings and physical |
41 |
objects that have no electronic instantiation (that is, objects without |
42 |
an existence completely defined by digital objects such as disk files). |
43 |
|
44 |
A resource locator is a kind of resource identifier. Other kinds of |
45 |
resource identifiers allow names and descriptions to be associated with |
46 |
resources. A resource name is intended to provide a stable handle |
47 |
to refer to a resource long after the resource itself has moved or |
48 |
perhaps gone out of existence. A resource description comprises a |
49 |
body of meta-information to assist resource search and selection. |
50 |
|
51 |
In this document, an Internet resource locator is a locator defined by |
52 |
an Internet resource location standard. A resource location standard |
53 |
in conjunction with resource description and resource naming standards |
54 |
specifies a comprehensive infrastructure for network based information |
55 |
dissemination. Mechanisms for mapping between locators, names, and |
56 |
descriptive identifiers are beyond the scope of this document. |
57 |
|
58 |
|
59 |
3. Overview of Problem |
60 |
|
61 |
Network-based information resource providers require a method of describing |
62 |
the location of and access to their resources. Information systems users |
63 |
require a method whereby client software can interpret resource access and |
64 |
location descriptions on their behalf in a relatively transparent way. |
65 |
Without such a method, transparent and widely distributed, open information |
66 |
access on the Internet would be difficult if not impossible. |
67 |
|
68 |
|
69 |
3.1 Defining the General Resource Locator |
70 |
|
71 |
The requirements listed in this document impose restrictions on the |
72 |
general resource locator. To better understand what the Internet resource |
73 |
locator is, the following general locator definition provides some contrast. |
74 |
|
75 |
Definition: A general resource locator is an object |
76 |
that describes the location of a resource. |
77 |
|
78 |
This definition deliberately allows many degrees of freedom in order |
79 |
to contain the furthest reaches of the wide-ranging debate on resource |
80 |
location standards. Vast as it is, this problem space is a useful |
81 |
backdrop for discussion of the requirements (later) that generate a |
82 |
smaller, more manageable problem space. A resource location standard |
83 |
shrinks the space again by applying additional requirements. |
84 |
|
85 |
Consider the definition in four parts: (1) A general resource locator |
86 |
is an object (2) that describes (3) the location of (4) a resource. |
87 |
|
88 |
3.1.1. A general resource locator is an object... |
89 |
|
90 |
The object could be a complex data structure. It could be a contiguous |
91 |
sequence of bytes. It could be a pair of latitude-longitude coordinates, |
92 |
or a three-color road map printed on paper. It could be a sequence of |
93 |
characters that are capable of being printed on paper. |
94 |
|
95 |
3.1.2. ...that describes |
96 |
|
97 |
In the fully general case, there are many ways that a resource locator |
98 |
could describe the location. It could employ a graphical or natural |
99 |
language description. It could be heavily encoded or compressed. It |
100 |
could be lightly encoded and readily understandable by human beings. |
101 |
The description could be a multi-level hierarchy with common semantics |
102 |
at each level. It could be a multi-level hierarchy with common semantics |
103 |
at only the first two levels, where semantics below the second level |
104 |
depend on the value given at the first level. These are just a few |
105 |
possibilities. |
106 |
|
107 |
3.1.3. ...the location of |
108 |
|
109 |
A resource locator describes a location but never guarantees that access |
110 |
may be established. While access is often desired when clients follow |
111 |
location instructions given in a conformant resource locator, the resource |
112 |
need not exist any longer or need not exist yet. Indeed it may never exist, |
113 |
even though the locator continues to describe a location where a resource |
114 |
might exist (e.g., it might be used as a placeholder with resource |
115 |
availability contingent upon an event such as a payment). |
116 |
|
117 |
Furthermore, the nature of certain potential resources, especially animate |
118 |
beings or physical objects with no electronic instantiation, makes network |
119 |
access meaningless in some cases; such resources have locators that would |
120 |
imply non-networked access, but again, access is not guaranteed. |
121 |
|
122 |
3.1.4. ...a resource. |
123 |
|
124 |
A resource can be many things. Besides the non-networked or non-electronic |
125 |
resources just mentioned, familiar examples are an electronic document, |
126 |
an image, a server (e.g., FTP, Gopher, Telnet, HTTP), or a collection |
127 |
of items (e.g., Gopher menu, FTP directory, HTML page). Other examples |
128 |
accompany multi-function protocols such as Z39.50, which can perform |
129 |
single round trip network access, session-oriented search refinement, |
130 |
and index browsing. |
131 |
|
132 |
|
133 |
3.2 Producers and Interpreters of Resource Locators |
134 |
|
135 |
Central to the discussion of locator requirements is the issue of |
136 |
parsability. This is the ability of an agent to recognize or understand |
137 |
a locator in whole or in part. Discussion may be assisted by clearly |
138 |
distinguishing the two main actions associated with locators. |
139 |
|
140 |
Resource locators are both produced and interpreted. Producers are bound |
141 |
by the resource location standards that are in turn bound by requirements |
142 |
listed in this document. Interpreters of locators are not bound by the |
143 |
requirements; they are beneficiaries of them. |
144 |
|
145 |
3.2.1 Resource Locator Interpreters |
146 |
|
147 |
A resource locator is interpreted by interpreting agents, which in this |
148 |
document are simply called interpreters. Interpreters may be either |
149 |
human beings or software. Along the way to establishing access based |
150 |
on information in a locator, one or more interpreters may be employed. |
151 |
Some examples of multiple interpreters processing a single locator |
152 |
illustrate the concept that a resource locator may be understandable |
153 |
only in part by each of several interpreters, but understandable in |
154 |
its entirety by a combination of interpreters. |
155 |
|
156 |
In the first example, a software interpreter recognizes enough of a |
157 |
locator to understand to which external agent it needs to forward it. |
158 |
Here, the external agent might be a user and the locator a library call |
159 |
number; the software forwards the locator simply by displaying it. The |
160 |
agent might be a network software layer specializing in a particular |
161 |
communications protocol; once the service is recognized, the locator |
162 |
is forwarded to it along with an access request. |
163 |
|
164 |
In another example, a human interpreter might also recognize enough |
165 |
of a locator to understand where to forward it. Here, the person might |
166 |
be a user who recognizes a library call number as such but who does not |
167 |
understand the location information encoded in it; the person forwards |
168 |
it to a library employee (an external agent) who knows how to establish |
169 |
access to the library resource. |
170 |
|
171 |
A prerequisite to interpreting a locator is understanding when an object |
172 |
in question actually is a locator, or contains one or more locators. Some |
173 |
constrained environments make this question easy to answer, for example, |
174 |
within HTML anchors or Gopher menu items. Less constrained environments, |
175 |
such as within running text, make it more difficult to answer without |
176 |
well-defined assumptions. A resource location standard needs to make any |
177 |
such assumptions explicit. |
178 |
|
179 |
3.2.2 Resource Locator Producers |
180 |
|
181 |
Resource locators are produced in many ways, often by an agent that also |
182 |
interprets them. The provider of a resource may produce a locator for it, |
183 |
leaving the locator in places where it is intended to be discovered, such |
184 |
as an HTML page, a Gopher menu, or an announcement to an e-mail list. |
185 |
|
186 |
Non-providers of resources can be major producers of locators; for example, |
187 |
WWW client software produces locators by translating foreign resource |
188 |
locators (e.g., Gopher menu items) to its own format. Some locator |
189 |
databases (e.g., Archie) have been maintained by automated processes that |
190 |
produce locators for hundreds of thousands of FTP resources that they |
191 |
"discover" on the Internet. |
192 |
|
193 |
Users are major producers of resource locators. A user constructing one |
194 |
to share with others is responsible for conformance with locator standards. |
195 |
Sometimes a user composes a resource locator based on an educated guess |
196 |
and submits it to client software with the intent of establishing access. |
197 |
Such a user is a producer in a sense, but if the locator is purely for |
198 |
personal consumption the user is not bound by the requirements. In fact, |
199 |
some client software may offer as a service to translate abbreviated, |
200 |
non-conformant locators entered by users into successful access |
201 |
instructions or into conformant locators (e.g., by adding a domain name |
202 |
to an unqualified hostname) |
203 |
|
204 |
|
205 |
3.3 Uniqueness of Resource Locators |
206 |
|
207 |
The topic of a "uniqueness" requirement for resource locators has been |
208 |
discussed a great deal. This document recognizes several aspects of |
209 |
uniqueness, but deliberately makes few requirements regarding them. |
210 |
It is incumbent upon a resource location standard that takes on this |
211 |
topic to be clear about which aspects it addresses. Some of them follow. |
212 |
|
213 |
3.3.1. Uniqueness and Multiple Copies of a Resource |
214 |
A uniqueness requirement might dictate that no identical copies of a |
215 |
resource may exist. This document makes no such requirement. |
216 |
|
217 |
3.3.2. Uniqueness and Deterministic Access |
218 |
A uniqueness requirement might dictate that the same resource accessed |
219 |
in one attempt will also be the result of any other successful attempt. |
220 |
This document makes no such requirement, nor does it define "sameness". |
221 |
It is inappropriate for a resource location standard to define "sameness" |
222 |
among resources. |
223 |
|
224 |
3.3.3. Uniqueness and Multiple Locators |
225 |
A uniqueness requirement might dictate that a resource have no more than |
226 |
one locator unless all such locators be the same. This document makes |
227 |
no such requirement, nor does it define "sameness" among locators |
228 |
(which a standard might do using, for example, canonicalization rules). |
229 |
|
230 |
3.3.4. Uniqueness, Ambiguity, and Multiple Objects per Access |
231 |
A uniqueness requirement might dictate that a resource locator identify |
232 |
exactly one object as opposed to several objects. This document makes |
233 |
no general definition of what constitutes one object, several objects, |
234 |
or one object consisting of several objects. |
235 |
|
236 |
|
237 |
4. Resource Access and Availability |
238 |
|
239 |
A locator never guarantees access, but establishing access is by far the |
240 |
most important intended application of a resource locator. While it is |
241 |
considered ungracious to advertize a locator for a resource that will |
242 |
never be accessible (whether a "networkable" resource or not), it is |
243 |
normal for resource access to fail at a rate that increases with the |
244 |
age of the locator used. |
245 |
|
246 |
Resource access can fail for many reasons. Providers fundamentally affect |
247 |
accessibility by moving, replacing, or deleting resources over time. The |
248 |
frequency of such changes depends on the nature of the resource and provider |
249 |
service practices, among other things. A locator that conforms to a |
250 |
location standard but fails for one of these reasons is called "invalid" |
251 |
for the purposes of this document; the term invalid locator does not apply |
252 |
to malformed or non-conformant locators. Resource naming standards |
253 |
address the problem of invalid locators. |
254 |
|
255 |
Ordinary provider support policies may cause resources to be inaccessible |
256 |
during predictable time periods (e.g., certain hours of the day, or days |
257 |
of the year), or during periods of heavy system loading. Rights clearance |
258 |
restrictions impossible to express in a locator also affect accessibility |
259 |
for certain user populations. Heavy network load can also prevent access. |
260 |
In such situations, this document calls a resource "unavailable". |
261 |
A locator can both be valid and identify a resource that is unavailable. |
262 |
Resource description standards address, among other things, some aspects |
263 |
of resource availability. |
264 |
|
265 |
In general, the probability with which a given resource locator leads |
266 |
to successful access decreases over time, and depends on conditions such as |
267 |
the nature of the resource, support policies of the provider, and loading |
268 |
of the network. |
269 |
|
270 |
|
271 |
5. Requirements List for Internet Resource Locators |
272 |
|
273 |
This list of requirements is applied to the set of general locators |
274 |
defined in section 3.1. The resulting subset, called Internet locators |
275 |
in this document, is suitable for further refinement by an Internet |
276 |
resource location standard. Some requirements concern locator encoding |
277 |
while others concern locator function. |
278 |
|
279 |
One requirement from the original draft list was dropped after extensive |
280 |
discussion revealed it to be impractical to meet. It stated that with a |
281 |
high degree of reliability, software can recognize Internet locators in |
282 |
certain relatively unstructured environments, such as within running |
283 |
ASCII text. |
284 |
|
285 |
5.1 Locators are transient. |
286 |
|
287 |
The probability with which a given Internet resource locator leads to |
288 |
successful access decreases over time. More stable resource identifier |
289 |
schemes are addressed in resource naming standards and are outside |
290 |
the scope of a resource location standard. |
291 |
|
292 |
5.2 Locators have global scope. |
293 |
|
294 |
The name space of resource locators includes the entire world. |
295 |
The probability of successful access using an Internet locator |
296 |
depends in no way, modulo resource availability, on the geographical |
297 |
or Internet location of the client. |
298 |
|
299 |
5.3 Locators are parsable. |
300 |
|
301 |
Internet locators can be broken down into complete constituent parts |
302 |
sufficient for interpreters (software or human) to attempt access if |
303 |
desired. While these requirements do not bind interpreters, three |
304 |
points bear emphasizing: |
305 |
|
306 |
5.3.1 A given kind of locator may still be parsable even if a given |
307 |
interpreter cannot parse it. |
308 |
5.3.2 Parsable by users does not imply readily parsable by untrained users. |
309 |
5.3.3 A given locator need not be completely parsable by any one interpreter |
310 |
as long as a combination of interpreters can parse it completely. |
311 |
|
312 |
5.4 Locators can be readily distinguished from naming and descriptive |
313 |
identifiers that may occupy the same name space. |
314 |
|
315 |
During a transition period (of possibly indefinite length), other kinds |
316 |
of resource identifier are expected to co-exist in data structures along |
317 |
with Internet locators. |
318 |
|
319 |
5.5 Locators are "transport-friendly". |
320 |
|
321 |
Internet locators can be transmitted from user to user (e.g, via e-mail) |
322 |
across Internet standard communications protocols without loss or |
323 |
corruption of information. |
324 |
|
325 |
5.6 Locators are human transcribable. |
326 |
|
327 |
Users can copy Internet locators from one medium to another (such as |
328 |
voice to paper, or paper to keyboard) without loss or corruption of |
329 |
information. This process is not required to be comfortable. |
330 |
|
331 |
5.7 An Internet locator consists of a service and an opaque parameter package. |
332 |
|
333 |
The parameter package has meaning only to the service with which it is |
334 |
paired, where a service is an abstract access method. An abstract access |
335 |
method might be a software tool, an institution, or a network protocol. |
336 |
The parameter package might be service-specific access instructions. |
337 |
In order to protect creative development of new services, there is an |
338 |
extensible class of services for which no parameter package semantics |
339 |
common across services may be assumed. |
340 |
|
341 |
5.8 The set of services is extensible. |
342 |
|
343 |
New services can be added over time. |
344 |
|
345 |
5.9 Locators contain no information about the resource other than that |
346 |
required by the access mechanism. |
347 |
|
348 |
The purpose of an Internet locator is only to describe the location of |
349 |
a resource, not other properties such as its type, size, modification |
350 |
date, etc. These and other properties belong in a resource description |
351 |
standard. |
352 |
|
353 |
|
354 |
6. Conclusion |
355 |
|
356 |
Resource location standards, which define Internet resource locators, |
357 |
give providers the means to describe access information for their |
358 |
resources. They give client developers the ability to access disparate |
359 |
resources while hiding access details from users. |
360 |
|
361 |
Several minimum requirements distinguish an Internet locator from a general |
362 |
locator. Internet resource locators are impermanent handles sufficiently |
363 |
qualified for resource access not to depend in general on client location. |
364 |
Locators can be recognized and parsed, and can be transmitted unscathed |
365 |
through a variety of human and Internet communication mechanisms. |
366 |
|
367 |
An Internet resource locator consists of a service and access parameters |
368 |
meaningful to that service. The form of the locator does not discourage |
369 |
the addition of new services or the migration to other resource identifiers. |
370 |
A clean distinction between resource location, resource naming, and resource |
371 |
description standards is preserved by limiting Internet locators to no more |
372 |
information than what is required by an access mechanism. |
373 |
|
374 |
|
375 |
7. Acknowledgements |
376 |
|
377 |
The core requirements of this document arose from a collaboration of the |
378 |
following people at the November 1993 IETF meeting in Houston, Texas. |
379 |
|
380 |
Farhad Ankelesaria, University of Minnesota |
381 |
John Curran, NEARNET |
382 |
Peter Deutsch, Bunyip |
383 |
Alan Emtage, Bunyip |
384 |
Jim Fullton, CNIDR |
385 |
Kevin Gamiel, CNIDR |
386 |
Joan Gargano, University of California at Davis |
387 |
John Kunze, University of California at Berkeley |
388 |
Clifford Lynch, University of California |
389 |
Lars-Gunnar Olson, Swedish University of Agriculture |
390 |
Mark McCahill, University of Minnesota |
391 |
Michael Mealing, Georgia Tech |
392 |
Mitra, Pandora Systems |
393 |
Pete Percival, Indiana University |
394 |
Margaret St. Pierre, WAIS, Inc. |
395 |
Rickard Schoultz, KTH |
396 |
Janet Vratny, Apple Computer Library |
397 |
Chris Weider, Merit Network |
398 |
|