Re: Hash vs Slash in relation to the 303 vs 200 debate (was: Is 303 really necessary - demo)
On Sat, Nov 6, 2010 at 11:31 PM, Toby Inkster t...@g5n.co.uk wrote: Not necessarily. If you take your ex:isDescribedBy predicate and add that to a triple store where the non-Information-Resource resources are identified using hash URIs, then the SPARQL query is just: DESCRIBE uri ?res WHERE { ?res ex:isDescribedBy uri . } which needn't be very slow. I've done this myself but using foaf:primaryTopic and foaf:topic to link a document URI to all the resources that are needed to render it. The other downside of fragments is you can't say it exists but I have no description of it. #foo a rdfs:Resource . In which case you do have a description of it :) But point taken, this tautology would be enough. Cheers, Ian
Hash vs Slash in relation to the 303 vs 200 debate (was: Is 303 really necessary - demo)
On Fri, Nov 5, 2010 at 5:28 PM, Nathan nat...@webr3.org wrote: URI resolution is essentially: dereference( uri.toAbsolute() ); Which gives us the simplicity and semantic indirection which we need. Use frags, forget HTTP, know that uri#frag is never going to be a document (unless you explicitly say it is). On a practical level using frags can be inefficient when your linked data output is backed by a triple store. If you use a slash URI then generating the data for html/xml/turtle output is just a simple describe uri. For hash URIs you need to describe all the resources with a common prefix because the fragment is not sent by the browser with the request. That might mean a filter with a regex or string functions which will be more inefficient. If you pick a standard fragment such as #this, #it etc then you can revert to the simple describe so the inefficiency only arises when there are multiple arbitrary fragments per document URI. The other downside of fragments is you can't say it exists but I have no description of it. With standard slash URIs you can 303 to a 404 to say that. You can 404 on the slash itself to say the resource does not exist. With my proposal to use 2xx responses you can return 204 No Content to indicate the resource exists but no description is available. With slashes you can use 410 on an individual resource to indicate that it has gone forever. You can also do this with the one frag per doc approach although you are really saying the description document has gone and the user is left to imply the secondary resource has also gone. With multiple frags per doc (i.e. a lot of schemas) you can't say just one of those resources has gone forever. In summary: Slash with 303: hard static publishing, efficient dynamic, can ack existence without description Hash, one resource per doc: easy static publishing, efficient dynamic, can't ack existence without description Hash, many resources per doc (the typical schema case): easy static publishing, less efficient dynamic, can't ack existence without description Slash with 2xx: easy static publishing, efficient dynamic, can ack existence without description Ian
Re: Hash vs Slash in relation to the 303 vs 200 debate (was: Is 303 really necessary - demo)
On Sat, 6 Nov 2010 12:33:34 + Ian Davis li...@iandavis.com wrote: On a practical level using frags can be inefficient when your linked data output is backed by a triple store. If you use a slash URI then generating the data for html/xml/turtle output is just a simple describe uri. For hash URIs you need to describe all the resources with a common prefix because the fragment is not sent by the browser with the request. That might mean a filter with a regex or string functions which will be more inefficient. Not necessarily. If you take your ex:isDescribedBy predicate and add that to a triple store where the non-Information-Resource resources are identified using hash URIs, then the SPARQL query is just: DESCRIBE uri ?res WHERE { ?res ex:isDescribedBy uri . } which needn't be very slow. The other downside of fragments is you can't say it exists but I have no description of it. #foo a rdfs:Resource . -- Toby A Inkster mailto:m...@tobyinkster.co.uk http://tobyinkster.co.uk
Is 303 really necessary - demo
Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Here is the URI of a description of that toucan: http://iandavis.com/2010/303/toucan.rdf As you can see both these resources have distinct URIs. I created a new property http://vocab.org/desc/schema/description to link the toucan to its description. The schema for that property is here: http://vocab.org/desc/schema (BTW I looked at the powder describedBy property and it's clearly designed to point to one particular type of description, not a general RDF one. I also looked at http://ontologydesignpatterns.org/ont/web/irw.owl and didn't see anything suitable) Here is the URI Burner view of the toucan resource and of its description document: http://linkeddata.uriburner.com/about/html/http://iandavis.com/2010/303/toucan http://linkeddata.uriburner.com/about/html/http/iandavis.com/2010/303/toucan.rdf I'd like to use this demo to focus on the main thrust of my question: does this break the web and if so, how? Cheers, Ian P.S. I am not fully caught up on the other thread, so maybe someone has already produced this demo
Re: Is 303 really necessary - demo
Ian Davis wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Ian, where's the demo of /toucan#frag so everybody can see that you can use 200 OK *and* keep the graph clean? will you give it fair air time in the (non-)debate? will you show us a comparison of the two and benefits of each? does this break the web and if so, how? Of course it doesn't break the web, anybody who says that being HTTP friendly breaks the web is clearly wrong. Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document.
Re: Is 303 really necessary - demo
On Fri, Nov 5, 2010 at 12:37 PM, Nathan nat...@webr3.org wrote: Ian Davis wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Ian, where's the demo of /toucan#frag so everybody can see that you can use 200 OK *and* keep the graph clean? will you give it fair air time in the (non-)debate? will you show us a comparison of the two and benefits of each? does this break the web and if so, how? Of course it doesn't break the web, anybody who says that being HTTP friendly breaks the web is clearly wrong. Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. That assertion would be wrong if the response contained a Content-Location header pointing to the specific document resource. Cheers, Mike
Re: Is 303 really necessary - demo
Mike Kelly wrote: On Fri, Nov 5, 2010 at 12:37 PM, Nathan nat...@webr3.org wrote: Ian Davis wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Ian, where's the demo of /toucan#frag so everybody can see that you can use 200 OK *and* keep the graph clean? will you give it fair air time in the (non-)debate? will you show us a comparison of the two and benefits of each? does this break the web and if so, how? Of course it doesn't break the web, anybody who says that being HTTP friendly breaks the web is clearly wrong. Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. That assertion would be wrong if the response contained a Content-Location header pointing to the specific document resource. http://trac.tools.ietf.org/wg/httpbis/trac/ticket/154
Re: Is 303 really necessary - demo
I might be wrong but I dont like it much . Sindice would index it as 2 documents. http://iandavis.com/2010/303/toucan http://iandavis.com/2010/303/toucan.rdf i *really* would NOT want to different URLs resolving to the same thing thanks Giovanni On Fri, Nov 5, 2010 at 10:43 AM, Ian Davis m...@iandavis.com wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Here is the URI of a description of that toucan: http://iandavis.com/2010/303/toucan.rdf As you can see both these resources have distinct URIs. I created a new property http://vocab.org/desc/schema/description to link the toucan to its description. The schema for that property is here: http://vocab.org/desc/schema (BTW I looked at the powder describedBy property and it's clearly designed to point to one particular type of description, not a general RDF one. I also looked at http://ontologydesignpatterns.org/ont/web/irw.owl and didn't see anything suitable) Here is the URI Burner view of the toucan resource and of its description document: http://linkeddata.uriburner.com/about/html/http://iandavis.com/2010/303/toucan http://linkeddata.uriburner.com/about/html/http/iandavis.com/2010/303/toucan.rdf I'd like to use this demo to focus on the main thrust of my question: does this break the web and if so, how? Cheers, Ian P.S. I am not fully caught up on the other thread, so maybe someone has already produced this demo
Re: Is 303 really necessary - demo
Hi, On 5 November 2010 13:57, Giovanni Tummarello giovanni.tummare...@deri.org wrote: I might be wrong but I dont like it much . Sindice would index it as 2 documents. http://iandavis.com/2010/303/toucan http://iandavis.com/2010/303/toucan.rdf Even though one returns a Content-Location? Cheers, L. -- Leigh Dodds Programme Manager, Talis Platform Talis leigh.do...@talis.com http://www.talis.com
Re: Is 303 really necessary - demo
On Fri, Nov 5, 2010 at 1:57 PM, Giovanni Tummarello giovanni.tummare...@deri.org wrote: I might be wrong but I dont like it much . Sindice would index it as 2 documents. http://iandavis.com/2010/303/toucan http://iandavis.com/2010/303/toucan.rdf i *really* would NOT want to different URLs resolving to the same thing thanks Giovanni As long as the first response provides an appropriate Content-Location, they should be taken to share the same URL http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-12#page-14 Cheers, Mike
Re: Is 303 really necessary - demo
On Fri, Nov 5, 2010 at 1:53 PM, Nathan nat...@webr3.org wrote: Mike Kelly wrote: On Fri, Nov 5, 2010 at 12:37 PM, Nathan nat...@webr3.org wrote: Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. That assertion would be wrong if the response contained a Content-Location header pointing to the specific document resource. http://trac.tools.ietf.org/wg/httpbis/trac/ticket/154 Sorry, I don't follow. How is that relevant here? Cheers, Mike
Re: Is 303 really necessary - demo
Ah, it's magic in the header: curl -i http://iandavis.com/2010/303/toucan HTTP/1.1 200 OK Date: Fri, 05 Nov 2010 14:22:40 GMT Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch mod_wsgi/1.3 Python/2.5.2 Content-Location: toucan.rdf Vary: negotiate TCN: choice Last-Modified: Fri, 05 Nov 2010 09:24:27 GMT ETag: 264186-403-4944ad745a8c0;4944ad754eb00 Accept-Ranges: bytes Content-Length: 1027 Content-Type: application/rdf+xml; qs=0.9 Notice the Content-Location field. curl -i http://iandavis.com/2010/303/toucan.rdf HTTP/1.1 200 OK Date: Fri, 05 Nov 2010 14:22:53 GMT Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch mod_wsgi/1.3 Python/2.5.2 Last-Modified: Fri, 05 Nov 2010 09:24:27 GMT ETag: 264186-403-4944ad745a8c0 Accept-Ranges: bytes Content-Length: 1027 Content-Type: application/rdf+xml; qs=0.9 Well, I'd be ok with this, as it lowers the roundtrip problems of 303. But might take a long time till all tools support it and don't get confused. A bit offtopic: I'd rather see people putting information about a responsible sparql endpoint into the play. If you have that you can do a lot more / wiser things than crawling data which is incomplete anyhow (if you dereference a URI you can't expect to get all triples back, which are relevant for you, try http://dbpedia.org/resource/United_States (not the HTML page, but rdf+xml content negotiation and see that you don't even get a label but only incoming links)). Jörn
Re: Is 303 really necessary - demo
Hi, On 5 November 2010 12:37, Nathan nat...@webr3.org wrote: Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. You keep reiterating this, but I'm still not clear on what you're saying. 1. It seems like you're saying that a status code licenses someone to infer an rdf:type for a resource (in what vocab I'm not sure, but it looks like you're saying that). Someone is obviously entitled to do that. Not sure I can think of a use case, do you have one? 2. It also seems like you're suggesting someone is actually doing that. Or maybe that it's you're expecting someone will start doing it? 3. It also seems like you're suggesting that if someone does do that, then it breaks the (semantic) web for the rest of us. Which it won't, unless you blithely trust all data everywhere or don't care to check your facts Cheers, L. -- Leigh Dodds Programme Manager, Talis Platform Talis leigh.do...@talis.com http://www.talis.com
Re: Is 303 really necessary - demo
On Fri, Nov 5, 2010 at 1:53 PM, Jörn Hees j_h...@cs.uni-kl.de wrote: If I GET http://iandavis.com/2010/303/toucan i retrieve a document (I'll call this A) with rdf statements. This is not correct. You receive a response with an entity: the representation. (Here entity is used in the rfc2616 sense) If I GET http://iandavis.com/2010/303/toucan.rdf i retrieve another document (I'll call this B), which in this case happens to have the same content as A, but could be different, can't it? I could return a different entity, but I wouldn't recommend it. You might want to if you link to multiple descriptions of the resource. Now: how can I say that I don't like A without saying that I don't like http://iandavis.com/2010/303/toucan ? If your answer is going to be say you don't like B again, please explain what happens if A and B don't have the same content. How do you currently refer to the entity transmitted in a HTTP response? You don't - they have no names. How do you say you are offended by something written on twitter's home page when the entity it sends changes every second. Is there some magic involved saying that any ?s with a ?s http://vocab.org/desc/schema/description ?d . is not a document but a real-world object? No. But the description document and the entity returned from the request to /toucan says it's a dbp:Toucan. I would put more credence in explicit statements than implicit ones. Or is there some magic involved that if toucan and toucan.rdf give you the same content that one of them is a real-world object then? No. If not, how can I find out that http://iandavis.com/2010/303/toucan is one and A is only one of its descriptions? Look at the data - it states it clearly. Jörn PS: is there a summary of this discussion somewhere? I'm afraid not, it's only been going a few hours. I haven't seen anything that fundamentally challenges the idea yet, i.e. something that would make me rewrite it. I am seeing several responses arguing that it confuses the thing with the document but I explicitly show how it doesn't in the blog post so I think that comes from people's default assumptions. There are some responses saying don't do that - use fragments instead, but that's no help for the millions of resources already deployed with slash uris and the many people who prefer that style. Other responses have been like yours, seeking more clarity on the ideas. Ian
Re: Is 303 really necessary - demo
Thanks for the clarification. As I guess there are quite a lot of people who -- like me -- didn't notice this part of your suggestion I'll summarize it like this: You still want to include a Content-Location field in the header denoting that you're actually retrieving a document more precisely an entity from a different URI: http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7 So instead of going for 303 with Location field redirection you simply want to provide something with a 200 but tell the enduser hey, but actually you see something from ... here with the Content-Location field. For the toucan example see this parallel mail: http://lists.w3.org/Archives/Public/public-lod/2010Nov/0153.html Jörn PS: I'm out.
Re: Is 303 really necessary - demo
David Wood wrote: On Nov 5, 2010, at 08:37, Nathan wrote: Ian Davis wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Ian, where's the demo of /toucan#frag so everybody can see that you can use 200 OK *and* keep the graph clean? will you give it fair air time in the (non-)debate? will you show us a comparison of the two and benefits of each? does this break the web and if so, how? Of course it doesn't break the web, anybody who says that being HTTP friendly breaks the web is clearly wrong. Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. Agreed. That's my problem with this approach. Sadly your proposed 210 still has it, the true problem isn't a status code thing, it's an if I can GET it, it's a document, hence the earlier outlined problems with 303 as it stands, still the same problem. Best, Nathan
Re: Is 303 really necessary - demo
Mike Kelly wrote: On Fri, Nov 5, 2010 at 1:53 PM, Nathan nat...@webr3.org wrote: Mike Kelly wrote: On Fri, Nov 5, 2010 at 12:37 PM, Nathan nat...@webr3.org wrote: Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. That assertion would be wrong if the response contained a Content-Location header pointing to the specific document resource. http://trac.tools.ietf.org/wg/httpbis/trac/ticket/154 Sorry, I don't follow. How is that relevant here? I said, if you 200 OK to /toucan then it's a document. You said not if you include a Content-Location (The value of Content-Location also defines the base URI for the entity as per RFC-2616) So I pointed to the ticket that said that's been removed from HTTP-bis and I'd point you to: http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-12#section-6.7 For a GET or HEAD request, this is an indication that the effective request URI identifies a resource that is subject to content negotiation and the representation selected for this response can also be found at the identified URI. As in under HTTP-bis (which is to clarify RFC2616) then what you asserted is wrong and what I asserted is correct.. if I understood your point that is. Unless of course you're going down the it's a message, not a document, and the message payload is a representation of the requested resource route - in which case, meh that's the representation of the document, so still true. Any clarifications / corrections? Best, Nathan
Re: Is 303 really necessary - demo
On Fri, Nov 5, 2010 at 3:52 PM, Nathan nat...@webr3.org wrote: Mike Kelly wrote: On Fri, Nov 5, 2010 at 1:53 PM, Nathan nat...@webr3.org wrote: Mike Kelly wrote: On Fri, Nov 5, 2010 at 12:37 PM, Nathan nat...@webr3.org wrote: Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. That assertion would be wrong if the response contained a Content-Location header pointing to the specific document resource. http://trac.tools.ietf.org/wg/httpbis/trac/ticket/154 Sorry, I don't follow. How is that relevant here? I said, if you 200 OK to /toucan then it's a document. You said not if you include a Content-Location (The value of Content-Location also defines the base URI for the entity as per RFC-2616) So I pointed to the ticket that said that's been removed from HTTP-bis and I'd point you to: http://tools.ietf.org/html/draft-ietf-httpbis-p3-payload-12#section-6.7 For a GET or HEAD request, this is an indication that the effective request URI identifies a resource that is subject to content negotiation and the representation selected for this response can also be found at the identified URI. As in under HTTP-bis (which is to clarify RFC2616) then what you asserted is wrong and what I asserted is correct.. if I understood your point that is. Ok, you've omitted the previous sentence of that paragraph: If Content-Location is included in a response message and its value differs from the effective request URI, then the origin server is informing recipients that this representation has its own, presumably more specific, identifier. i.e. the /toucan resource is not document-specific, /toucan.rdf is. More of the same here: http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-12#page-14 If the response has a Content-Location header field, and that URI is not the same as the effective request URI, then the response asserts that its payload is a representation of the resource identified by the Content-Location URI. If a client wants to make a statement about the specific document then a response that includes a content-location is giving you the information necessary to do that correctly. It's complemented and further clarified in the entity body itself through something like isDescribedBy. Cheers, Mike
Re: Is 303 really necessary - demo
On Nov 5, 2010, at 11:42, Nathan nat...@webr3.org wrote: David Wood wrote: On Nov 5, 2010, at 08:37, Nathan wrote: Ian Davis wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Ian, where's the demo of /toucan#frag so everybody can see that you can use 200 OK *and* keep the graph clean? will you give it fair air time in the (non-)debate? will you show us a comparison of the two and benefits of each? does this break the web and if so, how? Of course it doesn't break the web, anybody who says that being HTTP friendly breaks the web is clearly wrong. Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. Agreed. That's my problem with this approach. Sadly your proposed 210 still has it, the true problem isn't a status code thing, it's an if I can GET it, it's a document, hence the earlier outlined problems with 303 as it stands, still the same problem. Hmm. I don't think that's so. If I can GET it *and it returns a 200*, it is a document (an information resource). Is that not so? At least, that is in accordance with http-range-14. The document statement would not apply to a new status code until such a statement was or was not made in a spec. Regards, Dave -- Sent from my iPhone Best, Nathan
Re: Is 303 really necessary - demo
David Wood wrote: On Nov 5, 2010, at 11:42, Nathan nat...@webr3.org wrote: David Wood wrote: On Nov 5, 2010, at 08:37, Nathan wrote: Ian Davis wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Ian, where's the demo of /toucan#frag so everybody can see that you can use 200 OK *and* keep the graph clean? will you give it fair air time in the (non-)debate? will you show us a comparison of the two and benefits of each? does this break the web and if so, how? Of course it doesn't break the web, anybody who says that being HTTP friendly breaks the web is clearly wrong. Wrong question, correct question is if I 200 OK will people think this is a document, to which the answer is yes. You're toucan is a :Document. Agreed. That's my problem with this approach. Sadly your proposed 210 still has it, the true problem isn't a status code thing, it's an if I can GET it, it's a document, hence the earlier outlined problems with 303 as it stands, still the same problem. Hmm. I don't think that's so. If I can GET it *and it returns a 200*, it is a document (an information resource). Is that not so? At least, that is in accordance with http-range-14. The document statement would not apply to a new status code until such a statement was or was not made in a spec. How's this then, if the response has a message-body with a media type, then it is a message with a media type - any better/clearer? don't think this is 200 specific.. Best, Nathan
Re: Is 303 really necessary - demo
Hi, I submitted both urls to sindice earlier. Both were indexed and have the same content. In the search results[1] one displays with title A Toucan, the other with title, A Description of a Toucan. http://sindice.com/search?q=toucan+domain%3Aiandavis.comqt=term Robert. On 05/11/10 09:43, Ian Davis wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Here is the URI of a description of that toucan: http://iandavis.com/2010/303/toucan.rdf As you can see both these resources have distinct URIs. I created a new property http://vocab.org/desc/schema/description to link the toucan to its description. The schema for that property is here: http://vocab.org/desc/schema (BTW I looked at the powder describedBy property and it's clearly designed to point to one particular type of description, not a general RDF one. I also looked at http://ontologydesignpatterns.org/ont/web/irw.owl and didn't see anything suitable) Here is the URI Burner view of the toucan resource and of its description document: http://linkeddata.uriburner.com/about/html/http://iandavis.com/2010/303/toucan http://linkeddata.uriburner.com/about/html/http/iandavis.com/2010/303/toucan.rdf I'd like to use this demo to focus on the main thrust of my question: does this break the web and if so, how? Cheers, Ian P.S. I am not fully caught up on the other thread, so maybe someone has already produced this demo -- Robert Fuller Research Associate Sindice Team DERI, Galway http://sindice.com/
Re: Is 303 really necessary - demo
On Fri, Nov 5, 2010 at 4:42 PM, Robert Fuller robert.ful...@deri.org wrote: I submitted both urls to sindice earlier. Both were indexed and have the same content. In the search results[1] one displays with title A Toucan, the other with title, A Description of a Toucan. http://sindice.com/search?q=toucan+domain%3Aiandavis.comqt=term So SIndice see them as distinct resources and doesn't concern itself with the lack of a 303 redirect? Ian
Re: Is 303 really necessary - demo
On 11/5/10 10:41 AM, Jörn Hees wrote: Ah, it's magic in the header: curl -i http://iandavis.com/2010/303/toucan HTTP/1.1 200 OK Date: Fri, 05 Nov 2010 14:22:40 GMT Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch mod_wsgi/1.3 Python/2.5.2 Content-Location: toucan.rdf Vary: negotiate TCN: choice Last-Modified: Fri, 05 Nov 2010 09:24:27 GMT ETag: 264186-403-4944ad745a8c0;4944ad754eb00 Accept-Ranges: bytes Content-Length: 1027 Content-Type: application/rdf+xml; qs=0.9 Notice the Content-Location field. Try: http://linkeddata.uriburner.com/about/html/http/iandavis.com/2010/303/toucan curl -i http://iandavis.com/2010/303/toucan.rdf HTTP/1.1 200 OK Date: Fri, 05 Nov 2010 14:22:53 GMT Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 PHP/5.2.4-2ubuntu5.10 with Suhosin-Patch mod_wsgi/1.3 Python/2.5.2 Last-Modified: Fri, 05 Nov 2010 09:24:27 GMT ETag: 264186-403-4944ad745a8c0 Accept-Ranges: bytes Content-Length: 1027 Content-Type: application/rdf+xml; qs=0.9 Well, I'd be ok with this, as it lowers the roundtrip problems of 303. But might take a long time till all tools support it and don't get confused. Of course not, we only have a handful of tools in the Linked Data realm. Implementing a new option should still be relatively cheap at this stage in the game. A bit offtopic: I'd rather see people putting information about a responsible sparql endpoint into the play. Do you mean the ability to discover On (Green), Busy (Amber), and Off (Red) re. SPARQL endpoints? This sort of thing is coming, absolutely critical for SPARQL-FED. If you have that you can do a lot more / wiser things than crawling data which is incomplete anyhow (if you dereference a URI you can't expect to get all triples back, which are relevant for you, try http://dbpedia.org/resource/United_States (not the HTML page, but rdf+xml content negotiation and see that you don't even get a label but only incoming links)). Jörn -- Regards, Kingsley Idehen President CEO OpenLink Software Web: http://www.openlinksw.com Weblog: http://www.openlinksw.com/blog/~kidehen Twitter/Identi.ca: kidehen
Re: Is 303 really necessary - demo
Le 05/11/2010 16:42, Nathan a écrit : [skip] Sadly your proposed 210 still has it, the true problem isn't a status code thing, it's an if I can GET it, it's a document, hence the earlier outlined problems with 303 as it stands, still the same problem. So, you are against hash URIs? Because if you can GET a hashless URI with 200 OK, then put a hash behind it and you can GET the resulting URI with a 200 OK too. According to httpRange-14, if the HTTP response code for a given URI is 2xx, then the URI denotes an information resource. Quote: a) If an http resource responds to a GET request with a 2xx response, then the resource identified by that URI is an information resource; GET http://liris.cnrs.fr/~azimmerm/antoine - 200 OK - it's a document! GET http://liris.cnrs.fr/~azimmerm/antoine#me - 200 OK - it's a document! GET http://liris.cnrs.fr/~azimmerm/antoine.rdf - 200 OK - it's a document! So your argument is moot since it is going against your own recommendation. I think that Ian's example with the Toucan is exactly the same as using hash URIs, that is, you have a different URI than the actual file URL for the thing but both the document's URL and the thing's URI are serving the same content. So, since Ian's idea is as much (or as little) deviant compared to httpRange-14, there are 2 solutions: everybody sticks strictly to 303, or we open up the options to 303 OR Hash-URIs OR Ian's solution. Additionally, having a supplementary code like David Wood suggests may help too. Regards, -- Antoine Zimmermann Researcher at: Laboratoire d'InfoRmatique en Image et Systèmes d'information Database Group 7 Avenue Jean Capelle 69621 Villeurbanne Cedex France Lecturer at: Institut National des Sciences Appliquées de Lyon 20 Avenue Albert Einstein 69621 Villeurbanne Cedex France antoine.zimmerm...@insa-lyon.fr http://zimmer.aprilfoolsreview.com/
Re: Is 303 really necessary - demo
Antoine Zimmermann wrote: Le 05/11/2010 16:42, Nathan a écrit : [skip] Sadly your proposed 210 still has it, the true problem isn't a status code thing, it's an if I can GET it, it's a document, hence the earlier outlined problems with 303 as it stands, still the same problem. So, you are against hash URIs? Because if you can GET a hashless URI with 200 OK, then put a hash behind it and you can GET the resulting URI with a 200 OK too. According to httpRange-14, if the HTTP response code for a given URI is 2xx, then the URI denotes an information resource. Quote: a) If an http resource responds to a GET request with a 2xx response, then the resource identified by that URI is an information resource; GET http://liris.cnrs.fr/~azimmerm/antoine - 200 OK - it's a document! GET http://liris.cnrs.fr/~azimmerm/antoine#me - 200 OK - it's a document! GET http://liris.cnrs.fr/~azimmerm/antoine.rdf - 200 OK - it's a document! So your argument is moot since it is going against your own recommendation. Did you check the HTTP request? #frag isn't included, it's chopped off before sending, those three requests resulted in the following 3 URIs being requested: http://liris.cnrs.fr/~azimmerm/antoine http://liris.cnrs.fr/~azimmerm/antoine http://liris.cnrs.fr/~azimmerm/antoine.rdf no frags, un-mooted. Best, Nathan
Re: Is 303 really necessary - demo
Le 05/11/2010 14:57, Giovanni Tummarello a écrit : I might be wrong but I dont like it much . Sindice would index it as 2 documents. http://iandavis.com/2010/303/toucan http://iandavis.com/2010/303/toucan.rdf i *really* would NOT want to different URLs resolving to the same thing Hmm, why not? This happens all the time: usually, all terms from a single ontology resolve to the same document. Other examples: http://g1o.net/ http://g1o.net/index.html resolve to the same thing, http://rdfs.org/sioc/ns http://rdfs.org/sioc/ns.rdf resolve to the same thing, etc. etc. etc. I think Sindice is doing well with this, not a problem IMO. /toucan.rdf should be cached once /toucan is visited first (since the HTTP header says /toucan is actually represented in /toucan.rdf). Cheers, AZ. thanks Giovanni On Fri, Nov 5, 2010 at 10:43 AM, Ian Davism...@iandavis.com wrote: Hi all, To aid discussion I create a small demo of the idea put forth in my blog post http://iand.posterous.com/is-303-really-necessary Here is the URI of a toucan: http://iandavis.com/2010/303/toucan Here is the URI of a description of that toucan: http://iandavis.com/2010/303/toucan.rdf As you can see both these resources have distinct URIs. I created a new property http://vocab.org/desc/schema/description to link the toucan to its description. The schema for that property is here: http://vocab.org/desc/schema (BTW I looked at the powder describedBy property and it's clearly designed to point to one particular type of description, not a general RDF one. I also looked at http://ontologydesignpatterns.org/ont/web/irw.owl and didn't see anything suitable) Here is the URI Burner view of the toucan resource and of its description document: http://linkeddata.uriburner.com/about/html/http://iandavis.com/2010/303/toucan http://linkeddata.uriburner.com/about/html/http/iandavis.com/2010/303/toucan.rdf I'd like to use this demo to focus on the main thrust of my question: does this break the web and if so, how? Cheers, Ian P.S. I am not fully caught up on the other thread, so maybe someone has already produced this demo -- Antoine Zimmermann Researcher at: Laboratoire d'InfoRmatique en Image et Systèmes d'information Database Group 7 Avenue Jean Capelle 69621 Villeurbanne Cedex France Lecturer at: Institut National des Sciences Appliquées de Lyon 20 Avenue Albert Einstein 69621 Villeurbanne Cedex France antoine.zimmerm...@insa-lyon.fr http://zimmer.aprilfoolsreview.com/
Re: Is 303 really necessary - demo
On 05/11/10 16:50, Ian Davis wrote: On Fri, Nov 5, 2010 at 4:42 PM, Robert Fullerrobert.ful...@deri.org wrote: I submitted both urls to sindice earlier. Both were indexed and have the same content. In the search results[1] one displays with title A Toucan, the other with title, A Description of a Toucan. http://sindice.com/search?q=toucan+domain%3Aiandavis.comqt=term So SIndice see them as distinct resources and doesn't concern itself with the lack of a 303 redirect? Both pages returned http status code of 200 and some content. Sindice extracted metadata from the content (using any23), and associated that content with the requested url's. Sindice doesn't expect 303's, but it follows them. This isn't always a good thing... http://inspector.sindice.com/inspect?url=http://xmlns.com/foaf/0.1/IanDavis Ian -- Robert Fuller Research Associate Sindice Team DERI, Galway http://sindice.com/
Re: Is 303 really necessary - demo
Le 05/11/2010 18:01, Nathan a écrit : Antoine Zimmermann wrote: Le 05/11/2010 16:42, Nathan a écrit : [skip] Sadly your proposed 210 still has it, the true problem isn't a status code thing, it's an if I can GET it, it's a document, hence the earlier outlined problems with 303 as it stands, still the same problem. So, you are against hash URIs? Because if you can GET a hashless URI with 200 OK, then put a hash behind it and you can GET the resulting URI with a 200 OK too. According to httpRange-14, if the HTTP response code for a given URI is 2xx, then the URI denotes an information resource. Quote: a) If an http resource responds to a GET request with a 2xx response, then the resource identified by that URI is an information resource; GET http://liris.cnrs.fr/~azimmerm/antoine - 200 OK - it's a document! GET http://liris.cnrs.fr/~azimmerm/antoine#me - 200 OK - it's a document! GET http://liris.cnrs.fr/~azimmerm/antoine.rdf - 200 OK - it's a document! So your argument is moot since it is going against your own recommendation. Did you check the HTTP request? #frag isn't included, it's chopped off before sending, those three requests resulted in the following 3 URIs being requested: http://liris.cnrs.fr/~azimmerm/antoine http://liris.cnrs.fr/~azimmerm/antoine http://liris.cnrs.fr/~azimmerm/antoine.rdf no frags, un-mooted. Ah yes, forgot this small detail :p. So obviously, a hash URI cannot resolve to 2xx since it cannot resolve at all! But, in the end, isn't it quite the same principle: I use a distinct URI that eventually resolves to the same document? Best, Nathan -- Antoine Zimmermann Researcher at: Laboratoire d'InfoRmatique en Image et Systèmes d'information Database Group 7 Avenue Jean Capelle 69621 Villeurbanne Cedex France Lecturer at: Institut National des Sciences Appliquées de Lyon 20 Avenue Albert Einstein 69621 Villeurbanne Cedex France antoine.zimmerm...@insa-lyon.fr http://zimmer.aprilfoolsreview.com/
Re: Is 303 really necessary - demo
Antoine Zimmermann wrote: Le 05/11/2010 18:01, Nathan a écrit : Antoine Zimmermann wrote: Le 05/11/2010 16:42, Nathan a écrit : [skip] Sadly your proposed 210 still has it, the true problem isn't a status code thing, it's an if I can GET it, it's a document, hence the earlier outlined problems with 303 as it stands, still the same problem. So, you are against hash URIs? Because if you can GET a hashless URI with 200 OK, then put a hash behind it and you can GET the resulting URI with a 200 OK too. According to httpRange-14, if the HTTP response code for a given URI is 2xx, then the URI denotes an information resource. Quote: a) If an http resource responds to a GET request with a 2xx response, then the resource identified by that URI is an information resource; GET http://liris.cnrs.fr/~azimmerm/antoine - 200 OK - it's a document! GET http://liris.cnrs.fr/~azimmerm/antoine#me - 200 OK - it's a document! GET http://liris.cnrs.fr/~azimmerm/antoine.rdf - 200 OK - it's a document! So your argument is moot since it is going against your own recommendation. Did you check the HTTP request? #frag isn't included, it's chopped off before sending, those three requests resulted in the following 3 URIs being requested: http://liris.cnrs.fr/~azimmerm/antoine http://liris.cnrs.fr/~azimmerm/antoine http://liris.cnrs.fr/~azimmerm/antoine.rdf no frags, un-mooted. Ah yes, forgot this small detail :p. So obviously, a hash URI cannot resolve to 2xx since it cannot resolve at all! But, in the end, isn't it quite the same principle: I use a distinct URI that eventually resolves to the same document? It's the critical difference in all of this: http://liris.cnrs.fr/~azimmerm/antoine http://liris.cnrs.fr/~azimmerm/antoine.rdf both can be resolved http://liris.cnrs.fr/~azimmerm/antoine#me cannot be resolved URI resolution is essentially: dereference( uri.toAbsolute() ); Which gives us the simplicity and semantic indirection which we need. Use frags, forget HTTP, know that uri#frag is never going to be a document (unless you explicitly say it is). Best, Nathan