<?xml version="1.0" ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta name="generator" content="HTML Tidy for Linux/x86 (vers 1st August 2002), see www.w3.org"/>

<title>Architecture of the World Wide Web</title>
<link rel="stylesheet" type="text/css" href="tagPractices_files/default.css"/>
<link class="trcopy" rel="stylesheet" type="text/css" href="tagPractices_files/W3C-WD.css"/>
</head>


<body>
<div class="head">
<p><a shape="rect" href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="tagPractices_files/w3c_home.png" />
</a></p>

<h1><a shape="rect" name="title" id="title">Architecture of the
World Wide Web</a></h1>

<div class="section">
<h2 class="notoc"><a shape="rect" id="date" name="date"><span class="trcopy">W3C Working Draft</span> 27 June 2003</a></h2>

<dl><dt>This version:</dt><dd><a shape="rect" class="trcopy" href="http://www.w3.org/TR/2003/WD-webarch-20030627/">http://www.w3.org/TR/2003/WD-webarch-20030627/</a></dd><dt class="trcopy">Latest version:</dt><dd class="trcopy"><a shape="rect" href="http://www.w3.org/TR/webarch/">http://www.w3.org/TR/webarch/</a></dd><dt>Previous version:</dt><dd><a shape="rect" class="trcopy" href="http://www.w3.org/TR/2003/WD-webarch-20030326/">http://www.w3.org/TR/2003/WD-webarch-20030326/</a></dd></dl>

<dl><dt>Editor:</dt><dd>Ian Jacobs, W3C</dd><dt>Authors:</dt><dd>See <a shape="rect" href="#acks">acknowledgments</a>.</dd></dl>

