<?xml version="1.0" encoding="UTF-8"?>
<essay xml:lang="en" version="lillet" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:gal="http://norman.walsh.name/rdf/gallery#">
<info>
    
    
    
    
    
    
    
    
    
<title>On the range of http: URIs</title><biblioid class="uri">http://norman.walsh.name/2005/06/19/httpRange-14</biblioid>
<volumenum>8</volumenum>
<issuenum>94</issuenum>
<pubdate>2005-06-19T15:50:54-04:00</pubdate>
<date>$Date: 2005-09-11 10:27:02 -0400 (Sun, 11 Sep 2005) $</date>
<author>
      <personname>
<firstname>Norman</firstname>
	<surname>Walsh</surname>
</personname>
    </author>
<copyright>
      <year>2005</year>
      <holder>Norman Walsh</holder>
    </copyright>
<abstract>
<para>A compromise has been reached, at least among those of us on the TAG.
I hope the larger community will accept the compromise as well.</para>
</abstract>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#TAG"/>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#TheWeb"/>
</info>

<epigraph>
<attribution>
      <personname>
	<firstname>T. E.</firstname>
<surname>Hulme</surname>
      </personname>
    </attribution>
<para xml:id="p2">Language is by its very nature a
communal thing; that is, it expresses never the exact thing but a
compromise—that which is common to you, me, and everybody.</para>
</epigraph>

<para xml:id="p1">Records show that
<link xlink:href="http://www.w3.org/2001/tag/issues.html#httpRange-14">httpRange-14</link> 
was raised to
<link xlink:href="http://www.w3.org/2001/tag/">the TAG</link>
on 25 March 2002. We've been debating its resolution for more than three years.
I will not attempt to recapitulate that debate in any
detail; your search engine of choice will no doubt lead you to it.
Suffice it to say that some folks think
<uri>http://example.org/some/path</uri> <emphasis>must</emphasis> identify
“a document” (what the
<link xlink:href="http://www.w3.org/TR/webarch/">AWWW</link> calls
an “<link xlink:href="http://www.w3.org/TR/webarch/#def-information-resource">information resource</link>”)
and some folks think it can identify anything at all.</para>

<para xml:id="p3">These world views are not compatible. We've gone around and
around and around searching for a compromise.
And at last, we have found one.</para>

<para xml:id="p4">Remember: this is a compromise. What's needed here is something
that everyone can live with, not something that necessarily makes
everyone happy. Before you cry foul, if you're inclined to do so,
consider carefully whether you think any better compromise is possible.
Personally, I don't.</para>

<para xml:id="p5">So here it is. Given an http: URI without a fragment identifier,
<uri>http://example.org/some/path</uri>, you can't tell if it's an information
resource or something more general. That's ok, given
<uri>http://example.org/some/path#fragid</uri>, you can't tell what that
is either. Maybe that's a hole in the web architecture, maybe it
isn't, but this compromise doesn't introduce that problem. The
bottom line is, if you haven't gone off and retrieved it
yourself, maybe you believe what someone tells you about the URI and maybe
you don't.</para>

<para xml:id="p6">Let's say you want to check, so you go out and attempt to dereference
the URI:</para>

<variablelist>
<?dbfo list-presentation="blocks"?>
<varlistentry>
<term>If you get back <code>200 OK</code>:</term>
<listitem>
<para xml:id="p7">The resource <emphasis>is</emphasis> an information resource.
That means it isn't a car or a person or an idea.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If you get back <code>303 See Other</code>:</term>
<listitem>
<para xml:id="p8">The resource could be an information resource or it could be
something more general. Maybe it is a car or a person or an idea, but
maybe it's just a web page too.
Hopefully the “see other” thing will help you
figure that out.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>If you get back <code>404 Not Found</code>:</term>
<listitem>
<para xml:id="p9">The nature of the resource is unclear. You haven't learned anything.
You don't learn anything for any of the other 4xx errors either.</para>
</listitem>
</varlistentry>
</variablelist>

<para xml:id="p10">This compromise allows vocabularies (like
<link xlink:href="http://www.dublincore.org/">Dublin Core</link>,
<link xlink:href="http://www.foaf-project.org/">FOAF</link>, and
<link xlink:href="http://www.xmlns.com/wordnet/1.6/">Wordnet</link>)
to continue to use “slash” instead of “hash” for pragmatic reasons.
It also preserves the common understanding that if you dereference a URI
and you get back a document, that document is in some significant sense
the thing you were attempting to get. At the same time, it allows you to
use any URI you want for any resource you want, as long as you are willing
to take some care in how you serve up representations for it.
</para>

</essay>

