requesting feeback about urls for a library catalog

Hi,

We are working on publishing as html and rdf a large catalog from a
public library. I am writing here in the hope that someone will want to
provide feedback on the way we organized urls and content negotiation.
I did not cc pedantic-web since the catalog is not online yet and I
understood pedantic-web focuses on fixing things rather than designing
them.

0/ definitions
----------------

<data> is an alias for http://data.thelibrary.com/

<id> is a unique id for the person, organization or work: the thing
that used to be a paper card in the catalog before libraries used
computers.

1/ uris
-------

For non-informational ressources:

<data>/<id>#foaf:Person identifies a person

<data>/<id>#foaf:Organization identifies an organization

<data>/<id>#frbr:Work identifies a work

<data>/<id>#skos:Concept identifies the concept associated to the
work, person or organisation that has id <id>. There is a Concept for
each Person, Organization and Work.

For informational resources:

<data>/<id>/readable_name is a document describing <id>

Examples could be:

http://data.thelibrary.com/1234#foaf:Person
http://data.thelibrary.com/1234/victor_hugo

2/ redirection and content-negotiation
--------------------------------------

<data>/1234 redirects via HTTP 303 to <data>/1234/readable_name

<data>/1234/readable_name redirects via HTTP 301 to <data>/1234/readable_name/

<data>/1234/readable_name/ returns a document with HTTP 200. The exact
document that is returned depends on the outcome of the
content-negotiation. In the HTTP response, the content-location is set
to something like <data>/<id>/readable_name/<lang>.<extension-mime>

Examples of actual content-locations would be:

<data>/1234/victor_hugo/fr.html
<data>/1234/victor_hugo/en.html
<data>/1234/victor_hugo/rdf.xml
<data>/1234/victor_hugo/rdf.n3
<data>/1234/victor_hugo/fr.pdf
<data>/1234/victor_hugo/en.pdf

When an agent asks for some urls that are plausible but do not exist,
a HTTP 303 redirect is sent to make life easier on users, disregarding
the content-negotiation mechanism.

a GET on                       is Redirected via 303 to
<data>/1234/victor_hugo.html   <data>/1234/victor_hugo/fr.html
<data>/1234/victor_hugo.rdf    <data>/1234/victor_hugo/rdf.xml
<data>/1234/victor_hugo.n3     <data>/1234/victor_hugo/rdf.n3
<data>/1234/victor_hugo.pdf    <data>/1234/victor_hugo/fr.pdf

The fallback rule is of course HTTP 404 Not Found. That includes:
<data>/1234/vicktor_ugo
<data>/1234/victor_hugo.txt
<data>/1234/victor_hugo/txt
etc.

Any feedback will be welcome. Thank you in advance. 

-- 
Nicolas Chauvat

logilab.fr - services en informatique scientifique et gestion de connaissances  

Received on Wednesday, 8 June 2011 10:31:02 UTC