On May 13, 2009, at 5:11 AM, Julian Reschke wrote:

Hi Nikunj,

Nikunj Mehta wrote:
...
Some systems deal with multiple children types as well. CMIS shows a good number of such examples where a single folder entry can have children of four different kinds - policies, relationships, documents, and descendants [1]. In another example, a Netflix title entry can have children of 7 different kinds - awards, directors, cast, screen formats, episodes, seasons, languages [2]. Each different kind leads to its own feed/collection.

Understood.

Many systems deal with this by putting all children into the same container, and just distinguish by MIME type. Or my assigning subfolders.

So does this require multiple *different* children feeds?

Both examples I gave here indeed require 'different' feeds. CMIS identifies each feed through a separate link rel value and a distinct href. Netflix does not provide an out of line feed, but houses each subfolder in a separate foreign markup element.


- Systems that do not support hierarchical names, or which do support multiple containment, will need an explicit way to find the parents of a resource (otherwise the implicit containment based on the path names is sufficient).
No assumption can be made regarding namespaces in AtomPub as that is managed by the server. A client cannot be constructing new URLs using formulaic techniques.

Indeed. I just wanted to clarify that this is the main difference from a filesystem's (or WebDAV's) containment model.

If you are interested in read-write access, then additional requirements are:
1. How do you discover the collection from a feed?
2. Some collections accept only "entries that represent a collection", some disallow such entries, and yet others don't place any such restrictions. 3. What is the meaning of DELETEing an "entry that represents a collection", especially when its entries may be hard-linked in to other such entries?
...

DELETE as specified in HTTP/1.1 (RFC 2616) really leaves this open.

WebDAV (RFC 4918) defines a specific hierarchical containment model, but still leaves this to the server. WebDAV BIND (<http://greenbytes.de/tech/webdav/draft-ietf-webdav-bind-23.html >) introduces the necessary terminology for this, and clarifies that DELETEing something from a collection will not affect other paths to the resource (as long as these are really distinct paths).

Atom doesn't currently define any such model and namespace decisions are server's decision. Doesn't that lead to interoperability problems?

Reply via email to