- From: Koen Holtman <koen@win.tue.nl>
- Date: Wed, 14 May 1997 20:10:17 +0200 (MET DST)
- To: http-wg@cuckoo.hpl.hp.com
- Cc: Koen Holtman <koen@win.tue.nl>
In response to discussions on and off this list, I have done an
interim rewrite of the TCN feature tag syntax sections. The new text
prepares for an `optional quotes' rule, and changes the equality test
rules.
It also extends the scope of feature tags, and makes some comments on
how to define tags.
I don't expect this to be the last version. Comments are welcome.
Koen.
--snip--
6.1 Feature tags
A feature tag (ftag) identifies something which can be negotiated
on, for example a property of a representation, a capability of a
user agent, or a preference of a user. The use of feature tags
need not be limited to transparent content negotiation, and not
every feature tag needs to be usable in the HTTP transparent
content negotiation framework.
Examples of feature tags are
http://x.org/tables, mid:33829%7e432, tables, ftag:fonts,
screenwidth, colordepth
At the protocol level, transparent content negotiation does not
distinguish between different uses of feature tags: a tag will be
processed in the same way, no matter whether it identifies a
property, capability, or preference. Note that context may
determine the exact way in which a tag is used. A "textonly" tag
would identify a capability in a text-only user agent, but the user
of a graphical user agent may use this tag to when specifying that
text-only content is preferred over graphical content. While the
usage of some tags may be fluid, it is expected that other tag
definitions will strictly limit the usage of a tag to expressing a
property, capability, or preference only. The protocol does
however not contain any facilities which could enforce such
limitations. Feature tag definitions SHOULD describe the tag from
the viewpoint of a variant author. For example, a definition could
start with `the X tag labels variants which are intended for...'.
Feature tags are all in the URI namespace.
ftag = <absoluteURI, as defined in [1], not containing
any characters in ftag-reserved>
| abbrev-ftag-scheme-URI
short-ftag-scheme-URI =
<*( uchar | reserved ), as defined in [1],
not containing any characters in ftag-reserved,
and not containing any ":">
ftag-reserved = "#" | "=" | "@"
A short-ftag-scheme-URI "U" is equivalent to the absoluteURI
"ftag:U". Equality comparison for feature tags MUST be done by
first extending any short-ftag-scheme-URI to an absolute URI by
prefixing it with "ftag:", and then doing a case-insensitive
octet-by-octet equality comparison. Any ""%" HEX HEX" encodings
in the tag MUST NOT be processed.
[##Note: The `ftag:' scheme would belong to an IANA-maintained
namespace, as in the feature tag registration draft
(draft-ietf-http-feature-reg-00.txt). More discussion about the
issue of having an IANA-managed space of shorter-than-http-url
feature tags is needed.##]
[##Note: TCN feature tags and PEP extension identifiers share the
same namespace. We may want to synchronize terminology.##]
An example of the use of feature tags in a variant description is:
{"index.html" 1.0 {type text/html}
{features http://x.org/tables frames}}
6.1.1 Feature tag values
The definition of a feature tag may state that a feature tag can
have zero, one, or more values associated with it. These values
specialise the meaning of the tag.
ftag-val = <*( uchar | reserved ), as defined in [1],
not containing any characters in ftag-reserved>
For example, a feature tag "x:paper" could at some point have the
values "A4" and "A5" associated with it. This is commonly written
as "paper=A4" and "paper=A5". Equality comparison for tag values
MUST be done with a case-sensitive, octet-by-octet comparison,
where any ""%" HEX HEX" encodings MUST be processed.
Received on Wednesday, 14 May 1997 11:14:44 UTC