W3C home > Mailing lists > Public > public-lod@w3.org > November 2010

Re: Is 303 really necessary?

From: David Booth <david@dbooth.org>
Date: Thu, 04 Nov 2010 18:10:02 -0400
To: "public-lod@w3.org" <public-lod@w3.org>
Cc: Ian Davis <me@iandavis.com>
Message-ID: <1288908602.23605.6378.camel@dbooth-laptop>
Hi Ian,

You raise two issues: 1. Whether there is need to use different URIs for
the toucan versus the toucan's web page; and if so (2) how to get from
one URI to the other.

ISSUE 1: Whether there is need to use different URIs for the toucan
versus the toucan's web page.  Some time ago I showed that there is no
*architectural* need to distinguish between the two:
(Sorry that page is a bit messy, but the reasoning is sound.)  The
essential reason is that the ambiguity created by using the same URI for
both is not fundamentally different from the ambiguity that *always*
exists when a resource is defined.  Ambiguity depends on the
application: a description (or "URI declaration") that is perfectly
unambiguous to one application may be ambiguous to another application
that needs to make finer distinctions.

For a fairly clear explanation of how ambiguity works in RDF semantics,
see "Resource Identity and Semantic Extensions: Making Sense of

However, given that many applications *will* wish to distinguish between
the toucan and its web page (or between the toucan's age and the age of
it's web page), it is a *good* *practice* to use a different URI for
each, as recommended, for example, in both the W3C Architecture of the
World Wide Web:
and in Cool URIs for the Semantic Web:

ISSUE 2: How to get from the URI of the toucan to the URI of the
toucan's web page.  You state that "we should link the thing to its
description using a triple rather than a network response code".  While
I agree 100% that a triple like 

  <Utoucan> :isDescribedBy <Upage> .

is far more efficient than a network response code, and *should* be used
when available, it is *also* useful to make the Utoucan URI
dereferenceable for those times when: (a) you have Utoucan but not that
triple; or (b) you wish to verify that Upage *is* the correct page for
the Utoucan declaration.

Also please note that if you mint your URIs using a 303-redirect service
such as http://thing-described-by.org/ then the extra network hop from
the 303 redirect could be optimized away by parsing the URI, as
described here:
For example, you would have the relationship:

           <http://example/toucan-page> .

so if the toucan were denoted by the URI
the you know that its description is located at
and there is no need to actually dereference the other URI.

Your blog post states:
> http://iand.posterous.com/is-303-really-necessary 
> There are several disadvantages to the 303 redirect 
> approach:
>  1. it requires an extra round-trip to the server for
>every request

Not if you use a 303-redirect service such as
http://thing-described-by.org/ and optimize them
away as described at

>  2. only one description can be linked from the
>toucan's URI

True, but that's far better than zero, if you only
have the toucan URI and it returns 404!

>  3. the user enters one URI into their browser and ends
>up at a different one, causing confusion when they want to
>reuse the URI of the toucan. Often they use the document
>URI by mistake.

Yes, that's a problem.  The trade-off is ambiguity.

>  4. its non-trivial to configure a web server to issue
>the correct redirect and only to do so for the things that
>are not information resources.

It is trivial to mint your URIs if you use a 303-redirect 
service such as

>  5. the server operator has to decide which resources
>are information resources and which are not without
>any precise guidance on how to distinguish the two (the
>official definition speaks of things whose "essential
>characteristics can be conveyed in a message"). I enumerate
>some examples here but it's easy to get to the absurd.

I addressed the server configuration issue above, but
the other issue -- how do I know whether something
should be considered an "information resource" or
not -- does cause confusion.  But in fact it boils
down to the inherent problem of ambiguity that will
never go away: what's ambiguous to one application
may be ambiguous to another application that requires 
finer distinctions.

>  6. it cannot be implemented using a static web server
>setup, i.e. one that serves static RDF documents

Agreed, but it can be done using a standard service, as
mentioned above.

>  7. it mixes layers of responsibility - there is
>information a user cannot know without making a network
>request and inspecting the metadata about the response
>to that request. When the web server ceases to exist then
>that information is lost.

I don't buy this argument.  While I agree that
explicit statements such as
  <Utoucan> :isDescribedBy <Upage> .

is helpful and should be provided, that does *not*
mean that links are not *also* useful.  Just because
links do not *always* work does not mean that they
are useless.

>  8. the 303 response can really only be used with
>things that aren't information resources. You can't serve
>up an information resource (such as a spreadsheet) and
>303 redirect to metadata about the spreadsheet at the
>same time.

Of course you can, but you do it the opposite way:

  UspreadsheetMetadata  --303--> Uspreadsheet

Or in RDF:

  <Uspreadsheet> :isDescribedBy <UspreadsheetMetadata> .

>  9. having to explain the reasoning behind using 303
>redirects to mainstream web developers simply reinforces
>the perception that the semantic web is baroque and
>irrelevant to their needs.

Yes, that is a problem.

David Booth, Ph.D.
Cleveland Clinic (contractor)

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.
Received on Thursday, 4 November 2010 22:10:32 UTC

This archive was generated by hypermail 2.4.0 : Thursday, 24 March 2022 20:29:51 UTC