📄 rfc2533.txt
字号:
Network Working Group G. Klyne
Request for Comments: 2533 Content Technologies/5GM
Category: Standards Track March 1999
A Syntax for Describing Media Feature Sets
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (1999). All Rights Reserved.
Abstract
A number of Internet application protocols have a need to provide
content negotiation for the resources with which they interact [1].
A framework for such negotiation is described in [2], part of which
is a way to describe the range of media features which can be handled
by the sender, recipient or document transmission format of a
message. A format for a vocabulary of individual media features and
procedures for feature registration are presented in [3].
This document introduces and describes a syntax that can be used to
define feature sets which are formed from combinations and relations
involving individual media features. Such feature sets are used to
describe the media feature handling capabilities of message senders,
recipients and file formats.
An algorithm for feature set matching is also described here.
Table of Contents
1. Introduction.............................................3
1.1 Structure of this document ...........................3
1.2 Document terminology and conventions .................4
1.3 Discussion of this document ..........................4
2. Content feature terminology and definitions..............4
3. Media feature combinations and capabilities..............5
3.1 Media features .......................................5
3.2 Media feature collections and sets ...................5
3.3 Media feature set descriptions .......................6
3.4 Media feature combination scenario ...................7
Klyne Standards Track [Page 1]
RFC 2533 A Syntax for Describing Media Feature Sets March 1999
3.4.1 Data resource options............................7
3.4.2 Recipient capabilities...........................7
3.4.3 Combined options.................................7
3.5 Feature set predicates ...............................8
3.5.1 Comparison with directory search filters.........8
3.6 Describing preferences ...............................9
3.7 Combining preferences ...............................10
4. Feature set representation..............................11
4.1 Textual representation of predicates ................11
4.2 Interpretation of feature predicate syntax ..........12
4.2.1 Filter syntax...................................12
4.2.2 Feature comparison..............................13
4.2.3 Feature tags....................................13
4.2.4 Feature values..................................14
4.2.4.1 Boolean values 14
4.2.4.2 Numeric values 14
4.2.4.3 Token values 15
4.2.4.4 String values 15
4.2.5 Notational conveniences.........................15
4.3 Feature set definition example ......................16
5. Matching feature sets...................................16
5.1 Feature set matching strategy .......................18
5.2 Formulating the goal predicate ......................19
5.3 Replace set expressions .............................19
5.4 Move logical negations inwards ......................20
5.5 Replace comparisons and logical negations ...........20
5.6 Conversion to canonical form ........................21
5.7 Grouping of feature predicates ......................22
5.8 Merge single-feature constraints ....................22
5.8.1 Rules for simplifying ordered values............23
5.8.2 Rules for simplifying unordered values..........23
6. Other features and issues...............................24
6.1 Named and auxiliary predicates ......................24
6.1.1 Defining a named predicate......................24
6.1.2 Invoking named predicates.......................25
6.1.3 Auxiliary predicates in a filter................25
6.1.4 Feature matching with named predicates..........25
6.1.5 Example.........................................26
6.2 Unit designations ...................................26
6.3 Unknown feature value data types ....................27
7. Examples and additional comments........................27
7.1 Worked example ......................................27
7.2 A note on feature tag scoping .......................31
8. Security Considerations.................................34
9. Acknowledgements........................................34
10. References.............................................35
11. Author's Address.......................................36
Full Copyright Statement...................................37
Klyne Standards Track [Page 2]
RFC 2533 A Syntax for Describing Media Feature Sets March 1999
1. Introduction
A number of Internet application protocols have a need to provide
content negotiation for the resources with which they interact [1].
A framework for such negotiation is described in [2]. A part of this
framework is a way to describe the range of media features which can
be handled by the sender, recipient or document transmission format
of a message.
Descriptions of media feature capabilities need to be based upon some
underlying vocabulary of individual media features. A format for
such a vocabulary and procedures for registering media features
within this vocabulary are presented in [3].
This document defines a syntax that can be used to describe feature
sets which are formed from combinations and relations involving
individual media features. Such feature sets are used to describe
the media handling capabilities of message senders, recipients and
file formats.
An algorithm for feature set matching is also described here.
The feature set syntax is built upon the principle of using feature
set predicates as "mathematical relations" which define constraints
on feature handling capabilities. This allows that the same form of
feature set expression can be used to describe sender, receiver and
file format capabilities. This has been loosely modelled on the way
that relational databases use Boolean expresions to describe a set of
result values, and a syntax that is based upon LDAP search filters.
1.1 Structure of this document
The main part of this memo addresses the following main areas:
Section 2 introduces and references some terms which are used with
special meaning.
Section 3 introduces the concept of describing media handling
capabilities as combinations of possible media features, and the idea
of using Boolean expressions to express such combinations.
Section 4 contains a description of a syntax for describing feature
sets based on the previously-introduced idea of Boolean expressions
used to describe media feature combinations.
Section 5 describes an algorithm for feature set matching.
Klyne Standards Track [Page 3]
RFC 2533 A Syntax for Describing Media Feature Sets March 1999
Section 6 discusses some additional media feature description and
processing issues that may be viewed as extensions to the core
framework.
Section 7 contains a worked example of feature set matching, and some
additional explanatory comments spurred by issues arising from
applying this framework to fascimile transmissions.
1.2 Document terminology and conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119.
NOTE: Comments like this provide additional nonessential
information about the rationale behind this document. Such
information is not needed for building a conformant
implementation, but may help those who wish to understand 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):
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. Content feature terminology and definitions
Feature Collection
is a collection of different media features and associated values.
This might be viewed as describing a specific rendering of a
specific instance of a document or resource by a specific
recipient.
Feature Set
is a set of zero, one or more feature collections.
Klyne Standards Track [Page 4]
RFC 2533 A Syntax for Describing Media Feature Sets March 1999
NOTE: this term is used slightly differently by earlier work on
Transparent Content Negotiation in HTTP [4].
Feature set predicate
A function of an arbitrary feature collection value which returns
a Boolean result. A TRUE result is taken to mean that the
corresponding feature collection belongs to some set of media
feature handling capabilities defined by this predicate.
Other terms used in this memo are defined in [2].
3. Media feature combinations and capabilities
3.1 Media features
This memo assumes that individual media feature values are simple
atomic values:
o Boolean values.
o Enumerated values.
o Text string values (treated as atomic entities, like enumerated
value tokens).
o Numeric values (Integer or rational).
These values all have the property that they can be compared for
equality ('='), and that numeric and ordered enumeration values can
be compared for less-than and greater-than relationship ('<=', '>=').
These basic comparison operations are used as the primitive building
blocks for more comprehensive capability expressions.
3.2 Media feature collections and sets
Any single media feature value can be thought of as just one
component of a feature collection that describes some instance of a
resource (e.g. a printed document, a displayed image, etc.). Such a
feature collection consists of a number of media feature tags (each
per [3]) and associated feature values.
A feature set is a set containing a number of feature collections.
Thus, a feature set can describe a number of different data resource
instances. These can correspond to different treatments of a single
data resource (e.g. different resolutions used for printing a given
document), a number of different data resources subjected to a common
treatment (e.g. the range of different images that can be rendered on
a given display), or some combination of these (see examples below).
Klyne Standards Track [Page 5]
RFC 2533 A Syntax for Describing Media Feature Sets March 1999
Thus, a description of a feature set can describe the capabilities of
a data resource or some entity that processes or renders a data
resource.
3.3 Media feature set descriptions
A feature set may be unbounded. For example, in principle, there is
no limit on the number of different documents that may be output
using a given printer. But to be practically useful, a feature set
description must be finite.
The general approach to describing feature sets is to start from the
assumption that anything is possible; i.e. the feature set contains
all possible document instances (feature collections). Then
constraints are applied that progressively remove document instances
from this set; e.g. for a monochrome printer, all document instances
that use colour are removed, or for a document that must be rendered
at some minimum resolution, all document instances with lesser
resolutions are removed from the set. The mechanism used to remove
document instances from the set is the mathematical idea of a
"relation"; i.e. a Boolean function (a "predicate") that takes a
feature collection parameter and returns a Boolean value that is TRUE
if the feature collection describes an acceptable document instance,
or FALSE if it describes one that is excluded.
P(C)
P(C) = TRUE <- : -> P(C) = FALSE
:
+----------:----------+ This box represents some
| : | set of feature collections (C)
| Included : Excluded | that is constrained by the
| : | predicate P.
+----------:----------+
:
The result of applying a series of such constraints is a smaller set
of feature collections that represent some media handling capability.
Where the individual constraints are represented by predicates that
each describe some media handling capability, the combined effect of
these constraints is some subset of the individual constraint
capabilities that can be represented by a predicate that is the
logical-AND of the individual constraint predicates.
3.4 Media feature combination scenario
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -