Understanding External Relationships

The RELS-EXT binary, or “RELATIONSHIPS EXTERNAL,” serves as our structural metadata file. It describes how parts of a dataset relate to the dataset. For this reason, it is essential to migration.

For example, let’s look at dataset utk.ir.fg:2179. This dataset consists of eight files with seven restricted from public access.

Dataset Objects

utk.ir.fg:2179 has structural metadata that describes it in its RELS-EXT binary.

@prefix fedora: <info:fedora/fedora-system:def/relations-external#> .
@prefix fedora-model: <info:fedora/fedora-system:def/model#> .
@prefix islandora: <http://islandora.ca/ontology/relsext#> .

<info:fedora/utk.ir.fg:2179> islandora:inheritXacmlFrom <info:fedora/utk.ir:fg> ;
    fedora-model:hasModel <info:fedora/islandora:compoundCModel> ;
    fedora:isMemberOfCollection <info:fedora/utk.ir:fg> .

You can tell this is a dataset because its fedora-model:hasModel object is <info:fedora/islandora:compoundCModel>. All dataset objects have this model. Furthermore, all datasets have a fedora:isMemberOfCollection of <info:fedora/utk.ir:fg>. We consider the other triple to be noise and not meaningful (<info:fedora/utk.ir.fg:2179> islandora:inheritXacmlFrom <info:fedora/utk.ir:fg> .)

Parts of Datasets

Every piece of a dataset is also a Fedora object with a RELS-EXT binary with a triple that describes its relationship to the parent object.

@prefix ns0: <info:fedora/fedora-system:def/relations-external#> .
@prefix ns1: <info:fedora/fedora-system:def/model#> .
@prefix ns2: <http://islandora.ca/ontology/relsext#> .

<info:fedora/utk.ir.fg:2180>
  ns0:isMemberOfCollection <info:fedora/utk.ir:fg> ;
  ns1:hasModel <info:fedora/islandora:binaryObjectCModel> ;
  ns2:inheritXacmlFrom <info:fedora/utk.ir:fg> ;
  ns0:isConstituentOf <info:fedora/utk.ir.fg:2179> ;
  ns2:isSequenceNumberOfutk.ir.fg_2179 "1" ;
  ns2:isManageableByUser "admin", "bdysonsm", "ceaker", "mbagget1", "fedoraAdmin" ;
  ns2:isManageableByRole "administrator", "dataset_manager_role" .

All parts have a <info:fedora/utk.ir.fg:2180> ns1:hasModel <info:fedora/islandora:binaryObjectCModel> . triple that indicates the object has a content model that makes it a part of a data set. We don’t consider sequences here to be important nor is it important to indicate the part is attached to the larger collection. The <info:fedora/utk.ir.fg:2180> ns2:isManageableByRole "administrator", "dataset_manager_role" . indicates the object should only be managed by users with these roles. The ns2:isManageableByUser triple is there for precautions but not considered important for migration. Furthermore, this information is described in a XACML policy described else where in this document.

Let’s also take a look at a RELS-EXT for a restricted from view part.

@prefix ns0: <info:fedora/fedora-system:def/relations-external#> .
@prefix ns1: <info:fedora/fedora-system:def/model#> .
@prefix ns2: <http://islandora.ca/ontology/relsext#> .

<info:fedora/utk.ir.fg:2181>
  ns0:isMemberOfCollection <info:fedora/utk.ir:fg> ;
  ns1:hasModel <info:fedora/islandora:binaryObjectCModel> ;
  ns2:inheritXacmlFrom <info:fedora/utk.ir:fg> ;
  ns2:isViewableByUser "admin", "ceaker", "mbagget1", "fedoraAdmin" ;
  ns2:isViewableByRole "administrator", "dataset_manager_role" ;
  ns2:isManageableByUser "admin", "ceaker", "mbagget1", "fedoraAdmin" ;
  ns2:isManageableByRole "administrator", "dataset_manager_role" ;
  ns0:isConstituentOf <info:fedora/utk.ir.fg:2179> ;
  ns2:isSequenceNumberOfutk.ir.fg_2179 "2" .

In this example, the triples are mostly the same except there are two triples that describe who can “see” this part. We consider the ns2:isManageableByRole to be meaningful for migration, but the other triple is there currently as a precaution. As stated above, access restrictions are managed in a XACML policy described elsewhere.