W3C home > Mailing lists > Public > semantic-web@w3.org > February 2014

Re: Billion Triples Challenge Crawl 2014

From: Richard Smith <richard@ex-parrot.com>
Date: Sun, 16 Feb 2014 20:01:33 +0000 (GMT)
To: Tim Berners-Lee <timbl@w3.org>
cc: Michel Dumontier <michel.dumontier@gmail.com>, Andreas Harth <andreas@harth.org>, SWIG Web <semantic-web@w3.org>
Message-ID: <alpine.LRH.2.02.1402161821440.9417@sphinx.mythic-beasts.com>
Tim Berners-Lee wrote:

> Agree with High. I would encourage you unzip the data 
> files on your own servers so the URIs will work and your 
> data is really Linked Data.

I think it's possible to make the URIs link properly without 
uncompressing the data on the server.

Suppose the data lives in /download.rdf.gz.  You can make 
the webserver 303 other URIs to /download.rdf, and have 
/download either send download.rdf.gz iff the request said 
Accept-Encoding: gzip, or to 406 otherwise.

It's quite feasible to orchestrate this in Apache.  I've 
just done it as follows, but I'm sure there are more elegant 
ways:

   AddType application/rdf+xml .rdf

   Options -MultiViews

   RewriteEngine on
   RewriteBase /~richard/foaf

   RewriteCond %{HTTP_ACCEPT} application/rdf\+xml
   RewriteCond %{REQUEST_FILENAME} !__406
   RewriteCond %{REQUEST_URI} !download.rdf
   RewriteRule (.*) download.rdf [L,R=303]

   RewriteCond %{HTTP:Accept-Encoding} gzip
   RewriteRule download.rdf download.rdf.gz [L,PT]

   RewriteCond %{REQUEST_FILENAME} !__406
   RewriteRule (.*) __406 [L,PT]
   RedirectMatch 406 /__406

Then all you need is for the client to support gzip content 
encoding, and many of the common HTTP client libraries do. 
For example, if I run:

   curl -s --compressed -L -H 'Accept: application/rdf+xml' \
     http://localhost/~richard/foaf/alice | rapper -q \
     -o turtle - http://localhost/~richard/foaf/alice

I get:

   @base <http://localhost/~richard/foaf/alice> .
   @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
   @prefix foaf: <http://xmlns.com/foaf/0.1/> .

   <>
     a foaf:Person ;
     foaf:knows <bob> ;
     foaf:name "Alice" .

   <bob>
     a foaf:Person ;
     foaf:knows <> ;
     foaf:name "Bob" .

And if you repeat the process fetching <bob>, you'll end up 
with precisely the same triples.

The remaining question is whether it's reasonable to expect 
clients to support gzip content-encoding.  It doesn't seem 
unreasonable to me.

Richard
Received on Sunday, 16 February 2014 20:01:58 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:48 UTC