- From: Richard Cyganiak <richard@cyganiak.de>
- Date: Tue, 6 Jan 2009 12:39:36 +0000
- To: Thomas FRANCART <thomas.francart@mondeca.com>
- Cc: public-lod@w3.org, ol-discuss@archive.org, "Anand Chitipothu" <anandology@gmail.com>, "Aaron Swartz" <me@aaronsw.com>, "Gautier Poupeau" <gautier.poupeau@gmail.com>, bernard.vatant <bernard.vatant@mondeca.com>
Thomas,
Nice work! Good to see OpenLibrary data in RDF, and the idea of
deploying this on App Engine is pretty cool.
Technical comments below -- sorry in advance for picking on all those
details, I don't mean to be overly critical, just running through my
usual RDF-on-the-Web checklist.
I'm looking at the headers when asking for HTML:
richard@cygri-2:~$ curl -i http://olrdf.appspot.com/isbn/0316010669
HTTP/1.1 303 See Other
{'status': 'ok', 'result': ['/b/OL9835570M']}
Content-Type: text/html; charset=UTF-8
Is the curly-bracket line intentionally there? I think this isn't a
valid HTTP response. None of the HTTP clients I tried choked on it,
but I still doubt it's valid.
You overload your URIs by using the same URI for an RDF web page and
for a book. For example, is http://olrdf.appspot.com/key/b/OL9835570M
a web page or a book? It returns content with a HTTP 200 OK status
code, so evidently it's a web page. But then in the RDF you say it's a
book. So you use the same URI for two different things. You can fix
this by using something like ...OL9835570M#it or ...OL9835570M#book
for the book, so these hash URIs should appear in rdf:about="...".
Fixing the above would also allow you to distinguish between data
about the books, and metadata about their OpenLibrary records. For
example, let's consider the RDF pages for authors. In your data,
authors have ol:revision and dcterms:modified properties. These are
not properties of the author, but rather of the RDF page that
describes the author. Thus the subject should be .../key/a/OL1398754A
for these properties, and /key/a/OL1398754A#author for things like
ol:personal_name and ol:birth_date. If you want to get fancy, include
a triple: a/OL1398754A foaf:primaryTopic a/OL1398754A#author.
It would be useful to link back to their books in an author's RDF
description. (Assuming the OpenLibrary API provides that information
-- I didn't check.)
Dates (dcterms:issued, dcterms:modified) should be provided in
xsd:date or xsd:dateTime format, and they should be marked as such
using rdf:datatype.
Instead of creating properties in the wrapper namespace, you could
create them at OpenVocab (http://open.vocab.org). This is a Wiki-style
vocabulary hosting service, so anyone could edit your creations, but
at the same time it allows you to create nice formal descriptions of
your terms with very little effort.
All the best,
Richard
On 5 Jan 2009, at 13:21, Thomas FRANCART wrote:
> Hi
>
> I have written a wrapper to expose openlibrary.org api data as RDF.
> It is
> written in Python and deployed on google app engine.
> You can reach it at these URL :
> - http://olrdf.appspot.com/key/b/OL5218098M.rdf (replace the key
> with any
> openlibrary item key)
> - http://olrdf.appspot.com/isbn/2070394433.rdf (replace the ISBN
> with any
> isbn10 or isbn13 value)
>
> You can read more about this wrapper here :
> http://mondeca.wordpress.com/2009/01/05/openlibrary-api-rdf-wrapper-on-google-app-engine/
>
> Please let me know if you have any feedback on this; I would be more
> than
> happy to provide the python code to anyone interested, especially
> the folks
> at OpenLibrary if they want to host it.
>
> Best,
> Thomas
>
> Thomas Francart
> CTO
> Mondeca
> 3, cité Nollez 75018 Paris France <thomas.francart@mondeca.com>
> Website: www.mondeca.com
> Blog: Leçons de choses <http://mondeca.wordpress.com>
Received on Tuesday, 6 January 2009 12:40:28 UTC