Posted by


Name: You must provide your name.
Email*: You must provide your email address.
  *Please provide your real email address; it will not be displayed as part of the comment.
  **The following markup may be used in the body of the comment: a, abbr, b, br, code, em, i, p, pre, strong, and var. You can also use character entities. Any other markup will be discarded, including all attributes (except href on a). Your tag soup will be sanitized...
What is ten minus six?
  In an effort to reduce the amount of comment spam submitted by bots, I'm trying out a simple CAPTCHA system. In order to submit your comment, you must answer the simple math question above. For example, if asked "What is the two plus five?", you would enter 7.
Remember me? (Want a cookie?)

 (There must be no errors before you submit.)

The body of the essay you are commenting on appears below. Certain features, such as the navigation, are not supported in this preview. I might someday fix that. Or not.

Assigning URIs to people, and perhaps to any physical resource, has consequences both social and technical. Socially, I think it's a question of politeness. Am I allowed to make up URIs that identify you? Technically, well, the problems range from straightforward technical challenges, like how do identify when two URIs that are spelled differently point to the same resource and what do you do about it after you have, to the range of http: identifiers.

Who knows whether the best of men be known? or whether there be not more remarkable persons forgot, than any that stand remembered in the known account of time.

Sir Thomas Browne

Sean B. Palmer commented on my Karma Shmarma problem. He asked where I was advised against assigning URIs to people.

The admonition came from an exchange on #foaf. These chats are generally logged on the web, but I can find no record of a log for 05 May 2003 when this discussion [lightly edited] occurred:

  2<nwalsh>  Ok, so I'm going to have to fiddle things so that I make a link for each
  3          [individual in my foaf file]. Which is preferable:
  4<nwalsh>  Making the foaf:know entries appear literally in the
  5          foaf.rdf file, or making the foaf.rdf file contain
  6          a whole set of <foaf:knows rdf:resource="otherfile#id"/>
  7<mortenf> the first one-or the third option, the foafy one,
  8          saying <foaf:knows foaf:mbox_sha1sum="..."/>
  9<nwalsh>  Hmmm.
 10<mortenf> it's generally considered bad foaf karma to assign uris to people...
 11<nwalsh>  Hmmm again.
 12<nwalsh>  I've already done that, for my own purposes, but I guess I
 13          don't have to expose it
 14<mortenf> if you do option two, you're assigning a uri to each person
 15          instead of using a blank node.
 16<nwalsh>  Ok. Thanks. I'll have to think some more.

It's the last line that earned this problem a mention on my “tough nuts” page.

I can see three objections to assigning URIs to people:

  1. Proliferation of URIs for the same resource. It's entirely consistent within the web architecture to have multiple URIs for the same resource, but fewer is better. It's easier for machines and people to tell that two URIs identify the same resource if the URIs are spelled the same.

  2. Impertinence. It strikes me as a tiny bit impertinent for me to assign a URI for you. Sean, you are http://.../knows/who#sean-b-palmer. “Feh,” you might reply, “am not!

  3. TAG issue httpRange-14. Enough said.

As it turns out, I decided to expose the URIs that I assigned anyway. Sean, that really is you! But out of respect for FOAF karma, I didn't put those URIs in my FOAF file. Instead, I've identified the people I foaf:know only by the SHA1 hash of their mailbox. If I've also got a persistent URI for them, I made that URI a see-also.

That's either a good compromise, or the worst of both worlds. I'm not sure which.

With respect to the argument about proliferation of URIs, I don't see how “using a blank node” simplifies the problem. It strikes me that multiple blank nodes are as no less confusing to machines and people than multiple URIs. In fact, multiple blank nodes are probably more confusing to people.

The central problem seems to be, how do you merge these multiple identifiers so that you can tell that the various statements you've got are really about the same resource? Sean points to a good discussion by Dan Brickley of this “smooshing” problem.

With respect to the range of HTTP URIs, well, I'm not sure what to say. Personally, if Mark Baker wants to assert that identifies his person, who am I to say it doesn't?

To quote Lewis Carroll for the second time in two days, “When I use a word,’ Humpty Dumpty said in a rather scornful tone, ‘it means just what I choose it to mean—neither more nor less.