draft-ietf-conneg-feature-hash-03.txt   draft-ietf-conneg-feature-hash-04.txt 
IETF conneg working group Graham Klyne, editor IETF conneg working group Graham Klyne, editor
Internet draft 5GM/Content Technologies Internet draft Content Technologies
Category: Work-in-progress Larry Masinter Category: Work-in-progress Larry Masinter
Xerox Corporation AT&T
Expires: January 2000 Expires: October 2000
Identifying composite media features Identifying composite media features
<draft-ietf-conneg-feature-hash-03.txt> <draft-ietf-conneg-feature-hash-04.txt>
Status of this memo Status of this memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026. all provisions of Section 10 of RFC 2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 45 skipping to change at page 1, line 46
Copyright (C) The Internet Society 1999. All Rights Reserved. Copyright (C) The Internet Society 1999. All Rights Reserved.
Abstract Abstract
In RFC 2533 [1], an expression format is presented for describing In RFC 2533 [1], an expression format is presented for describing
media feature capabilities as a combination of simple media feature media feature capabilities as a combination of simple media feature
tags [2]. tags [2].
This document describes an abbreviated format for a composite media This document describes an abbreviated format for a composite media
feature set, based upon a hash of the feature expression describing feature set, based upon a hash of the feature expression describing
that composite, or the URI of a resource containing the feature that composite.
expression.
Internet Draft Identifying composite media features Internet Draft Identifying composite media features
Table of contents Table of contents
1. Introduction ............................................2 1. Introduction ............................................2
1.1 Organization of this document 2 1.1 Organization of this document 2
1.2 Terminology and document conventions 3 1.2 Terminology and document conventions 3
1.3 Discussion of this document 3 1.3 Discussion of this document 3
2. Motivation and goals ....................................4 2. Motivation and goals ....................................4
3. Composite feature representation ........................5 3. Composite feature representation ........................5
3.1 Feature set hashed reference format 6 3.1 Feature set hashed reference format 6
3.1.1 Hash value calculation 6 3.1.1 Hash value calculation 6
3.1.2 Base-32 value representation 7 3.1.2 Base-32 value representation 7
3.2 Feature set URI reference format 9 3.2 Resolving feature set identifiers 8
3.3 Resolving feature set references 10 3.2.1 Query protocol 9
3.3.1 URI reference 10 3.2.2 Inline feature set details 9
3.3.2 Inline feature set details 11 4. Examples ................................................10
4. Examples ................................................12 5. Internationalization considerations .....................10
5. Internationalization considerations .....................12 6. Security considerations .................................11
6. Security considerations .................................12 7. Acknowledgements ........................................11
7. Full copyright statement ................................13 8. References ..............................................11
8. Acknowledgements ........................................13 9. Authors' addresses ......................................13
9. References ..............................................13 Appendix A: The birthday problem ...........................13
10. Authors' addresses .....................................15 Appendix B: Revision history ...............................15
Appendix A The birthday problem ............................15 Full copyright statement ...................................16
Appendix B: Revision history ...............................17
1. Introduction 1. Introduction
In "A syntax for describing media feature sets" [1], an expression In "A syntax for describing media feature sets" [1], an expression
format is presented for describing media feature capabilities as a format is presented for describing media feature capabilities as a
combination of simple media feature tags [2]. combination of simple media feature tags [2].
This document proposes an abbreviated format for a composite media This document proposes an abbreviated format for a composite media
feature set, based upon a hash of the feature expression describing feature set, based upon a hash of the feature expression describing
that composite. that composite.
This memo extends and builds upon the expression syntax described This memo extends and builds upon the expression syntax described
in RFC 2533 [1], and it is assumed that the reader is familiar with in RFC 2533 [1], and it is assumed that the reader is familiar with
the interpretation and processing of feature set expressions the interpretation feature set expressions described there.
described there.
1.1 Organization of this document 1.1 Organization of this document
Section 2 sets out some of the background and goals for feature set Section 2 sets out some of the background and goals for feature set
references. references.
Section 3 presents a syntax for feature set references, and Section 3 presents a syntax for feature set references, and
describes how they are related to feature set expressions. describes how they are related to feature set expressions.
Internet Draft Identifying composite media features Internet Draft Identifying composite media features
skipping to change at page 4, line 29 skipping to change at page 4, line 29
The range of media feature capabilities of a message handling The range of media feature capabilities of a message handling
system can be quite extensive, and the corresponding feature set system can be quite extensive, and the corresponding feature set
expression [1] can reach a significant size. expression [1] can reach a significant size.
A requirement has been identified to allow recurring feature sets A requirement has been identified to allow recurring feature sets
to be identified by a single reference value, which can be combined to be identified by a single reference value, which can be combined
with other elements in a feature set expression. It is anticipated with other elements in a feature set expression. It is anticipated
that mechanisms will be provided that allow the recipient of such a that mechanisms will be provided that allow the recipient of such a
feature set reference to discover the corresponding feature set feature set reference to discover the corresponding feature set
expression. expression, but any such mechanism is beyond the scope of this
specification.
Thus, the goals for this proposal are: Thus, the goals for this proposal are:
o to provide an abbreviated form for referencing an arbitrary o to provide an abbreviated form for referencing an arbitrary
feature set expression. feature set expression.
o the meaning of (i.e. the corresponding feature set expression) a o the meaning of (i.e. the corresponding feature set expression) a
feature set reference should be independent of any particular feature set reference should be independent of any particular
mechanism that may be used to dereference it. mechanism that may be used to dereference it.
skipping to change at page 5, line 6 skipping to change at page 5, line 6
o for protocol processors that conform to RFC 2533 [1] to be able o for protocol processors that conform to RFC 2533 [1] to be able
to sensibly handle a feature set reference without explicit to sensibly handle a feature set reference without explicit
knowledge of its meaning (i.e. the introduction of feature set knowledge of its meaning (i.e. the introduction of feature set
references should not break existing feature expression references should not break existing feature expression
processors). That is, the applicable interpretation and processors). That is, the applicable interpretation and
processing rules of RFC 2533 [1] apply equally to expressions processing rules of RFC 2533 [1] apply equally to expressions
containing feature set references. containing feature set references.
Internet Draft Identifying composite media features Internet Draft Identifying composite media features
o to allow, but not require, some indication of how to dereference
a feature set reference to be included in a feature set
expression.
NOTE: This proposal does not attempt to address the NOTE: This proposal does not attempt to address the
"override" or "default" problem. (Also called "override" or "default" problem. (Where a feature set
"delegation", where a feature set may be referenced and may be referenced and selectively modified.)
selectively modified.)
3. Composite feature representation 3. Composite feature representation
This specification hinges on three central ideas: This specification hinges on two central ideas:
o the use of auxiliary predicates (introduced in RFC 2533 [1]) to o the use of auxiliary predicates (introduced in RFC 2533 [1]) to
form the basis of a feature set reference, and form the basis of a feature set identifier, and
o the use of a token based on a hash function computed over the o the use of a token based on a hash function computed over the
referenced feature set expression. referenced feature set expression.
o the use of an expression containing a URI to indicate an
identifier and possibly a service for resolution of a composite
feature set.
A key reason to use a hash function to generate an identifier is to A key reason to use a hash function to generate an identifier is to
define a global name space without requiring a central naming define a global name space without requiring a central naming
authority. New feature set tags can be introduced by any party authority. New feature set tags can be introduced by any party
following the appropriate rules of formulation, without reference following the appropriate rules of formulation, without reference
to any centralized authority. to any centralized authority.
Local resolution services may be needed to map feature set tags to Local resolution services may be needed to map feature set tags to
their corresponding feature set expressions, but these are not able their corresponding feature set expressions, but these are not able
to vary the meaning of any given tag. Failure of a resolution to vary the meaning of any given tag. Failure of a resolution
service to return the correct expression is detectable by a calling service to return the correct expression is detectable by a calling
application, which should reject any incorrect value supplied. application, which should reject any incorrect value supplied.
This memo also suggests that an expression containing a URI in the
format '<URI>' may be used to indicate a mechanism and location of
a service to perform feature set resolution.
NOTE: where a feature set reference is used, its meaning NOTE: where a feature set reference is used, its meaning
is defined by substitution of the referenced feature is defined by substitution of the referenced feature
expression into the referencing expression. When all expression into the referencing expression. When all
references have been thus replaced, the result is references have been thus replaced, the result is
interpreted as a normal feature expression. interpreted as a normal feature expression.
Internet Draft Identifying composite media features
In particular, if a referenced feature expression In particular, if a referenced feature expression
contains some feature tag that is also constrained by the contains some feature tag that is also constrained by the
referencing expression, the constraints are interpreted referencing expression, the constraints are interpreted
per RFC 2533 [1], without regard for their origin. e.g. per RFC 2533 [1], without regard for their origin. e.g.
(using some notation introduced below): (using some notation introduced below):
(& (pix-x=100) (pix-y<=300) (h.1234567890) ) (& (pix-x=100) (pix-y<=300)
where (h.1234567890) resolves to: (h.SBB5REAOMHC09CP2GM4V07PQP0) )
where (h.SBB5REAOMHC09CP2GM4V07PQP0) resolves to:
(& (pix-x<=200) (pix-y<=150) ) (& (pix-x<=200) (pix-y<=150) )
yields a result equivalent to: yields a result equivalent to:
(& (pix-x=100) (pix-y<=150) ) (& (pix-x=100) (pix-y<=150) )
Internet Draft Identifying composite media features
3.1 Feature set hashed reference format 3.1 Feature set hashed reference format
This specification introduces a special form of auxiliary predicate This specification introduces a special form of auxiliary predicate
name with the following syntax: name with the following syntax:
fname = "h." 1*BASE32DIGIT fname = "h." 1*BASE32DIGIT
BASE32DIGIT = DIGIT BASE32DIGIT = DIGIT
/ "A" / "B" / "C" / "D" / "E" / "F" / "G" / "H" / "A" / "B" / "C" / "D" / "E" / "F" / "G" / "H"
/ "I" / "J" / "K" / "L" / "M" / "N" / "O" / "P" / "I" / "J" / "K" / "L" / "M" / "N" / "O" / "P"
/ "Q" / "R" / "S" / "T" / "U" / "V" / "Q" / "R" / "S" / "T" / "U" / "V"
skipping to change at page 6, line 51 skipping to change at page 6, line 41
text of the referenced feature set expression subjected to certain text of the referenced feature set expression subjected to certain
normalizations. The feature expression must conform to the syntax normalizations. The feature expression must conform to the syntax
given for 'filter' in RFC 2533 [1]: given for 'filter' in RFC 2533 [1]:
filter = "(" filtercomp ")" *( ";" parameter ) filter = "(" filtercomp ")" *( ";" parameter )
The steps for calculating a hash value are: The steps for calculating a hash value are:
1. Whitespace normalization: all spaces, CR, LF, TAB and any other 1. Whitespace normalization: all spaces, CR, LF, TAB and any other
layout control characters that may be embedded in the feature layout control characters that may be embedded in the feature
expression string are removed (or ignored for the purpose of hash expression string, other than those contained within quoted
value computation). strings, are removed (or ignored for the purpose of hash value
computation).
Internet Draft Identifying composite media features
2. Case normalization: all lower case letters in the feature 2. Case normalization: all lower case letters in the feature
expression, other than those contained within quoted strings, are expression, other than those contained within quoted strings, are
converted to upper case. That is, unquoted characters with converted to upper case. That is, unquoted characters with
values 97 to 122 (decimal) are changed to corresponding values 97 to 122 (decimal) are changed to corresponding
characters in the range 65 to 90. characters in the range 65 to 90.
3. Hash computation: the MD5 algorithm, described in RFC 1321 [6], 3. Hash computation: the MD5 algorithm, described in RFC 1321 [6],
is applied to the normalized feature expression string. is applied to the normalized feature expression string.
The result obtained in step 3 is a 128-bit (16 octet) value that is The result obtained in step 3 is a 128-bit (16 octet) value that is
converted to a base-32 representation to form the feature set converted to a base-32 representation to form the feature set
reference. reference.
Internet Draft Identifying composite media features
NOTE: under some circumstances, removal of ALL NOTE: under some circumstances, removal of ALL
whitespace may result in an invalid feature expression whitespace may result in an invalid feature expression
string. This should not be a problem as this is done string. This should not be a problem as this is done
only for the purpose of calculating a hash value, and only for the purpose of calculating a hash value, and
significantly different feature expressions are expected significantly different feature expressions are expected
to differ in ways other than their whitespace. to differ in ways other than their whitespace.
NOTE: case normalization is deemed appropriate since NOTE: case normalization is deemed appropriate since
feature tag and token matching is case insensitive. feature tag and token matching is case insensitive.
skipping to change at page 8, line 5 skipping to change at page 7, line 40
+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+
<===> 8th character <===> 8th character
<====> 7th character <====> 7th character
<===> 6th character <===> 6th character
<====> 5th character <====> 5th character
<====> 4th character <====> 4th character
<===> 3rd character <===> 3rd character
<====> 2nd character <====> 2nd character
<===> 1st character <===> 1st character
Internet Draft Identifying composite media features
The value (i.e. sequence of bits) represented by each base-32 digit The value (i.e. sequence of bits) represented by each base-32 digit
character is indicated by the following table: character is indicated by the following table:
"0" 0 "A" 10 "K" 20 "U" 30 "0" 0 "A" 10 "K" 20 "U" 30
"1" 1 "B" 11 "L" 21 "V" 31 "1" 1 "B" 11 "L" 21 "V" 31
"2" 2 "C" 12 "M" 22 "2" 2 "C" 12 "M" 22
"3" 3 "D" 13 "N" 23 "3" 3 "D" 13 "N" 23
"4" 4 "E" 14 "O" 24 "4" 4 "E" 14 "O" 24
"5" 5 "F" 15 "P" 25 "5" 5 "F" 15 "P" 25
"6" 6 "G" 16 "Q" 26 "6" 6 "G" 16 "Q" 26
"7" 7 "H" 17 "R" 27 "7" 7 "H" 17 "R" 27
"8" 8 "I" 18 "S" 28 "8" 8 "I" 18 "S" 28
"9" 9 "J" 19 "T" 29 "9" 9 "J" 19 "T" 29
When encoding a base-32 value, each full group of 5 octets is When encoding a base-32 value, each full group of 5 octets is
represented by a sequence of 8 characters indicated above. If a represented by a sequence of 8 characters indicated above. If a
group of less than 5 octets remain after this, they are encoded group of less than 5 octets remain after this, they are encoded
Internet Draft Identifying composite media features
using as many additional characters as may be needed: 1, 2, 3 or 4 using as many additional characters as may be needed: 1, 2, 3 or 4
octets are encoded by 2, 4, 5 or 7 characters respectively. Any octets are encoded by 2, 4, 5 or 7 characters respectively. Any
spare bits represented by the base-32 digit characters are selected spare bits represented by the base-32 digit characters are selected
to be zero. to be zero.
When decoding a base-32 value, the reverse mapping is applied: When decoding a base-32 value, the reverse mapping is applied:
each full group of 8 characters codes a sequence of 5 octets. A each full group of 8 characters codes a sequence of 5 octets. A
final group of 2, 4, 5 or 7 characters codes a sequence of 1, 2, 3 final group of 2, 4, 5 or 7 characters codes a sequence of 1, 2, 3
or 4 octets respectively. Any spare bits represented by the final or 4 octets respectively. Any spare bits represented by the final
group of characters are discarded. group of characters are discarded.
skipping to change at page 9, line 5 skipping to change at page 8, line 33
hash value), but an auxiliary predicate name is defined hash value), but an auxiliary predicate name is defined
(by [1]) to have the same syntax as a feature tag, and (by [1]) to have the same syntax as a feature tag, and
the feature tag matching rules (per [2]) state that the feature tag matching rules (per [2]) state that
feature tag matching is case insensitive. feature tag matching is case insensitive.
Base36 representation was considered (i.e. using all Base36 representation was considered (i.e. using all
letters "A"-"Z") but was not used because this would letters "A"-"Z") but was not used because this would
require extended precision multiplication and division require extended precision multiplication and division
operations to encode and decode the hash values. operations to encode and decode the hash values.
Internet Draft Identifying composite media features 3.2 Resolving feature set identifiers
3.2 Feature set URI reference format
This section introduces a new form of feature set predicate by
extending the feature set syntax [1] as follows:
filter =/ "<" URI ">" *( ";" parameter )
where 'URI' is described by "Uniform Resource Identifiers (URI):
Generic Syntax" [5].
The meaning of this construct is defined to be the meaning of the
expression in which '<URI>' is replaced by a copy of the resource
indicated by 'URI'. The indicated resource is required to be a
text value containing a valid feature set expression, NOT itself
containing a '<URI>' reference.
If a '<URI>' reference is used within a feature expression that
defines a hash reference, then the hash value is calculated over
the expression obtained after the resource has been substituted.
Thus, the following are examples of feature set expressions using
URI references:
<http://www.acme.com/widget-feature/modelT>
(& (dpi=100) <http://www.acme.com/widget-feature/modelT> )
This specification does not indicate:
o any specific URI schemes to be supported,
o any meaning if the resource cannot be accessed, of if the value
obtained does not correspond to some recognized format.
These details must be indicated by the specification of any
application or protocol that relies upon this form of a feature
predicate.
If the URI uses characters other than a designated subset of US-
ASCII then those additional characters should be represented by a
sequence of US-ASCII characters allowed by RFC 2396 [5].
NOTE: the syntax above allows a '<URI>' reference to
appear almost anywhere in a feature set expression. In
some contexts, the appearance of these references may be
restricted to specific locations (e.g. the right hand
side of a auxiliary feature predicate, as indicated in
section 3.3.1). The specification of any application or
protocol should fully describe any such restriction that
it may impose.
Internet Draft Identifying composite media features
3.3 Resolving feature set references
This memo does not mandate any particular mechanism for This memo does not mandate any particular mechanism for
defeferencing a feature set reference. It is expected that dereferencing a feature set identifier. It is expected that
specific dereferencing mechanisms will be specified for any specific dereferencing mechanisms will be specified for any
application or protocol that uses them. application or protocol that uses them.
The following sections describe some ways that feature set The following sections describe some ways that feature set
dereferencing information may be incorporated into a feature set dereferencing information may be incorporated into a feature set
expression. Both of these mechanisms are based on auxiliary expression. These are based on auxiliary predicate definitions
predicate definitions within a "where" clause [1]. within a "where" clause [1].
When a hashed feature set reference is used, conformance to the When a hashed feature set reference is used, conformance to the
hashing rules takes precedence over any other determination of the hashing rules takes precedence over any other determination of the
feature expression. Any expression, however obtained, may not be feature expression. Any expression, however obtained, may not be
substituted for the hash-based reference unless it yields the substituted for the hash-based reference unless it yields the
correct hash value. correct hash value.
3.3.1 URI reference Internet Draft Identifying composite media features
The two formats for feature set references described above may be 3.2.1 Query protocol
combined by defining the meaning of a hashed reference to be a URI-
based reference. For example:
(& (dpi=100) (h.1234567890) ) A protocol providing request/response type queries (e.g. HTTP,
LDAP, etc.) might be set up to provide a resolution service.
Thus, a query to a server associated with the capabilities could be
performed on the feature set identifier. The response returned
would be a CONNEG expression; e.g.
(h.SBB5REAOMHC09CP2GM4V07PQP0)
where where
(h.1234567890) :- <http://www.acme.com/widget-feature/modelT> (h.SBB5REAOMHC09CP2GM4V07PQP0) :- (& (pix-x<=200) (pix-y<=150) )
end end
This indicates that the meaning of the hash-based form is contained or just:
in the resource whose URI is given. In this case, an HTTP resource
retrieval is suggested.
The hash value used is calculated over the feature set expression
obtained by defererencing the URI form expression.
IMPORTANT: How a calling application processes a URI is (& (pix-x<=200) (pix-y<=150) )
not specified here.
For URIs that are URLs, one reasonable approach would be This result would be combined with the original expression to
to use the URL scheme protocol to access the obtain a result not including the hash based predicate.
corresponding feature set expression. But other
mechanisms might be used; e.g. protocols developed by
the IETF resource capability (RESCAP) working group. In
any case, any mechanism used must be specified by an
application or protocol that uses URI references in this
way.
Internet Draft Identifying composite media features This process might be further enhanced by using URN resolution
When a hashed feature set reference is resolved using a URI value, mechanisms (e.g. DNS NAPTR [10]) to discover the resolution
the retrieving program should use the feature expression thus protocol and server.
obtained only if it hashes to the correct value.
3.3.2 Inline feature set details 3.2.2 Inline feature set details
In this case, a reference is resolved by including its definition In this case, a reference is resolved by including its definition
inline in an expression. inline in an expression.
The feature set expression associated with a reference value may be The feature set expression associated with a reference value may be
specified directly in a "where" clause, using the auxiliary specified directly in a "where" clause, using the auxiliary
predicate definition syntax [1]; e.g. predicate definition syntax [1]; e.g.
(& (dpi=100) (h.1234567890) ) (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) )
where where
(h.1234567890) :- (& (pix-x<=200) (pix-y<=150) ) (h.SBB5REAOMHC09CP2GM4V07PQP0) :- (& (pix-x<=200) (pix-y<=150) )
end end
This form might be used on request (where the request mechanism is This form might be used on request (where the request mechanism is
defined by the invoking application protocol), or when the defined by the invoking application protocol), or when the
originator believes the recipient may not understand the reference. originator believes the recipient may not understand the reference.
It is an error if the inline feature expression does not yield the It is an error if the inline feature expression does not yield the
hash value contained in auxiliary predicate name. hash value contained in auxiliary predicate name.
NOTE: viewed in isolation, this format does not have any NOTE: viewed in isolation, this format does not have any
obvious value, in that the (h.xxx) form of auxiliary obvious value, in that the (h.xxx) form of auxiliary
predicate could be replaced by any arbitrary name. predicate could be replaced by any arbitrary name.
Internet Draft Identifying composite media features
It is anticipated that this form might be used as a It is anticipated that this form might be used as a
follow-up response in a sequence along the lines of: follow-up response in a sequence along the lines of:
A> Capabilities are: A> Capabilities are:
(& (dpi=100) (h.1234567890) ) (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) )
B> Do not understand: B> Do not understand:
(h.1234567890) (h.SBB5REAOMHC09CP2GM4V07PQP0)
A> Capabilities are: A> Capabilities are:
(& (dpi=100) (h.1234567890) ) (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) )
where where
(h.1234567890) :- (& (pix-x<=200) (pix-y<=150) ) (h.SBB5REAOMHC09CP2GM4V07PQP0) :- (& (pix-x<=200)
(pix-y<=150) )
end end
Internet Draft Identifying composite media features
4. Examples 4. Examples
The following are some examples of feature set expressions The following are some examples of feature set expressions
containing feature set references: containing feature set references:
(& (dpi=100) (h.1234567890abcdefghijklmnop) ) (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) )
(& (dpi=100) (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) )
<http://www.acme.com/widget-feature/modelT> ) where
(h.SBB5REAOMHC09CP2GM4V07PQP0) :-
(& (pix-x<=200) (pix-y<=150) )
end
(& (dpi=100) (h.1234567890abcdefghijklmnop) ) (h.QGEOPMCF02P09QC016CEPU22FO)
where where
(h.1234567890abcdefghijklmnop) :- (h.QGEOPMCF02P09QC016CEPU22FO) :-
<http://www.acme.com/widget-feature/modelT> (| (& (ua-media=continuous) (dpi=200) (dpi-xyratio=200/100)
(color=Binary) (paper-size=B4) (image-coding=MH) )
(& (ua-media=continuous) (dpi=200) (dpi-xyratio=200/100)
(color=Binary) (paper-size=B4) (image-coding=MR) )
(& (ua-media=stationery) (dpi=300) (dpi-xyratio=1)
(color=Binary) (paper-size=A4) (image-coding=JBIG) )
(& (ua-media=transparency) (dpi=300) (dpi-xyratio=1)
(color=Binary) (paper-size=A4) (image-coding=JBIG) ) )
end end
5. Internationalization considerations 5. Internationalization considerations
Feature set expressions and URI strings are currently defined to Feature set expressions and URI strings are currently defined to
consist of only characters from the US-ASCII repertoire [1,5]; consist of only characters from the US-ASCII repertoire [1,5];
under these circumstances this specification is not impacted by under these circumstances this specification is not impacted by
internationalization considerations (other than any already internationalization considerations (other than any already
applicable to URIs [5]). applicable to URIs [5]).
Internet Draft Identifying composite media features
But, if future revisions of the feature set syntax permit non-US- But, if future revisions of the feature set syntax permit non-US-
ASCII characters (e.g. within quoted strings), then some canonical ASCII characters (e.g. within quoted strings), then some canonical
representation must be defined for the purposes of calculating hash representation must be defined for the purposes of calculating hash
values. One choice might be to use a UTF-8 equivalent values. One choice might be to use a UTF-8 equivalent
representation as the basis for calculating the feature set hash. representation as the basis for calculating the feature set hash.
Another choice might be to leave this as an application protocol Another choice might be to leave this as an application protocol
issue (but this could lead to non-interoperable feature sets issue (but this could lead to non-interoperable feature sets
between different protocols). between different protocols).
Another conceivable issue is that of up-casing the feature Another conceivable issue is that of up-casing the feature
skipping to change at page 12, line 53 skipping to change at page 11, line 28
issue. But if changes are made that do permit non-US-ASCII issue. But if changes are made that do permit non-US-ASCII
characters in feature tags or token strings, consideration must be characters in feature tags or token strings, consideration must be
given to properly defining how case conversion is to be performed. given to properly defining how case conversion is to be performed.
6. Security considerations 6. Security considerations
For the most part, security considerations are the same as those For the most part, security considerations are the same as those
that apply for capability identification in general [1,2,9]. that apply for capability identification in general [1,2,9].
A possible added consideration is that use of a specific feature A possible added consideration is that use of a specific feature
set tag may reveal more information about a system than is set identifier may reveal more information about a system than is
necessary for a transaction at hand. necessary for a transaction at hand.
Internet Draft Identifying composite media features 7. Acknowledgements
7. Full copyright statement
Copyright (C) The Internet Society 1999. All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain
it or assist in its implementation may be prepared, copied,
published and distributed, in whole or in part, without restriction
of any kind, provided that the above copyright notice and this
paragraph are included on all such copies and derivative works.
However, this document itself may not be modified in any way, such
as by removing the copyright notice or references to the Internet
Society or other Internet organizations, except as needed for the
purpose of developing Internet standards in which case the
procedures for copyrights defined in the Internet Standards process
must be followed, or as required to translate it into languages
other than English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on
an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
8. Acknowledgements
Much of the initial work for URI references to feature sets was Ideas here have been improved by early discussions with Martin
provided by Bill Newman. Some of the ideas here have been improved Duerst, Al Gilman and Ted Hardie. Useful suggestions for
by early discussions with Martin Duerst, Al Gilman and Ted Hardie. improvement were provided by Maurizio Codogno.
Useful suggestions for improvement were provided by Maurizio
Codogno.
9. References 8. References
[1] RFC 2533, "A syntax for describing media feature sets" [1] RFC 2533, "A syntax for describing media feature sets"
Graham Klyne, 5GM/Content Technologies Graham Klyne, 5GM/Content Technologies
March 1999. March 1999.
[2] RFC 2506, "Media Feature Tag Registration Procedure" [2] RFC 2506, "Media Feature Tag Registration Procedure"
Koen Holtman, TUE Koen Holtman, TUE
Andrew Mutz, Hewlett-Packard Andrew Mutz, Hewlett-Packard
Ted Hardie, Equinix Ted Hardie, Equinix
March 1999. March 1999.
Internet Draft Identifying composite media features
[3] RFC 2234, "Augmented BNF for Syntax Specifications: ABNF" [3] RFC 2234, "Augmented BNF for Syntax Specifications: ABNF"
D. Crocker (editor), Internet Mail Consortium D. Crocker (editor), Internet Mail Consortium
P. Overell, Demon Internet Ltd. P. Overell, Demon Internet Ltd.
November 1997. November 1997.
Internet Draft Identifying composite media features
[4] RFC 2045, "Multipurpose Internet Mail Extensions (MIME) [4] RFC 2045, "Multipurpose Internet Mail Extensions (MIME)
Part 1: Format of Internet message bodies" Part 1: Format of Internet message bodies"
N. Freed, Innosoft N. Freed, Innosoft
N. Borenstein, First Virtual N. Borenstein, First Virtual
November 1996. November 1996.
[5] RFC 2396, "Uniform Resource Identifiers (URI): Generic Syntax", [5] RFC 2396, "Uniform Resource Identifiers (URI): Generic Syntax",
Tim Berners-Lee, World Wide Web Consortium/MIT Tim Berners-Lee, World Wide Web Consortium/MIT
Roy T. Fielding, University of California, Irvine Roy T. Fielding, University of California, Irvine
Larry Masinter, Xerox PARC Larry Masinter, Xerox PARC
skipping to change at page 14, line 35 skipping to change at page 12, line 30
R. Rivest, MIT Laboratory for Computer Science and RSA Data R. Rivest, MIT Laboratory for Computer Science and RSA Data
Security, Inc., Security, Inc.,
April 1992. April 1992.
[7] "Applied Cryptography" [7] "Applied Cryptography"
Bruce Schneier Bruce Schneier
John Wiley and Sons, 1996 (second edition) John Wiley and Sons, 1996 (second edition)
ISBN 0-471-12845-7 (cloth) ISBN 0-471-12845-7 (cloth)
ISBN 0-471-11709-9 (paper) ISBN 0-471-11709-9 (paper)
[8] "Protocol-independent content negotiation framework" [8] RFC 2703, "Protocol-independent content negotiation framework"
Graham Klyne, 5GM/Content Technologies Graham Klyne, 5GM/Content Technologies
Internet draft: <draft-ietf-conneg-requirements-02.txt> September 1999.
Work in progress, March 1999.
[9] "Numerical Recipes" [9] "Numerical Recipes"
William H Press, Brian P Flannery, Saul A Teukolski and William T William H Press, Brian P Flannery, Saul A Teukolski and William T
Vetterling Vetterling
Cambridge University Press (1986) Cambridge University Press (1986)
ISBN 0 521 30811 9 ISBN 0 521 30811 9
(The Gamma function approximation is presented in chapter 6 on (The Gamma function approximation is presented in chapter 6 on
"Special Functions". There have been several later editions of "Special Functions". There have been several later editions of
this book published, so the chapter reference may change.) this book published, so the chapter reference may change.)
[10] RFC 2168, "Resolution of Uniform Resource Identifiers using the
Domain Name System"
R. Daniel, Los Alamos National Laboratory
M. Mealling, Network Solutions, Inc.
June 1997.
[11] Java source code of feature set matching algorithm, with feature
set hash computation option.
Linked from <http://www.imc.org/ietf-medfree/>
Internet Draft Identifying composite media features Internet Draft Identifying composite media features
10. Authors' addresses 9. Authors' addresses
Graham Klyne Graham Klyne
5th Generation Messaging Ltd. Content Technologies Ltd. Content Technologies Ltd.
5 Watlington Street Forum 1, Station Road 1220 Parkview,
Nettlebed Theale Arlington Business Park
Henley-on-Thames, RG9 5AB Reading, RG7 4RA Theale
United Kingdom United Kingdom. Reading, RG7 4SA
Telephone: +44 1491 641 641 +44 118 930 1300 United Kingdom.
Facsimile: +44 1491 641 611 +44 118 930 1301 Telephone: +44 118 930 1300
Facsimile: +44 118 930 1301
E-mail: GK@ACM.ORG E-mail: GK@ACM.ORG
Larry Masinter Larry Masinter
Xerox Corporation AT&T
3333 Coyote Hill Road 75 Willow Road
Palo Alto, CA 94304 Menlo Park, CA 94025
Facsimile: +1 650 812 4333 Tel: +1-650-463-7059
EMail: masinter@parc.xerox.com Fax: +1-650-463-7037
http://www.parc.xerox.com/masinter mailto:LM@att.com
http://larry.masinter.net
Appendix A The birthday problem Appendix A: The birthday problem
NOTE: this entire section is commentary, and does not NOTE: this entire section is commentary, and does not
affect the feature set reference specification in any affect the feature set reference specification in any
way. way.
The use of a hash value to represent an arbitrary feature set is The use of a hash value to represent an arbitrary feature set is
based on a presumption that no two distinct feature sets will yield based on a presumption that no two distinct feature sets will yield
the same hash value. the same hash value.
There is a small but distinct possibility that two different There is a small but distinct possibility that two different
skipping to change at page 16, line 10 skipping to change at page 14, line 10
set expressions yield the same hash is less than 1 in 10^38. This set expressions yield the same hash is less than 1 in 10^38. This
is negligible when compared with, say, the probability that a is negligible when compared with, say, the probability that a
receiving system will fail having received data conforming to a receiving system will fail having received data conforming to a
negotiated feature set. negotiated feature set.
Internet Draft Identifying composite media features Internet Draft Identifying composite media features
But when the number of distinct feature sets in circulation But when the number of distinct feature sets in circulation
increases, the probability of repeating a hash value increases increases, the probability of repeating a hash value increases
surprisingly. This is illustrated by the "birthday paradox": surprisingly. This is illustrated by the "birthday paradox":
given a random collection of just 23 people, there is a greater given a random collection of just 23 people, there is a greater
than even chance that there exists some pair with the same birthay. than even chance that there exists some pair with the same
This topic is discussed further in sections 7.4 and 7.5 of Bruce birthday. This topic is discussed further in sections 7.4 and 7.5
Schneier's "Applied Cryptography" [7]. of Bruce Schneier's "Applied Cryptography" [7].
The table below shows the "birthday paradox" probabilities that at The table below shows the "birthday paradox" probabilities that at
least one pair of feature sets has the same hash value for least one pair of feature sets has the same hash value for
different numbers of feature sets in use. different numbers of feature sets in use.
Number of feature Probability of two Number of feature Probability of two
sets in use sets with the same sets in use sets with the same
hash value hash value
1 0 1 0
2 3E-39 2 3E-39
skipping to change at line 802 skipping to change at page 15, line 44
hashes; describe base-32 encoding. hashes; describe base-32 encoding.
02b 16-Jun-1999 Add note that the <URI> form of feature reference 02b 16-Jun-1999 Add note that the <URI> form of feature reference
may not be allowed at arbitrary locations in all may not be allowed at arbitrary locations in all
contexts. contexts.
03a 19-Jul-1999 Incorporate review comments. Added some text to 03a 19-Jul-1999 Incorporate review comments. Added some text to
emphasize applicability of RFC 2533 rules for emphasize applicability of RFC 2533 rules for
interpretation and processing of feature interpretation and processing of feature
expressions. expressions.
04a 02-Apr-2000 Remove description of use of URIs to identify
feature sets; discuss other techniques for
resolution; update references.
04b 06-Apr-2000 Update contact address. Note that whitespace in
quoted strings should not be removed by the
normalization process. Update examples to use a
proper, calculated MD5 hash value. Add reference
to sample source code. Move full copyright
statement to end.
Internet Draft Identifying composite media features
Full copyright statement
Copyright (C) The Internet Society 2000. All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain
it or assist in its implementation may be prepared, copied,
published and distributed, in whole or in part, without restriction
of any kind, provided that the above copyright notice and this
paragraph are included on all such copies and derivative works.
However, this document itself may not be modified in any way, such
as by removing the copyright notice or references to the Internet
Society or other Internet organizations, except as needed for the
purpose of developing Internet standards in which case the
procedures for copyrights defined in the Internet Standards process
must be followed, or as required to translate it into languages
other than English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on
an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 End of changes. 62 change blocks. 
207 lines changed or deleted 124 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/