PROPFIND, VCRs, Label, Depth, href ... oh my!

I've been thinking a bit about PROPFIND and the Label: header. Let's say
that I do a PROPFIND against a VCR using a Label header:

PROPFIND /some/vcr
Label: foo

response...
<D:multistatus ...>
  <D:response>
    <D:href>/the/version/resource</D:href>
...

The DAV:href element presumably has the version resource URI because you did
a PROPFIND against that resource (effectively).


Now, let's throw the Depth: header into the mix. What does it apply to? The
VCR or the Version? It is murky with the Label: header in there.

Depth applies to the VCR:
    The PROPFIND will return DAV:response elements for version resources
    corresponding to those selected by the label, from each of the VCRs
    according to the Depth.
    
    DAV:href returns Version Resource URIs. How do we match them up against
    the hierarchy defined by the VCRs?

Depth applies to the Version Resource:
    Presumably, you're selecting a collection version. Its children are
    version histories, so you're going to get back whacky properties or
    nothing at all for the children.

    The DAV:href probably would exist here, too: which DAV:response is for
    the collection version, and which for the members?
    [ you could tell by looking for errors :-) ]


Okay... let's try to fix the DAV:href thingy by saying you apply the Depth:
header to the VCRs (i.e. apply Depth to the VCR before linking thru to the
version resources) and the DAV:href returns the VCRs' URIs. That makes some
sense, but now we have a problem: how do we get the version resource URI? We
can't use DAV:checked-in because that is a VCR prop. And, oh darn! We just
nuked DAV:version.


My suggestion:

*) define Depth: on a PROPFIND of a VCR to apply to the VCR hierarchy rather
   than the version resource (lack of) hierarchy

*) the DAV:href returns the VCR's URI
   [ I'm not sure that I like this, though :-( ]

*) bring back DAV:version


Hmm. I'm thinking that the use of a Label: header is rather spurious to the
above issue. It does make it a bit harder to figure out the version resource
URI (without the Label:, you could ask for the VCR's DAV:checked-in; there
isn't an easy equivalent to find the V.R. when you're trying to use a label)

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Received on Thursday, 1 February 2001 06:08:23 UTC