303 vs. Content-Location / Was Re: .htaccess a major bottleneck to Semantic Web adoption

Nice one :)

works fine for me (tested on http://liris.cnrs.fr/~pchampin/tmp/ns).

An interesting thing, though, is that

   http://champin.net/tmp/ns/voc1

does *not* redirect with a 303 to voc1.html or voc1.rdf, but instead 
return a 200, but with a "Content-Location" header field containing the 
appropriate location (i.e. voc1.html or voc2.html). This is therefore 
not complying with the letter [HttpRange-14].

Note that I do believe that it is complying with the spirit of 
[HttpRange-14], though. I interpret Content-Location as a kind of 
shortcut-redirection, which spares the client and the server the burden 
of a 2nd query whenever the server is able to produce the queried 
content anyway. So it can be considered in a sense as an optimized 303 
redirection. (I actually discussed that very matter a month ago with 
Harry Halpin at ESWC).

So, is this actually a common practice in the LOD community? Does this 
look like a good practice (it does to me)? If so, should HttpRange-14 be 
amended to acknowledge that?

   pa

[HttpRange-14] 
http://www.w3.org/2001/tag/doc/httpRange-14/2007-05-31/HttpRange-14


Le 05/07/2009 16:16, Hugh Glaser a écrit :
> OK, I'll have a go :-)
> Why did I think this would be fun to do on a sunny Sunday morning that has turned into afternoon?
> Here are the instructions:
>
>
>   1.  Create a web-accessible directory, let's say foobar, with all your .rdf, .ttl, .ntriples and .html files in it.
>   2.  Copy lodpub.php and path.php into it.
>   3.  Access path.php from your web server.
>   4.  Follow the instruction to paste that text into .htaccess
>   5.  You can remove path.php if you like, it was only there to help you get the .htaccess right.
>
> That should be it.
> The above text and files are at
> http://www.rkbexplorer.com/blog/?p=11
>
> Of course, I expect that you can tell me all sorts of problems/better ways, but I am hoping it works for many.
>
> Some explanation:
> We use a different method, and I have tried to extract the essence, and keep the code very simple.
> We trap all 404 (File not Found) in the directory, and then any requests coming in for non-existent files will generate a 303 with an extension added, depending on the Accept header.
> Note that you probably need the leading "/" followed by the full path from the domain root, otherwise it will just print out the text "lodpub.php";
> (That is not what the apache specs seem to say, but it is what seems to happen).
> If you get "Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.", then it means that web server is not finding your ErrorDocument .
> Put the file path.php in the same directory and point your browser at it - this will tell you what the path should be.
>
> Note that the httpd.conf (in /etc/httpd/conf) may not let your override, if your admins have tied things down really tight.
> Mine says:
>      AllowOverride All
>
> Finally, at the moment, note that I think that apache default does not put the correct MIME type on rdf files, but that is a separate issue, and it makes no difference that the 303 happened.
>
> Best
> Hugh
>
> On 05/07/2009 01:52, "Pierre-Antoine Champin"<swlists-040405@champin.net>  wrote:
>
>> Le 03/07/2009 15:14, Danny Ayers a écrit :
>>> 2009/7/2 Bill Roberts<bill@swirrl.com>:
>>>> I thought I'd give the .htaccess approach a try, to see what's involved in
>>>> actually setting it up.  I'm no expert on Apache, but I know the basics of
>>>> how it works, I've got full access to a web server and I can read the online
>>>> Apache documentation as well as the next person.
>>> I've tried similar, even stuff using PURLs - incredibly difficult to
>>> get right. (My downtime overrides all, so I'm not even sure if I got
>>> it right in the end)
>>>
>>> I really think we need a (copy&   paste) cheat sheet.
>>>
>>> Volunteers?
>> (raising my hand) :)*
>>
>> Here is a quick python script that makes it easier (if not completely
>> immediate). It may still requires a one-liner .htaccess, but one that (I
>> think) is authorized by most webmasters.
>>
>> I guess a PHP version would not even require that .htaccess, but sorry,
>> I'm not fluent in PHP ;)
>>
>> So, assuming you want to publish a vocabulary with an RDF and an HTML
>> description at http://example.com/mydir/myvoc, you need to:
>>
>> 1. Make `myvoc` a directory at the place where your HTTP server will
>>      serve it at the desired URI.
>> 2. Copy the script in this directory as 'index.cgi' (or 'index.wsgi' if
>>      your server as WSGI support).
>> 3. In the same directory, put two files named 'index.html' and
>>      'index.rdf'
>>
>> If it does not work now (it didn't for me),you have to tell your HTTP
>> server that the directory index is index.wsgi. In apache, this is done
>> by creating (if not present) a `.htaccess` file in the `myvoc`
>> diractory, and adding the following line::
>>
>>       DirectoryIndex index.cgi
>>
>> (or `index.wsgi`, accordingly)
>>
>> There is more docs in the script itself. I think the more recipes
>> (including for other httpds) we can provide with the script, the more
>> useful it will be. So feel free to propose other ones.
>>
>>    enjoy
>>
>>     pa
>>

Received on Sunday, 5 July 2009 19:40:40 UTC