- From: Tim Kindberg <timothy@hpl.hp.com>
- Date: Sat, 28 Apr 2001 10:40:11 -0700
- To: michaelm@netsol.com, Sandro Hawke <sandro@w3.org>
- Cc: uri@w3.org
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