h2. Triples in the Resource Index

{section}
{column:width=80%}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.
{column}
{column:width=20%}
{table:border=1|align=center|rules=all}
{tr}
{td:bgcolor=#c0c0c0|align=center}{*}Cardinality Key{*}{td}
{tr}{tr}
{td:bgcolor=#ffff00|align=center}Zero or more{td}
{tr}{tr}
{td:bgcolor=#87CEFA|align=center}Zero or one{td}
{tr}{tr}
{td:bgcolor=#90EE90|align=center}Exactly one{td}
{tr}{tr}
{td:bgcolor=#FFCC99|align=center}One or more{td}
{tr}
{table}
{column}
{section}
h2. 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.
{table:border=1|cellspacing=1|cellpadding=4|rules=all}
{tr:align=center|bgcolor=#c0c0c0}
{td}{*}Prefix{*}{td}{td}{*}Namespace URI{*}{td}
{tr}{tr}
{td}dc:{td}{td}{nl}[http://purl.org/dc/elements/1.1/]{nl}{td}
{tr}{tr}
{td}fedora-model:{td}{td}{nl}info:fedora/fedora-system:def/model#{nl}{td}
{tr}{tr}
{td}fedora-view:{td}{td}{nl}info:fedora/fedora-system:def/view#{nl}{td}
{tr}{tr}
{td}rdf:{td}{td}{nl}[http://www.w3.org/1999/02/22-rdf-syntax-ns#]{nl}{td}
{tr}
{table}
h2. Breakdown

h4. Base Triples

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

{table:border=1|cellspacing=1|cellpadding=4|rules=all}
{tr:align=center|bgcolor=#c0c0c0}
{td}{*}Subject{*}{td}{td}{*}Predicate{*}{td}{td}{*}Object{*}{td}{td}{*}Cardinality{*}{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID{td}{td}fedora-model:createdDate{td}{td}(date created in UTC){td}{td}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID{td}{td:valign=top}fedora-view:lastModifiedDate{td}{td:valign=top}(date modified in UTC){td}{td:valign=top}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID{td}{td:valign=top}fedora-model:state{td}{td:valign=top}fedora-model:Active
\\
fedora-model:Inactive
\\
fedora-model:Deleted{td}{td:valign=top}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID{td}{td:valign=top}fedora-model:owner{td}{td:valign=top}(not used){td}{td:valign=top}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID{td}{td:valign=top}fedora-model:label{td}{td:valign=top}(any string){td}{td:valign=top}Exactly One{td}
{tr}
{table}
h4. 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_).
{table:border=1|cellspacing=1|cellpadding=4|rules=all}
{tr:align=center|bgcolor=#c0c0c0}
{td}{*}Subject{*}{td}{td}{*}Predicate{*}{td}{td}{*}Object{*}{td}{td}{*}Cardinality{*}{td}
{tr}{tr:bgcolor=#FFCC99}
{td}info:fedora/$PID{td}{td}dc:title{td}{td}(any string){td}{td}One or More{td}
{tr}{tr:bgcolor=#FFCC99}
{td}info:fedora/$PID{td}{td}dc:identifier{td}{td}(any string){td}{td}One or More{td}
{tr}{tr:bgcolor=#ffff00}
{td}info:fedora/$PID{td}{td}(any other dc predicate){td}{td}(any string){td}{td}Zero or More{td}
{tr}
{table}
h4. RELS-EXT and RELS-INT Triples

{table:border=1|cellspacing=1|cellpadding=4|rules=all}
{tr:align=center|bgcolor=#c0c0c0}
{td}{*}Subject{*}{td}{td}{*}Predicate{*}{td}{td}{*}Object{*}{td}{td}{*}Cardinality{*}{td}
{tr}{tr:bgcolor=#ffff00}
{td}info:fedora/$PID{td}{td}(any non-reserved predicate){td}{td}(any URI or literal){td}{td}Zero or More{td}
{tr}
{table}
h4. 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.
{table:border=1|cellspacing=1|cellpadding=4|rules=all}
{tr:align=center|bgcolor=#c0c0c0}
{td}{*}Subject{*}{td}{td}{*}Predicate{*}{td}{td}{*}Object{*}{td}{td}{*}Cardinality{*}{td}
{tr}{tr:bgcolor=#FFCC99}
{td}info:fedora/$PID{td}{td}fedora-model:hasModel{td}{td}info:fedora/$CMODEL_PID{td}{td}One or More{td}
{tr}{tr:bgcolor=#ffff00}
{td}info:fedora/$CMODEL_PID{td}{td}fedora-model:hasService{td}{td}info:fedora/$SDEF_PID{td}{td}Zero or More{td}
{tr}{tr:bgcolor=#ffff00}
{td}info:fedora/$SDEP_PID{td}{td}fedora-model:isDeploymentOf{td}{td}info:fedora/$SDEF_PID{td}{td}Zero or More{td}
{tr}{tr:bgcolor=#ffff00}
{td}info:fedora/$SDEP_PID{td}{td}fedora-model:isContractorOf{td}{td}info:fedora/$CMODEL_PID{td}{td}Zero or More{td}
{tr}
{table}
h4. Datastream Triples

{table:border=1|cellspacing=1|cellpadding=4|rules=all}
{tr:align=center|bgcolor=#c0c0c0}
{td}{*}Subject{*}{td}{td}{*}Predicate{*}{td}{td}{*}Object{*}{td}{td}{*}Cardinality{*}{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID{td}{td:valign=top}fedora-view:disseminates{td}{td:valign=top}info:fedora/$PID/$DSID{td}{td:valign=top}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID/$DSID{td}{td:valign=top}fedora-view:disseminationType{td}{td:valign=top}info:fedora/*/$DSID{td}{td:valign=top}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID/$DSID{td}{td:valign=top}fedora-view:mimeType{td}{td:valign=top}(any mime type string){td}{td:valign=top}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID/$DSID{td}{td:valign=top}fedora-view:lastModifiedDate{td}{td:valign=top}(date modified in UTC){td}{td:valign=top}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID/$DSID{td}{td:valign=top}fedora-model:state{td}{td:valign=top}fedora-model:Active
\\
fedora-model:Inactive
\\
fedora-model:Deleted{td}{td:valign=top}Exactly One{td}
{tr}{tr:bgcolor=#90EE90}
{td:valign=top}info:fedora/$PID/$DSID{td}{td:valign=top}fedora-view:isVolatile{td}{td:valign=top}(true if R or E, false if M or X){td}{td:valign=top}Exactly One{td}
{tr}
{table}
h2. *Calculating Triples/Object*

You can use the following table to estimate the number of triples for each kind of object in your Fedora repository.
{table:border=1|cellspacing=1|cellpadding=4|rules=all}
{tr:align=center|bgcolor=#c0c0c0}
{td}{*}Calculation Method{*}{td}{td}*\# Triples{*}{td}
{tr}{tr:bgcolor=#ffffff}
{td}
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*

{td}{td:align=center}{*}15{*}{td}
{tr}{tr:bgcolor=#ffffff}
{td}If the DC datastream has any elements besides the standard dc:title and dc:identifier, *add 1* for each additional element.{td}{td}
{td}
{tr}{tr:bgcolor=#ffffff}
{td}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).{td}{td}
{td}
{tr}{tr:bgcolor=#ffffff}
{td}For each additional datastream, *add 7*.{td}{td}
{td}
{tr}
{table}