Set objects versus parent objects





Some people are troubled by the difference between set objects and parent objects. Perhaps this will help:

Say I have a collection of fine art books that is falling apart and which is now out of print. I decide to digitise them (let's ignore any legal issues for the sake of simplicity!).

For each book I digitise each page individually and make a file of it which I put into a digital object.

In my repository, all the pages for my book need to be grouped together and ordered somehow. This is what a parent object does. It contains information, or has the ability to collect it, specifying which other objects in the repository are its pages (child objects). The children are not intended to be accessed on their own (although their re-use elsewhere is not necessarily precluded) but accessed by calling the parent. The parent contains the necessary information to make a coherent display of links to the children so that they can be arranged (for instance) in page order; the links are to the content (the digitised page) in the child objects. Additionally, whilst the children might hold minimal metadata such as the size (bytes) of the file for their page, it is the parent that contains the metadata for the book - if you like, the information from the dust jacket - title, author, synopsis, publisher, etc. So the pages are represented by the children, the binding + dust jacket by the parent.

I said that my book was but one of a fine art collection. A set object would be used to describe the collection. The descriptive metadata that it contains will be much less specific, largely limited to an overall description of the books. It would be able to enumerate all the objects in the set/collection, in other words identify all the parent objects, and generate a list of links to them. Importantly, this set object would normally provide links to its member objects at the splash page level (metadata) whereas a parent would provide links to downloadable content in other objects. It would likely not have the ability (or the need) to assemble metadata from other objects in the set.

So a parent-child relationship is a very tightly bound one where such things as order might be vitally important, a set is a much looser binding.