This documentation refers to an earlier version of Islandora. is current.

Skip to end of metadata
Go to start of metadata


The Compound Solution pack module adds the ability to to create what are called "compound objects." Compound objects gather together objects created with any other Islandora solution pack. When you create a compound object, a generic parent-child relationship is authored between the existing objects and the new compound object (implying a sibling relationship between the objects gathered as "children" of the new compound). These objects are ordered as part of the compound (so an object becomes "part one" of the compound object). This is reflected in the RELS-EXT datastream. 

The object view of a compound object is replaced by the view of its first child object. After a compound object is created, the "Islandora Compound Object Navigation" block must be activated and set in an appropriate region. When a user navigates to a compound object, this block will render a thumbnail view of all the additional objects linked via the compound object. In addition, a "Compound" management tab allows for the addition, removal, and reordering of objects from the compound object.

Configuration options are available through the Compound objects administrative menu (admin/islandora/solution_pack_config/compound_object)


  • Islandora
  • JAIL library
    • If utilizing the lazy loading image ability of the solution pack, enable the "Islandora Compound Object JAIL Display" block and ensure the JAIL library is present within sites/all/libraries/JAIL.


Release Notes and Downloads


Enable the Islandora compound object module (admin/modules). There exists two block options for displaying compound objects within Islandora: The first is the default "Islandora Compound Object Navigation" block. Go to admin/structure/block/manage/islandora_compound_object/compound_navigation/configureto find navigation controls and load all objects related to the parent compound. The"Islandora Compound Object JAIL Display" block (admin/structure/block/manage/islandora_compound_object/compound_jail_display/configure) uses the JAIL library which allows for lazy loading of images. This allows the block to load images only when they are being accessed which will greatly increase performance on compounds with many children. 


To create a compound object:

  • Go to parent collection.
  • Click "Manage".
  • Enable the "Compound Object" object under "Collection" tab, then click "Update Collection Policy".
  • After adding compound objects to your Collection Policy, you will be able to click the "Overview" tab and "Add an Object".
  • Select "Compound Object" then "Next".
  • Select "Compound Object MODS form" then "Next".
  • Fill in the form then click "Next". Note that you will not be ingesting an object datastream at this point, you are just creating an empty "parent" compound object that you will then be able to add "child" objects to.
  • After the compound object has been created, you can add "child" objects under "Manage" > "Compound".
  • Under the "Add Child Object" field, enter the PID for each object to be added to the compound object, then click submit. If you do not use drush, you must do this one-at-a-time for each PID. An autocomplete will also allow you to search for the object by its label if this is relevant. Once a child has been added to the compound, the view of the compound will use the metadata and thumbnail from the first object to render the main object view. 


The module has documented configuration options at admin/islandora/solution_pack_config/compound_object. 

By default, compound objects will be filtered from Solr search results. To change this, go to "Islandora" > "Solution pack configuration" > "Compound Object Solution Pack" > and uncheck the "Hide child objects in Solr results.  


The "Islandora Compound Object Navigation" block can be themed. See theme_islandora_compound_prev_next().


A Drush command has been added, to be run from the command line (Terminal), that will update the existing rel-predicate of existing compound objects to 'isConstituentOf'. It can be run with the drush command 'drush update_rels_predicate'. This command accpets no arguments.

Content Models, Prescribed Datastreams and Forms

The Compound Solution Pack comes with the following objects in

  • Islandora Compound Object Content Model (islandora:compoundCModel)
  • Compound Collection (islandora:compound_collection)

An image object created using the Compound Solution Pack's content model will have the following datastreams:


Default Fedora relationship metadata

MODSMODS record, created at time of ingest
DCDublin Core record

Thumbnail image, created at time of ingest

The Compound Solution Pack comes with the Compound Object MODS form.

  • No labels


  1. I can't find any evidence of the dependency listed here. Just a note for  Release review.

  2. Shouldn't the documentation supply an example of the Drush command that adds 'isConstituentOf'? It is not clear (to me at least) from the description provided how to formulate it.