Should tags be URNs? (was Re: Proposal: 'tag' URIs)

At 09:31 PM 4/27/01 -0400, Michael Mealling wrote:
> > Or...  Hmm.  I don't want tags to have ANY semantics.  You're saying
> > URNs are presistent and location independent -- that urn:x always
> > denotes the same object regardless of the time and place of
> > interpretation, right?
>
>Right. What that object is and whether or not its abstract or not is
>up to you. All URIs denote something in the abstract anyway....

I have trouble with the language used in discussions about URNs. I'd like 
to try and state precisely what the trouble is that I'm having, to 
introduce some different language, and then to formulate in that different 
language a semantic property that I'd like to see and for which I was 
motivated to introduce tags.

As I've said before, I would like tags to be URNs in the sense that I've no 
interest in introducing new syntax for its own sake -- but I have 
misgivings. Sorry that this is a bit long....

First, let's take the following statements:

(1) URNs are persistent.
(2) URNs are location independent.

The thing that strikes me immediately about (1) is that it's a category 
mistake. No name -- URN or otherwise -- is either persistent or 
non-persistent. What persistence can be predicated of is a _binding_ of a 
name to a resource.

Thus, my bicycle has a serial number etched on its frame. If someone stole 
my bike and filed out the serial number would we say ''0234789036 (or 
whatever) isn't persistent?'. Of course not: we'd refer to the 
vulnerability of that type of binding of the identifier to the bicycle, and 
may even talk literally of how to design better ways of making the binding.

Taking statement (2), Michael pointed out to me that what was meant was 
that the identifier does not contain the address where the identifier is to 
be resolved. That is a highly desirable property that needs a name. While 
'location independence' is not an unreasonable name for it, I made the 
mistake (actually, a category mistake) of taking it to mean "no matter 
where one presents that name to the system, the result will always be the 
same". Maybe it was just me being stupid (it's not as though I haven't seen 
Michael's definition before).

Now let me take something else that Michael says (Michael, I'm not trying 
to pick on you!):

"All URIs regardless of the scheme have the basic semantic of 'identifying
their Resource'. URNs have the additional semantics of 'a) you never have
to resolve it to use it and b) you can safely assume that the name will
never be re-used. "

This raises several questions for me.

(A) What is it to 'identify a resource' and to 'use a name'?
(B) Why 'their resource', not 'resource_s_'?

As I'm sure everyone on this list is aware, their is philosophical 
literature dating back to the ancient Greeks and continuing to the present 
time on the topic of (A). I think that that discussion is interesting and 
relevant to our debate. But as a computer scientist -- someone who is in a 
position to design the 'artificial' rather than analyse the 'phenomena of 
the world as we find it' -- it seems to me that we can answer those 
questions by _assertion_.

I  thus propose that we make _bindings_ first-class objects. A binding is a 
tuple:

<uri, resource, principal, descriptionOfBinding, expiryDate, signature>

This tuple says: 'principal' asserts the binding from 'uri' to 'resource'; 
that binding terminates at 'expiryDate'; humans may think of this as 
'descriptionOfBinding' -- signed 'signature' (of 'principal').

Thus, to 'identify a resource' is to make such a binding. To 'use a name' 
(in the sense Michael used it above) is also to make such a binding.

So, here are some bindings:

<tag:champignon.net;1:tims-home-page, http://champignon.net/TimKindberg/, 
Tim Kindberg, "Tim's home page", 2001-12-31, "signed TK">

<tag:champignon.net;1:tims-home-page, http://publicationsInc/2346590, 
Publications Incorporated, "Tim Kindberg's publications", 2002-12-31, 
"signed Publications Incorporated">
/* comment: (imagine) this company keeps an up to date list of publications 
for me, so someone encountering my home page can, through this binding, 
find that list */

Uh-oh: the same URI used to 'identify' two resources! And neither binding 
is persistent!

I claim that this state of affairs is reasonable. I stick a (barcoded) tag 
in my home page, and now a whole world of heterogeneous resolution services 
can take that tag and give a variety of different results (resources).

BUT there's something important that has to obtain to make this reasonable. 
After all, if you were to stick tag:champignon.net;1:tims-home-page on your 
home page, or on your bicycle..... chaos might ensue.

I need help here, but it seems to me that there should be a notion of an 
'original binding': I mint a tag and I bind that tag to a resource that I 
own, in such a way that that resource will only ever appear with that tag. 
Eg: I physically bind it to my bicycle, or I insert it in my home page, or 
I use it as an xmlns in a dtd that I make.

Now, *you* may bind that same identifier to whatever you like. It's your 
(or your community's) business. But *you* may not 'originally bind' your 
tag to *my* resource.

So, Michael and everyone else: should tags be URNs?

Cheers,

Tim.
PS. I'm working on formalising bindings in XML -- 'Xbindings', obviously 
related to Xlink. If anyone would care to help.....








Tim Kindberg

internet & mobile systems lab  hewlett-packard laboratories
1501 page mill road, ms 1u-17
palo alto
ca 94304-1126
usa

www.champignon.net/TimKindberg/
timothy@hpl.hp.com
voice +1 650 857 5609
fax +1 650 857 2358

Received on Saturday, 28 April 2001 13:25:43 UTC