- From: Yaron Goland <yarong@microsoft.com>
- Date: Wed, 19 Aug 1998 17:43:06 -0700
- To: "'Jim Davis'" <jdavis@parc.xerox.com>, WebDAV <w3c-dist-auth@w3.org>
Ick... How about just enhancing ADDREF to accept settings for parents and
mandating that parent settings have to be returned in PROPFIND? I believe we
should shy away from programmatic properties, even if they are read-only.
Yaron
> -----Original Message-----
> From: Jim Davis [mailto:jdavis@parc.xerox.com]
> Sent: Wednesday, August 19, 1998 11:07 AM
> To: WebDAV
> Subject: Proposal: optional backpointers for ACR (Was: RE:
> Hierarchical
> URLs and Collections)
>
>
> In my opinion there is exactly one problem, which, while we
> can't solve
> completly and in the general case, we can still help with
> considerably.
>
> I think the problem is that at present, there is no
> interoperable means for
> navigating _up_ the containment graph for the case of
> multiple containment.
>
> Please let me explain.
>
> WebDAV section 4 defines collections as intended "to model
> collection-like
> objects (e.g., file system directories)". Here, containment
> forms a tree.
> Each Web resource is an internal member of exactly one
> collection. Given
> the URL of the resource, one may obtain the URL of the
> collection by mere
> syntactic operation on the URL. So upward navigation is easy
> with internal
> members.
>
> But certain Document Management Systems (e.g. DocuShare) have a richer
> notion of containment, where containment is a graph, not a
> tree. An object
> may be be contained in multiple collections, no one of which
> is its "true"
> parent.
>
> It was the desire to support this kind of containment that led us to
> propose referential resources. You place object X into
> collections A, B,
> and C by placing referential resources (R->X, S->X, T->X) into each
> collection.
>
> The problem is that given only (target) X, there is no way
> to get back
> either the set of all resources whose target is X {A/R, B/S,
> C/T} or the
> set of collections {A, B, C}. So navigation upwards is
> possible for some
> kinds of containment (internal members) and not for others.
> This is bad.
>
> The solution is obvious: backpointers from a referential
> resource's target.
> (Given a backpointer to the ref. resource itself, one can
> then find the
> collection in which it is an internal member). But as we know (from
> discussions of "strong" references, this is *very hard* in
> the _general_
> case, so we left it out of ACR. However, while it may be hard in the
> general case, for a DMS, it is not hard, in fact it is easy.
>
> So any sensible DMS vendor will simple define a read only
> special property
> that holds the backpointer (either to the collections or to the
> references). At this point, the only remaining unhappiness
> is that since
> each vendor defines its own propietary property, there's no
> _interoperable_
> means of getting back to the parent.
>
> The lack of interoperablity is bad (we should fix it if we
> can) but not
> horrible (there will likely be other forms of incompatibility
> among DMSs
> anyway). So I propose that ACR define a new _optional_
> property as follows
>
> Name: references
> Namespace: DAV:
> Purpose: Holds a list of referential resources whose
> target is this resource.
>
> <!ELEMENT references (href*) >
>
> This property is optional.
>
> Defining and standardizing this property will allow interoperable
> navigation for those implementations able to support it, and
> will cost little.
>
> Since it is read-only, no issues of transactionality or
> side-effect arise.
>
> Any objections?
>
Received on Wednesday, 19 August 1998 20:42:46 UTC