Hi Frans, good questions :-)
On Fri, Apr 15, 2011 at 8:48 AM, Frans Knibbe <frans.knibbe@geodan.nl> wrote:
> But then I am faced with the problem: What method do I use to mint my
> identifiers? Those identifiers need to be unique. Should I use a number
> sequence, or a hash function? In those cases the URIs would be uniform and
> give no indication of the type of data. But a number sequence seems unsafe,
> and in the case of a hash function I would still need to make some kind of
> structured choice of input values.
My advice would be to first try and re-use any existing identifiers
you may have in your business domain. Perhaps there are identifiers in
systems that your linked data application will be downstream from? Or
perhaps your database has some sort of primary key that you can use in
constructing the URLs? The primary advantage to doing this is that it
will help current users of your system understand the new Linked Data
service. Also, it will allow existing applications to be easily
retrofitted to use your new service. Finally, I think that using
pre-existing identifiers in your URLs can help foster trust in a
particular information ecosystem. I would only use a hash function as
a last resort. But it could be required if you have no identifiers to
reuse. And for simplicities sake I would also favor an identifier that
doesn't require URL encoding if possible.
As a thought-experiment, it might help to think about what you would
need to do to move your Linked Data application to another URL
namespace that used a different technology stack. How would you
correctly send 301 redirects when clients requested the old location?
And of course Tim Berners-Lee's Cool URIs Don't Change is an excellent
overview of the issues you should think about when designing URIs [1].
Good luck, and thanks for the practical question :-)
//Ed
[1] http://www.w3.org/Provider/Style/URI