Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

The Compound Solution pack module adds the ability to to create what are called "compound objects." Compound objects function as "parent" objects that gather together "child" objects created with any other Islandora solution pack. When you associate Islandora objects with a parent compound object, the parent-child relationship is recorded in the RELS-EXT structural metadata of the child objects (see bottom of page for sample RELS-EXT). Order can also be recorded in the RELS-EXT metadata so child objects can be displayed in a sequence.

...

The "Compound" management tab allows for the addition, removal, and reordering of child objects from the parent compound object. Configuration options for the module are available through the Compound objects administrative menu (admin/islandora/solution_pack_config/compound_object)

Dependencies

  • 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.

Downloads

Release Notes and Downloads (Copy)

Installation

Enable the Islandora compound object module (admin/modules). There are two block options for displaying compound objects within Islandora. Select one of the following:

  • The first is the default "Islandora Compound Object Navigation" block. Go to admin/structure/block/manage/islandora_compound_object/compound_navigation/configure to find navigation controls and load all objects related to the parent compound. 
  • The second is the "Islandora Compound Object JAIL Display" block. Go to admin/structure/block/manage/islandora_compound_object/compound_jail_display/configure to use 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. 

Configuration

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

  1. Only allow compound objects to have child objects associated with them.
    • Checked: you can only add child objects to Islandora objects with the "Compound Solution Pack" type.
    • Unchecked: all objects can have child objects.
  2. Generate a thumbnail for compound objects from their first child.
    • Checked: A thumbnail will be generated and attached to the compound object as a TN datastream.
    • Unchecked: No thumbnail is generated and a system default thumbnail will display.
  3. Hide child objects in RI results
    • Checked: Child objects will not be displayed in the Islandora browse. Only parent objects will display.
    • Unchecked: Child objects and parent objects will be displayed in the Islandora browse.
  4. Hide child objects in Solr results
    1. Checked: Child objects will not be displayed in Solr search results. Only parent objects will display.
    2. Unchecked: Child objects and parent objects will be displayed in the Islandora search.
  5. Solr Filter Query
    • This is the query that enables the "Hide child objects in Solr results" function. The default value is `-RELS_EXT_isConstituentOf_uri_mt:[* TO *]`
  6. Child relationship predicate
    • This is the statement in the RELS-EXT metadata that associates child objects with parent objects. The default value is `isConstituentOf`
  7. Use alternative, autoloading display for compounds?
    • Checked: Enables the JAIL display (dependencies and blocks also need to be configured. See the documentation for "Installation" and "Display" for more information.)
    • Unchecked: The default display will be used.
  8. Display compound object parents in the breadcrumbs on children objects
    • Checked: The parent object will appear in the breadcrumb navigation.
    • Unchecked: The parent object will not appear in the breadcrumb navigation.
  9. Compound Member Query
    • SPARQL - Does a SPARQL query with filters. Generally faster than the default option.

Usage

To create a compound object:

...

Child objects can be removed from parent objects from the parent object Manage >Compound tab. This removes the association from the RELS-EXT metadata but does not remove the child object from the repository.

Display

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.

Block options

There are two block options for displaying compound objects within Islandora. The default "Islandora Compound Object Navigation" block will provide navigation controls and loading of all objects related to the parent compound. The second option is a block utilizing 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 compound objects with many children.See the "Installation" section for more information about the two display options.

Theme

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

Drush

Previous versions of this module (Islandora 7.x-1.2 and earlier) had a different predicate in the RELS-EXT to associate child objects with parent objects. To update to the new compound object predicate, run the drush command `update_rels_predicate`. This will update the predicates of existing compound objects to `isConstituentOf`. This command accepts no arguments.

Content Models, Prescribed Datastreams and Forms

The Compound Solution Pack comes with the following objects in http://path.to.your.site/admin/islandora/solution_packs:

...

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

RELS-EXT

Default Fedora relationship metadata

MODSMODS record, created at time of ingest
DCDublin Core record
TN

Thumbnail image, created at time of ingest

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

Sample RELS-EXT for Parent Object (Compound Object)


<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:fedora="info:fedora/fedora-system:def/relations-external#"
xmlns:fedora-model="info:fedora/fedora-system:def/model#" xmlns:islandora="http://islandora.ca/ontology/relsext#">
  <rdf:Description rdf:about="info:fedora/islandora:3">
    <fedora:isMemberOfCollection rdf:resource="info:fedora/islandora:compound_collection"></fedora:isMemberOfCollection>
    <fedora-model:hasModel rdf:resource="info:fedora/islandora:compoundCModel"></fedora-model:hasModel>
  </rdf:Description>
</rdf:RDF>


Sample RELS-EXT for Child Object (Large Image Object)

<rdf:RDF xmlns:fedora="info:fedora/fedora-system:def/relations-external#" xmlns:fedora-model="info:fedora/fedora-system:def/model#" 
xmlns:islandora="http://islandora.ca/ontology/relsext#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about="info:fedora/islandora:2">
    <fedora:isMemberOfCollection rdf:resource="info:fedora/islandora:sp_large_image_collection"></fedora:isMemberOfCollection>
    <fedora-model:hasModel rdf:resource="info:fedora/islandora:sp_large_image_cmodel"></fedora-model:hasModel>
    <fedora:isConstituentOf rdf:resource="info:fedora/islandora:3"></fedora:isConstituentOf>
    <islandora:isSequenceNumberOfislandora_3>1</islandora:isSequenceNumberOfislandora_3>
  </rdf:Description>
</rdf:RDF>