| < draft-ietf-conneg-feature-hash-04.txt | draft-ietf-conneg-feature-hash-05.txt > | |||
|---|---|---|---|---|
| IETF conneg working group Graham Klyne, editor | IETF conneg working group Graham Klyne, editor | |||
| Internet draft Content Technologies | Internet draft Content Technologies | |||
| Category: Work-in-progress Larry Masinter | Category: Work-in-progress Larry Masinter | |||
| AT&T | AT&T | |||
| 6 April 2000 | 8 June 2000 | |||
| Expires: October 2000 | Expires: December 2000 | |||
| Identifying composite media features | Identifying composite media features | |||
| <draft-ietf-conneg-feature-hash-04.txt> | <draft-ietf-conneg-feature-hash-05.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 2, line 15 ¶ | skipping to change at page 2, line 15 ¶ | |||
| 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 7 | |||
| 3.1.2 Base-32 value representation 7 | 3.1.2 Base-32 value representation 7 | |||
| 3.2 Resolving feature set identifiers 8 | 3.2 Resolving feature set identifiers 9 | |||
| 3.2.1 Query protocol 9 | 3.2.1 Query protocol 9 | |||
| 3.2.2 Inline feature set details 9 | 3.2.2 Inline feature set details 10 | |||
| 4. Examples ................................................10 | 4. Examples ................................................11 | |||
| 5. Internationalization considerations .....................10 | 5. Internationalization considerations .....................13 | |||
| 6. Security considerations .................................11 | 6. Security considerations .................................14 | |||
| 7. Acknowledgements ........................................11 | 7. Acknowledgements ........................................14 | |||
| 8. References ..............................................11 | 8. References ..............................................14 | |||
| 9. Authors' addresses ......................................13 | 9. Authors' addresses ......................................16 | |||
| Appendix A: The birthday problem ...........................13 | Appendix A: The birthday problem ...........................16 | |||
| Appendix B: Revision history ...............................15 | Appendix B: Revision history ...............................18 | |||
| Full copyright statement ...................................16 | Full copyright statement ...................................19 | |||
| 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 52 ¶ | skipping to change at page 3, line 52 ¶ | |||
| 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 | 1.3 Discussion of this document | |||
| Discussion of this document should take place on the content | Discussion of this document takes place on the content negotiation | |||
| negotiation and media feature registration mailing list hosted by | and media feature registration mailing list hosted by the Internet | |||
| the Internet Mail Consortium (IMC). | Mail Consortium (IMC). | |||
| Internet Draft Identifying composite media features | Internet Draft Identifying composite media features | |||
| Please send comments regarding this document to: | Please send comments regarding this document to: | |||
| ietf-medfree@imc.org | ietf-medfree@imc.org | |||
| To subscribe to this list, send a message with the body 'subscribe' | To subscribe to this list, send a message with the body 'subscribe' | |||
| to "ietf-medfree-request@imc.org". | to "ietf-medfree-request@imc.org". | |||
| To see what has gone on before you subscribed, please see the | To see what has gone on before you subscribe, please consult the | |||
| mailing list archive at: | mailing list archive at: | |||
| http://www.imc.org/ietf-medfree/ | 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. | |||
| skipping to change at page 5, line 10 ¶ | skipping to change at page 5, line 10 ¶ | |||
| 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 | |||
| NOTE: This proposal does not attempt to address the | NOTE: This proposal does not attempt to address the | |||
| "override" or "default" problem. (Where a feature set | "override" or "default" problem. (Where a feature set | |||
| may be referenced and selectively modified.) | may be referenced and selectively modified.) | |||
| Some circumstances in which such an abbreviated form might be used | ||||
| include: | ||||
| o A media feature expression that contains a repeated sub- | ||||
| expression. If the sub-expression is quite large, space can be | ||||
| saved by writing it out once, then using the abbreviated form to | ||||
| reference it. | ||||
| o A capability that is common to a range of devices, such as a | ||||
| given class of fax machine where are large number of feature tags | ||||
| are involved, but only a small number of common feature sets. If | ||||
| the recipient understands, or can discover, that some | ||||
| abbreviation stands for a given feature set then feature | ||||
| expression size can be reduced by using the abbreviation. | ||||
| If feature set abbreviations are used in this way, it may be that | ||||
| they can be interpreted by a simple table lookup rather than full | ||||
| feature expression parsing. (Making this useful in practice will | ||||
| depend on crafting the feature subsets appropriately.) | ||||
| Examples of such usage are given in section 4 of this memo. | ||||
| This memo does not specify how a program that receives a feature | ||||
| set abbreviation should discover the corresponding feature set | ||||
| expression: see section 3.2. | ||||
| 3. Composite feature representation | 3. Composite feature representation | |||
| This specification hinges on two 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 identifier, 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. | |||
| 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. | |||
| Internet Draft Identifying composite media features | ||||
| 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. | |||
| 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 | |||
| skipping to change at page 6, line 4 ¶ | skipping to change at page 6, line 29 ¶ | |||
| 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) | (& (pix-x=100) (pix-y<=300) | |||
| (h.SBB5REAOMHC09CP2GM4V07PQP0) ) | (h.SBB5REAOMHC09CP2GM4V07PQP0) ) | |||
| where (h.SBB5REAOMHC09CP2GM4V07PQP0) resolves to: | 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" | |||
| The sequence of base-32 digits represents the value of a hash | The sequence of base-32 digits represents the value of a hash | |||
| function calculated over the corresponding feature set expression | function calculated over the corresponding feature set expression | |||
| (see following sections). Note that the above syntax allows upper- | (see following sections). Note that the above syntax allows upper- | |||
| or lower- case letters for base-32 digits (per RFC 2234 [3]). | or lower- case letters for base-32 digits (per RFC 2234 [3]). | |||
| Thus, within a feature set expression, a hashed feature set | Thus, within a feature set expression, a hashed feature set | |||
| reference would have the following form: | reference would have the following form: | |||
| (h.123456789abcdefghijklmnopq) | (h.123456789abcdefghijklmnopq) | |||
| Internet Draft Identifying composite media features | ||||
| 3.1.1 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 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: | |||
| skipping to change at page 7, line 5 ¶ | skipping to change at page 7, line 35 ¶ | |||
| 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. | |||
| 3.1.2 Base-32 value representation | 3.1.2 Base-32 value representation | |||
| RFC 1321 [6] describes how to calculate an MD5 hash value that is a | RFC 1321 [6] describes how to calculate an MD5 hash value that is a | |||
| sequence of 16 octets. This is then required to be coded as a | sequence of 16 octets. This is then required to be coded as a | |||
| base-32 value, which is a sequence of base-32 digit characters. | base-32 value, which is a sequence of base-32 digit characters. | |||
| Internet Draft Identifying composite media features | ||||
| Each successive character in a base-32 value represents 5 | Each successive character in a base-32 value represents 5 | |||
| successive bits of the underlying octet sequence. Thus, each group | successive bits of the underlying octet sequence. Thus, each group | |||
| of 8 characters represents a sequence of 5 octets (40 bits): | of 8 characters represents a sequence of 5 octets (40 bits): | |||
| 1 2 3 | 1 2 3 | |||
| 01234567 89012345 67890123 45678901 23456789 | 01234567 89012345 67890123 45678901 23456789 | |||
| +--------+--------+--------+--------+--------+ | +--------+--------+--------+--------+--------+ | |||
| |< 1 >< 2| >< 3 ><|.4 >< 5.|>< 6 ><.|7 >< 8 >| | |< 1 >< 2| >< 3 ><|.4 >< 5.|>< 6 ><.|7 >< 8 >| | |||
| +--------+--------+--------+--------+--------+ | +--------+--------+--------+--------+--------+ | |||
| <===> 8th character | <===> 8th character | |||
| skipping to change at page 8, line 4 ¶ | skipping to change at page 8, line 40 ¶ | |||
| "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. | |||
| Thus, for a 128-bit (16 octet) MD5 hash value, the first 15 octets | Thus, for a 128-bit (16 octet) MD5 hash value, the first 15 octets | |||
| are coded as 24 base 32 digit characters, and the final octet is | are coded as 24 base 32 digit characters, and the final octet is | |||
| coded by two characters. | coded by two characters. | |||
| Internet Draft Identifying composite media features | ||||
| NOTE: Base64 representation (per MIME [4]) would be more | NOTE: Base64 representation (per MIME [4]) would be more | |||
| compact (21 rather than 26 characters for the MD5 128-bit | compact (21 rather than 26 characters for the MD5 128-bit | |||
| 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 | |||
| skipping to change at page 9, line 5 ¶ | skipping to change at page 9, line 36 ¶ | |||
| dereferencing information may be incorporated into a feature set | dereferencing information may be incorporated into a feature set | |||
| expression. These are based on auxiliary predicate definitions | expression. These are based on auxiliary 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. | |||
| Internet Draft Identifying composite media features | ||||
| 3.2.1 Query protocol | 3.2.1 Query protocol | |||
| A protocol providing request/response type queries (e.g. HTTP, | A protocol providing request/response type queries (e.g. HTTP, | |||
| LDAP, etc.) might be set up to provide a resolution service. | LDAP, etc.) might be set up to provide a resolution service. | |||
| Thus, a query to a server associated with the capabilities could be | Thus, a query to a server associated with the capabilities could be | |||
| performed on the feature set identifier. The response returned | performed on the feature set identifier. The response returned | |||
| would be a CONNEG expression; e.g. | would be a CONNEG expression; e.g. | |||
| (h.SBB5REAOMHC09CP2GM4V07PQP0) | (h.SBB5REAOMHC09CP2GM4V07PQP0) | |||
| skipping to change at page 9, line 27 ¶ | skipping to change at page 10, line 5 ¶ | |||
| (h.SBB5REAOMHC09CP2GM4V07PQP0) :- (& (pix-x<=200) (pix-y<=150) ) | (h.SBB5REAOMHC09CP2GM4V07PQP0) :- (& (pix-x<=200) (pix-y<=150) ) | |||
| end | end | |||
| or just: | or just: | |||
| (& (pix-x<=200) (pix-y<=150) ) | (& (pix-x<=200) (pix-y<=150) ) | |||
| This result would be combined with the original expression to | This result would be combined with the original expression to | |||
| obtain a result not including the hash based predicate. | obtain a result not including the hash based predicate. | |||
| Internet Draft Identifying composite media features | ||||
| This process might be further enhanced by using URN resolution | This process might be further enhanced by using URN resolution | |||
| mechanisms (e.g. DNS NAPTR [10]) to discover the resolution | mechanisms (e.g. DNS NAPTR [10]) to discover the resolution | |||
| protocol and server. | protocol and server. | |||
| 3.2.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 | |||
| skipping to change at page 10, line 5 ¶ | skipping to change at page 10, line 35 ¶ | |||
| 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.SBB5REAOMHC09CP2GM4V07PQP0) ) | (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) ) | |||
| B> Do not understand: | B> Do not understand: | |||
| (h.SBB5REAOMHC09CP2GM4V07PQP0) | (h.SBB5REAOMHC09CP2GM4V07PQP0) | |||
| A> Capabilities are: | A> Capabilities are: | |||
| (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) ) | (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) ) | |||
| where | where | |||
| (h.SBB5REAOMHC09CP2GM4V07PQP0) :- (& (pix-x<=200) | (h.SBB5REAOMHC09CP2GM4V07PQP0) :- (& (pix-x<=200) | |||
| (pix-y<=150) ) | (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.SBB5REAOMHC09CP2GM4V07PQP0) ) | (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) ) | |||
| (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) ) | (& (dpi=100) (h.SBB5REAOMHC09CP2GM4V07PQP0) ) | |||
| where | where | |||
| (h.SBB5REAOMHC09CP2GM4V07PQP0) :- | (h.SBB5REAOMHC09CP2GM4V07PQP0) :- | |||
| skipping to change at page 10, line 45 ¶ | skipping to change at page 11, line 31 ¶ | |||
| (| (& (ua-media=continuous) (dpi=200) (dpi-xyratio=200/100) | (| (& (ua-media=continuous) (dpi=200) (dpi-xyratio=200/100) | |||
| (color=Binary) (paper-size=B4) (image-coding=MH) ) | (color=Binary) (paper-size=B4) (image-coding=MH) ) | |||
| (& (ua-media=continuous) (dpi=200) (dpi-xyratio=200/100) | (& (ua-media=continuous) (dpi=200) (dpi-xyratio=200/100) | |||
| (color=Binary) (paper-size=B4) (image-coding=MR) ) | (color=Binary) (paper-size=B4) (image-coding=MR) ) | |||
| (& (ua-media=stationery) (dpi=300) (dpi-xyratio=1) | (& (ua-media=stationery) (dpi=300) (dpi-xyratio=1) | |||
| (color=Binary) (paper-size=A4) (image-coding=JBIG) ) | (color=Binary) (paper-size=A4) (image-coding=JBIG) ) | |||
| (& (ua-media=transparency) (dpi=300) (dpi-xyratio=1) | (& (ua-media=transparency) (dpi=300) (dpi-xyratio=1) | |||
| (color=Binary) (paper-size=A4) (image-coding=JBIG) ) ) | (color=Binary) (paper-size=A4) (image-coding=JBIG) ) ) | |||
| end | end | |||
| The following examples are based on Internet fax work, and show how | ||||
| a feature-hash might be used to express the commonly-used features. | ||||
| A form of Internet fax system that is expected to be quite common | ||||
| is a so-called "simple mode" system, whose capabilities are | ||||
| described by the following feature expression: | ||||
| (& (image-file-structure=TIFF-minimal) | ||||
| (MRC-mode=0) | ||||
| (color=Binary) | ||||
| (image-coding=MH) (MRC-mode=0) | ||||
| (| (& (dpi=204) (dpi-xyratio=[204/98,204/196]) ) | ||||
| (& (dpi=200) (dpi-xyratio=[200/100,1]) ) ) | ||||
| (size-x<=2150/254) | ||||
| (paper-size=A4) | ||||
| (ua-media=stationery) ) | ||||
| This might be expressed by the hash-based feature set identifier: | ||||
| (h.MSB955PVIRT1QOHET9AJT5JM3O) | ||||
| Internet Draft Identifying composite media features | ||||
| The following example describes capabilities of a full-colour | ||||
| Internet fax system. Note a number of feature values are | ||||
| applicable in common with '(color=grey)' and '(colour=full)': | ||||
| (& (image-file-structure=TIFF) | ||||
| (MRC-mode=0) | ||||
| (| (& (color=Binary) | ||||
| (image-coding=[MH,MR,MMR]) | ||||
| (| (& (dpi=204) (dpi-xyratio=[204/98,204/196]) ) | ||||
| (& (dpi=200) (dpi-xyratio=[200/100,1]) ) | ||||
| (& (dpi=300) (dpi-xyratio=1) ) ) ) | ||||
| (& (color=grey) | ||||
| (image-coding=JPEG) | ||||
| (image-coding-constraint=JPEG-T4E) | ||||
| (color-levels<=256) | ||||
| (color-space=CIELAB) | ||||
| (color-illuminant=D50) | ||||
| (CIELAB-L-min>=0) | ||||
| (CIELAB-L-max<=100) | ||||
| (dpi=[100,200,300]) (dpi-xyratio=1) ) | ||||
| (& (color=full) | ||||
| (image-coding=JPEG) | ||||
| (image-coding-constraint=JPEG-T4E) | ||||
| (color-subsampling=["1:1:1","4:1:1"]) | ||||
| (color-levels<=16777216) | ||||
| (color-space=CIELAB) | ||||
| (color-illuminant=D50) | ||||
| (CIELAB-L-min>=0) | ||||
| (CIELAB-L-max<=100) | ||||
| (CIELAB-a-min>=-85) | ||||
| (CIELAB-a-max<=85) | ||||
| (CIELAB-b-min>=-75) | ||||
| (CIELAB-b-max<=125) | ||||
| (dpi=[100,200,300]) (dpi-xyratio=1) ) ) | ||||
| (size-x<=2150/254) | ||||
| (paper-size=[letter,A4,B4]) ) | ||||
| (ua-media=stationery) ) | ||||
| Internet Draft Identifying composite media features | ||||
| Separating out the common capabilities yields: | ||||
| (& (image-file-structure=TIFF) | ||||
| (MRC-mode=0) | ||||
| (| (& (color=Binary) | ||||
| (image-coding=[MH,MR,MMR]) | ||||
| (| (& (dpi=204) (dpi-xyratio=[204/98,204/196]) ) | ||||
| (& (dpi=200) (dpi-xyratio=[200/100,1]) ) | ||||
| (& (dpi=300) (dpi-xyratio=1) ) ) ) | ||||
| (& (color=grey) | ||||
| (color-levels<=256) | ||||
| (h.QVSEM8V2LMJ8VOR7V682J7079O) ) | ||||
| (& (color=full) | ||||
| (color-subsampling=["1:1:1","4:1:1"]) | ||||
| (color-levels<=16777216) | ||||
| (CIELAB-a-min>=-85) | ||||
| (CIELAB-a-max<=85) | ||||
| (CIELAB-b-min>=-75) | ||||
| (CIELAB-b-max<=125) | ||||
| (h.QVSEM8V2LMJ8VOR7V682J7079O) ) ) | ||||
| (size-x<=2150/254) | ||||
| (paper-size=[letter,A4,B4]) ) | ||||
| (ua-media=stationery) ) | ||||
| where | ||||
| (h.QVSEM8V2LMJ8VOR7V682J7079O) :- | ||||
| (& (image-coding=JPEG) | ||||
| (image-coding-constraint=JPEG-T4E) | ||||
| (color-space=CIELAB) | ||||
| (color-illuminant=D50) | ||||
| (CIELAB-L-min>=0) | ||||
| (CIELAB-L-max<=100) | ||||
| (dpi=[100,200,300]) (dpi-xyratio=1) ) | ||||
| 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 | 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- | |||
| skipping to change at page 16, line 6 ¶ | skipping to change at page 19, line 6 ¶ | |||
| resolution; update references. | resolution; update references. | |||
| 04b 06-Apr-2000 Update contact address. Note that whitespace in | 04b 06-Apr-2000 Update contact address. Note that whitespace in | |||
| quoted strings should not be removed by the | quoted strings should not be removed by the | |||
| normalization process. Update examples to use a | normalization process. Update examples to use a | |||
| proper, calculated MD5 hash value. Add reference | proper, calculated MD5 hash value. Add reference | |||
| to sample source code. Move full copyright | to sample source code. Move full copyright | |||
| statement to end. | statement to end. | |||
| Internet Draft Identifying composite media features | Internet Draft Identifying composite media features | |||
| 05a 08-Jun-2000 Add text explaining motivation and some uses for | ||||
| hash-based properties (sections 2), and examples | ||||
| of same (section 4). | ||||
| Full copyright statement | Full copyright statement | |||
| Copyright (C) The Internet Society 2000. All Rights Reserved. | Copyright (C) The Internet Society 2000. 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. | |||
| End of changes. 21 change blocks. | ||||
| 26 lines changed or deleted | 148 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||