Minutes: Advanced Collections Conference Call Oct. 6, 1998

Advanced Collections Conference Call
October 6, 1998

Minutes taken by Jim Davis (first part) and Judy Slein (second part).

Present: Roy Fielding, Jim Davis, Judy Slein, Jim Whitehead, Alan Babich,
John Stracke, Jim Amsden

Agenda

Judy's list of issues (from email)

1. Optional backpointers
2. Terminology (direct/indirect or something else)
3. Which methods get passed through for direct references
4. "There should be a choice about whether deleting the target of a direct
reference deletes all (direct) references" (Roy's, I think)

1. Backpointers:

We agree that the list has reached rough consensus that it is okay to
define the backpointer property as an optional property.

2. Terminology:

We will try using "direct and redirect" instead of "direct" and "indirect"

3. What methods get passed?

Are "direct references" resources?  This is a difficult philosophical issue.

When a reference is a member of a collection, and one does a PROPFIND
on the collection, there won't be any way to distinguish a reference
from a 'real' resource.

It would be good to state the rationale for why DELETE, COPY, and MOVE
don't pass through.  If DELETE doesn't MOVE can't, because MOVE is a
"macro".  DELETE doesn't, because deleting the reference obtains the
desired new state (the resource no longer appears in the collection),
and deleting the target as well would be unnecessary extra work.
What about COPY?

The purpose of references is to have secondary 'configurations'
without having to worry about making copies that can get out of sync.
DELETE, COPY, and MOVE affect the secondary 'configuration'.

We agree on the three methods

4. "There should be a choice about whether deleting the target of a direct
reference deletes all (direct) references"

We agreed that this behavior must be optional, because while it's
pretty easy to implement direct references, it not easy to implement
back pointers or the semantics of deleting references when target is
deleted.

Issue: must define the behavior if the target of a direct reference
has been deleted?

Issue:

Should the client be able to request creation of a reference whose
referential integrity is not enforced?
  Counter argument: few if any servers will implement both choices
  Putting in the choice complicates the protocol for no benefit.
    Counter-counter argument: Some DAV servers currently under development
      support both types of integrity.

The use case (Fielding) is to be able to create a reference, have the
target go away, have the target get recreated, then have the reference
work again.  There is some skepticism about the reasonableness of this case.

Should a client be able to choose when DELETEing a target to not
enforce referential integrity?
  No, because this requires all clients to be correct.

It could be that once we work out the behavior of references whose targets
have been deleted, Roy's case won't be workable for other reasons.

{Ed: the notetaker changed to Judy Slein at this point}

If we decide to support a client request for referential integrity / no
referential integrity, it should be applied when a reference is created.

Semantics of Dangling References

PROPFIND on a collection: 207 Multistatus, with a 404 Not Found as the
status for the dangling reference.
GET on a dangling reference: 404 Not Found + Ref-Type header
PROPFIND for a single property on a dangling reference: needs more thought
PROPPATCH on a dangling reference: 404 Not Found, so in this case there is
no distinction between the case where the reference is not there and the
case where it's a dangling reference.  Is this ok?
PUT on a dangling reference succeeds.

There needs to be more discussion on the semantics of dangling references.

We will take back to the list the issue of whether clients need to have a
choice about whether references will be deleted when their target is
deleted.

Jim Amsden protested against the conclusion that there is consensus that
optional backpointers are ok.  He will send another note to the list on this
issue.

Against backpointers: WebDAV should define only properties that are needed
for the protocol to operate.

Counterargument: There is a requirement to be able to navigate upward from a
resource that referenced, to find out what collections it is referenced
from.  The DAV:references property satisfies this requirement.

Proposal: Don't put optional backpointers into the Advanced Collections
spec, but instead write an informational rfc that recommends the
DAV:references property as the way to provide interoperable backpointers.
No decision.

*** Meeting Adjourned ***

Received on Wednesday, 21 October 1998 14:16:46 UTC