W3C home > Mailing lists > Public > semantic-web@w3.org > June 2011

requesting feeback about urls for a library catalog

From: Nicolas Chauvat <nicolas.chauvat@logilab.fr>
Date: Wed, 8 Jun 2011 12:30:33 +0200
To: semantic-web@w3.org
Cc: adim@logilab.fr
Message-ID: <20110608103033.GA20267@volans.logilab.fr>
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

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:45:25 UTC