<p class="copyright"><a shape="rect" href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
© 2002-2003 <a shape="rect" href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a>
<sup>®</sup> (<a shape="rect" href="http://www.lcs.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a shape="rect" href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">
ERCIM</acronym></a>, <a shape="rect" href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
<a shape="rect" href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a shape="rect" href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
<a shape="rect" rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> and
<a shape="rect" rel="Copyright" href="http://www.w3.org/Consortium/Legal/copyright-software">software licensing</a>
rules apply. Your interactions with this site are in accordance
with our <a shape="rect" href="http://www.w3.org/Consortium/Legal/privacy-statement#Public">public</a> and <a shape="rect" href="http://www.w3.org/Consortium/Legal/privacy-statement#Members">Member</a>
privacy statements.</p>

<hr>
</div>
</div>

<div class="section">
<h2 class="notoc"><a shape="rect" name="abstract" id="abstract">Abstract</a></h2>

<p>The World Wide Web is a networked information system. Web
Architecture consists of the requirements, constraints, principles,
and choices that influence the design of the system and the
behavior of agents within the system. When Web Architecture is
followed, the large-scale effect is that of an efficient, scalable,
shared information space. The organization of this document
reflects the three divisions of Web architecture: identification,
representation, and interaction. This document also addresses some
non-technical (social) issues that play a role in building the
shared information space.</p>

<p>This document strives to establish a reference set of
requirements, constraints, principles, and design choices for Web
architecture.</p>
</div>

<div class="section">
<h2 class="notoc"><a shape="rect" name="status" id="status">Status
of this document</a></h2>

<p><em>This section describes the status of this document at the
time of its publication. Other documents may supersede this
document. The latest status of this document series is maintained
at the W3C.</em></p>

<p>This document has been developed by W3C's <a shape="rect" href="http://www.w3.org/2001/tag/">Technical Architecture Group
(TAG)</a> (<a shape="rect" href="http://www.w3.org/2001/07/19-tag">charter</a>).</p>

<p>At their <a shape="rect" href="http://www.w3.org/2003/06/23-tag-summary.html">23 June 2003
teleconference</a>, the TAG agreed that the editor should request
publication of this draft with the approval of Dan Connolly and Tim
Bray. A complete <a shape="rect" href="http://www.w3.org/2001/tag/webarch/changes">list of changes</a> since the
previous Working Draft is available on the Web.</p>

<p>This draft remains incomplete; sections 1, 2, and 3 are the most
developed; 4 the least. The TAG has published a number of <a shape="rect" href="http://www.w3.org/2001/tag/findings">findings</a> that
address specific architecture issues. Parts of those findings may
appear in subsequent drafts. Please also consult the <a shape="rect" href="http://www.w3.org/2001/tag/ilist">list of
issues</a> under consideration by the TAG.</p>

<p>This draft includes some editorial notes and also references to
open <a shape="rect" href="http://www.w3.org/2001/tag/ilist">TAG
issues</a>. These do not represent all open issues in the document.
They are expected to disappear from future drafts.</p>

<p>Publication as a Working Draft does not imply endorsement by the
W3C Membership. This is a draft document and may be updated,
replaced or obsoleted by other documents at any time. It is
inappropriate to cite this document as other than "work in
progress."</p>

<p>The latest information regarding <a shape="rect" rel="disclosure" href="http://www.w3.org/2001/tag/disclosures">patent disclosures
related to this document</a> is available on the Web. As of this
publication, there are no disclosures.</p>

<p>Please send comments on this document to the public W3C TAG
mailing list <a shape="rect" href="mailto:www-tag@w3.org">www-tag@w3.org</a> (<a shape="rect" href="http://lists.w3.org/Archives/Public/www-tag/">archive</a>).</p>

<p>A <a shape="rect" href="http://www.w3.org/TR/">list of current
W3C Recommendations and other technical documents</a> can be found
at the W3C Web site.</p>
</div>

<div class="section">
<h2 class="notoc"><a shape="rect" id="contents" name="contents">Table of Contents</a></h2>

<p>Highlighted entries in this table of contents link to
principles, constraints, good practice notes, and design choices
emphasized in the document.</p>

<ul class="toc">
<li class="tocline1"><a href="#intro">1. Introduction</a>
<ul class="toc">
<li class="tocline2"><a href="#about">1.1. About this Document</a>
<ul class="toc">
<li class="tocline3"><a href="#doc-scope">1.1.1. Scope of this
Document</a></li>
</ul>
</li>
</ul>
</li>

<li class="tocline1"><a href="#identification">2. Identification
and Resources</a>
<ul class="toc">
<li class="tocline2"><a href="#identifiers-comparison">2.1.
Comparing Identifiers</a>
<ul>
<li class="tocline3"><a href="#lc-uri-scheme" class="tocprinciple">Spelling URIs</a> [<a href="#cat-practice">practice</a>]</li>
</ul>
</li>

<li class="tocline2"><a href="#URI-scheme">2.2. URI Schemes</a>
<ul>
<li class="tocline3"><a href="#pr-new-scheme-expensive" class="tocprinciple">New URI schemes</a> [<a href="#cat-practice">practice</a>]</li>
</ul>
</li>

<li class="tocline2"><a href="#URI-authority">2.3. URI
Authority</a></li>

<li class="tocline2"><a href="#fragid">2.4. Fragment
Identifiers</a>
<ul>
<li class="tocline3"><a href="#http-conneg-frag" class="tocprinciple">Content negotiation with fragments</a> [<a href="#cat-practice">practice</a>]</li>
</ul>

<ul class="toc">
<li class="tocline3"><a href="#frag-conneg">2.4.1. Fragment
identifiers and content negotiation</a>
<ul>
<li class="tocline4"><a href="#http-conneg-frag" class="tocprinciple">Content negotiation with fragments</a> [<a href="#cat-practice">practice</a>]</li>
</ul>
</li>
</ul>
</li>

<li class="tocline2"><a href="#dereference-uri">2.5. Dereferencing
a URI</a>
<ul>
<li class="tocline3"><a href="#pr-describe-resource" class="tocprinciple">Resource descriptions</a> [<a href="#cat-practice">practice</a>]</li>

<li class="tocline3"><a href="#pr-deref-safe" class="tocprinciple">Safe retrieval</a> [<a href="#cat-principle">principle</a>]</li>
</ul>

<ul class="toc">
<li class="tocline3"><a href="#retrieve-representation">2.5.1.
Retrieving a Representation</a>
<ul>
<li class="tocline4"><a href="#pr-describe-resource" class="tocprinciple">Resource descriptions</a> [<a href="#cat-practice">practice</a>]</li>
</ul>
</li>

<li class="tocline3"><a href="#safe-interaction">2.5.2. Safe
Interaction</a>
<ul>
<li class="tocline4"><a href="#pr-deref-safe" class="tocprinciple">Safe retrieval</a> [<a href="#cat-principle">principle</a>]</li>
</ul>
</li>
</ul>
</li>

<li class="tocline2"><a href="#URI-persistence">2.6. URI
Persistence</a>
<ul>
<li class="tocline3"><a href="#pr-service-uri" class="tocprinciple">URI Persistence</a> [<a href="#cat-practice">practice</a>]</li>
</ul>
</li>

<li class="tocline2"><a href="#id-access">2.7. Access
Control</a></li>

<li class="tocline2"><a href="#identifiers-future">2.8. Future
Directions for Identifiers</a>
<ul class="toc">
<li class="tocline3"><a href="#i18n-id">2.8.1. Internationalized
identifiers</a></li>

<li class="tocline3"><a href="#future-comparison">2.8.2.
Determination that two URIs identify the same resource</a></li>

<li class="tocline3"><a href="#consistency-frag-id">2.8.3.
Consistency of fragment identifier semantics among different media
types</a></li>

<li class="tocline3"><a href="#dynamic-delegation">2.8.4. Work on
dynamic authority delegation</a></li>

<li class="tocline3"><a href="#non-hier-admin">2.8.5.
Non-hierarchical administration</a></li>
</ul>
</li>
</ul>
</li>

<li class="tocline1"><a href="#representations">3.
Representations</a>
<ul class="toc">
<li class="tocline2"><a href="#relation-to-mime">3.1. Relation to
MIME headers</a></li>

<li class="tocline2"><a href="#formats">3.2. Characteristics of
formats and their specifications</a>
<ul class="toc">
<li class="tocline3"><a href="#format-characteristics">3.2.1.
Desirable Characteristics of Format Specifications</a></li>

<li class="tocline3"><a href="#format-taxonomy">3.2.2. Taxonomic
Categorization of Data Formats</a></li>

<li class="tocline3"><a href="#pci">3.2.3. Presentation, Content,
and Interaction</a></li>

<li class="tocline3"><a href="#embed-links">3.2.4. Embedding
Hyperlinks in Representations</a></li>
</ul>
</li>

<li class="tocline2"><a href="#xml-representation">3.3. XML-Based
Representations</a>
<ul class="toc">
<li class="tocline3"><a href="#xml-when">3.3.1. When to Use an
XML-Based Format</a></li>

<li class="tocline3"><a href="#xml-namespaces">3.3.2. XML
Namespaces</a></li>

<li class="tocline3"><a href="#namespace-documents">3.3.3.
Namespace Documents</a></li>

<li class="tocline3"><a href="#fragids">3.3.4. Fragment identifiers
and ID semantics</a></li>

<li class="tocline3"><a href="#xml-media-types">3.3.5. Media Types
for XML</a></li>
</ul>
</li>

<li class="tocline2"><a href="#representations-future">3.4. Future
Directions for Representations</a>
<ul class="toc">
<li class="tocline3"><a href="#nsdocs">3.4.1. Namespace document
formats</a></li>
</ul>
</li>
</ul>
</li>

<li class="tocline1"><a href="#interaction">4. Interaction</a></li>

<li class="tocline1"><a href="#glossary">5. Glossary</a>
<ul class="toc">
<li class="tocline2"><a href="#app-principles">5.1. Principles,
Constraints, etc.</a></li>
</ul>
</li>

<li class="tocline1"><a href="#index">6. Index</a></li>

<li class="tocline1"><a href="#refs">7. References</a>
<ul class="toc">
<li class="tocline2"><a href="#normative">7.1. Normative
References</a></li>

<li class="tocline2"><a href="#archspecs">7.2. Architectural
Specifications</a></li>

<li class="tocline2"><a href="#informative">7.3. Non-Normative
References</a></li>
</ul>
</li>

<li class="tocline1"><a href="#appendix-notes">8. End
Notes</a></li>

<li class="tocline1"><a href="#acks">9. Acknowledgments</a></li>
</ul>

<hr>
</div>

<div class="section">
<h2>1. <a shape="rect" id="intro" name="intro">Introduction</a></h2>

<p>The World Wide Web (or, Web) is a networked information system
consisting of <a name="def-agent" id="def-agent"><dfn>agents</dfn></a> (programs acting on behalf of
a person, entity, or process) that exchange information. Here's a
simple <a shape="rect" name="scenario" id="scenario">travel
scenario</a> illustrating a common Web interaction:</p>

<ul>
<li>While planning a trip to Mexico, Dan reads "Oaxaca weather
information: <code>http://weather.example.com/oaxaca</code>" in a
glossy travel magazine. Dan has enough experience with the Web to
recognize that <code>http://weather.example.com/oaxaca</code> is a
URI. He can expect that the URI should allow him to access relevant
weather information.</li>

<li>Dan enters the URI into his browser, which downloads
information. The information is provided by those responsible for
<code>weather.example.com</code>.</li>

<li>Dan's user agent displays the downloaded information. The page
may include links to other information (i.e., more URIs) allowing
Dan to start the cycle again.</li>
</ul>

<p>This scenario illustrate the three architectural divisions of
the Web that are discussed in this document:</p>

<ol>
<li><a shape="rect" href="#identification">Identification</a>.
Objects in the networked information system called <a name="def-resource" id="def-resource"><dfn>resources</dfn></a> are
identified by Uniform Resource Identifiers
(<acronym>URIs</acronym>). The URI in the travel scenario is
<code>http://weather.example.com/oaxaca</code>.</li>

<li><a shape="rect" href="#representations">Representation</a>.
Agents (such as servers, browsers and multimedia players)
communicate resource state through a non-exclusive set of data
formats, used separately or in combination (e.g., XHTML, CSS, PNG,
XLink, RDF/XML, SVG, SMIL animation). In the travel scenario, Dan's
user agent uses the URI to request a representation of the
identified resource. In this scenario, the representation consists
of XHTML with embedded weather maps in SVG.</li>

<li><a shape="rect" href="#interaction">Interaction</a>. Agents
exchange representations via a non-exclusive set of protocols,
including HTTP, FTP, and SMTP<sup><a name="note1" id="note1" href="#smtp1">1</a></sup>. In the travel scenario, Dan's browser
uses HTTP to download the representation.<sup><a name="note2" id="note2" href="#uris-and-protocols">2</a></sup></li>
</ol>

<p><span class="ednote">Editor's note</span>: Todo: Introduce
notions of client and server. Relation of client to agent and user
agent. Relation of server to resource owner.</p>

<div class="section">
<h3>1.1. <a shape="rect" name="about" id="about">About this
Document</a></h3>

<p>The intended audience for this document includes:</p>

<ol>
<li>Participants in W3C Activities, i.e., developers of Web
technologies and specifications in W3C.</li>

<li>Other groups and individuals developing technologies to be
integrated into the Web.</li>

<li>Implementers of W3C specifications, and those who use the
resulting products.</li>
</ol>

<p>This document is designed to balance the value of brevity and
precision with the value of illustrative examples. <a shape="rect" href="http://www.w3.org/2001/tag/findings">TAG findings</a> provide
more background, motivation, and examples.</p>

<p>Readers will benefit from familiarity with the <a shape="rect" href="http://www.ietf.org/rfc.html">Requests for Comments</a>
(<acronym>RFC</acronym>) series from the <a shape="rect" href="http://www.ietf.org/">IETF</a>, some of which define pieces
of the architecture discussed in this document.</p>

<p>The architecture described in this document is principally the
result of experience. There has been some theoretical and modeling
work in the area of Web Architecture, notably Roy Fielding's work
on "Representational State Transfer" [<a shape="rect" href="#REST">REST</a>].</p>

<p>The terms MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are used
in accordance with RFC 2119 [<a shape="rect" href="#RFC2119">RFC2119</a>].</p>

<p>Throughout this document, we elaborate on the <a shape="rect" href="#scenario">travel scenario</a> to introduce and illustrate
architectural principles.</p>

<p><span class="ednote">Editor's note</span>: The scenario has not
yet been well-integrated into sections 3 and 4.</p>

<div class="section">
<h4>1.1.1. <a shape="rect" name="doc-scope" id="doc-scope">Scope of
this Document</a></h4>

<p>This document focuses on the architecture of the Web. We assume
the reader is familiar with the rationale for some of the general
design principles: minimal constraints (fewer rules makes the
system more flexible), modularity, minimum redundancy,
extensibility, simplicity, and robustness.</p>

<p>Other groups inside and outside W3C are writing down principles
related to specialized aspects of Web architecture, including
accessibility, internationalization, device independence, and Web
Services. The section on <a shape="rect" href="#archspecs">Architectural Specifications</a> includes some
references.</p>

<p>The TAG intends for this document to inform discussions about
issues of Web Architecture. Where current practice conflicts with
this document, the TAG expects to engage in constructive discussion
with other parties. Some parts of this document may fill in gaps in
published specifications or may call attention to known weaknesses
in those specifications.</p>

<p>This document promotes reuse of existing standards when
suitable, and gives some guidance on how to innovate in a manner
consistent with the Web architecture.</p>
</div>
</div>
</div>

<div class="section">
<h2>2. <a shape="rect" name="identification" id="identification">Identification and Resources</a></h2>

<p>Web architecture starts with <a name="def-uri" id="def-uri"><dfn>Uniform Resource Identifiers</dfn></a> (URI),
defined by "Uniform Resource Identifiers (URI): Generic Syntax" [<a shape="rect" href="#URI">URI</a>]. Parties who wish to communicate
about something will establish a shared vocabulary, i.e. a shared
set of bindings between identifiers and things. This shared
vocabulary has a tangible value: it reduces the cost of
communication. The ability to use common identifiers across
communities is what motivates global naming in Web
Architecture.</p>

<p>URIs identify resources. When a representation of one resource
refers to another resource with a URI, a <a name="def-link" id="def-link"><dfn>link</dfn></a> is formed between the two
resources. The networked information system is built of linked
resources, and the large-scale effect is a shared information
space. The value of the Web grows exponentially as a function of
the number of linked resources (the "network effect").</p>

<p class="prefix">Principle</p>

<p class="principle"><a shape="rect" name="pr-use-uris" id="pr-use-uris">Use URIs:</a> All important resources SHOULD be
identified by a URI.<sup><a name="note3" id="note3" href="#note-use-uris">3</a></sup></p>

<p>There are many benefits to making resources identifiable by URI.
Some are by design (e.g., linking, bookmarking, and caching),
others (e.g., global search services) were not predicted.<sup><a name="note4" id="note4" href="#whentouseget">4</a></sup></p>

<div class="section">
<h3>2.1. <a shape="rect" name="identifiers-comparison" id="identifiers-comparison">Comparing Identifiers</a></h3>

<p>An important aspect of communication is to be able to establish
when two parties are talking about the same thing. In the context
of the Web, this means when two parties identify the same resource.
The most common way to establish that two parties are identifying
the same resource is to compare the spelling (i.e., as strings) of
the identifiers the parties are using. Section 6 of [<a shape="rect" href="#URI">URI</a>] discusses this type of analysis.
In that specification, determination of equivalence or difference
of URIs is based on string comparison, perhaps augmented by
reference to additional rules provided by URI scheme definitions
(e.g., for HTTP URIs, the authority component is case-insensitive).
Depending on the application, an agent may invest more processing
effort to reduce the likelihood of a false negative (i.e., two URIs
identify the same resource, but that was not detected).</p>

<p>There may be other ways to establish that two parties are
identifying the same resource that are not based on string
comparison; see the section on future directions for <a shape="rect" href="#future-comparison">determining that two URIs
identify the same resource</a>.</p>

<p><span class="ednote">Editor's note</span>: Dan Connolly has
suggested the term "coreference" instead of "equivalence" to
communicate that two URIs are referring to the same resource.</p>

<p>Agents that reach conclusions about identity beyond what they
are licensed to do (e.g., by specification, or community
convention, or site-specific convention) take responsibility for
any problems that result. For instance, agents should not assume
that <code>http://weather.example.com/Oaxaca</code> and
<code>http://weather.example.com/oaxaca</code> identify the same
resource, since none of the specifications involved states that the
path part of an HTTP URI is case-insensitive. Web servers may vary
in how they are configured to handle case-sensitivity. Agents that
assume these URIs identify the same resource take responsibility
for any resulting problems.</p>

<p>Although it is possible to determine that two URIs are
equivalent, it is generally not possible by mere inspection of two
URIs to be sure that they identify different resources. Web
architecture does not constrain resources to be uniquely named.</p>

<p class="prefix">Good practice</p>

<p class="practice"><a shape="rect" name="lc-uri-scheme" id="lc-uri-scheme">Spelling URIs:</a> If an agent has been provided
with a URI to refer to a resource, the agent SHOULD use the
spelling of the URI as it was originally provided.</p>

<p>To help parties know when they are referring to the same
resource, it follows that URI producers should be conservative
about the number of different URIs they produce for the same
resource. For instance, the parties responsible for
weather.example.com have no reason to use both
<code>http://weather.example.com/Oaxaca</code> and
<code>http://weather.example.com/oaxaca</code> to refer to the same
resource; agents will not detect the equivalence relationship. In
this case, one URI should be chosen and used consistently. See
section 6.3 of [<a shape="rect" href="#URI">URI</a>] for further
advice on how to reduce the risk of false negatives.</p>

<p>URI consumers cannot, in general, determine the meaning of a
resource by inspection of a URI that identifies it. In our <a shape="rect" href="#scenario">travel scenario</a>, the example URI
(<code>http://weather.example.com/oaxaca</code>) suggests that the
identified resource has something to do with the weather in Oaxaca.
Although short, meaningful URIs benefit people, URI consumers must
not rely on the URI string to communicate the meaning of a
resource. A site reporting the weather in Oaxaca could just as
easily be identified by the URI
<code>http://vjc.example.com/315</code>. And the URI
<code>http://weather.example.com/vancouver</code> might identify
the resource "my photo album." See the section on <a shape="rect" href="#retrieve-representation">retrieving a representation</a> for
information about how the meaning of a resource is conveyed.</p>

<p><span class="ednote">Editor's note</span>: When finding
available on URI opacity, link from here.</p>
</div>

<div class="section">
<h3>2.2. <a shape="rect" name="URI-scheme" id="URI-scheme">URI
Schemes</a></h3>

<p>In the URI <code>http://weather.example.com/</code>, the "http"
that appears before the colon (":") is a URI scheme name. There are
other scheme names, such as "mailto" and "ftp". It is common to
classify URIs by scheme; a URI with scheme "http" is called an
"HTTP URI."</p>

<p>Each URI begins with a <a name="def-URI-scheme" id="def-URI-scheme"><dfn>URI scheme</dfn></a> name. The scheme name
corresponds to a specification for assigning identifiers within
that scheme. As such, the URI syntax is a federated and extensible
naming system wherein each scheme's specification may further
restrict the syntax and semantics of identifiers using that scheme.
Furthermore, the URI scheme specification specifies how an agent
can <a shape="rect" href="#dereference-uri">dereference the
URI</a>.</p>

<p>Several URI schemes incorporate identification mechanisms that
pre-date the Web into this syntax:</p>

<ul>
<li>MAILTO URIs identify mailboxes:<br>
 <code>mailto:nobody@example.org</code></li>

<li>FTP URIs identify identify ftp files and directories:<br>
 <code>ftp://example.org/aDirectory/aFile</code></li>

<li>NEWS URIs identify USENET newsgroups:<br>
 <code>news:comp.infosystems.www</code></li>

<li>TEL URIs identify terminals on the telephone network:<br>
 <code>tel:+1-816-555-1212</code></li>
</ul>

<p>Other URI schemes have been introduced since the advent of the
Web, including those introduced as a consequence of new protocols.
Examples of URIs for these schemes include:</p>

<ul>
<li>HTTP URIs:<br>
 <code>http://www.example.org/something?with=arg1;and=arg2</code></li>

<li>LDAP URIs:<br>
 <code>ldap://ldap.itd.umich.edu/c=GB?objectClass?one</code></li>

<li>URNs:<br>
 <code>urn:oasis:SAML:1.0</code></li>
</ul>

<p>The Internet Assigned Numbers Authority
(<acronym>IANA</acronym>) maintains a registry [<a shape="rect" href="#IANASchemes">IANASchemes</a>] of mapping between URI scheme
names and their specifications. For instance, the IANA registry
indicates that the "http" scheme is defined by [<a shape="rect" href="#RFC2616">RFC2616</a>]. The process for registration of new
URI schemes is defined by <a shape="rect" href="#RFC2717">RFC2717</a>.</p>

<p>Since many aspects of URI processing are scheme-dependent, and
since a huge amount of deployed software already processes URIs of
well-known schemes, the cost of introduction of new URI schemes is
high. We note in passing that even more expensive than introducing
a new URI scheme is introducing a new identification mechanism for
the Web; this is considered prohibitively expensive.</p>

<p class="prefix">Good practice</p>

<p class="practice"><a shape="rect" name="pr-new-scheme-expensive" id="pr-new-scheme-expensive">New URI schemes:</a> Authors of
specifications SHOULD avoid introducing new URI schemes when
existing schemes can be used to meet the goals of the
specifications.</p>

<p>Consider our <a shape="rect" href="#scenario">travel
scenario</a>: should the authority providing information about the
weather in Oaxaca register a new URI scheme "weather" for the
identification of resources related to the weather? They might then
publish URIs such as
<code>weather://travel.example.com/oaxaca</code>. While the Web
Architecture allows the definition of new schemes, there is a cost
to registration and especially deployment of new schemes. When an
agent dereferences such a URI, if what really happens is that HTTP
GET is invoked to retrieve an HTML representation of the resource,
then an HTTP URI would have sufficed. If a URI scheme exists that
meets the needs of an application, designers should use it rather
than invent one. Furthermore, designers should expect that it will
prove useful to be able to share a URI across applications, even if
that utility is not initially evident.</p>

<p>If the motivation behind registering a new scheme is to allow an
agent to launch a particular application when retrieving a
representation, such dispatching can be accomplished at lower
expense by registering a new MIME type instead. Reasons for this
include:</p>

<ul>
<li>The more resource metadata is included in a URI, the more
fragile the URI becomes (e.g., sensitive to changes in
representation). Designers should choose URI schemes that allow
them to keep their options open.</li>

<li>At this time, the registration process for new URI schemes is
more strict than for the registration of new media types.</li>
</ul>

<p><span class="ednote">Editor's note</span>: When finding
available based on Tim Bray's discussion of this topic, link from
here.</p>

<p>The use of unregistered URI schemes is discouraged for a number
of reasons:</p>

<ul>
<li>There is no generally accepted way to locate the scheme
specification.</li>

<li>Someone else may be using the scheme for other purposes.</li>

<li>One should not expect that general purpose software will do
anything useful with URIs of this scheme; the network effect is
lost.</li>
</ul>
</div>

<div class="section">
<h3>2.3. <a shape="rect" name="URI-authority" id="URI-authority">URI Authority</a></h3>

<p>In the URI <code>http://weather.example.com/</code>, the string
<code>weather.example.com</code> (between "//" and the next "/")
called the authority component. Many URI schemes include a
hierarchical element for a naming <a name="def-authority" id="def-authority"><dfn>authority</dfn></a> such that governance of
the name space defined by the remainder of the URI is delegated to
that authority (which may, in turn, delegate it further). The
generic syntax provides a common means for distinguishing an
authority based on a registered domain name or server address. See
section 3.2 of [<a shape="rect" href="#URI">URI</a>] for more
information about the authority portion of a URI.</p>

<p>How authority is delegated depends on the URI scheme. The
deployment and use of different URI schemes may require varying
degrees of central coordination and administration. For example,
MAILTO, FTP, and HTTP URIs depend on the use of the DNS and IANA
infrastructure; see "ICP-1: Internet Domain Name System Structure
and Delegation" [<a shape="rect" href="#IANAICP1">IANAICP1</a>] for
more information about how the IANA manages delegation of domain
names.</p>

<p>Successful communication between two parties about a piece of
information relies on shared understanding of the meaning of the
information. On the Web, thousands of independent parties can
identify and communicate about a Web resource. To give these
parties the confidence that they are all talking about the same
thing when they refer to "the resource identified by the following
URI ..." the design choice for the Web is, in general, that the
owner of a resource assigns its authoritative meaning and the URIs
that refer to it. See the <strong>draft</strong> TAG finding
<cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/mime-respect.html">Client
handling of MIME headers"</a></cite> for related discussion.</p>

<p>In our <a shape="rect" href="#scenario">travel scenario</a>, the
agent responsible for <code>weather.example.com</code> has license
to assign the meaning of the resource and to create the
authoritative representations of this resource.</p>
</div>

<div class="section">
<h3>2.4. <a shape="rect" name="fragid" id="fragid">Fragment
Identifiers</a></h3>

<p>In our <a shape="rect" href="#scenario">travel scenario</a> the
server returns an XHTML representation when Dan dereferences the
URI <code>http://weather.example.com/oaxaca</code>. Then, by
navigating within the XHTML content, Dan finds that the URI
<code>http://weather.example.com/oaxaca#tom</code> refers to
information about tomorrow's weather in Oaxaca. This URI includes
the fragment identifier "tom" (the string after the "#").</p>

<p>The <a name="def-fragid" id="def-fragid"><dfn>fragment
identifier</dfn></a> component of a URI allows indirect
identification of a <a name="def-secondary-resource" id="def-secondary-resource"><dfn>secondary resource</dfn></a>, by
reference to a primary resource and additional identifying
information that is selective with respect to that resource. The
identified secondary resource may be some portion or subset of the
primary resource, some view on representations of the primary
resource, or some other resource that is merely named with respect
to the primary resource.</p>

<p>Although the generic URI syntax allows any URI to end with a
fragment identifier, some URI schemes do not specify the use of
fragment identifiers. For instance, fragment identifier semantics
are not specified for MAILTO URIs.</p>

<p>For URI schemes that do specify the use of fragment identifiers,
the syntax and semantics of those identifiers is defined by the set
of <a shape="rect" href="#representations">representations</a> that
might result from a <a shape="rect" href="#def-representation-retrieval">retrieval</a> action on the
primary resource. The presence of a fragment identifier component
in a URI does not imply that a retrieval action will take
place.</p>

<p>Interpretation of the fragment identifier during a retrieval
action is performed solely by the user agent; the fragment
identifier is not passed to other systems during the process of
retrieval. This means that some intermediaries in the Web
architecture (e.g., proxies) have no effect on fragment identifiers
and that redirection (in HTTP [<a shape="rect" href="#RFC2616">RFC2616</a>], for example) does not account for
them.</p>

<div class="section">
<h4>2.4.1. <a shape="rect" name="frag-conneg" id="frag-conneg">Fragment identifiers and content
negotiation</a></h4>

<p>Suppose that the managers of <code>weather.example.com</code>
provide a visual map of the meteorological conditions in Oaxaca as
part of the representation served for
<code>http://weather.example.com/oaxaca</code>. They might encode
the same visual map in a number of image formats to meet different
needs (e.g., they might serve PNG, SVG, and JPEG/JFIF). Dan's user
agent and the server engage in HTTP content negotiation, so that
Dan receives the best image format his user agent can handle. The
URI <code>http://weather.example.com/oaxaca/map#zicatela</code>
refers to a portion of the weather map that shows the Zicatela
Beach, where Dan intends to go surfing. This URI makes sense for
the SVG representation, since SVG defines fragment identifier
semantics. However, the URI does not make sense for the PNG and
JPEG/JFIF representations; those specifications do not define
fragment identifier semantics.</p>

<p class="prefix">Good practice</p>

<p class="practice"><a shape="rect" name="http-conneg-frag" id="http-conneg-frag">Content negotiation with fragments:</a>
Authors SHOULD NOT use HTTP content negotiation for different media
types that have incompatible fragment identifier semantics.</p>
</div>
</div>

<div class="section">
<h3>2.5. <a shape="rect" name="dereference-uri" id="dereference-uri">Dereferencing a URI</a></h3>

<p>Given a URI, a system may attempt to perform a variety of
operations on the resource, as might be characterized by such words
as "access", "update", "replace", or "find attributes". Such
operations are defined by the formats and protocols that make use
of URIs. The URI specification (in [<a shape="rect" href="#URI">URI</a>], section 1.2.2) defines the following terms
related to interactions through a URI.</p>

<dl><dt><a name="def-URI-resolution" id="def-URI-resolution"><dfn>Resolution</dfn></a></dt><dd>The process of determining an access mechanism and the
appropriate parameters necessary to dereference a URI; such
resolution may require several iterations.</dd><dt><a name="def-URI-dereference" id="def-URI-dereference"><dfn>Dereference</dfn></a></dt><dd>To dereference a URI is to use an access mechanism to perform
an action on the URI's resource.</dd><dt><a name="def-representation-retrieval" id="def-representation-retrieval"><dfn>Retrieval</dfn></a></dt><dd>A URI dereference that causes an agent to retrieve a
representation of the associated resource.</dd></dl>

<p>During URI resolution, an agent applies in succession a finite
set of relevant specifications, beginning with the specification of
the context in which the URI is found (e.g., a format or protocol
specification, or an application). Any one of these specifications
may define more than one access mechanism (e.g., the HTTP protocol
defines a number of access methods, including GET, HEAD, and POST).
Note that the information governing the choice of access mechanism
may be found in the context, not the URI itself (e.g., the choice
of HTTP GET v. HTTP HEAD). The <strong>draft</strong> TAG finding
<cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/whenToUseGet.html">URIs,
Addressability, and the use of HTTP GET and POST."</a></cite>
discusses issues surrounding multiple access mechanisms and the
relation to URI addressability.</p>

<p>Some URI schemes (e.g., the URN scheme [<a shape="rect" href="#RFC2141">RFC 2141</a>]) do not define dereference
mechanisms.</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#metadataInURI-31">metadataInURI-31</a>:
Should metadata (e.g., versioning information) be encoded in
URIs?</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist.html#siteData-36">siteDate-26</a>:
Web site metadata improving on robots.txt, w3c/p3p and favicon
etc.</p>

<div class="section">
<h4>2.5.1. <a shape="rect" name="retrieve-representation" id="retrieve-representation">Retrieving a Representation</a></h4>

<p>One of the most important actions on the Web is to retrieve a <a shape="rect" href="#representations">representation</a> of a
resource (for example, by using HTTP GET). As stated above, the <a shape="rect" href="#URI-authority">authority responsible for a
URI</a> determines what the URI identifies and which
representations are used for interaction with the resource. The
representations communicate the meaning of the resource.</p>

<p class="prefix">Good practice</p>

<p class="practice"><a shape="rect" name="pr-describe-resource" id="pr-describe-resource">Resource descriptions:</a> Owners of
important resources SHOULD make available representations that
communicate the meaning of those resources.</p>

<p>As an example of representation retrieval, suppose that the URI
<code>http://weather.example.com/budapest</code> is used within an
<code>a</code> element of an SVG document. The sequence of
specifications applied is:</p>

<ol>
<li>The SVG 1.0 Recommendation [<a shape="rect" href="#SVG10">SVG10</a>], which imports the link semantics defined
by XLink 1.0 [<a shape="rect" href="#XLink10">XLink10</a>]. Section
17.1 of the SVG specification suggests that interaction with an
<code>a</code> link involves retrieving a representation of a
resource, identified by the XLink <code>href</code> attribute: "By
activating these links (by clicking with the mouse, through
keyboard input, and voice commands), users may visit these
resources."</li>

<li>The attribute <code>xlink:href</code> is defined in section 5.4
of the XLink 1.0 [<a shape="rect" href="#XLink10">XLink10</a>]
specification states that "The value of the href attribute must be
a URI reference as defined in [IETF RFC 2396], or must result in a
URI reference after the escaping procedure described below is
applied."</li>

<li>The URI specification [<a shape="rect" href="#URI">URI</a>]
states that "Each URI begins with a scheme name that refers to a
specification for assigning identifiers within that scheme." The
URI scheme name in this example is "http".</li>

<li>To find out what specification defines the "http" scheme, we
look up the mapping in [<a shape="rect" href="#IANASchemes">IANASchemes</a>]; the "http" URI scheme is
defined in the HTTP/1.1 specification (RFC 2616 [<a shape="rect" href="#RFC2616">RFC2616</a>], section 3.2.2).</li>

<li>The HTTP/1.1 specification defines several access mechanisms.
In this SVG context, the user agent employs the GET method (defined
in section 9.3 of [<a shape="rect" href="#RFC2616">RFC2616</a>]) to
retrieve the representation. The HTTP/1.1 specification explains
how the server constructs the response (section 6 of [<a shape="rect" href="#RFC2616">RFC2616</a>]), including the media
type of the representation. Section 1.4 states "HTTP communication
usually takes place over TCP/IP connections." Though not shown in
this example, the user agent would continue this process by
implementing those specifications.</li>

<li>The user agent interprets the returned representation according
to the media type, but looking up which specification defines the
media type in the [<a shape="rect" href="#IANAMIME">IANAMIME</a>]
registry.</li>
</ol>

<p>Note that, in general, one cannot determine the media type(s) of
representation(s) of a resource by inspecting a URI for that
resource. For example, do not assume that all representations of
<code>http://example.com/page.html</code> are HTML. The HTTP
protocol does not constrain the media type based on the path
component of the URI; the server is free to return a PNG image
representation.</p>
</div>

<div class="section">
<h4>2.5.2. <a shape="rect" name="safe-interaction" id="safe-interaction">Safe Interaction</a></h4>

<p>Dan's retrieval of weather information qualifies as a "safe"
interaction; a <a name="def-safe-interaction" id="def-safe-interaction"><dfn>safe interaction</dfn></a> is one
where the user agent does not commit to anything beyond the
interaction and is not responsible for any consequences other than
the interaction itself (e.g., a read-only query or lookup). Other
Web interactions resemble orders more than queries. These <a name="def-unsafe-interaction" id="def-unsafe-interaction"><dfn>unsafe interactions</dfn></a> may
cause a change to the state of a resource; the user may be held
responsible for the consequences of these interactions. Unsafe
interactions include subscription services, posting to a list, or
modifying a database.</p>

<p>Safe interactions are important because these are interactions
where users can browse with confidence and where software programs
(e.g., search engines and browsers that pre-cache data for the
user) can follow links safely. Users (or software agents acting on
their behalf) do not commit themselves to anything by querying a
resource or following a link.</p>

<p class="prefix">Principle</p>

<p class="principle"><a shape="rect" name="pr-deref-safe" id="pr-deref-safe">Safe retrieval:</a> Agents do not incur
obligations by retrieving a representation.</p>

<p>For instance, suppose in our <a shape="rect" href="#scenario">travel scenario</a> that the managers of
<code>weather.example.com</code> offer a monthly newsletter
available by subscription. It is <strong>incorrect and
harmful</strong> to publish a page
<code>http://example.com/oxaca/aboutNewsLetter</code> that states
"... terms and conditions..." with a link to
<code>http://example.com/oxaca/newsLetter</code> because search
services may link directly to
<code>http://example.com/oxaca/newsLetter</code> and readers that
follow such links may not have seen, let alone agreed to, the terms
and conditions.</p>

<p>For more information about safe and unsafe operations using HTTP
GET and POST, and handling security concerns around the use of HTTP
GET, see the <strong>draft</strong> TAG finding <cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/whenToUseGet.html">URIs,
Addressability, and the use of HTTP GET and POST."</a></cite></p>
</div>
</div>

<div class="section">
<h3>2.6. <a shape="rect" name="URI-persistence" id="URI-persistence">URI Persistence</a></h3>

<p>The value of a URI increases with the predictability of
interactions using that URI.</p>

<p class="prefix">Good practice</p>

<p class="practice"><a shape="rect" name="pr-service-uri" id="pr-service-uri">URI Persistence:</a> Parties responsible for a
URI SHOULD service that URI predictably and consistently.</p>

<p>Service breakdowns include:</p>

<ul>
<li>No service available (i.e., dereferencing fails).</li>

<li>Inconsistent representations served. Note the difference
between a resource owner changing representations predictably in
light of the nature of the resource (e.g., the weather in Oaxaca
changes) and the owner changing representations arbitrarily.</li>

<li>Improper use of content negotiation, such as serving two images
as equivalent through HTTP content negotiation, where one image
represents a square and the other a circle.</li>
</ul>

<p>There are strong social expectations that once a URI identifies
a particular resource, it should continue indefinitely to refer to
that resource; this is called <a name="def-URI-persistence" id="def-URI-persistence"><dfn>URI persistence</dfn></a>. URI
persistence is always a matter of policy and commitment on the part
of authorities servicing URIs rather than a constraint imposed by
technological means.</p>

<p>URI persistence also improves when ambiguity is removed about
what the URI identifies. For instance, saying that the URI
<code>http://www.example.com/moby</code> identifies "Moby Dick" can
lead to confusion because this might be interpreted as any one of
the following very distinct resources: a particular printing of
this work (say, by ISBN), or the work itself in an abstract sense
(for example, using RDF), or the fictional white whale, or a
particular copy of the book on the shelves of a library (via the
Web interface of the library's online catalog), or the record in
the library's electronic catalog which contains the metadata about
the work, or the Gutenberg project's <a shape="rect" href="http://ibiblio.org/gutenberg/etext01/moby10b.txt">online
version</a>. Similarly, one should not use the same URI to refer to
a person and to that person's mailbox.</p>

<p>Ambiguous descriptions of what a URI identifies increase the
likelihood that two parties will think the same URI identifies
different resources, and thus that the parties will use the URI
inconsistently. This can be costly, as in the case of two databases
in which the same URI is used inconsistently; merging the two
databases might lead to confusion or errors.</p>

<p>HTTP [<a shape="rect" href="#RFC2616">RFC2616</a>] has been
designed to help service URIs. For example, HTTP redirection (via
some of the 3xx response codes) permits servers to tell an agent
that further action needs to be taken by the agent in order to
fulfill the request (e.g., the resource has been assigned a new
URI). In addition, content negotiation also promotes consistency,
as a site manager would not be required to define new URIs for each
new format that is supported, as would be the case with protocols
that don't support content negotiation, such as FTP.</p>

<p>For more discussion about URI persistence, refer to [<a shape="rect" href="#Cool">Cool</a>].<sup><a name="note5" id="note5" href="#note-cool-uri-title">5</a></sup></p>
</div>

<div class="section">
<h3>2.7. <a shape="rect" name="id-access" id="id-access">Access
Control</a></h3>

<p>As we have seen, identification of a resource on the Web is
distinct from interacting with that resource. It is reasonable to
control access to the resource (e.g., for security reasons), but it
is unreasonable to prohibit others from merely identifying the
resource.</p>

<p>As an analogy: A building might have a policy that the public
may only enter via the main front door, and only during business
hours. People employed in the building and in making deliveries to
it might use other doors as appropriate. Such a policy would be
enforced by a combination of security personnel and mechanical
devices such as locks and pass-cards. One would not enforce this
policy by hiding some of the building entrances, nor by requesting
legislation requiring the use of the front door and forbidding
anyone to reveal the fact that there are other doors to the
building.</p>

<p>In the <a shape="rect" href="#scenario">travel scenario</a>,
imagine that Dan and Norm both subscribe to the
<code>weather.example.com</code> newsletter. Dan wishes to point
out an article of particular interest to Norm, using a URI. The
managers of <code>weather.example.com</code> can offer Dan and Norm
the benefits of URIs (e.g., bookmarking and linking) and still
control access to the newsletter by authorized parties. The Web
provides several mechanisms to control access to resources, none of
which relies on hiding or suppressing URIs for those resources. For
more information on identification and access control, please refer
to the TAG finding <cite>"'<a shape="rect" href="http://www.w3.org/2001/tag/doc/deeplinking.html">Deep
Linking' in the World Wide Web</a></cite>."</p>
</div>

<div class="section">
<h3>2.8. <a shape="rect" name="identifiers-future" id="identifiers-future">Future Directions for Identifiers</a></h3>

<div class="section">
<h4>2.8.1. <a id="i18n-id" shape="rect" name="i18n-id">Internationalized identifiers</a></h4>

<p>The integration of internationalized identifiers (i.e., composed
of characters beyond those allowed by [<a shape="rect" href="#URI">URI</a>]) into the Web Architecture is an important and
open issue. See TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#IRIEverywhere-27">IRIEverywhere-27</a>
for discussion about work going on in this area.</p>
</div>

<div class="section">
<h4>2.8.2. <a shape="rect" name="future-comparison" id="future-comparison">Determination that two URIs identify the
same resource</a></h4>

<p>Emerging Semantic Web technologies, including "DAML+OIL" [<a shape="rect" href="#DAMLOIL">DAMLOIL</a>] and "Web Ontology
Language (OWL)" [<a shape="rect" href="#OWL10">OWL10</a>], define
RDF properties such as <code>equivalentTo</code> and
<code>FunctionalProperty</code> to state -- or at least claim --
formally that two URIs identify the same resource.</p>
</div>

<div class="section">
<h4>2.8.3. <a id="consistency-frag-id" shape="rect" name="consistency-frag-id">Consistency of fragment identifier
semantics among different media types</a></h4>

<p>There has been some discussion but no agreement that new access
protocols should provide a means to convert fragment identifiers
according to media type.</p>

<p>Fragment identifier semantics may differ among formats. See
related TAG issues <a shape="rect" href="http://www.w3.org/2001/tag/ilist.html#httpRange-14">httpRange-14</a>
and <a shape="rect" href="http://www.w3.org/2001/tag/ilist.html#RDFinXHTML-35">RDFinXHTML-35</a>
and <a shape="rect" href="http://www.w3.org/2001/tag/ilist.html#abstractComponentRefs-37">
abstractComponentRefs-37</a>.</p>
</div>

<div class="section">
<h4>2.8.4. <a id="dynamic-delegation" shape="rect" name="dynamic-delegation">Work on dynamic authority
delegation</a></h4>

<p>The Dynamic Delegation Discovery System
(<acronym>DDDS</acronym>) ([<a shape="rect" href="#RFC3401">RFC3401</a>] and related RFCs) is used to implement
lazy binding of strings to data, in order to support dynamically
configured delegation systems. This system is designed to allow
resolution of any type of URI, in particular URNs.</p>
</div>

<div class="section">
<h4>2.8.5. <a id="non-hier-admin" shape="rect" name="non-hier-admin">Non-hierarchical administration</a></h4>

<p>One area of work involves the creation of globally unique
identifiers in a file-sharing system without centralized or
hierarchical administration.</p>
</div>
</div>
</div>

<div class="section">
<h2>3. <a shape="rect" id="representations" name="representations">Representations</a></h2>

<p>A <a name="def-representation" id="def-representation"><dfn>representation</dfn></a> is data that
represents or describes the state of a resource. It consists
of:</p>

<ol>
<li>Electronic data expressed in one or more formats (e.g., XHTML,
CSS, PNG, XLink, RDF/XML, and SMIL animation) used separately or in
combination.</li>

<li>Metadata about the representation, such as the Internet Media
Type (defined in RFC 2046 [<a shape="rect" href="#RFC2046">RFC2046</a>]). The Internet Media Type is the key
to the correct interpretation of a resource representation, and
governs the handling of <a shape="rect" href="#fragid">fragment
identifiers</a>. When transferred by a Web <a shape="rect" href="#interaction">protocol</a>, a representation often includes
metadata about both the representation and the message bearing the
representation (for example, some HTTP headers).</li>
</ol>

<p>Web agents use representations to modify as well as read
resource state.</p>

<p>In our previous <a shape="rect" href="#scenario">travel
scenario</a> the representation Dan receives (and whether he
receives one at all) depends on a number of factors, including:</p>

<ol>
<li>Whether the agents responsible for
<code>weather.example.com</code> respond to requests at all;</li>

<li>Whether the agents responsible for
<code>weather.example.com</code> make available one or more
representations for the resource identified by
<code>http://weather.example.com/oaxaca;</code></li>

<li>Whether Dan has access privileges to such a
representation;</li>

<li>If the agents responsible for <code>weather.example.com</code>
have provided more than one representation (in different formats
such as HTML, PNG, or RDF, in different languages such as English
and Spanish, etc.), the result representation may depend on
negotiation between the user agent and server that occurs as part
of the HTTP transaction.</li>

<li>When Dan made the request. Since the weather in Oaxaca changes,
Dan should expect that representations will change over time.</li>
</ol>

<p>We discuss these issues in more detail below.</p>

<div class="section">
<h3>3.1. <a shape="rect" id="relation-to-mime" name="relation-to-mime">Relation to MIME headers</a></h3>

<p>As discussed above, the owner of a resource assigns its
authoritative meaning and the URIs that refer to it. This meaning
is communicated in part through metadata that is part of the
representation, notably the Internet Media Type. At times there may
be inconsistencies between metadata and what is specified in a
format. Examples of inconsistencies between headers and format data
that have been observed on the Web include:</p>

<ul>
<li>The Unicode encoding of a message body (XML document) is
inconsistent with the value of the charset parameter in the message
headers.</li>

<li>The namespace of the root element of a message body (XML
document) is inconsistent with the value of the content type header
in the message headers.</li>
</ul>

<p>User agents should detect such inconsistencies but should not
resolve them without involving the user (e.g., by securing
permission or at least providing notification). User agents must
not silently ignore authoritative server metadata.</p>

<p>See the <strong>draft</strong> TAG finding <cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/mime-respect.html">Client
handling of MIME headers"</a></cite> for more in-depth discussion
and examples.</p>
</div>

<div class="section">
<h3>3.2. <a shape="rect" id="formats" name="formats">Characteristics of formats and their
specifications</a></h3>

<p>The Web can be used to interchange resource representations in
any format. This flexibility is important, since there is
continuing progress in the development of new data formats for new
applications and the refinement of existing ones.</p>

<p>For a format to be usefully interoperable between two parties,
the parties must have a shared understanding of its syntax and
semantics. This is <em>not</em> to imply that a sender of data can
count on constraining its treatment by a receiver; simply that
making good use of electronic data usually requires knowledge of
its designers' intentions.</p>

<p>For a format to be widely interoperable across the Web:</p>

<ul>
<li>There SHOULD be a normative specification which is a stable and
widely available Web resource.</li>

<li>The format specification SHOULD have an officially registered
Internet media type (see the [<a shape="rect" href="#IANAMIME">IANAMIME</a>] registry). See TAG finding finding
<cite>"<a shape="rect" href="http://www.w3.org/2001/tag/2002/0129-mime">Internet Media
Type registration, consistency of use</a></cite>."</li>

<li>The format specification SHOULD define the syntax and semantics
of fragment identifiers.</li>

<li>The format specification SHOULD allow Web-wide linking, not
just internal document linking.</li>

<li>The format specification SHOULD allow authors to use URIs
without constraining them to a limited set of URI schemes.</li>

<li>The format specification MAY use Qualified Names (QNames) for
identifiers in content, but format designers should be aware of the
limitations and interoperability risks associated with QNames. See
the TAG finding <cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/qnameids.html">Using QNames as
Identifiers in Content</a>"</cite> for more information.</li>
</ul>

<p>Although the Web architecture allows for the deployment of new
data formats, the creation and deployment of new formats (and
software able to handle them) can be very expensive. Thus, before
inventing a new data format, designers should carefully consider
re-using one that is already available. For example, if a format is
required to contain human-readable text with embedded hyperlinks,
it is almost certainly better to use HTML for this purpose than to
invent a new format.</p>

<div class="section">
<h4>3.2.1. <a shape="rect" name="format-characteristics" id="format-characteristics">Desirable Characteristics of Format
Specifications</a></h4>

<p>As noted above, the utility of data formats starts with the
availability of a normative specification. Some of the desirable
characteristics of a format include:</p>

<dl><dt>Attention to Programmer Needs</dt><dd>A specification that is written to meet the needs of
programmers is more likely to be implemented, and thus more likely
to be useful. In particular, the specification SHOULD be in part
formal and mathematical, rather than relying exclusively on
narrative.</dd><dt>Attention to Author Needs</dt><dd>Formats that allow authors to intuitively and efficiently
address problems they are trying to solve, that can be readily
learned, that are simple to use, and that are interoperable are
more likely to be adopted by authors and authoring tool
developers.</dd><dt>Attention to User Needs</dt><dd>A number of characteristics of a format specification will
address the needs of end users, and doing so will create a market
for the format. Attention to issues of accessibility,
internationalization, and device-independence will tend to make a
format specification more flexible.</dd><dt>Attention to Error-Handling</dt><dd>Given that representations are generated by humans (either
coded directly or mediated by an authoring tool) and then
transmitted in a heterogeneous network, it is inevitable that
errors will occur. Specifications of data formats SHOULD be clear
about behavior in the presence of errors. It is reasonable to
specify that errors should be worked around, or should result in
the termination of a transaction or session. It is not acceptable
for the behavior in the face of errors to be left unspecified. See
the <strong>draft</strong> TAG finding <cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/mime-respect.html">Client
handling of MIME headers"</a></cite> for more discussion about
error reporting.</dd><dd>Issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#errorHandling-20">errorHandling-20</a></dd><dt>Information hiding</dt><dd>When designing specifications that address independent
functions of a system, references between the specifications are in
general harmful. They are harmful because they impede the
independent evolution of the specifications.</dd><dd>For example, it is a strength of XML that XPath cannot query
the HTTP header. It is a strength of HTTP that it does not refer to
details of the underlying TCP to the extent that it cannot be run
over a different transport service. Similarly, the RDF data graph
has a significance that is independent of the actual
serialization.</dd><dd>Sometimes it is necessary (and good for given application) to
break layers. For example, it is good for an HTTP agent to be aware
of TCP speeds and round trip times to different mirror servers in
order to optimize the choice of server. When designing
specification, identify the functionalities that break layers so it
is clear when they are being used.</dd></dl>

<p>The section on <a shape="rect" href="#archspecs">architectural
specifications</a> includes references to additional format
specification guidelines.</p>

<p>Other design issues:</p>

<ul>
<li>QNames: Issues <a shape="rect" href="http://www.w3.org/2001/tag/ilist">rdfmsQnameUriMapping-6</a>,
<a shape="rect" href="http://www.w3.org/2001/tag/ilist#qnameAsId-18">qnameAsId-18</a>
and finding <cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/qnameids.html">Using QNames as
Identifiers in Content</a>"</cite></li>

<li>Formatting properties: Issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#formattingProperties-19">formattingProperties-19</a>,
<a shape="rect" href="http://www.w3.org/2001/tag/ilist#contentPresentation-26">contentPresentation-26</a></li>
</ul>
</div>

<div class="section">
<h4>3.2.2. <a shape="rect" name="format-taxonomy" id="format-taxonomy">Taxonomic Categorization of Data
Formats</a></h4>

<p>This section discusses important characteristics of data formats
which can together be used to describe and understand them.</p>

<div class="section">
<h5>3.2.2.1. <a shape="rect" name="binary" id="binary">Binary v.
Textual</a></h5>

<p>A textual data format is one in which the data is specified as a
linear sequence of characters. HTML, Internet e-mail, and all
XML-based languages are textual. In modern textual data formats,
the characters are usually taken from the Unicode repertoire.</p>

<p>Binary data formats are those in which portions of the data are
encoded for direct use by computer processors, for example
thirty-two bit little-endian two's-complement and sixty-four bit
IEEE double-precision floating-point. The portions of data so
represented are include numeric values, pointers, and compressed
data of all sorts.</p>

<p>In principle, all data can be represented using textual
formats.</p>

<p>The trade-offs between binary and textual data formats are
complex and application-dependent. Binary formats can be
substantially more compact, particularly for complex pointer-rich
data structures. Also, they can be consumed more rapidly by
software in those cases where they can be loaded into memory and
used with little or no conversion.</p>

<p>Textual formats are often more portable and interoperable, since
there are fewer choices for representation of the basic units
(characters), and those choices are well-understood and widely
implemented.</p>

<p>Textual formats also have the considerable advantage that they
can be directly read and understood by human beings. This can
simplify the tasks of creating and maintaining processing software,
and allow the direct intervention of humans in the processing chain
without recourse to tools any more complex than the ubiquitous text
editor. Finally, it simplifies the necessary human task of learning
about new data formats (the "View Source" effect).</p>

<p>All things being equal (a rare state of affairs) textual formats
are generally preferable to binary ones in Web applications.</p>

<p>It is important to emphasize that intuition as to such matters
as data size and processing speed are not a reliable guide in data
format design; quantitative studies are essential to a correct
understanding of the trade-offs.</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#binaryXML-30">binaryXML-30</a>:
Effect of Mobile on architecture - size, complexity, memory
constraints. Binary infosets, storage efficiency.</p>
</div>

<div class="section">
<h5>3.2.2.2. <a shape="rect" name="final-form" id="final-form">Final-form v. Reusable</a></h5>

<p>Final-form data formats are not designed to allow modification
or uses other than that intended by their designers. An example
would be PDF, which is designed to support the presentation of page
images on either screen or paper, and is not readily used in any
other way. XSL Formatting Objects (XSL-FO) share this
characteristic.</p>

<p>XHTML, on the other hand, can be and is put to a variety of uses
including direct display (with highly flexible display semantics),
processing by network-sensitive Web spiders to support search and
retrieval operations, and reprocessing into a variety of derivative
forms.</p>

<p>In general XML-based data formats are more re-usable and
repurposable than the alternatives, although the example of XSL-FO
shows that this is not an absolute.</p>

<p>There are many cases where final-form is an application
requirement; representations which embody legally-binding
transactions are an obvious example. In such cases, the use of
digital signatures may be appropriate to achieve immutability,
whether the format is naturally final-form or some XML
vocabulary.</p>

<p>On the other hand, where such requirements are not in play,
representations that are reusable and repurposable are in general
higher in value, particularly in the case where the information's
utility may be long-lived.</p>
</div>

<div class="section">
<h5>3.2.2.3. <a shape="rect" name="composable" id="composable">Composable v. Standalone</a></h5>

<p>Some data formats are explicitly designed to be used in
combination with others, while some are designed for standalone
use. An example of a standalone data format is PDF; it is not
typically embedded in representations encoded in other formats.</p>

<p>At the other extreme is SOAP, which is designed explicitly to
contain a "payload" in some non-SOAP vocabulary. Another example is
SVG, which is designed to be included in compound documents, and
which may in turn contain information encoded in other XML
vocabularies.</p>

<p>This characteristic is related to, but distinct from, the
final-form/reusable distinction discussed above. For example, one
can certainly imagine cases where it is useful for a representation
to include data in multiple different formats, but be considered
immutable and display-only.</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#xmlProfiles-29">xmlProfiles-29</a>:
When, whither and how to profile W3C specifications in the XML
Family?</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#mixedUIXMLNamespace-33">mixedUIXMLNamespace-33</a>:
Composability for user interface-oriented XML namespaces</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#xmlFunctions-34">xmlFunctions-34</a>:
XML Transformation and composability (e.g., XSLT, XInclude,
Encryption)</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#RDFinXHTML-35">RDFinXHTML-35</a>:
Syntax and semantics for embedding RDF in XHTML</p>
</div>

<div class="section">
<h5>3.2.2.4. <a shape="rect" name="extensibility" id="extensibility">Extensibility</a></h5>
</div>

<ol>
<li>Versioning</li>

<li>Backward compatibility</li>

<li>Forward compatibility</li>

<li>Optional v. mandatory extensions</li>

<li>Schema restriction if designing for extensibility.
Deterministic/non-deterministic content models</li>
</ol>

<p><i>More incoming from D. Orchard</i></p>

<p><span class="ednote">Editor's note</span>: Expect to add
reference <a shape="rect" href="http://www.w3.org/TR/1998/NOTE-webarch-extlang-19980210">Web
Architecture: Extensible Languages</a>.</p>
</div>

<div class="section">
<h4>3.2.3. <a shape="rect" name="pci" id="pci">Presentation,
Content, and Interaction</a></h4>

<p>In many cases, the information contained in a separation is
logically separable from the choice of ways in which it may be
presented to a human, and the modes of interaction it may
support.</p>

<p>While such separation is, where possible, often advantageous, it
is clearly not always possible and in some cases not desirable
either.</p>

<p><i>More incoming from C. Lilley</i></p>
</div>

<div class="section">
<h4>3.2.4. <a shape="rect" name="embed-links" id="embed-links">Embedding Hyperlinks in Representations</a></h4>

<p>One of the greatest strengths of HTML as a format is that it
allows authors to embed cross references (hyperlinks). The
simplicity of &lt;a href="#foo"&gt; as a link to "foo" and &lt;a
name="foo"&gt; as the anchor "foo" are partly (perhaps largely)
responsible for the birth of the hypertext Web as we know it
today.</p>

<p>Simple, single-ended, single-direction, inline links are not the
most powerful linking paradigm imaginable. But they are very easy
to understand. And they can be authored by individuals (or other
agents) that have no control or write access to the other end
point.</p>

<p>More sophisticated linking mechanisms have been invented for the
Web. XPointer allows links to address content that does not have an
explicit, named anchor. XLink allows links to have multiple ends
and to be expressed either inline or in "link bases" stored
external to any or all of the resources identified by the links it
contains.</p>

<p>All of the current common linking mechanisms identify resources
by URI and optionally identify portions (or views) of a resource
with the fragment identifier. The almost universal appeal of
linking between resources suggests that inventors of new
representation formats SHOULD provide mechanisms for identifying
links to other resources. Representation formats based on XML
SHOULD examine XPointer and XLink for inspiration.</p>

<p>The common need to point into a representation, that is, to
identify some portion of its content (or some view of its content)
besides the entire, monolithic representation suggests that
inventors of new representation formats SHOULD provide mechanisms
for identifying portions of their format. This can most often be
achieved by describing the fragment identifier syntax for the media
type that identifies their resource format. Representation formats
based on XML SHOULD use at least the XPointer Framework and
XPointer element() Schemes for their fragment identifier
syntax.</p>

<p>If a future revision of RFC 3023 identifies the XPointer
Framework, element(), and perhaps other ancillary schemes as the
fragment identifier syntax for XML documents, authors will be able
to rely on at least those schemes for all XML documents.</p>

<p>TAG issue: What is the scope of using XLink? <a shape="rect" href="http://www.w3.org/2001/tag/ilist#xlinkScope-23">xlinkScope-23</a>.</p>
</div>
</div>

<div class="section">
<h3>3.3. <a shape="rect" id="xml-representation" name="xml-representation">XML-Based Representations</a></h3>

<p>Many resource representations are encoded in formats which are
XML vocabularies. This section discusses issues that are specific
to such data formats.</p>

<p>Anyone seeking guidance in this area is urged to consult the
"Guidelines For The Use of XML in IETF Protocols" <a shape="rect" href="#IETFXML">[IETFXML]</a> for the use of XML in Internet
Protocols. This document contains a very thorough discussion of the
considerations that govern whether or not XML ought to be used, as
well as specific guidelines on how it ought to be used. While it is
directed at Internet applications with specific reference to
protocols, the discussion is generally applicable to Web scenarios
as well.</p>

<p>The discussion here should be seen as ancillary to the content
of the IETF BCP. Refer also to "XML Accessibility Guidelines" <a shape="rect" href="#XAG">[XAG]</a> for help designing XML formats
that lower barriers to Web accessibility for people with
disabilities.</p>

<div class="section">
<h4>3.3.1. <a shape="rect" name="xml-when" id="xml-when">When to
Use an XML-Based Format</a></h4>

<p>XML defines textual data formats that are naturally suited to
describing data objects which are hierarchical and processed in an
in-order sequence. It is widely but not universally applicable for
format specifications. For example, an audio or video format is
unlikely to be well suited to representation in XML. Design
constraints that would suggest the use of XML include:</p>

<ol>
<li>Explicit representation of a hierarchical structure.</li>

<li>The data's usefulness should outlive the tools currently used
to process it.</li>

<li>Ability to support internationalization in a self-describing
way that makes confusion over coding options unlikely.</li>

<li>Early detection of encoding errors with no requirement to "work
around" such errors.</li>

<li>A high proportion of human-readable textual content.</li>

<li>Potential composition of the data format with other XML-encoded
formats.</li>
</ol>

<p><span class="ednote">Editor's note</span>: Which XML
Specifications make up the XML Family?</p>
</div>

<div class="section">
<h4>3.3.2. <a shape="rect" name="xml-namespaces" id="xml-namespaces">XML Namespaces</a></h4>

<p>The Web is significantly a <em>networked</em> information
system. Authors and applications can use URIs uniformly to identify
different resources on the Web. After representations of these
resources have been retrieved, they may be processed in a variety
of ways. Some applications (and some users) will undoubtedly build
new resources by combining several representations together. This
is particularly easy, and potentially useful, when XML
representations are available for all the resources.</p>

<p>However, combining representations in this way moves them out of
their original context and places them in a new context. This
change of context introduces the possibility of information loss.
Any information that depended on the local context will no longer
be available.</p>

<p>What is needed is a mechanism for establishing a global context
for the elements and attributes in the XML resources. This problem
bears a strong resemblance to the distinction between relative and
absolute URIs. While the many hundreds of relative URI references
to "index.html" on a typical web server may be entirely unambiguous
in their respective contexts, they have no unambiguous global
meaning. But each such relative URI has an unambiguous absolute URI
that can be established in its local context and used when a
document is moved. This solves the problem for URI references.</p>

<p>For elements and attributes, their names can be seen as
analogous to relative URI. Within their original context, they have
meanings that are clear and entirely unambiguous. Namespaces in XML
provides a mechanism for establishing a globally unique name that
can be understood in any context.</p>

<p>The "absolute" form of an XML element or attribute name is the
combination of its namespace URI and its local name. This is
represented lexically in documents by associating namespace names
with (optional) prefixes and combining prefixes and local names
with a colon as described in "Namespaces in XML" [<a shape="rect" href="#XMLNS">XMLNS</a>].</p>

<p>Designers that use namespaces are thus providing a global
context for documents authored with their schema. Establishing this
global context allows their documents (and portions of their
documents) to be reused and combined in novel ways not yet
imagined. Failure to provide a namespace makes such reuse more
difficult, perhaps impractical in some cases.</p>

<p>The most significant technical drawback to using namespaces is
that they do not interact well with DTDs. DTDs perform validation
based on the lexical form of the name, making prefixes semantically
significant in ways that are not desirable. As other schema
language technologies become widely deployed, this drawback will
diminish in significance.</p>
</div>

<div class="section">
<h4>3.3.3. <a shape="rect" name="namespace-documents" id="namespace-documents">Namespace Documents</a></h4>

<p>Namespace designers SHOULD make available human-readable
material to meet the needs of those who will use the namespace
vocabulary. The simplest way to achieve this is for the namespace
name to be an HTTP URI which may be dereferenced to access this
material. The resource identified by such a URI is called a
"namespace document."</p>

<p>There are many reasons why a person or agent might want more
information about the namespace. A person might want to:</p>

<ul>
<li>understand its purpose,</li>

<li>find out who controls it,</li>

<li>request authority to access schemas or collateral material
about it, or</li>

<li>report a bug or situation that could be considered an error in
some collateral material.</li>
</ul>

<p>A namespace document should also support the automatic retrieval
of other Web resources that support the processing markup from this
vocabulary. Useful information to processors includes:</p>

<ul>
<li>schemas, to use for validation,</li>

<li>style sheets, to use for presentation,</li>

<li>ontologies, to use for making inferences, or</li>

<li>any number of other application-specific details.</li>
</ul>

<p>It follows that there is, in general, no single type of resource
that can be returned in response to a request for the namespace
name that will always be the most appropriate; see the section on
future work regarding <a shape="rect" href="#nsdocs">namespace
document formats</a> for more information.</p>

<p><span class="issue">Issue</span>: <a shape="rect" href="http://www.w3.org/2001/tag/ilist#namespaceDocument-8">namespaceDocument-8</a>:
What should a "namespace document" look like?</p>

<p><span class="issue">Issue</span>: <a shape="rect" href="http://www.w3.org/2001/tag/ilist.html#abstractComponentRefs-37">
abstractComponentRefs-37</a>: Definition of abstract components
with namespace names and frag ids</p>

<p><span class="ednote">Editor's note</span>: Where should we put a
section on mixing namespaces; is the section on processing model
more appropriate? See issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist.html#mixedUIXMLNamespace-33">
mixedUIXMLNamespace-33</a>.</p>
</div>

<div class="section">
<h4>3.3.4. <a shape="rect" name="fragids" id="fragids">Fragment
identifiers and ID semantics</a></h4>

<p>Suppose that the URI <code>http://example.com/oaxaca</code>
defines a resource with representations encoded in XML. What, then,
is the interpretation of the URI
<code>http://example.org/oaxaca#weather</code>?</p>

<p>The URI specification [<a shape="rect" href="#URI">URI</a>]
makes it clear that the interpretation depends on the context of
the media type of the representation. It follows from this that
designers of XML-based data formats SHOULD include the semantics of
fragment identifiers in their designs. The XPointer Framework [<a shape="rect" href="#XPTRFR">XPTRFR</a>] provides a syntax designed
for in such fragment identifiers, and it SHOULD be used for this
purpose.</p>

<p>When a representation is provided whose media type is
<code>application/xml</code>, there are no semantics defined for
fragment identifiers, and thus they SHOULD NOT be provided for such
representations. This is also the case if the representation is
known to be XML because the media type has a suffix of
<code>+xml</code> as described in "XML Media Types" [<a shape="rect" href="#RFC3023">RFC3023</a>], but there is no
normative specification of fragment semantics.</p>

<p>It is common practice to assume that when an element has an
attribute that is declared in a DTD to be of type ID, then the
fragment identifier <code>#abc</code> identifies the element which
has an attribute of that type whose value is <code>"abc"</code>.
However, there is no normative support for this assumption and it
is problematic in practice, since the only defined way to establish
that an attribute is of type ID is via a DTD, which may not exist
or may not be available.</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#fragmentInXML-28">fragmentInXML-28</a>:
Do fragment identifiers refer to a syntactic element (at least for
XML content), or can they refer to abstractions? See TAG issue.</p>

<p>TAG issue <a shape="rect" href="http://www.w3.org/2001/tag/ilist#xmlIDSemantics-32">xmlIDSemantics-32</a>:
How should the problem of identifying ID semantics in XML languages
be addressed in the absence of a DTD? See <strong>draft</strong>
TAG finding <cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/xmlIDSemantics-32.html">How
should the problem of identifying ID semantics in XML languages be
addressed in the absence of a DTD?</a>"</cite>.</p>
</div>

<div class="section">
<h4>3.3.5. <a shape="rect" name="xml-media-types" id="xml-media-types">Media Types for XML</a></h4>

<p>RFC 3023 defines the media types <code>application/xml</code>
and <code>text/xml</code>, and describes a convention whereby
XML-based data formats use media types with a <code>+xml</code>
suffix, for example <code>image/svg+xml</code>.</p>

<p>In general, media types beginning with <code>text/</code> SHOULD
NOT be used for XML representations. They create two problems:
First, intermediate agents in the Web are allowed to "transcode",
i.e., convert one character encoding to another. Since XML
documents are designed to allow them to be self-describing, and
since this is a good and widely-followed practice, any such
transcoding will make the self-description false.</p>

<p>Secondly, representations whose media types begin with
<code>text/</code> are required, unless the <code>charset</code>
parameter is specified, to be considered to be encoded in US-ASCII.
In the case of XML, since it is self-describing, it is good
practice to omit the <code>charset</code> parameter, and since XML
is very often not encoded in US-ASCII, the use of
"<code>text/</code>" media types effectively precludes this good
practice.</p>
</div>
</div>

<div class="section">
<h3>3.4. <a shape="rect" name="representations-future" id="representations-future">Future Directions for
Representations</a></h3>

<div class="section">
<h4>3.4.1. <a id="nsdocs" shape="rect" name="nsdocs">Namespace
document formats</a></h4>

The Resource Directory Description Language [<a shape="rect" href="#RDDL">RDDL</a>] is a proposal under discussion in the
community for a variant of XHTML optimized for the construction of
namespace documents which meet the goals described in this section.
Note, however, that RDDL or a document like it, is no more
universally correct than any other type of representation.
Namespace developers should give careful consideration to choosing
the most appropriate format for their application, keeping in mind
that both human- and machine-readable information is useful.</div>
</div>
</div>

<div class="section">
<h2>4. <a shape="rect" name="interaction" id="interaction">Interaction</a></h2>

<p>This section will describe the architectural principles and
constraints regarding interactions between components, including
such topics as network protocols and interaction styles, along with
interactions between the Web as a system and the people that make
use of it. This will include the role of architectural styles, such
as REST and SOAP, and the impact of meta-architectures, such as Web
Services and the Semantic Web.</p>

<p class="prefix">Good practice</p>

<div class="practice"><a shape="rect" name="understand-rest" id="understand-rest">Understand REST:</a> Designers of protocols
SHOULD invest time in understanding the REST paradigm and consider
the role to which of its principles could guide their design: 
<ul>
<li>statelessness</li>

<li>clear assignment of roles to parties</li>

<li>uniform address space</li>

<li>limited, uniform set of verbs</li>
</ul>
</div>
</div>

<div class="section">
<h2>5. <a shape="rect" id="glossary" name="glossary">Glossary</a></h2>

<p><em>Glossary not yet completed</em>.</p>

<div class="section">
<h3>5.1. <a shape="rect" id="app-principles" name="app-principles">Principles, Constraints, etc.</a></h3>

<p><span class="ednote">Editor's note</span>: The TAG is still
experimenting with the categorization of points in this document.
This list is likely to change. It has also been suggested that the
categories clearly indicate their primary audience.</p>

<p>The important points of this document are categorized as
follows:</p>

<dl><dt><a shape="rect" name="cat-constraint" id="cat-constraint">Constraint</a></dt><dd>An architectural constraint is a restriction in behavior or
interaction within the system. Constraints may be imposed for
technical, policy, or other reasons.</dd><dt><a shape="rect" name="cat-design" id="cat-design">Design
Choice</a></dt><dd>In the design of the Web, some design choices, like the names
of the &lt;p&gt; and &lt;li&gt; elements in HTML, or the choice of
the colon character in URIs, are somewhat arbitrary; if
&lt;par&gt;, &lt;elt&gt;, or <code>*</code> had been chosen
instead, the large-scale result would, most likely, have been the
same. Other design choices are more fundamental; these are the
focus of this document.</dd><dt><a shape="rect" name="cat-practice" id="cat-practice">Good
practice</a></dt><dd>Good practice -- by software developers, content authors, site
managers, users, and specification writers -- increases the value
of the Web.</dd><dt><a shape="rect" name="cat-principle" id="cat-principle">Principle</a></dt><dd>An architectural principle is a fundamental law that applies to
a large number of situations and variables. Architectural
principles include "separation of concerns", "generic interface",
"self-descriptive syntax," "visible semantics," "network effect"
(Metcalfe's Law), and Amdahl's Law: "The speed of a system is
determined by its slowest component."</dd><dt><a shape="rect" name="cat-property" id="cat-property">Property</a></dt><dd>Architectural properties include both the functional properties
achieved by the system, such as accessibility and global scope, and
non-functional properties, such as relative ease of evolution,
reusability of components, efficiency, and dynamic
extensibility.</dd></dl>
</div>
</div>

<div class="section">
<h2>6. <a shape="rect" id="index" name="index">Index</a></h2>

<ul>
<li><a href="#def-authority">URI authority</a></li>

<li><a href="#def-URI-dereference">URI dereference</a></li>

<li><a href="#def-URI-persistence">URI persistence</a></li>

<li><a href="#def-URI-resolution">URI resolution</a></li>

<li><a href="#def-URI-scheme">URI scheme</a></li>

<li><a href="#def-uri">Uniform Resource Identifier (URI)</a></li>

<li><a href="#def-agent">agent</a></li>

<li><a href="#def-fragid">fragment identifier</a></li>

<li><a href="#def-link">link</a></li>

<li><a href="#def-representation">representation</a></li>

<li><a href="#def-representation-retrieval">representation
retrieval</a></li>

<li><a href="#def-resource">resource</a></li>

<li><a href="#def-safe-interaction">safe interaction</a></li>

<li><a href="#def-secondary-resource">secondary resource</a></li>

<li><a href="#def-unsafe-interaction">unsafe interaction</a></li>
</ul>

<!-- Generated -->
</div>

<div class="section">
<h2>7. <a shape="rect" id="refs" name="refs">References</a></h2>

<div class="section">
<h3>7.1. <a shape="rect" name="normative" id="normative">Normative
References</a></h3>

<p><span class="ednote">Editor's note</span>: The usage of a
normative reference in this document needs clarification.</p>

<dl><dt><a shape="rect" name="IANASchemes" id="IANASchemes">IANASchemes</a></dt><dd>IANA's <a shape="rect" href="http://www.iana.org/assignments/uri-schemes">online registry
of URI Schemes</a> is available at
http://www.iana.org/assignments/uri-schemes.</dd><dd><a shape="rect" href="http://www.w3.org/Addressing/schemes">Dan
Connolly's list of URI schemes</a> is a useful resource for finding
out which references define various URI schemes.</dd><dt><a shape="rect" name="IANAMIME" id="IANAMIME">IANAMIME</a></dt><dd>IANA's <a shape="rect" href="http://www.iana.org/assignments/media-types/index.html">online
registry of MIME types</a> is available at
http://www.iana.org/assignments/media-types/index.html.</dd><dt><a shape="rect" name="RFC2045" id="RFC2045">RFC2045</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045: Multipurpose
Internet Mail Extensions (MIME) Part One: Format of Internet
Message Bodies</a>", N. Freed, N. Borenstein, November 1996.
Available at http://www.ietf.org/rfc/rfc2045.txt.</dd><dt><a shape="rect" name="RFC2046" id="RFC2046">RFC2046</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc2046.txt">RFC 2046: Multipurpose
Internet Mail Extensions (MIME) Part Two: Media Types</a>", N.
Freed, N. Borenstein, November 1996. Available at
http://www.ietf.org/rfc/rfc2046.txt.</dd><dt><a shape="rect" name="RFC2119" id="RFC2119">RFC2119</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc2119.txt">RFC 2119: Key words for
use in RFCs to Indicate Requirement Levels</a>", S. Bradner, March
1997. Available at http://www.ietf.org/rfc/rfc2119.txt.</dd><dt><a shape="rect" name="URI" id="URI">URI</a></dt><dd>"Uniform Resource Identifiers (URI): Generic Syntax" (T.
Berners-Lee, R. Fielding, L. Masinter, Eds.) is currently being
revised. The IETF Internet Draft <a shape="rect" href="http://www.apache.org/%7Efielding/uri/rev-2002/rfc2396bis.html">
draft-fielding-uri-rfc2396bis-03</a> is expected to obsolete <a shape="rect" href="http://www.ietf.org/rfc/rfc2396.txt">RFC
2396</a>, which is the current URI standard. "Architecture of the
World Wide Web" uses the concepts and terms defined by
draft-fielding-uri-rfc2396bis-03, preferring them to those defined
RFC 2396. The TAG is tracking the evolution of
draft-fielding-uri-rfc2396bis-03.</dd><dt><a shape="rect" name="RFC2616" id="RFC2616">RFC2616</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616: Hypertext
Transfer Protocol -- HTTP/1.1</a>", J. Gettys, J. Mogul, H.
Frystyk, L. Masinter, P. Leach, T. Berners-Lee, June 1999.
Available at http://www.ietf.org/rfc/rfc2616.txt.</dd><dt><a shape="rect" name="RFC2717" id="RFC2717">RFC2717</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc2717.txt">Registration Procedures
for URL Scheme Names</a>", R. Petke, I. King, November 1999.
Available at http://www.ietf.org/rfc/rfc2717.txt.</dd></dl>
</div>

<div class="section">
<h3>7.2. <a shape="rect" name="archspecs" id="archspecs">Architectural Specifications</a></h3>

<dl><dt><a shape="rect" name="ATAG10" id="ATAG10">ATAG10</a></dt><dd><a shape="rect" href="http://www.w3.org/TR/2000/REC-ATAG10-20000203/">"Authoring
Tool Accessibility Guidelines 1.0,"</a> J. Treviranus, C.
McCathieNevile, I. Jacobs, and J. Richards, eds., 3 February 2000.
This W3C Recommendation is
http://www.w3.org/TR/2000/REC-ATAG10-20000203/.</dd><dt><a shape="rect" name="CHARMOD" id="CHARMOD">CHARMOD</a></dt><dd><a shape="rect" href="http://www.w3.org/TR/2002/WD-charmod-20020430/">"Character
Model for the World Wide Web,"</a> M. Dürst and F. Yergeau,
eds., 30 April 2002. This W3C Working Draft is
http://www.w3.org/TR/2002/WD-charmod-20020430/. The <a shape="rect" href="http://www.w3.org/TR/charmod/">latest version</a> is
available at http://www.w3.org/TR/charmod/.</dd><dt><a shape="rect" name="DIPRINCIPLES" id="DIPRINCIPLES">DIPRINCIPLES</a></dt><dd><a shape="rect" href="http://www.w3.org/TR/2001/WD-di-princ-20010918/">"Device
Independent Principles,"</a> R. Gimson, Ed., 18 September 2001.
This W3C Working Draft is
http://www.w3.org/TR/2001/WD-di-princ-20010918/. The <a shape="rect" href="http://www.w3.org/TR/di-princ/">latest
version</a> is available at http://www.w3.org/TR/di-princ/.</dd><dt><a shape="rect" name="Fielding" id="Fielding">Fielding</a></dt><dd>"<a shape="rect" href="http://www.ics.uci.edu/%7Efielding/pubs/webarch_icse2000.pdf">Principled
Design of the Modern Web Architecture</a>", R.T. Fielding and R.N.
Taylor, UC Irvine. In Proceedings of the 2000 International
Conference on Software Engineering (ICSE 2000), Limerick, Ireland,
June 2000, pp. 407-416. This document is available at
http://www.ics.uci.edu/~fielding/pubs/webarch_icse2000.pdf.</dd><dt><a shape="rect" name="RFC1958" id="RFC1958">RFC1958</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc1958.txt">RFC 1958: Architectural
Principles of the Internet</a>", B. Carpenter, June 1996. Available
at http://www.ietf.org/rfc/rfc1958.txt.</dd><dt><a shape="rect" name="QA" id="QA">QA</a></dt><dd><a shape="rect" href="http://www.w3.org/TR/2003/WD-qaframe-spec-20030210/">"QA
Framework: Specification Guidelines,"</a> D. Hazaël-Massieux,
L. Henderson, L. Rosenthal, D. Dimitriadis, K. Gavrylyuk, eds., 10
February 2003.This W3C Working Draft is
http://www.w3.org/TR/2003/WD-qaframe-spec-20030210/ The <a shape="rect" href="http://www.w3.org/TR/qaframe-spec/">latest
version</a> is available at
http://www.w3.org/TR/qaframe-spec/.</dd><dt><a shape="rect" name="UAAG10" id="UAAG10">UAAG10</a></dt><dd><a shape="rect" href="http://www.w3.org/TR/2002/REC-UAAG10-20021217/">"User Agent
Accessibility Guidelines 1.0,"</a> I. Jacobs, J. Gunderson, E.
Hansen, eds., 17 December 2002. This W3C Recommendation is
http://www.w3.org/TR/2002/REC-UAAG10-20021217/.</dd><dt><a shape="rect" name="WCAG10" id="WCAG10">WCAG10</a></dt><dd><a shape="rect" href="http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/">"Web
Content Accessibility Guidelines 1.0,"</a> W. Chisholm, G.
Vanderheiden, and I. Jacobs, eds., 5 May 1999. This W3C
Recommendation is
http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/.</dd><dt><a shape="rect" name="WSA" id="WSA">WSA</a></dt><dd><a shape="rect" href="http://www.w3.org/TR/2003/WD-ws-arch-20030514/">"Web Services
Architecture,"</a> D. Booth, M. Champion, C. Ferris, F. McCabe, E.
Newcomer, D. Orchard eds., 14 May 2003. This W3C Working Draft is
http://www.w3.org/TR/2003/WD-ws-arch-20030514/. The <a shape="rect" href="http://www.w3.org/TR/ws-arch/">latest version</a> of this
document is available at http://www.w3.org/TR/ws-arch/.</dd><dt><a shape="rect" name="XAG" id="XAG">XAG</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2002/WD-xag-20021003">XML Accessibility
Guidelines</a>", D. Dardailler, S. Palmer, C. McCathieNevile, 3
October 2002. This W3C Working Draft is
http://www.w3.org/TR/2002/WD-xag-20021003. The <a shape="rect" href="http://www.w3.org/TR/xag">latest version</a> is available at
http://www.w3.org/TR/xag.</dd></dl>
</div>

<div class="section">
<h3>7.3. <a shape="rect" name="informative" id="informative">Non-Normative References</a></h3>

<dl><dt><a shape="rect" name="Axioms" id="Axioms">Axioms</a></dt><dd>"<a shape="rect" href="http://www.w3.org/DesignIssues/Axioms">Universal Resource
Identifiers - Axioms of Web Architecture</a>", T. Berners-Lee,
living document dated December 1996. Available at
http://www.w3.org/DesignIssues/Axioms.</dd><dt><a shape="rect" name="Cool" id="Cool">Cool</a></dt><dd>"<a shape="rect" href="http://www.w3.org/Provider/Style/URI.html">Cool URIs don't
change</a>" T. Berners-Lee, W3C, 1998 Available at
http://www.w3.org/Provider/Style/URI.</dd><dt>CSS2</dt><dd>"<a shape="rect" href="http://www.w3.org/TR/1998/REC-CSS2-19980512/">Cascading Style
Sheets, level 2</a>", B. Bos, H. Lie, C. Lilley, I. Jacobs, 12 May
1998. This W3C Recommendation is available at
http://www.w3.org/TR/1998/REC-CSS2-19980512/.</dd><dt><a shape="rect" name="DAMLOIL" id="DAMLOIL">DAMLOIL</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2001/NOTE-daml+oil-reference-20011218">DAML+OIL
(March 2001) Reference Description</a>", D. Connolly, F. van
Harmelen, I. Horrocks, D. L. McGuinness, P. F. Patel-Schneider, 18
Dec 2001. This W3C Note is available at
http://www.w3.org/TR/2001/NOTE-daml+oil-reference-20011218.</dd><dt><a shape="rect" name="Eng90" id="Eng90">Eng90</a></dt><dd>"<a shape="rect" href="http://www.bootstrap.org/augment/AUGMENT/132082.html">Knowledge-Domain
Interoperability and an Open Hyperdocument System</a>", D. C.
Engelbart, June 1990.</dd><dt><a shape="rect" name="Fragments" id="Fragments">Fragments</a></dt><dd>"<a shape="rect" href="http://www.w3.org/DesignIssues/Fragment">Fragment Identifiers
on URIs</a>", T. Berners-Lee, living document dated April 1997.
Available at http://www.w3.org/DesignIssues/Fragment.</dd><dt><a shape="rect" name="HTML40" id="HTML40">HTML40</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/1999/REC-html401-19991224/">HTML 4.01
Specification</a>", D. Raggett, A. Le Hors, I. Jacobs, 24 December
1999. This W3C Recommendation is available at
http://www.w3.org/TR/1999/REC-html401-19991224/.</dd><dt><a shape="rect" name="IANAICP1" id="IANAICP1">IANAICP1</a></dt><dd>IANA's <a shape="rect" href="http://www.icann.org/icp/icp-1.htm">ICP-1: Internet Domain
Name System Structure and Delegation (ccTLD Administration and
Delegation)</a> is available at
http://www.icann.org/icp/icp-1.htm.</dd><dd><a shape="rect" href="http://www.w3.org/Addressing/schemes">Dan
Connolly's list of URI schemes</a> is a useful resource for finding
out which references define various URI schemes.</dd><dt><a shape="rect" name="IETFXML" id="IETFXML">IETFXML</a></dt><dd>IETF "<a shape="rect" href="http://www.imc.org/ietf-xml-use/xml-guidelines-07.txt">Guidelines
For The Use of XML in IETF Protocols</a>," S. Hollenbeck, M. Rose,
L. Masinter, eds., 2 November 2002. This IETF Internet Draft is
available at http://www.imc.org/ietf-xml-use/xml-guidelines-07.txt.
If this document is no longer available, refer to the <a shape="rect" href="http://www.imc.org/ietf-xml-use/index.html">ietf-xml-use
mailing list</a>.</dd><dt><a shape="rect" name="IRI" id="IRI">IRI</a></dt><dd>IETF "<a shape="rect" href="http://www.w3.org/International/iri-edit/draft-duerst-iri.html">
Internationalized Resource Identifiers (IRIs)"</a>, M. Duerst, M.
Suignard, Nov 2002. This IETF Internet Draft is available at
http://www.w3.org/International/iri-edit/draft-duerst-iri.html. If
this document is no longer available, refer to the home page for <a shape="rect" href="http://www.w3.org/International/iri-edit/">Editing
'Internationalized Resource Identifiers (IRIs)'</a>.</dd><dt><a shape="rect" name="OWL10" id="OWL10">OWL10</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2002/WD-owl-ref-20021112/">Web Ontology
Language (OWL) Reference Version 1.0</a>", M. Dean, D. Connolly, F.
van Harmelen, J. Hendler, I. Horrocks, D. L. McGuinness, P. F.
Patel-Schneider, L. A. Stein, eds., 12 Nov 2002. This W3C Working
Draft is available at
http://www.w3.org/TR/2002/WD-owl-ref-20021112/.</dd><dt><a shape="rect" name="P3P10" id="P3P10">P3P10</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2002/REC-P3P-20020416/">The Platform for
Privacy Preferences 1.0 (P3P1.0) Specification</a>", M. Marchiori,
ed., 16 April 2002. This W3C Recommendation is available at
http://www.w3.org/TR/2002/REC-P3P-20020416/.</dd><dt><a shape="rect" name="RDDL" id="RDDL">RDDL</a></dt><dd>"<a shape="rect" href="http://www.tbray.org/tag/rddl/rddl3.html">Resource Directory
Description Language (RDDL)</a>", J. Borden, T. Bray, eds., 14
February 2003. This document is available at
http://www.tbray.org/tag/rddl/rddl3.html.</dd><dt><a shape="rect" name="RDF10" id="RDF10">RDF10</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/">Resource
Description Framework (RDF) Model and Syntax Specification</a>", O.
Lassila, R. R. Swick, eds., 22 February 1999. This W3C
Recommendation is available at
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/.</dd><dt><a shape="rect" name="REST" id="REST">REST</a></dt><dd>"<a shape="rect" href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm">
Representational State Transfer (REST)</a>", Chapter 5 of
"Architectural Styles and the Design of Network-based Software
Architectures", Doctoral Thesis of R. T. Fielding, 2000. Available
at
http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm.</dd><dt><a shape="rect" name="RFC2141" id="RFC2141">RFC2141</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc2141.txt">RFC 2141: URN
Syntax</a>", R. Moats, May 1997. Available at
http://www.ietf.org/rfc/rfc2141.txt.</dd><dt><a shape="rect" name="RFC2718" id="RFC2718">RFC2718</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc2718.txt">Guidelines for new URL
Schemes</a>", L. Masinter, H. Alvestrand, D. Zigmond, R. Petke,
November 1999. Available at:
http://www.ietf.org/rfc/rfc2718.txt.</dd><dt><a shape="rect" name="RFC3023" id="RFC3023">RFC3023</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc3023.txt">RFC 3023: XML Media
Types</a>", M. Murata, S. St. Laurent, D. Kohn, January 2001.
Available at: http://www.rfc-editor.org/rfc/rfc3023.txt</dd><dt><a shape="rect" name="RFC3236" id="RFC3236">RFC3236</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc3236.txt">RFC 3236: The
'application/xhtml+xml' Media Type</a>", M. Baker, P. Stark,
January 2002. Available at:
http://www.rfc-editor.org/rfc/rfc3236.txt</dd><dt><a shape="rect" name="RFC3401" id="RFC3401">RFC3401</a></dt><dd>IETF "<a shape="rect" href="http://www.ietf.org/rfc/rfc3401.txt">RFC 3401: Dynamic
Delegation Discovery System (DDDS) Part One: The Comprehensive
DDDS</a>", M. Mealing, October 2002. Available at:
http://www.rfc-editor.org/rfc/rfc3401.txt</dd><dt><a shape="rect" name="SVG10" id="SVG10">SVG10</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2003/REC-SVG11-20030114/">Scalable
Vector Graphics (SVG) 1.1 Specification</a>", J. Ferraiolo,
Fujisawa Jun, D. Jackson, eds., 14 January 2003. This W3C
Recommendation is available at
http://www.w3.org/TR/2003/REC-SVG11-20030114/.</dd><dt><a shape="rect" name="UniqueDNS" id="UniqueDNS">UniqueDNS</a></dt><dd>"<a shape="rect" href="http://www.icann.org/correspondence/iab-tech-comment-27sept99.htm">
IAB Technical Comment on the Unique DNS Root"</a>, B. Carpenter, 27
Sep 1999. Available at
http://www.icann.org/correspondence/iab-tech-comment-27sept99.htm.</dd><dt><a shape="rect" name="XHTML10" id="XHTML10">XHTML10</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2002/REC-xhtml1-20020801/">XHTML 1.0:
The Extensible HyperText Markup Language: A Reformulation of HTML 4
in XML 1.0</a>", S. Pemberton et al., 26 January 2000, revised 1
August 2002. Available at
http://www.w3.org/TR/2002/REC-xhtml1-20020801/.</dd><dt><a shape="rect" name="XLink10" id="XLink10">XLink10</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2001/REC-xlink-20010627/">XML Linking
Language (XLink) Version 1.0</a>", S. DeRose, E. Maler, D. Orchard,
27 June 2001. This W3C Recommendation is available at
http://www.w3.org/TR/2001/REC-xlink-20010627/.</dd><dt><a shape="rect" name="XML10" id="XML10">XML10</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2000/REC-xml-20001006">Extensible Markup
Language (XML) 1.0 (Second Edition)</a>", T. Bray, J. Paoli, C.M.
Sperberg-McQueen, E. Maler, 6 October 2000. This W3C Recommendation
is available at http://www.w3.org/TR/2000/REC-xml-20001006.</dd><dt><a shape="rect" name="XMLNS" id="XMLNS">XMLNS</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/1999/REC-xml-names-19990114/">Namespaces
in XML</a>", T. Bray, D. Hollander, A. Layman, 14 Jan 1999. This
W3C Recommendation is available at
http://www.w3.org/TR/1999/REC-xml-names-19990114/.</dd><dt><a shape="rect" name="XPTRFR" id="XPTRFR">XPTRFR</a></dt><dd>"<a shape="rect" href="http://www.w3.org/TR/2003/REC-xptr-framework-20030325/">XPointer
Framework</a>", P. Grosso, E. Maler, J. Marsh, N. Walsh, eds., 25
March 2003. This W3C Recommendation is available at
http://www.w3.org/TR/2003/REC-xptr-framework-20030325/.</dd><dt><a shape="rect" name="W3CPROCESS" id="W3CPROCESS">W3CPROCESS</a></dt><dd>"<a shape="rect" href="http://www.w3.org/Consortium/Process-20010719/">W3C Process
Document</a>", 19 July 2001 Version. Available at
http://www.w3.org/Consortium/Process-20010719/.</dd></dl>
</div>
</div>

<div class="section">
<h2 class="appendix">8. <a shape="rect" name="appendix-notes" id="appendix-notes">End Notes</a></h2>

<ol>
<li><a id="smtp1" name="smtp1"></a>@@Text here on why SMTP part of
Web@@ (<a href="#note1">Note 1 context.</a>)</li>

<li><a id="uris-and-protocols" name="uris-and-protocols"></a>Although many URI schemes are named
after protocols, this does not imply that use of such a URI will
result in access to the resource via the named protocol. When a URI
is used to retrieve a representation of a resource, that access
might be through gateways, proxies, caches, and name resolution
services that are independent of the protocol associated with the
scheme name, and the resolution of some URIs may require the use of
more than one protocol (e.g., both DNS and HTTP are typically used
to access an "http" URI's origin server when a representation isn't
found in a local cache). Other protocols than HTTP may be used to
interact with a resource identified by an HTTP URI. (<a href="#note2">Note 2 context.</a>)</li>

<li><a id="note-use-uris" name="note-use-uris"></a>This principle
dates back at least as far as Douglas Engelbart's seminal work on
open hypertext systems; see section <a shape="rect" href="http://www.bootstrap.org/augment/AUGMENT/132082.html#11K">Every
Object Addressable</a> in [<a shape="rect" href="#Eng90">Eng90</a>]. (<a href="#note3">Note 3
context.</a>)</li>

<li><a id="whentouseget" name="whentouseget"></a>See the TAG
finding <cite>"<a shape="rect" href="http://www.w3.org/2001/tag/doc/get7">URIs, Addressability,
and the use of HTTP GET</a>"</cite> for some details about the
interaction of this principle in HTTP application design. (<a href="#note4">Note 4 context.</a>)</li>

<li><a id="note-cool-uri-title" name="note-cool-uri-title"></a>The
title is somewhat misleading. It's not the URIs that change, it's
what they identify. (<a href="#note5">Note 5 context.</a>)</li>
</ol>
</div>

<div class="section">
<h2>9. <a shape="rect" name="acks" id="acks">Acknowledgments</a></h2>

<p>The authors of this document are the participants of W3C's
Technical Architecture Group: Tim Berners-Lee (Chair, W3C), Tim
Bray (Antarctica Systems), Dan Connolly (W3C), Paul Cotton
(Microsoft), Roy Fielding (Day Software), Chris Lilley (W3C), David
Orchard (BEA Systems), Norman Walsh (Sun), and Stuart Williams
(Hewlett-Packard).</p>

<p>The TAG thanks people for their thoughtful contributions on the
TAG's public mailing list, www-tag (<a shape="rect" href="http://lists.w3.org/Archives/Public/www-tag/">archive</a>).</p>
</div>
</body></html>