From: jamsden@us.ibm.com To: ietf-dav-versioning@w3.org Message-ID: <85256803.004BF7FF.00@d54mta03.raleigh.ibm.com> Date: Thu, 7 Oct 1999 09:48:14 -0400 Subject: Re: Revision identifier and revisions label namespaces I think Geoff's example highlights the need for a single namespace. It is not uncommon for objects to have multiple candidate identifiers. Each candidate identifier conveys some information about the object's identity while carrying interesting state. So far, the only differences we have identified between an id and a label is that the id is assigned by the server when the revision is created (i.e., the revision must be identifiable), and it can't be changed (i.e., it must not be possible to make a revision unidentifiable). In all other cases, the id and labels are treated the same. There are two cases: 1. ids and labels are in separate namespaces: + they never collide + servers have greater degrees of freedom in assigning ids - label collisions do still occur though as a user can attempt to assign the same label to a revision more than once - ids are not meaningful across servers - users have to distinguish ids from labels on all accesses (including through workspace RSRs) - the protocol is more complicated as it must define and manipulate multiple label namespaces 2. ids and labels are in the same namespace - there is a possibility for user labels to collide with server ids requiring the user to specify a different label - servers should pick id naming schemes that minimize the potential for collisions resulting in limited choice - ids are still not meaningful across servers (or replications) + users do not have to distinguish ids from labels on any access + all revision identifiers (ids and labels) are handled uniformly by the protocol simplifying the protocol It seems to me the last two points far out weight the previous as labels are used to access resources a lot more often then they are assigned to resources. I believe the protocol is simpler if there is one revision namespace, client applications are simpler, users have to know less information to access revisions, and the possibility and consequences of collisions are minimal and exist anyway. What problem is solved, other than id/label collisions, by having separate namespaces. Seems like a relatively high cost for little gain. "Geoffrey M. Clemm" <gclemm@tantalum.atria.com> on 10/06/99 05:06:38 PM To: ietf-dav-versioning@w3.org cc: Subject: Re: Revision identifier and revisions label namespaces Ooops. I sent off the message before finishing it. I just had one last section to respond to: <jra> ... The likelihood of collisions occuring when adding a user label is much smaller than the need to remember and distinguish label namespaces when accessing the corresponding revisions. One accesses revisions a lot more often than one labels them, and the consequences of the collision are minimal. The user just has to pick another label. </jra> This is a very good point. It shows up for example when a user asks the client to fetch revision "23". The client has to ask the user whether they want the revision labeled "23" or the revision with id "23" (the resource potentially could even have both, identifying different revisions). Overall though, I still think the benefits of keeping the namespaces disjoint outweigh the costs. Cheers, Geoff