Print

Print


Nice work Eric! You are right to focus on making the data resolvable
first. Ross' advice to work on exposing and interlinking more of your
own data next, instead of trying to link out elsewhere, is good I
think.

I noticed from your compact (and elegant) little Perl script that you
are expecting an HTTP agent to send an Accept header of
"application/rdf+xml" if it wants the rdf. While this may happen
sometimes, many linked data harvesting clients send a more expressive
Accept header. For example the rapper command line tool [1] sends a
header of:

  Accept: application/rdf+xml, text/rdf;q=0.6, */*;q=0.1

Fortunately Perl's libwww [2] has support for content negotiation, and
it looks like it plays nicely w/ CGI.pm which you are already using.
If you want to make sure the right thing is happening you can watch
what comes back over the wire with curl [3].

--
ed@hammer:~$ curl -i --header "Accept: application/rdf+xml,
text/rdf;q=0.6, */*;q=0.1"
http://id.infomotions.com/?id=more-utopia-221
HTTP/1.1 303 See Other
Date: Tue, 21 Jul 2009 15:19:04 GMT
Server: Apache/2.2.8 (Fedora)
Vary: Accept,Accept-Encoding
Location: http://infomotions.com/etexts/literature/english/1500-1599/more-utopia-221.htm
Content-Length: 0
Content-Type: text/html; charset=ISO-8859-1
--

Hope this helps, and isn't too confusing. If you need help w/ the
content negotiation bits let me know.

//Ed

PS. Another thing to add to your wishlist would be to support JSON
representations if you happen to have them handy. I think it's worth
demonstrating the convergence of REST and Linked Data.

[1] http://librdf.org/raptor/rapper.html
[2] http://search.cpan.org/~gaas/libwww-perl-5.829/lib/HTTP/Negotiate.pm
[3] http://curl.haxx.se/