CMIS IV: Confusing feeds and collections

CMIS AtomPub extension does not see any difference between feeds and collections, even though they are vastly different in Atom’s data model. A feed is a representation of a resource whereas a collection is a resource and it defines the methods (and its semantics) and representations that can be exchanged with it.

CMIS provides a queer AtomPub service document that contains among other things:
  1. A collection with cmis:collectionType=”rootchildren” that is aimed at holding the folders and documents that are lodged in the root folder.
  2. A second collection with cmis:collectionType=”rootdescendants” that is aimed at holding all the folders and documents in that repository.
It is perfectly fine to have two such feeds, but, IMHO, it makes no sense to have two such collections. In fact it makes no sense to have any collection of descendants. There can only be a feed of descendants.
To draw an analogy to a simple file-system perspective, there is no such thing as adding a file to the recursive listing of a directory. You can only add a file to a directory.
Also, since a CMIS server is going to end up creating such a large number of collections, it makes sense to adopt a standard mechanism for discovering collections backing feeds and their metadata like how we describe in the hierarchy-ID.

Leave a Reply

Your email address will not be published. Required fields are marked *