draft-ietf-conneg-feature-hash-00.txt   draft-ietf-conneg-feature-hash-01.txt 
IETF conneg working group Graham Klyne IETF conneg working group Graham Klyne, editor
Internet draft 5GM/Content Technologies Internet draft 5GM/Content Technologies
Category: Work-in-progress 12 February 1999 Category: Work-in-progress Larry Masinter
Expires: August 1999 Xerox Corporation
Expires: October 1999
Identifying composite media features Identifying composite media features
<draft-ietf-conneg-feature-hash-00.txt> <draft-ietf-conneg-feature-hash-01.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 RFC2026. all provisions of Section 10 of RFC2026.
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.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other months and may be updated, replaced, or obsoleted by other
documents at any time. It is inappropriate to use Internet- Drafts documents at any time. It is inappropriate to use Internet- Drafts
as reference material or to cite them other than as "work in as reference material or to cite them other than as "work in
progress." progress."
To view the list Internet-Draft Shadow Directories, see The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society 1999. All Rights Reserved. Copyright (C) The Internet Society 1999. All Rights Reserved.
Abstract Abstract
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 or the URI of a resource containing the feature
expression.
Internet Draft Identifying composite meadia features Internet Draft Identifying composite media features
12 February 1999
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
2. Motivation and goals ....................................3 1.3 Discussion of this document 3
3. Composite feature representation ........................4 2. Motivation and goals ....................................4
3.1 Feature set reference format 4 3. Composite feature representation ........................5
3.2 Hash value calculation 5 3.1 Feature set hashed reference format 5
3.3 Dereferencing feature set expressions 6 3.1.1 Hash value calculation 6
3.3.1 Inline feature set details 6 3.2 Feature set URI reference format 7
3.3.2 URI reference 6 3.3 Resolving feature set references 7
3.4 The birthday problem 7 3.3.1 URI reference 8
4. Feature set resolution and matching .....................8 3.3.2 Inline feature set details 9
5. Examples ................................................8 3.4 The birthday problem 9
6. Internationalization considerations .....................8 4. Examples ................................................11
7. Security considerations .................................9 5. Internationalization considerations .....................11
8. Full copyright statement ................................9 6. Security considerations .................................11
9. Acknowledgements ........................................10 7. Full copyright statement ................................12
10. References .............................................10 8. Acknowledgements ........................................12
11. Author's address .......................................11 9. References ..............................................12
Appendix A: Revision history ...............................11 10. Authors' addresses .....................................14
Appendix A: Revision history ...............................14
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.
skipping to change at page 3, line 5 skipping to change at page 3, line 5
Section 2 sets out somne of the background and goals for feature Section 2 sets out somne of the background and goals for feature
set references. set references.
Section 3 preents a syntax for feature set references, and Section 3 preents 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.
Section 4 discusses how feature set references are used in conction Section 4 discusses how feature set references are used in conction
with feature set matching. with feature set matching.
Internet Draft Identifying composite meadia features Internet Draft Identifying composite media features
12 February 1999
1.2 Terminology and document conventions 1.2 Terminology and document conventions
This section defines a number of terms and other document This section defines a number of terms and other document
conventions, which are used with specific meaning in this memo. conventions, which are used with specific meaning in this memo.
The terms are listed in alphabetical order. The terms are listed in alphabetical order.
dereference dereference
the act of replacing a feature set reference with its the act of replacing a feature set reference with its
corresponding feature set expression. corresponding feature set expression. Also called
"resolution".
feature set feature set
some set of media features described by a media feature some set of media features described by a media feature
assertion, as described in "A syntax for describing media assertion, as described in "A syntax for describing media
feature sets" [1]. (See that memo for a more formal feature sets" [1]. (See that memo for a more formal
definition of this term.) definition of this term.)
feature set expression feature set expression
a string that describes some feature set, formulated a string that describes some feature set, formulated
according to the rules in "A syntax for describing media according to the rules in "A syntax for describing media
feature sets" [1] (and possibly extended by other feature sets" [1] (and possibly extended by other
specifications). specifications).
feature set reference feature set reference
a brief construct that references some feature set. a brief construct that references some feature set.
(See also: "dereference".) (See also: "dereference".)
feature set tag
a name that conforms to the syntax of a feature tag [1]
that is used to denote a feature set rather than a single
feature.
resolution
(See "dereference").
This specification uses syntax notation and conventions described This specification uses syntax notation and conventions described
in RFC2234 "Augmented BNF for Syntax Specifications: ABNF" [3]. in RFC2234 "Augmented BNF for Syntax Specifications: ABNF" [3].
NOTE: Comments like this provide additional nonessential NOTE: Comments like this provide additional nonessential
information about the rationale behind this document. information about the rationale behind this document.
Such information is not needed for building a conformant Such information is not needed for building a conformant
implementation, but may help those who wish to understand implementation, but may help those who wish to understand
the design in greater depth. the design in greater depth.
1.3 Discussion of this document
Discussion of this document should take place on the content
negotiation and media feature registration mailing list hosted by
the Internet Mail Consortium (IMC).
Internet Draft Identifying composite media features
Please send comments regarding this document to:
ietf-medfree@imc.org
To subscribe to this list, send a message with the body 'subscribe'
to "ietf-medfree-request@imc.org".
To see what has gone on before you subscribed, please see the
mailing list archive at:
http://www.imc.org/ietf-medfree/
2. Motivation and goals 2. Motivation and goals
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.
Internet Draft Identifying composite meadia features
12 February 1999
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.
o to be able to verify whether a given feature set expression o to be able to verify whether a given feature set expression
skipping to change at page 4, line 32 skipping to change at page 5, line 5
o for protocol processors that conform to [1] to be able to o for protocol processors that conform to [1] to be able to
sensibly handle a feature set reference without explicit 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). processors).
o to allow, but not require, some indication of how to dereference o to allow, but not require, some indication of how to dereference
a feature set reference to be included in a feature set a feature set reference to be included in a feature set
expression. expression.
This proposal does not attempt to address the "override" or Internet Draft Identifying composite media features
"default" problem. (Also called "delegation", where a feature set NOTE: This proposal does not attempt to address the
may be referenced and selectively overridden.) "override" or "default" problem. (Also called
"delegation", where a feature set may be referenced and
selectively modified.)
3. Composite feature representation 3. Composite feature representation
This specification hinges on two central ideas: This specification hinges on three central ideas:
o the use of auxiliary predicates (introduced in [1]) to form the o the use of auxiliary predicates (introduced in [1]) to form the
basis of a feature set reference, and basis of a feature set reference, 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.
3.1 Feature set reference format o the use of an expression containing a URI to indicate a mechanism
and service for resolution of a feature set tag.
A key reason to use a hash function to generate an identifier is to
define a global name space without requiring a central naming
authority. New feature set tags can be introduced by any party
following the appropriate rules of formulation, without reference
to any centralized authority.
Local resolution services may be needed to map feature set tags to
their corresponding feature set expressions, but these are not able
to vary the meaning of any given tag. Failure of a resolution
service to return the correct expression is detectable by a calling
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 suggest a mechanism and location of a
service to perform feature set resolution.
3.1 Feature set hashed reference format
This specification introduces a special form of auxililiary This specification introduces a special form of auxililiary
predicate name with the following syntax: predicate name with the following syntax:
fname = "h." 1*HEXDIG fname = "h." 1*HEXDIG
The sequence of hexadecimal digits is the value of a hash function The sequence of hexadecimal digits is the value of a hash function
calculated over the corresponding feature set expression (see next calculated over the corresponding feature set expression (see next
section), represented as a hexadecimal number. section), represented as a hexadecimal number.
Internet Draft Identifying composite meadia features Internet Draft Identifying composite media features
12 February 1999
Thus, within a feature set expression, a feature set reference Thus, within a feature set expression, a feature set reference
would have the following form: would have the following form:
(h.123456789abcdef0123456789abcdef0) (h.123456789abcdef0123456789abcdef0)
NOTE: Base64 representation (per MIME [4]) would be more NOTE: Base64 representation (per MIME [4]) would be more
compact (21 rather than 32 characters for the hash compact (21 rather than 32 characters for the MD5 128-bit
value), but an auxiliary predicate name is defined (by hash value), but an auxiliary predicate name is defined
[1]) to have the same syntax as a feature tag, and the (by [1]) to have the same syntax as a feature tag, and
feature tag matching rules (per [2]) state that feature the feature tag matching rules (per [2]) state that
tag matching is case in sensitive. feature tag matching is case insensitive.
3.2 Hash value calculation 3.1.1 Hash value calculation
The hash value is calculated using the MD5 algorithm [6] over the The hash value is calculated using the MD5 algorithm [6] over the
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 in "A syntax for describing media feature sets" [1] for given in "A syntax for describing media feature sets" [1] for
'filter': 'filter':
filter = "(" filtercomp ")" *( ";" parameter ) filter = "(" filtercomp ")" *( ";" parameter )
The steps for calculating a hash value are: The steps for calculating a hash value are:
skipping to change at page 5, line 49 skipping to change at page 6, line 47
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 [6] is applied to the 3. Hash computation: the MD5 algorithm [6] is applied to the
normalized feature expression string. normalized feature expression string.
The result obtained in step 3 is a 128-bit number that is converted The result obtained in step 3 is a 128-bit number that is converted
to a hexadecimal representation to form the feature set reference. to a hexadecimal representation to form the feature set reference.
NOTE: under some circumstances, removal of ALL whitespace NOTE: under some circumstances, removal of ALL
may result in an invalid feature expression string. This whitespace may result in an invalid feature expression
should not be a problem as significantly different string. This should not be a problem as significantly
feature expressions are expected to differ in ways other different feature expressions are expected to differ in
than their whitespace. 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.
Internet Draft Identifying composite meadia features Internet Draft Identifying composite media features
12 February 1999
3.3 Dereferencing feature set expressions 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 subsituted.
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 interpretation of an
auxiliary 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].
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 defeferencing a feature set reference. It is expected that
specific dereferencing mechanisms will be specified for any specific dereferencing mechanisms will be specified for any
application that uses them. application or protocol that uses them.
The following sections describe two specific ways that feature set Internet Draft Identifying composite media features
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. Both of these mechanisms are based on auxiliary
predicate definitions within a "where" clause [1]. predicate definitions within a "where" clause [1].
NOTE: both of the forms described below may be used with When a hash-based feature set reference is used, conformance to the
feature set references that are not constructed as hashing rules takes precedence over any other determination of the
"h.<hash>" values described above. The consequence of feature expression. Any expression, however obtained, may not be
not using hash-based reference values is that feature set substituted for the hash-based reference unless it yields the
differences, changes or other errors may be undetectable. correct hash value.
3.3.1 Inline feature set details 3.3.1 URI reference
The feature set expression associated with a reference value may be The two formats for feature set references described above may be
specified directly in a "where" clause, using the auxiliary combined by defining the meaning of a hash-based reference to be a
predicate definition syntax [1]; e.g. URI-based reference. For example:
(& (dpi=100) (h.1234567890) ) (& (dpi=100) (h.1234567890) )
where where
(h.1234567890) :- (& (pix-x<=200) (pix-y<=150) ) (h.1234567890) :- <http://www.acme.com/widget-feature/modelT>
end
This form might be used on request (where the request mechanism is
defined by the invoking application protocol), or when the
originator believes the recipient may not understand the reference.
3.3.2 URI reference
This and associates a URI with a feature set reference. This indicates that the meaning of the hash-based form is contained
in the resource whose URI is given. In this case, an HTTP resource
retrieval is suggested.
NOTE: How a calling application interprets the URI is The hash value used is calculated over the feature set expression
not specified here. For URIs that are URLs, one obtained by defererencing the URI form expression.
reasonable approach would be to use the URL scheme
protocol to access the corresponding feature set
expression. But other mechanisms are possible.
[[[e.g. RESCAP?]]] NOTE: How a calling application processes the URI is not
specified here. For URIs that are URLs, one reasonable
approach would be to use the URL scheme protocol to
access the corresponding feature set expression. But
other mechanisms might be used; e.g. protocols developed
by the IETF resource capability (RESCAP) working group
[8]. In any case, any mechanism used must be specified
by an application that uses URI references in this way.
An auxiliary predicate name is defined to be a feature tag [1], and When a hash-based feature set reference is resolved using a URI
one allowable form for a feature tag is 'u.<URI>' [2]. Thus a value, the retrieving program should use the feature expression
standard form of auxiliary predicate definition can be used to thus obtained only if it hashes to the correct value.
associate a URI with a feature set reference:
(h.1234567890) :- (u.http://www.acme.com/widget-feature/modelT) Internet Draft Identifying composite media features
Internet Draft Identifying composite meadia features 3.3.2 Inline feature set details
12 February 1999
[[[The range of URI forms allowed by [2] is restricted, and that The feature set expression associated with a reference value may be
restriction would apply to the above proposal. Another approach specified directly in a "where" clause, using the auxiliary
would be to introduce some new syntax... predicate definition syntax [1]; e.g.
A new form of auxiliary predicate definition is introduced, (& (dpi=100) (h.1234567890) )
extending the feature expression syntax [1]: where
(h.1234567890) :- (& (pix-x<=200) (pix-y<=150) )
end
named-pred =/ "(" fname ")" ":-" "<" URI ">" This form might be used on request (where the request mechanism is
URI = <any string conforming to the definition of defined by the invoking application protocol), or when the
'URI-reference' in RFC 2396 [5]> originator believes the recipient may not understand the reference.
An example predicate definition using this form is: NOTE: viewed in isolation, this format does not have any
obvious value, in that the (h.xxx) form of auxiliary
predicate could be replaced by any arbitrary name.
(h.1234567890) :- <http://www.acme.com/widget-feature/modelT> It is anticipated that this form might be used as a
follow-up response in a sequence along the lines of:
A> Capabilities are:
(& (dpi=100) (h.1234567890) )
B> Do not understand:
(h.1234567890)
A> Capabilities are:
(& (dpi=100) (h.1234567890) )
where
(h.1234567890) :- (& (pix-x<=200) (pix-y<=150) )
end
...]]] It is an error if the inline feature expression does not yield the
hash value contained in auxiliary predicate name.
3.4 The birthday problem 3.4 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 clearly a small but distinct possibility that two There is clearly a small but distinct possibility that two
different feature sets will indeed yield the same hash value. different feature sets will indeed yield the same hash value.
We assume that the hash function distributes hash values for We assume that the hash function distributes hash values for
feature sets with even very small differences randomly and evenly feature sets with even very small differences randomly and evenly
through the range of 2^128 (approximately 10^38) possible values. through the range of 2^128 (approximately 3*10^38) possible values.
Internet Draft Identifying composite media features
This is a fundamental property of a good digest algorithm like MD5. This is a fundamental property of a good digest algorithm like MD5.
Thus, the chance that any two distinct feature set expressions Thus, the chance that any two distinct feature set expressions
yield the same hash is roughly 1 in 10^38. This is negligible when yield the same hash is less than 1 in 10^38. This is negligible
compared with, say, the probability that a receiving system will when compared with, say, the probability that a receiving system
fail having received data conforming to a negotiated feature set. will fail having received data conforming to a negotiated feature
set.
But when the number of distinct feature sets in circulation But when the number of distinct feature sets in circulation
increases, the probability of clashing hash values increases increases, the probability of clashing hash values 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 birthay.
This topic is discussed further in sections 7.4 and 7.5 of Bruce This topic is discussed further in sections 7.4 and 7.5 of Bruce
Scheier's "Applied Cryptography" [7]. Schneier's "Applied Cryptography" [7].
[[[TODO: Include some numbers to illustrate actual probabilities Number of feature Probability of two
of clash with 10^3, 10^6, 10^9, 10^12, 10^15, 10^18 feature sets sets in use sets with the same
in circulation.]]] hash value
1 0
2 3E-39
10 1E-37
1E3 1E-33
1E6 1E-27
1E9 1E-21
1E12 1E-15
1E15 1E-9
1E18 1E-3
Internet Draft Identifying composite meadia features The above probability computations are approximate, being
12 February 1999 performed using logarithms of a Gamma function
approximation by Lanczos [10]. The probability formula
is 'P=1-(m!/((m-n)! m^n))', where 'm' is the total number
of possible hash values (2^128) and 'n' is the number of
feature sets in use.
If original feature set expressions are generated manually, or only If original feature set expressions are generated manually, or only
in response to some manually constrained process, the total number in response to some manually constrained process, the total number
of feature sets in circulation is likely to remain very small in of feature sets in circulation is likely to remain very small in
relation to the total number of possible hash values. relation to the total number of possible hash values.
The outcome of all this is: assuming that the feature sets are The outcome of all this is: assuming that the feature sets are
manually generated, even taking account of the birthday paradox manually generated, even taking account of the birthday paradox
effect, the probability of incorrectly identifying a feature set effect, the probability of incorrectly identifying a feature set
using a hash value is still negligibly small when compared with using a hash value is still negligibly small when compared with
other possible failure modes. other possible failure modes.
4. Feature set resolution and matching Internet Draft Identifying composite media features
This section discusses the use of feature references in conjunction
with feature set matching [1].
The definitive position on matching feature sets containing feature
set references is given by dereferencing all of the references;
i.e. every feature set reference is replaced by the corresponding
expression.
Sometimes, it may be desirable to process feature sets without
performing dereferencing. The rules below may facilitate this
while achieving results that are consistent with the definitive
position.
(& ... (h.<hash>) (h.<hash>) ... ) --> (& ... (h.<hash>) ... )
(| ... (h.<hash>) (h.<hash>) ... ) --> (& ... (h.<hash>) ... )
(& ... (h.<hash>) (! (h.<hash>) ) ... ) --> FALSE
(| ... (h.<hash>) (! (h.<hash>) ) ... ) --> TRUE
If some referenced feature set is known to be TRUE or FALSE, then 4. Examples
the corresponding references may be replaced by the corresponding
TRUE or FALSE value.
[[[Can more be said?]]] The following are some examples of feature set expressions
containing feature set references:
5. Examples (& (dpi=100) (h.1234567890abcdef1234567890abcdef) )
[[[TODO]]] (& (dpi=100)
<http://www.acme.com/widget-feature/modelT> )
6. Internationalization considerations (& (dpi=100) (h.1234567890abcdef1234567890abcdef) )
where
(h.1234567890abcdef1234567890abcdef) :-
<http://www.acme.com/widget-feature/modelT>
end
Feature set expressions are currently defined to consist of only 5. Internationalization considerations
characters from the US-ASCII repertoire; under these circumstances
this specification is not impacted by internationalization
considerations.
Internet Draft Identifying composite meadia features Feature set expressions and URI strings are currently defined to
12 February 1999 consist of only characters from the US-ASCII repertoire [1,5];
under these circumstances this specification is not impacted by
internationalization considerations (other than any already
applicable to URIs [5]).
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
expression in preparation for computing a hash value. This does expression in preparation for computing a hash value. This does
not apply to the content of strings so is not likely to be an not apply to the content of strings so is not likely to be an
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.
7. Security considerations 6. Security considerations
<<<TBD>>> For the most part, security considerations are the same as those
that apply for capability identification in general [1,2,9].
8. Full copyright statement A possible added consideration is that use of a specific feature
set tag may reveal more information about a system than is
necessary for a transaction at hand.
Internet Draft Identifying composite media features
7. Full copyright statement
Copyright (C) The Internet Society 1999. All Rights Reserved. Copyright (C) The Internet Society 1999. All Rights Reserved.
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain others, and derivative works that comment on or otherwise explain
it or assist in its implementation may be prepared, copied, it or assist in its implementation may be prepared, copied,
published and distributed, in whole or in part, without restriction published and distributed, in whole or in part, without restriction
of any kind, provided that the above copyright notice and this of any kind, provided that the above copyright notice and this
paragraph are included on all such copies and derivative works. paragraph are included on all such copies and derivative works.
However, this document itself may not be modified in any way, such However, this document itself may not be modified in any way, such
skipping to change at page 10, line 5 skipping to change at page 12, line 35
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on This document and the information contained herein is provided on
an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Internet Draft Identifying composite meadia features 8. Acknowledgements
12 February 1999
9. Acknowledgements
This proposal is developed from a suggestion by Larry Masinter. Much of the initial work for URI references to feature sets was
Some of the ideas have been honed in early discussions with Martin provided by Bill Newman. Some of the ideas here have been improved
Duerst, Al Gilman, Ted Hardie and Bill Newman. by early discussions with Martin Duerst, Al Gilman and Ted Hardie.
10. References 9. References
[1] "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
Internet draft: <draft-ietf-conneg-feature-syntax-00.txt>" March 1999.
Work in progress, September 1998.
[2] "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, NASA Ted Hardie, Equinix
Internet draft: <draft-ietf-conneg-feature-reg-03.txt> March 1999.
Work in progress, July 1998.
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.
[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
skipping to change at page 11, line 5 skipping to change at page 13, line 35
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)
Internet Draft Identifying composite meadia features [8] Resource capability protocol
12 February 1999 IETF RESCAP, work in progress
(No details published as of March 1999.)
11. Author's address [9] "Protocol-independent content negotiation framework"
Graham Klyne, 5GM/Content Technologies
Internet draft: <draft-ietf-conneg-requirements-02.txt>
Work in progress, March 1999.
[10] "Numerical Recipes"
William H Press, Brian P Flannery, Saul A Teukolski and William T
Vetterling
Cambridge University Press (1986)
ISBN 0 521 30811 9
(The Gamma function approximation is presented in chapter 6 on
"Special Functions". There have been several later editions of
this book published, so the chapter reference may change.)
Internet Draft Identifying composite media features
10. Authors' addresses
Graham Klyne Graham Klyne
5th Generation Messaging Ltd. Content Technologies Ltd. 5th Generation Messaging Ltd. Content Technologies Ltd.
5 Watlington Street Forum 1, Station Road 5 Watlington Street Forum 1, Station Road
Nettlebed Theale Nettlebed Theale
Henley-on-Thames, RG9 5AB Reading, RG7 4RA Henley-on-Thames, RG9 5AB Reading, RG7 4RA
United Kingdom United Kingdom. United Kingdom United Kingdom.
Telephone: +44 1491 641 641 +44 118 930 1300 Telephone: +44 1491 641 641 +44 118 930 1300
Facsimile: +44 1491 641 611 +44 118 930 1301 Facsimile: +44 1491 641 611 +44 118 930 1301
E-mail: GK@ACM.ORG E-mail: GK@ACM.ORG
Larry Masinter
Xerox Corporation
3333 Coyote Hill Road
Palo Alto, CA 94304
Facsimile: +1 650 812 4333
EMail: masinter@parc.xerox.com
http://www.parc.xerox.com/masinter
Appendix A: Revision history Appendix A: Revision history
[[[RFC editor: please remove this section on publication]]]
00a 10-Feb-1999 Initial draft. 00a 10-Feb-1999 Initial draft.
01a 16-Feb-1999 Added pointers to mailing list for discussion.
01b 25-Mar-1999 Name all authors. Add some terms to the glossary.
Expand on meaning of URI tag used as auxiliary
predicate name. Update references. Rework
section 3 to deal more evenly with both hash and
URI based feature set references. State absolute
requirement for hash-based references to be
resolved to expressions that yield the correct
hash value.
01c 06-Apr-1999 Define form of URI reference using new '<...>'
syntax, and adjust other text accordingly.
01d 06-Apr-1999 Editorial revisions. Include values in table of
probabilities for hash value clashes. Remove
discussion of algebraic simplification of hash
references. Correct syntax of some examples.
 End of changes. 67 change blocks. 
159 lines changed or deleted 296 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/