draft-ietf-urn-resolution-services-04.txt   draft-ietf-urn-resolution-services-05.txt 
URN Working Group M.Mealling URN Working Group M.Mealling
INTERNET-DRAFT Network Solutions, Inc. INTERNET-DRAFT Network Solutions, Inc.
Expires six months from November 1997 Ron Daniel Jr. Expires six months from March 1998 Ron Daniel Jr.
Intended category: Experimental Los Alamos National Laboratory Intended category: Experimental Los Alamos National Laboratory
draft-ietf-urn-resolution-services-04.txt draft-ietf-urn-resolution-services-05.txt
URI Resolution Services URI Resolution Services
Necessary for URN Resolution Necessary for URN Resolution
Status of this Memo Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts. working documents as Internet-Drafts.
skipping to change at page 2, line 42 skipping to change at page 2, line 42
Design Criteria Design Criteria
The design criteria used to meet these requirements were fairly The design criteria used to meet these requirements were fairly
simple. The need to identify the operation with some token and know its simple. The need to identify the operation with some token and know its
operands, algorithm, and errors was sufficient to meet the operands, algorithm, and errors was sufficient to meet the
requirements. requirements.
2. General Specification 2. General Specification
To provide a framework both for the specifications in this document To provide a framework both for the specifications in this document
and for new ones to be written by others, the requirements below are and for future work to be written by others, the guidelines below are
placed on any documents that seek to specify new operations. Any suggested for documents that seek to specify new operations. Any
specification of a member of this set of operations MUST contain at specification of a member of this set of operations should address
least the following pieces of information with respect to its operands, these issues with respect to its operands, its algorithm, output, and errors.
its algorithm, output, and errors.
At this stage it is unclear whether or not the registration of these Due to the small number of listed functions, a registration mechanism
operations is required. In the future if it becomes apparent that these was dismissed as premature. If this list grows, a registration mechanism
functions are widely used and extended then some registration scheme will probably be needed.
will need to be developed.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", Also, due to the experimental nature of this document and the systems
that use its specifications, the use of words like MUST and SHALL are
limited. Where used they reflect a case where this specification could
cause harm to existing, non-experimental systems such as HTTP and URNs.
Thus, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119. document are to be interpreted as described in RFC 2119.
2.1 Operands 2.1 Operands
Operands must contain the following pieces of information: Operands must contain the following pieces of information:
* name of the operation * name of the operation
* case insensitive mnemonic for the operation * case insensitive mnemonic for the operation
* number of operands * number of operands
skipping to change at page 4, line 5 skipping to change at page 4, line 5
3. Encoding The Operations 3. Encoding The Operations
To be useful, these operations have to be used within some system or To be useful, these operations have to be used within some system or
protocol. In many cases, these systems and protocols will place protocol. In many cases, these systems and protocols will place
restrictions on which operations make sense and how those that do are restrictions on which operations make sense and how those that do are
syntactically represented. It is sufficient for those protocols to syntactically represented. It is sufficient for those protocols to
define new operations within their own protocol specification define new operations within their own protocol specification
documents but care should be taken to make this fact well known. documents but care should be taken to make this fact well known.
Also, a given system or protocol will have its own output formats Also, a given system or protocol will have its own output specifications
that will restrict the output formats of a given operation. that may restrict the output formats of a given operation.
Additionally, a given protocol may have better solution for output Additionally, a given protocol may have better solution for output
than the ones given here. For example, the I2L result may be than the ones given here. For example, the I2L result may be
encoded in a protocol-specific manner that conveys information about encoded in a protocol-specific manner that conveys information about
the closeness of each resource on the network. the closeness of each resource on the network.
Thus, the requirements on encoding these operations within a given Thus, the requirements on encoding these operations within a given
system are as follows: system are as follows:
* which subset of the operations are allowed * which subset of the operations are allowed
* how the operator is encoded * how the operator is encoded
* how the operands are encoded * how the operands are encoded
* how the error codes are returned * how the error codes are returned
For those systems that can use it, MIME [4] is the suggested output The text/uri-list MIME Media Type is specified in Section 5. This Media Type
format. The operations listed here use the text/uri-list Internet Media is merely a suggestion for experimental systems that need a simple
Type (IMT) [4] that is specified in Section 6. Other systems are implementation. It is included here merely as an example to show
strongly encouraged to use this IMT. In the case where a system does completeness (however simple it may be).
not use an IMT, a justification should be given.
4. The Incomplete Set 4. The Incomplete Set
4.1 I2L (URI to URL) 4.1 I2L (URI to URL)
* Name: URI to URL * Name: URI to URL
* Mnemonic: I2L * Mnemonic: I2L
* Number of Operands: 1 * Number of Operands: 1
* Type of Each Operand: First operand is a URI. * Type of Each Operand: First operand is a URI.
* Format of Each Operand: First operand is encoded as a URI. * Format of Each Operand: First operand is encoded as a URI.
* Algorithm: Opaque * Algorithm: Opaque
* Output: One and only one URL encoded in a text/uri-list * Output: One and only one URL
* Errors Conditions: * Errors Conditions:
o Malformed URI o Malformed URI
o URI is syntactically valid but does not exist in any form. o URI is syntactically valid but does not exist in any form.
o URI exists but there is no available output from this o URI exists but there is no available output from this
operation. operation.
o URI existed in the past but nothing is currently known o URI existed in the past but nothing is currently known
about it. about it.
o Access denied o Access denied
* Security Considerations: * Security Considerations:
skipping to change at page 5, line 18 skipping to change at page 5, line 18
dependent on the URI scheme. dependent on the URI scheme.
4.2 I2Ls (URI to URLs) 4.2 I2Ls (URI to URLs)
* Name: URI to URLs * Name: URI to URLs
* Mnemonic: I2LS * Mnemonic: I2LS
* Number of Operands: 1 * Number of Operands: 1
* Type of Each Operand: First operand is a URI. * Type of Each Operand: First operand is a URI.
* Format of Each Operand: First operand is encoded as a URI. * Format of Each Operand: First operand is encoded as a URI.
* Algorithm: Opaque * Algorithm: Opaque
* Output: A list of zero or more URLs encoded in a text/uri-list * Output: A list of zero or more URLs
* Errors: * Errors:
o Malformed URI o Malformed URI
o URI is syntactically valid but does not exist in any form. o URI is syntactically valid but does not exist in any form.
o URI exists but there is no available output from this o URI exists but there is no available output from this
operation. operation.
o URI existed in the past but nothing is currently known o URI existed in the past but nothing is currently known
about it. about it.
o Access denied o Access denied
* Security Considerations: * Security Considerations:
o Malicious Redirection (see I2L) o Malicious Redirection (see I2L)
o Denial of Service (see I2L) o Denial of Service (see I2L)
This operation is used to map a single URI to 0 or more URLs. It is This operation is used to map a single URI to 0 or more URLs. It is
used by a client that can pick from a list of URLs based on some used by a client that can pick from a list of URLs based on some
criteria that are important to the client. The client should not make criteria that are important to the client. The client should not make
any assumptions about the order of the URLs returned. No matter what any assumptions about the order of the URLs returned. No matter what
the particular media type, the result MUST be a list of the URLs that the particular media type, the result should be a list of the URLs that
may be used to obtain an instance of the resource identified by the may be used to obtain an instance of the resource identified by the
URI. All URIs shall be encoded according to the URI specification [3]. URI. All URIs shall be encoded according to the URI specification [3].
4.3 I2R (URI to Resource) 4.3 I2R (URI to Resource)
* Name: URI to Resource * Name: URI to Resource
* Mnemonic: I2R * Mnemonic: I2R
* Number of Operands: 1 * Number of Operands: 1
* Type of Each Operand: First operand is a URI. * Type of Each Operand: First operand is a URI.
* Format of Each Operand: First operand is encoded as a URI. * Format of Each Operand: First operand is encoded as a URI.
* Algorithm: Opaque * Algorithm: Opaque
* Output: An instance of the resource named by the URI. Encoding is * Output: An instance of the resource named by the URI.
not specified.
* Errors: * Errors:
o Malformed URI o Malformed URI
o URI is syntactically valid but does not exist in any form. o URI is syntactically valid but does not exist in any form.
o URI exists but there is no available output from this o URI exists but there is no available output from this
operation. operation.
o URI existed in the past but nothing is currently known o URI existed in the past but nothing is currently known
about it. about it.
o Access denied o Access denied
* Security Considerations: * Security Considerations:
o Malicious Redirection (see I2L) o Malicious Redirection (see I2L)
skipping to change at page 6, line 18 skipping to change at page 6, line 18
4.4 I2Rs (URI to Resources) 4.4 I2Rs (URI to Resources)
* Name: URI to Resources * Name: URI to Resources
* Mnemonic: I2Rs * Mnemonic: I2Rs
* Number of Operands: 1 * Number of Operands: 1
* Type of Each Operand: First operand is a URI. * Type of Each Operand: First operand is a URI.
* Format of Each Operand: First operand is encoded as a URI. * Format of Each Operand: First operand is encoded as a URI.
* Algorithm: Opaque * Algorithm: Opaque
* Output: Zero or more instances of the resource named by the URI. * Output: Zero or more instances of the resource named by the URI.
Encoding is not specified but MIME multipart/alternative is
encouraged.
* Errors: * Errors:
o Malformed URI o Malformed URI
o URI is syntactically valid but does not exist in any form. o URI is syntactically valid but does not exist in any form.
o URI exists but there is no available output from this o URI exists but there is no available output from this
operation. operation.
o URI existed in the past but nothing is currently known o URI existed in the past but nothing is currently known
about it. about it.
o Access denied o Access denied
* Security Considerations: * Security Considerations:
o Malicious Redirection (see I2L) o Malicious Redirection (see I2L)
skipping to change at page 6, line 50 skipping to change at page 6, line 48
be returned without the multipart/alternative wrapper. be returned without the multipart/alternative wrapper.
4.5 I2C (URI to URC) 4.5 I2C (URI to URC)
* Name: URI to URC * Name: URI to URC
* Mnemonic: I2C * Mnemonic: I2C
* Number of Operands: 1 * Number of Operands: 1
* Type of Each Operand: First operand is a URI. * Type of Each Operand: First operand is a URI.
* Format of Each Operand: First operand is encoded as a URI. * Format of Each Operand: First operand is encoded as a URI.
* Algorithm: Opaque * Algorithm: Opaque
* Output: A URC. Encoding is not specified. * Output: A URC
* Errors: * Errors:
o Malformed URI o Malformed URI
o URI is syntactically valid but does not exist in any form. o URI is syntactically valid but does not exist in any form.
o URI exists but there is no available output from this o URI exists but there is no available output from this
operation. operation.
o URI existed in the past but nothing is currently known o URI existed in the past but nothing is currently known
about it. about it.
o Access denied o Access denied
* Security Considerations: * Security Considerations:
o Malicious Redirection (see I2L) o Malicious Redirection (see I2L)
skipping to change at page 7, line 21 skipping to change at page 7, line 21
to vary from one server to another. to vary from one server to another.
4.6 I2CS (URI to URCs) 4.6 I2CS (URI to URCs)
* Name: URI to URCs * Name: URI to URCs
* Mnemonic: I2CS * Mnemonic: I2CS
* Number of Operands: 1 * Number of Operands: 1
* Type of Each Operand: First operand is a URI. * Type of Each Operand: First operand is a URI.
* Format of Each Operand: First operand is encoded as a URI. * Format of Each Operand: First operand is encoded as a URI.
* Algorithm: Opaque * Algorithm: Opaque
* Output: Zero or more URCs. Encoding is not specified. * Output: Zero or more URCs
* Errors: * Errors:
o Malformed URI o Malformed URI
o URI is syntactically valid but does not exist in any form. o URI is syntactically valid but does not exist in any form.
o URI exists but there is no available output from this o URI exists but there is no available output from this
operation. operation.
o URI existed in the past but nothing is currently known o URI existed in the past but nothing is currently known
about it. about it.
o Access denied o Access denied
* Security Considerations: * Security Considerations:
o Malicious Redirection (see I2L) o Malicious Redirection (see I2L)
skipping to change at page 7, line 45 skipping to change at page 7, line 45
zero or more URCs that are appropriate for the given URI. zero or more URCs that are appropriate for the given URI.
4.7 I2N (URI to URN) 4.7 I2N (URI to URN)
* Name: URI to URN * Name: URI to URN
* Mnemonic: I2N * Mnemonic: I2N
* Number of Operands: 1 * Number of Operands: 1
* Type of Each Operand: First operand is a URN. * Type of Each Operand: First operand is a URN.
* Format of Each Operand: First operand is encoded as a URI. * Format of Each Operand: First operand is encoded as a URI.
* Algorithm: Opaque * Algorithm: Opaque
* Output: One URN encoded in a text/uri-list IMT. * Output: One and only one URN
* Errors: * Errors:
o Malformed URI o Malformed URI
o URI is syntactically valid but does not exist in any form. o URI is syntactically valid but does not exist in any form.
o URI exists but there is no available output from this o URI exists but there is no available output from this
operation. operation.
o URI existed in the past but nothing is currently known o URI existed in the past but nothing is currently known
about it. about it.
o Access denied o Access denied
* Security Considerations: * Security Considerations:
o Malicious Redirection (see I2L) o Malicious Redirection (see I2L)
o Denial of Service (see I2L) o Denial of Service (see I2L)
While URNs are supposed to identify one and only one resource, that While URNs are supposed to identify one and only one resource, that
does not mean that a resource may have one and only one URN. For does not mean that a resource may have one and only one URN. For
example, consider a resource that one organization wishes to name example, consider a resource that one organization wishes to name
'foo'; another organization, in agreement with the first, wants to call 'foo'; another organization, in agreement with the first, wants to call
the resource 'bar'. Both organizations can agree that both names 'name' the resource 'bar'. Both organizations can agree that both names 'name'
the same resource and that the URNs 'foo' and 'bar' are equivalent. the same resource and that the URNs 'foo' and 'bar' are equivalent.
The result is a URN, known to the server, that identifies the same The result is a URN, known to the server, that identifies the same
resource as the input URN. The result shall be encoded in a resource as the input URN.
text/uri-list IMT.
Extreme care should be taken with this service as it toys with the Extreme care should be taken with this service as it toys with the
idea of equality with respect to URNs. As mentioned in several URN idea of equality with respect to URNs. As mentioned in several URN
documents, the idea of equality is very domain specific. For example, documents, the idea of equality is very domain specific. For example,
a URN pointing to a weather map for a particular day and a URN pointing a URN pointing to a weather map for a particular day and a URN pointing
to the map as it changes from day to day would NOT be returned in this to the map as it changes from day to day would NOT be returned in this
example because they point to do different resources. Some other concept example because they point to do different resources. Some other concept
of temporary equivalence is at work. This service instead deals with of temporary equivalence is at work. This service instead deals with
resources that have two different names where there is a binding resources that have two different names where there is a binding
between the names that is agreed by both name assigners. I.e., both between the names that is agreed by both name assigners. I.e., both
namespaces must have agreed that the each name can be used in place of namespaces MUST have agreed that the each name can be used in place of
the other and the meaning does not change. the other and the meaning does not change.
4.8 I2Ns (URI to URNs) 4.8 I2Ns (URI to URNs)
* Name: URI to URNs * Name: URI to URNs
* Mnemonic: I2NS * Mnemonic: I2NS
* Number of Operands: 1 * Number of Operands: 1
* Type of Each Operand: First operand is a URI. * Type of Each Operand: First operand is a URI.
* Format of Each Operand: First operand is encoded as a URI. * Format of Each Operand: First operand is encoded as a URI.
* Algorithm: Opaque * Algorithm: Opaque
* Output: A list of URNs encoded in a text/uri-list IMT * Output: A list of URNs
* Errors: * Errors:
o Malformed URI o Malformed URI
o URI is syntactically valid but does not exist in any form. o URI is syntactically valid but does not exist in any form.
o URI exists but there is no available output from this o URI exists but there is no available output from this
operation. operation.
o URI existed in the past but nothing is currently known o URI existed in the past but nothing is currently known
about it. about it.
o Access denied o Access denied
* Security Considerations: * Security Considerations:
o Malicious Redirection (see I2L) o Malicious Redirection (see I2L)
 End of changes. 18 change blocks. 
33 lines changed or deleted 30 lines changed or added

This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/