Triples in the Resource Index

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

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

Namespaces Used

For brevity, the URIs used in this document are shown in abbreviated form. To determine the unabbreviated form of any such URI, replace the Prefix with the associated Namespace URI below.

Prefix
Namespace URI
dc:
http://purl.org/dc/elements/1.1/
fedora-model:
info:fedora/fedora-system:def/model#
fedora-view:
info:fedora/fedora-system:def/view#
rdf:
http://www.w3.org/1999/02/22-rdf-syntax-ns#

Breakdown

Base Triples

The following triples will exist for any object, irrespective of its Datastream content.

Subject
Predicate
Object
Cardinality
info:fedora/$PID
fedora-model:createdDate
(date created in UTC)
Exactly One
info:fedora/$PID
fedora-view:lastModifiedDate
(date modified in UTC)
Exactly One
info:fedora/$PID
fedora-model:state
fedora-model:Active
fedora-model:Inactive
fedora-model:Deleted
Exactly One
info:fedora/$PID
fedora-model:owner
(not used)
Exactly One
info:fedora/$PID
fedora-model:label
(any string)
Exactly One

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

Subject
Predicate
Object
Cardinality
info:fedora/$PID
dc:title
(any string)
One or More
info:fedora/$PID
dc:identifier
(any string)
One or More
info:fedora/$PID
(any other dc predicate)
(any string)
Zero or More

RELS-EXT and RELS-INT Triples

Subject
Predicate
Object
Cardinality
info:fedora/$PID
(any non-reserved predicate)
(any URI or literal)
Zero or More

Content Model Architecture Triples

Note: If not explicitly provided the Fedora Repository will assume there is a fedora-model:hasModel relation asserted from a Data Object to a system-supplied base CModel Object satisfying the cardinality constraint. This relation should be explicitly stated in the REL-EXT Datastream as a recommended practice. Also note that, while CModel, SDef, and SDep objects may be created without asserting their respective relations, they will not perform their functions without them.

Note: In Fedora 3.0, though permitted, it is not recommended that one SDep object be used to deploy a service for more than one CModel-SDef pair. Future versions of Fedora are likely to provide better support for this configuration.

Subject
Predicate
Object
Cardinality
info:fedora/$PID
fedora-model:hasModel
info:fedora/$CMODEL_PID
One or More
info:fedora/$CMODEL_PID
fedora-model:hasService
info:fedora/$SDEF_PID
Zero or More
info:fedora/$SDEP_PID
fedora-model:isDeploymentOf
info:fedora/$SDEF_PID
Zero or More
info:fedora/$SDEP_PID
fedora-model:isContractorOf
info:fedora/$CMODEL_PID
Zero or More

Datastream Triples

Subject
Predicate
Object
Cardinality
info:fedora/$PID
fedora-view:disseminates
info:fedora/$PID/$DSID
Exactly One
info:fedora/$PID/$DSID
fedora-view:disseminationType
info:fedora/*/$DSID
Exactly One
info:fedora/$PID/$DSID
fedora-view:mimeType
(any mime type string)
Exactly One
info:fedora/$PID/$DSID
fedora-view:lastModifiedDate
(date modified in UTC)
Exactly One
info:fedora/$PID/$DSID
fedora-model:state
fedora-model:Active
fedora-model:Inactive
fedora-model:Deleted
Exactly One
info:fedora/$PID/$DSID
fedora-view:isVolatile
(true if R or E, false if M or X)
Exactly One

Calculating Triples/Object

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

Calculation Method
# Triples

Every object automatically gets the following triples:

  • Base: 6
  • Dublin Core (dc:title and dc:identifier): 2
  • Content Model Architecture (fedora-model:hasContentModel): 1
  • Datastream Triples (for DC): 6
15
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 and/or a RELS-INT datastream, add 7, then add 1 for each statement asserted therein (except fedora-model:hasContentModel which has been counted above).

For each additional datastream, add 7.