- 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