Re: target selector again
Geoffrey M. Clemm (gclemm@tantalum.atria.com)
Wed, 6 Oct 1999 09:58:47 -0400
Date: Wed, 6 Oct 1999 09:58:47 -0400
Message-Id: <9910061358.AA14793@tantalum>
From: "Geoffrey M. Clemm" <gclemm@tantalum.atria.com>
To: ietf-dav-versioning@w3.org
In-Reply-To: <1999Oct05.183300.1250.1342848@otismtp.ott.oti.com>
Subject: Re: target selector again
From: Jeff_McAffer@oti.com (Jeff McAffer OTT)
<jm>
This is still causing general distress. It seems like the
Target-Selector is doing double duty. In one case (when its a workspace)
we are saying that it is the one and only workspace to use to find the
resource revisions. In the other cases it seems to be used to help
identify the revision of the resource for the last segment of the
Request-URI. In the latter case, any resource revisions not found in the
thing identified by the Target-Selector causes the server to look in the
default workspace.
Unfortunately, there are likely a large number of users for how the
default workspace is uninteresting and the story becomes inconsistent.
If a client has her own workspace, falling back on the default workspace
is unlikely to identify any of the resources/revisions in which she is
interested.
It seems like the Target-Selector should be split into two parts (or,
dare I say it, two headers) - one for the workspaces to use and the other
for the config, activity, revision-id, ... This would be clearer and
more consistent.
<gmc/> Interesting. I tend favor header minimization, but I
find your argument quite convincing. In particular, a reasonable name
for the header for workspaces would be "Workspace" (pretty creative
of me, I know :-), and then "Target-Selector" could be the other one.
To be completely honest, I have lost sight somewhat of what problems are
solved by having non-workspace values of the Target-Selector. I didn't
realize that "no support for versioned-collections" was a valid DeltaV
"mode" (refering to gmc's comments) below). I can understand activities
and configs etc but only when I can also talk about a backing workspace
since these structures are not necessarily complete namespaces (i.e.,
from root).
</jm>
<gmc/> One area where versioned collections are not needed are for
document management systems where the documents live in a flat namespace
and inter-document references are done with GUID's rather than URL's.
Another area is to make the protocol suitable for simple servers that
just want to dump leaf versions into an RCS file, and don't want to
track namespace changes. In these cases, a simple selection of the
the revision-id of the leaf is quite sensible.
<gmc/> One sanity check that the two header approach satisfies is:
"Does it make sense to use both headers in one request". I believe
the answer is yes, because even if you are using a workspace to
select all the versioned collection revisions, it still makes sense
to request particular revisions of the leaf versioned resource.
For example:
GET /x/y/foo.html
Workspace /dav/workspaces/geoff
Target-Selector <D:rsr-revision-id> r75 </D:rsr-revision-id>
could be used to select revision r75 of /x/y/foo.html instead of
the default one that /dav/workspaces/geoff would select. The
version selection for /x and /x/y would be peformed by the workspace
revision selection rules.
With this approach, the absence of a Workspace header would clearly
indicate the desire to use the default workspace.
Cheers,
Geoff