Triples in the Resource Index

Cardinality Key
 Zero or more
 Zero or one
 Exactly one
 One or more

The resource index stores system and user-controlled metadata about each object in the repository in the form of RDF triples. The number and type of triples stored depends on the content of the object and the indexing level of the resource index: At level 0, no triples are indexed. At level 1, all triples except method permutations are indexed. At level 2, all triples, including those indicating permutations, are indexed.

This document describes the triples that may exist in the resource index for a given object. The color of each row indicates how many of each kind of RDF triple can be expected. See the key on the right.

Breakdown

Base Triples

The following triples will exist for any object, irrespective of its datastream and disseminator content.

SubjectPredicateObject
info:fedora/$PIDrdf:typefedora-model:FedoraObject|BMechObject|BDefObject
info:fedora/$PIDfedora-model:createdDate(date created in UTC)
info:fedora/$PIDfedora-view:lastModifiedDate(date modified in UTC)
info:fedora/$PIDfedora-model:statefedora-model:Active|Inactive|Deleted
info:fedora/$PIDfedora-model:owner(not used)
info:fedora/$PIDfedora-model:label(any string)
info:fedora/$PIDfedora-model:cModel(any string)

Dublin Core Triples

Every object in Fedora has a Dublin Core ("DC") datastream. The following triples are derived from its content, which may consist of any number of each of the 15 unqualified dublin core elements. If unprovided at ingest, the DC datastream will be automatically created with minimal information (a dc:title and a dc:identifier).

SubjectPredicateObject
info:fedora/$PIDdc:title(any string)
info:fedora/$PIDdc:identifier(any string)
info:fedora/$PID(any other dc predicate)(any string)

RELS-EXT Triples

SubjectPredicateObject
info:fedora/$PID(any non-reserved predicate)(any uri or literal)

Behavior Mechanism Triples

SubjectPredicateObject
info:fedora/$PIDfedora-model:usesBMechinfo:fedora/$BMECH_PID

Datastream Triples

SubjectPredicateObject
info:fedora/$PIDfedora-model:hasDatastreaminfo:fedora/$PID/$DSID
info:fedora/$PIDfedora-view:disseminatesinfo:fedora/$PID/$DSID
info:fedora/$PID/$DSIDfedora-view:disseminationTypeinfo:fedora/*/$DSID
info:fedora/$PID/$DSIDfedora-view:mimeType(any mime type string)
info:fedora/$PID/$DSIDfedora-view:lastModifiedDate(date modified in UTC)
info:fedora/$PID/$DSIDfedora-model:statefedora-model:Active|Inactive|Deleted
info:fedora/$PID/$DSIDfedora-view:isVolatile(true if R or E, false if M or X)

Per-Method Triples

SubjectPredicateObject
info:fedora/$PIDfedora-view:disseminatesinfo:fedora/$PID/$BDEF_PID/$METHOD
info:fedora/$PID/$BDEF_PID/$METHODfedora-view:disseminationTypeinfo:fedora/*/$BDEF_PID/$METHOD
info:fedora/$PID/$BDEF_PID/$METHODfedora-view:mimeType(any mime type string)
info:fedora/$PID/$BDEF_PID/$METHODfedora-view:lastModifiedDate(date considered modified in UTC)
info:fedora/$PID/$BDEF_PID/$METHODfedora-model:statefedora-model:Active|Inactive|Deleted
info:fedora/$PID/$BDEF_PID/$METHODfedora-view:isVolatile(true if any dependencies are volatile, false otherwise)
info:fedora/$PID/$BDEF_PID/$METHODfedora-model:dependsOninfo:fedora/$PID/$DSID

Per-Permutation Triples

SubjectPredicateObject
info:fedora/$PID/$BDEF_PID/$METHODfedora-view:disseminationTypeinfo:fedora/*/$BDEF_PID/$METHOD?PARAM=VALUE1

Calculating Triples/Object

You can use the following table to estimate the number of triples for each kind of object in your Fedora repository.

# TRIPLES
Every object automatically gets the following triples:
  • Base: 6
  • Dublin Core (dc:title and dc:identifier): 2
  • Datastream Triples (for DC): 6
14
If the object has a content model (cModel) defined, add 1.  
If the DC datastream has any elements besides the standard dc:title and dc:identifier, add 1 for each additional element.  
If the object has a RELS-EXT datastream, add 7, then add 1 for each statement asserted therein.  
For each additional datastream, add 7.  
For each disseminator:
  • add 1
  • For each method:
    • add 6
    • If permutations are enabled (RI indexing level 2):
      • For each input datastream, add 1
      • If the method takes parameters and all of them are mandatory and have a defined set of possible values, add 1 for each permutatation