Differences between revisions 9 and 10
Revision 9 as of 2008-10-14 13:22:11
Size: 2689
Editor: abr
Comment:
Revision 10 as of 2008-10-15 12:47:55
Size: 1971
Editor: abr
Comment:
Deletions are marked like this. Additions are marked like this.
Line 15: Line 15:
At the top, we have defined a special collection object, called [:DataModel/Root_Collection: doms:Root_Collection]. This collection contains itself, and all the first-level collections in DOMS. First-level collections are those that are directly part of [:DataModel/Root_Collection: doms:Root_Collection]. First-level collections can contain second-level collections, which for all purposes are identical to first-level collections, except that they are not part of [:DataModel/Root_Collection: doms:Root_Collection]. Infinite levels of collections are possible, and the level of a collection is simply the lowest number of "doms-relations:isPartOfCollection" relations that must be followed to get to [:DataModel/Root_Collection: doms:Root_Collection]. At the top, we have defined a special collection object, called [:DataModel/Root_Collection: doms:Root_Collection]. This collection contains itself. Collections can contain other collections, but cycles in the graph is explictly forbidden. The only accepted cycle is the root collection that contain itself.
Line 17: Line 17:
Only "doms:Root_Collection" is allowed to contain itself, all other collections must be part of another collection. An object can be part of several collections. For all collection objects there must exist a path to "doms:Root_Collection". A collection can only be part of a collection with a lower level, so that a second-level collection cannot be part of a third-level collection. This is to guard against cycles of collections being part of each other. Aside from forbidding cycles, there are no requirements for the structure of the graph. We envisage two ways to use collections
Line 19: Line 19:
These rules boil down to following: Each collection has a level n. Each collection can contain collections with level n+1, and must be part of at least one collection with level n-1. No other connections are possible, the cannot just skip a level.  1. As a strict hierarchy, modelled on the organisational structure and the areas of responsibility. Few collections, and objects are not part of many collections.
 1. As a way of adding tags (subjects) to the objects. There will be many collection objects, and objects will be part of many collections.

Collections

Those trained by the academic tradition of the western world like to think in terms of categories and collections. Categories in Fedora are modelled by the Content Models, but there is no system in place for Collections. But Fedora allows for RDF relations between objects, and with that we can easily model collections.

There is no inherent semantic meaning attached to collections. They are a way to group objects, pertaining to some criteria.

Content Models are also part of collections, preferably the collections containing objects that use them. Template objects are also part of collections.

A special collection [:DataModel/DOMS_Base_Collection: doms:DOMS_Base_Collection] contains the base objects of the DOMS system, described in DataModel. This collection will always be present.

The Collection Hierarchy

In the doms-relations namespace (see DomsNameSpaces) we define a reserved relation "isPartOfCollection". All objects must have at least one such relation to a Collection object (ie. an object of [:DataModel/ContentModel_Collection: doms:ContentModel_Collection]). This includes the collection objects themselves, and as such there is a hierarchy of collections.

At the top, we have defined a special collection object, called [:DataModel/Root_Collection: doms:Root_Collection]. This collection contains itself. Collections can contain other collections, but cycles in the graph is explictly forbidden. The only accepted cycle is the root collection that contain itself.

Aside from forbidding cycles, there are no requirements for the structure of the graph. We envisage two ways to use collections

  1. As a strict hierarchy, modelled on the organisational structure and the areas of responsibility. Few collections, and objects are not part of many collections.
  2. As a way of adding tags (subjects) to the objects. There will be many collection objects, and objects will be part of many collections.

DomsCollections (last edited 2010-03-17 13:09:04 by localhost)