- From: Roy T. Fielding <fielding@kiwi.ics.uci.edu>
- Date: Thu, 04 Dec 1997 18:04:14 -0800
- To: "w3c-dist-auth@w3.org" <w3c-dist-auth@w3.org>
I think that we need to consider what (if anything) differentiates
a collection from a non-collection resource. As far as I can tell,
that would be
o A collection can be unordered
All the other features could be accomplished as a normal resource.
That is, in fact, how Hyper-G implemented collections [1], and why they
do not support unordered collections. After all, an unordered collection
is simply an ordered collection with the ordering defined by the server.
There are advantages to treating a collection differently than
a normal resource.
o The new method names allow the default presentation of a collection
resource to be separate from its collection structure. [This could
also be accomplished by a property on the collection resource,
which is how "index.html" works on most servers.]
o It is unnecessary to require a single exchange media type
for manipulating the collection membership via PUT/POST/PATCH.
On the other hand, the current draft already requires text/xml
(which itself is a problem, see below) and a recent proposal said
that INDEX would be eliminated.
There are also disadvantages to treating a collection differently than
a normal resource.
o Ordering relationships have to be made by indirection to an
ordering type or a separate DAG resource.
o Clutter.
I don't buy Jim Davis' argument that multiple ordering relationships
are unnecessary. If ordering is needed at all, then it should be
represented in its most abstract form; otherwise, we'll have to come
up with a new exchange syntax to satisfy other ordering needs.
If you want to maintain simplicity, use a general syntax (such as
the ordering type being expressed as a property containing a URI
that defines either one of the standard orderings or a DAG resource),
and only require support for "none" and a single "dav:as-added"
ordering URI.
However, this all leads to a perplexing question: we (or perhaps I should
say, whoever decided text/xml was a universal exchange format) have already
eliminated all the advantages of distinguishing between collection
and non-collection resources, so why haven't we eliminated the
disadvantages as well? Have I missed something? In other words,
if we are already requiring text/xml, then require a form of XML
that represents a DAG and manipulate the DAG client-side in the same
way that the server-side DAG would be manipulated by the individual
methods, and then PUT/PATCH/POST the result. That allows a much
friendlier UI as well.
BTW, the problem with text/xml is that there is no fixed definition
which the IESG would consider acceptable for a normative reference.
That is something the XML folks will have to get a move on, and fast,
if WebDAV is ever to be a proposed standard. Harald knows what a
"fixed definition" entails [I don't know what the current understanding
is between IETF and W3C].
....Roy
[1] H. Maurer. "Hyper-G, now Hyperwave: The Next Generation Web Solution",
Addison Wesley, 1996, section 9.2.
Received on Thursday, 4 December 1997 21:25:46 UTC