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

Re: Is 303 really necessary?

From: Tim Berners-Lee <timbl@w3.org>
Date: Sat, 27 Nov 2010 15:24:53 -0500
Cc: William Waites <ww@styx.org>, Richard Light <richard@light.demon.co.uk>, Linked Data community <public-lod@w3.org>
Message-Id: <74FB7FE9-F2BB-4E79-A226-577747454814@w3.org>
To: Ian Davis <lists@iandavis.com>
Sorry, this thread has been around but the public-lod list 
snuck up on me without my getting on it, so I have missed
some of the fray!

I am happy to look at improvements in the current HTTPRange 14
architecture as I know that 303 is a pain.  But I don't want to break the web.

Looking at http://bnb.bibliographica.org/entry/GB8102507
the tabulator concludes that the thing identified by it
is both a book and an RDF document, and it shows me, by default,  the triples it contains
instead of the information about it, because that is what as a user I want.

It doesn't use this new idea from IanD of using the content-location header as
flag to indicate that the URI you used in the GET request may NOT be used
to refer to the document returned.

Suppose we go along with this new idea.

Then, it will end up with  (ignoring namespaces) in N3 the information
we get from that fetch includes:

<http://bnb.bibliographica.org/entry/GB8102507> a Book;
	contributor [name "Boyd, William"].

<http://bnb.bibliographica.org/entry/GB8102507.rdf> a DataDocument;
	foaf:primaryTopic <http://bnb.bibliographica.org/entry/GB8102507>.

Ok,  I understand the system. 

But if you introduce this as the architecture of the  web, 
then it applies all the time.  You can't chose when it applies and when it doesn't.

Now look at 


This dereferenced to give you a content-location of


What do we know then?

	we know we can use to refer to the image in its PNG version.
	we know nothing about.

Because the fetch returned a content-location header,
we are now not allowed to use that URI to refer to anything -- it could
after all refer to the Eiffel Tour, or the W3C as an organization
according to the new system.

Does this make sense?

If you look that up in a browser, you will see the image in the 
window and the URI in the title bar.
We in fact really expect that people SHOULD use the generic URI
to refer to the logo, not the .png URI, as people may need the
content negotiation, and we may introduce a new version in
a new graphics format some time.

So all across the web, people are, and should use the original URI
to refer to the image.  Tthey 
see something in the URI bar and a document (image, etc)
in the window and they assume rightly they can use that
URI to refer to that image.

The bookmarking system works like this.
Emailing a friend a URI of something you are looking at works like this.
Making a link to something you think it cool works like this.
Putting a image in your page someone else has in their page works like this.
The web works like this.

We can't make the semantic web work in a way that actually
leaves the web not working.

We can't leave the WWW working one way and the LOD web working another, as they are inextricably interconnected.

Now ....  Someone in the the thread somewhere at one point suggested a friendly
amendment to the original proposal, where a new status code
is sent for semantic web data being returned *about* the
object identified by the request URI, rather than information *in* it.
I think 208 was suggested, I.e, the next unused one.

With that modification, I can't see a snag.

- It is only used for data so old web browsers are not going to be seeing it
- The data world is young enough for us to slide it in, maybe, without too much
  harm to existing clients, which would all have to be recoded, but it might be worth it to 
relieve this tension.
- the rest of the web continue to use 200


Some headers fro URIs above:

$ curl -I  http://www.w3.org/2008/site/images/logo-w3c-mobile-lg
HTTP/1.1 200 OK
Date: Sat, 27 Nov 2010 19:21:50 GMT
Server: Apache/2
Content-Location: logo-w3c-mobile-lg.png
Vary: negotiate,accept
TCN: choice
Last-Modified: Sun, 25 Apr 2010 15:27:07 GMT
ETag: "11a9-485114b0e28c0;4876eed0c4800"
Accept-Ranges: bytes
Content-Length: 4521
Cache-Control: max-age=2592000
Expires: Mon, 27 Dec 2010 19:21:50 GMT
P3P: policyref="http://www.w3.org/2001/05/P3P/p3p.xml"
Connection: close
Content-Type: image/png; qs=0.7

This is odd -- doesn't support HEAD?

$ curl -I http://bnb.bibliographica.org/entry/GB8102507
HTTP/1.0 406 Not Acceptable
Date: Sat, 27 Nov 2010 19:29:24 GMT
Server: Apache/2.2.14 (Ubuntu)
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
X-Cache: MISS from localhost
X-Cache-Lookup: MISS from localhost:80
Via: 1.0 localhost (squid/3.0.STABLE19)
Connection: close

$ curl -I -H Accept:application/rdf+xml http://bnb.bibliographica.org/entry/GB8102507
HTTP/1.0 406 Not Acceptable

$ cwm http://bnb.bibliographica.org/entry/GB8102507 --no
          Warning: <ddc:Notation> is not a fragment! 
          Warning: <dc:ISO639-2> is not a fragment! 
          Warning: <ddc:Notation> is not a fragment! 

$ curl -v -H Accept:application/rdf+xml http://bnb.bibliographica.org/entry/GB8102507 > /dev/null
< HTTP/1.0 200 OK
< Date: Sat, 27 Nov 2010 19:36:26 GMT
< Server: Apache/2.2.14 (Ubuntu)
< Pragma: no-cache
< Cache-Control: no-cache
< Content-Location: GB8102507.rdf
< Content-Length: 5294
< Access-Control-Allow-Origin: *
< Content-Type: application/rdf+xml; charset=utf-8
< X-Cache: MISS from localhost
< X-Cache-Lookup: MISS from localhost:80
< Via: 1.0 localhost (squid/3.0.STABLE19)
< Connection: close
Received on Saturday, 27 November 2010 20:24:59 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:16:10 UTC