RE: Locking a Resource or Locking a URL?

At 10:34 PM 2/25/99 PST, Yaron Goland wrote:
>O.k. I'm completely lost. Let's try this again.
>
>I have a resource which is available through two names, http://foo/bar and
>http://iggy/pop. Someone requests and receives an exclusive write lock
>against http://foo/bar. I assert that the immediate consequence is that
>http://iggy/pop is ALSO write locked by the same principal.

Yaron, this is a really great question because it exposes an underlying
conceptual unclarity [*] that has been plaguing our discussion for months.

Is a direct reference 
 1. a *synonym* for the resource it points to, or
 2. a *resource* (albeit one whose semantics are defined so as to make it
act, in almost all cases, like a synonym.)

When you write about "two names [for the same resource]", you're using the
"synonym" metaphor, and I think this is why you are lost. 

For most operations, there's no difference between these two.  They act the
same.  But the locking discussion exposes one such difference, so now we
have to decide.

If a reference is a synonym, then it just makes no sense to speak of a lock
on the "reference" that is not on the "target".   They are just different
names for the same thing.   If a reference is a resource, then it at least
makes sense to speak of distinct locks.  It may or may not be the *right*
design choice, but at least one can talk about it.

I think our discussion to date has mostly, but not entirely, been based on
the assumption that a reference is in fact a second resource.  But it's
never been clearly settled.  But note, for instance, the discussion on your
issue #5, proposing a complex value for the DAV:resourcetype property of
the reference.  If a reference were merely a synonym, this wouldn't make
sense.

If a reference is in fact a distinct resource from the target, then it's
possibe, at least in principle, to have different locks on the reference
and on the target.  You could decide that the protocol should be such that
a lock on the reference always must also lock the target, and/or that a
lock on the target must also lock (all) references to it.  These are at
least conceptually separable design choices.

If you want to push on the "synonym" interpretation, then there is a second
issue that arises, but I won't go into it now.  

[*] One can trace this unclarity back to some old problems in philosophy of
language.  Is "the morning star" the same object as "the evening star"?  Is
"the president of the united states" the same person as "Bill Clinton"?
How fortunate we are that the design team is led by one actually trained as
a true philosopher.  You may think WebDAV had to face some ratholes, but I
tell you that Wittgenstein is to these rats as Moby Dick is to a trout.

trying to swim

Jim

Received on Friday, 26 February 1999 12:22:50 UTC