Registry Interchange Format - Collections and Services
RIF-CS v1.3

Schema Guidelines

Table of Contents

  1. Purpose
  2. Overview
  3. Example
  4. Schema Elements and Usage
    1. List of Schema Elements
    2. Schema Element Structure
    3. Schema Element Descriptions
  5. Frequently Asked Questions
  6. Guidelines Revision History

1. Purpose

This document describes the use of the Registry Interchange Format - Collections and Services (RIF-CS) Schema for the purposes of exposing collections metadata via an OAI-PMH Data Provider to a collections registry. The document is aimed at ANDS Collections Registry data providers, potential community users in Australia and users within a global registries context.

This document is aimed primarily at a technical audience namely those developing the OAI-PMH Data Provider code to generate material in RIF-CS format or those creating mappings from some native form to RIF-CS XML.

For further guidance on RIF-CS please refer to the Content Providers Guide.

2. Overview

The RIF-CS Schema was developed as a data interchange format for supporting the submission of collections metadata to the ANDS Collection Registry. It is based on ISO 2146 but only includes elements needed for a collection service registry and so is not a full binding to the standard.

Feedback from the RIF-CS user community is used to determine changes for the annual update of RIF-CS. Feedback should be emailed to services@ands.org.au.

The schema also has an accompanying set of vocabularies.

Currently the primary registry object type is collection. A collection in the RIF-CS Schema context could be a repository, a registry, a collective work or an index/database. The RIF-CS also supports other registry object types, namely services, activities and parties. Any or all of these along with their relations to each other are able to be expressed in RIF-CS format.

3. RIF-CS Example

This example of a repository describing its holdings in RIF-CS will not be discussed but may be used for reference when reviewing the next section.


4. Schema Elements and Usage

This section describes in detail the use of each schema element within the registry interchange/repository harvest context. For content model and restrictions (optional, mandatory, recurrence) refer to the schema documentation and controlled vocabularies.


4.1. List of Schema Elements>

accessPolicy | accessRights | activity | address | addressPart | arg | citationInfo | citationMetadata | collection | context | contributor | coverage | date (temporal) | date (citationMetadata) | description (registryObject) | description (relation) | edition | electronic | endDate | existenceDates | fullCitation | identifier (registryObject) | identifier (citationMetadata) | identifier (relatedInfo) | key | licence | location | name | namePart (name) | namePart (contributor) | notes | originatingSource | party | physical | placePublished | publisher | registryObject | registryObjects | relatedInfo | relatedObject | relation | rights | rightsStatement | service | spatial (location) | spatial (coverage) | startDate | subject | temporal | text | title (citationMetadata) | title (relatedInfo) | url (relatedInfo) | url (citationMetadata) | value



4.2. Schema Element Structure

Static Structure-1 publisher (0-1) startDate (0-1) endDate (0-1) existenceDates (0-n) rightsStatement (0-1) licence (0-1) accessRights (0-1) rights (0-n) accessPolicy (0-n) party (1) or service (1) collection (1) or registryObjects (1) namePart (1-n) name (0-n) activity (1) or subject (0-n) description (0-n) identifier (0-n) key (1) originatingSource (1) registryObject (0-n) identifier (1) title (0-1) notes (0-1) relatedInfo (0-n) context (1) url (1) date (0-n) placePublished (1) edition (1) fullCitation (0-1) contributor (1-n) namePart (1-n) identifier (1) title (1) citationMetadata (0-1) citationInfo (0-n) temporal (0-n) date (0-n) text (0-n) spatial (0-n) coverage (0-n) key (1) url (0-1) relation (1-n) description (0-1) relatedObject (0-n) address (0-n) electronic (0-n) value (1) arg (0-n) physical (0-n) adressPart (1-n) spatial (0-n) location (0-n)


4.3. Schema Element Descriptions

Element <registryObjects>

This element is the root element for any RIF-CS compliant document.

May contain: registryObject

Top

Element <registryObject>

This element is a wrapper element containing descriptive and administrative metadata for a single registry object.

May contain: activity | collection | party | service

Contained within: registryObjects

Attributes:

group: required

This must contain a value that uniquely identifies the organisation that is contributing this object's metadata. It should be a plain text string set to the name of the contributing organisation, e.g. The Australian National University.

Top

Element <originatingSource>

An element holding a string or URI identifying the entity holding the managed version of the registry object metadata. For example in a federated aggregation context this must identify the original repository or owning institution from which the metadata was harvested *not* the aggregator from which it was harvested.

type: optional

A value taken from the Originating Source Type vocabulary.

Top

Element <key>

This element holds a value that uniquely identifies the registry object.

Contained within: registryObject | relatedObject

Top

Element <activity>

Wrapper element for descriptive and administrative metadata for an activity registry object.

May contain: description (registryObject) | identifier (registryObject) | location | name | relatedInfo | relatedObject | subject

Contained within: registryObject

Attributes:

type: required

A value taken from the Activity Type vocabulary.

In the example, People Australia is a project run by the National Library of Australia and Trove People and Organisations is a program that is associated with it.

dateModified: optional

The date this object's metadata was last changed. This only refers to the metadata of the registry object itself. For example if a collection has a new item added to it this does not constitute a modification to the object.

Top

Element <collection>

Wrapper element for descriptive and administrative metadata for collection registry object.

May contain: description (registryObject) | identifier (registryObject) | location | name | relatedInfo | relatedObject | subject

Contained within: registryObject

Attributes:

type: required

A value taken from the Collection Type vocabulary.

In the examples, Aboriginal Population Profiles for Development Planning in the North East Kimberley is a collection, DSpace at The Australian National University is a repository, the ARROW Discovery Service is a catalogue or index and the ORCA Collection Service Registry is a registry.

dateAccessioned: optional

The date this object was registered in a managed environment. Must be UTC and of one of the forms described in section 3.2.7 of the World Wide Web Consortium's (W3C) Schema Data Types document (http://www.w3.org/TR/xmlschema-2/).

dateModified: optional

The date this object's metadata was last changed. This only refers to the metadata of the registry object itself. For example if a collection has a new item added to it this does not constitute a modification to the object. Where an object's metadata has not changed, this attribute should be set to the object's creation date. Must be UTC and of one of the forms described in section 3.2.7 of the World Wide Web Consortium's (W3C) Schema Data Types document (http://www.w3.org/TR/xmlschema-2/).

Top

Element <party>

Wrapper element for descriptive and administrative metadata for a party registry object.

May contain: description (registryObject) | identifier (registryObject) | location | name | relatedInfo | relatedObject | subject

Contained within: registryObject

Attributes:

type: required

A value taken from the Party Type vocabulary.

In the examples John Doe is a person and The Australian National University is a group.

dateModified: optional

The date this object's metadata was last changed. This only refers to the metadata of the registry object itself. For example if a collection has a new item added to it this does not constitute a modification to the object. Must be UTC and of one of the forms described in section 3.2.7 of the World Wide Web Consortium's (W3C) Schema Data Types document (http://www.w3.org/TR/xmlschema-2/).

Top

Element <service>

Wrapper element for descriptive and administrative metadata for service registry object.

May contain: accessPolicy | description | identifier | location | name | relatedInfo | relatedObject | subject

Contained within: registryObject

Attributes:

type: required

Construct service type as a two-part string, with the first part specifying the service genre and the second part specifying the protocol (e.g., syndicate-rss, harvest-oaipmh, search-sru). For creation and metadata services, which do not have generically used protocols, specify only the service genre.

A value taken from the Service Type vocabulary.

Note: the value for the service genre is taken from the set of service genres registered with the e-Framework. The protocol is taken from known services identified by initial Collections Registry data providers. Where new genre-protocol combinations are required please email services@ands.org.au.

dateModified: optional

The date this object's metadata was last changed. This only refers to the metadata of the registry object itself. For example if a collection has a new item added to it this does not constitute a modification to the object. Must be UTC and of one of the forms described in section 3.2.7 of the World Wide Web Consortium's (W3C) Schema Data Types document (http://www.w3.org/TR/xmlschema-2/).

Top

Element <identifier> (registryObject)

Allows for primary and alternative identifiers for this object. The value of the repositoryObject's <key> element may be repeated if desired, or any other identifiers used to reference this object.

Contained within: activity | collection | party | service

Attributes:

type: required

A value taken from the Identifier Type vocabulary.

Top

Element <name>

A wrapper element for name metadata allowing the segmentation of name components by use of the namePart element.

May contain: name

Contained within: activity | collection | party | service

Attributes:

type: optional

A value taken from the Name Type vocabulary.

Use 'type' when more than one name is supplied and there is a need to distinguish between the primary name and alternative versions.

There should only be one primary name but it can be encoded in multiple language statements. To record versions of an official name in multiple languages, use multiple instances of name with type set to 'primary and in each statement associate the value string with the appropriate language using the xml:lang attribute.

dateFrom: optional

The date from which the name was current. This is only applicable where the name has changed over time and older versions of the name have been recorded in the metadata. Should be UTC and of one of the forms described in section 3.2.7 of the World Wide Web Consortium's (W3C) Schema Data Types document (http://www.w3.org/TR/xmlschema-2/).

dateTo: optional

The date the name became no longer current. This is only applicable where the name has been changed over time and older versions of the name have been recorded in the metadata. Should be UTC and of one of the forms described in section 3.2.7 of the World Wide Web Consortium's (W3C) Schema Data Types document (http://www.w3.org/TR/xmlschema-2/).

Top

Element <namePart> (name)

A name can be represented by either a single namePart (as in the case of an organization or group) or may be split into a more granular structure (as in the case of a person) through use of multiple namePart elements (e.g. for title, first name, surname, etc).

Contained within: name

Attributes:

type: optional

A value taken from the Name Part Type vocabulary.

Use 'type' when there is more than one namePart and there is a need to distinguish between the multiple namePart instances that together make up a name.

Top

Element <location>

May contain: address | spatial (location)

Contained within: activity | collection | party | service

Wrapper element containing metadata describing the physical and/or electronic location(s) of a registry object. A location element should contain metadata about a single location (e.g. home location, work location or term location for a person; business location, invoicing location and delivery locations for an organisation; service location for a service; physical location for a repository).

NOTE: Do not use location to record the data coverage (temporal/spatial) of a registry object. Instead use the <coverage> element. Location should also not be used to record the repository in which a collective work is held. Instead use an instance of related object with relation type attribute set to "isLocatedAt".

type: optional

This attribute is currently not in use.

dateFrom: optional

The date from which the location information was current. This is only applicable where the address has changed and older addresses have been recorded in the metadata being provided. Should be UTC and of one of the forms described in section 3.2.7 of the W3C's Schema Data Types document (http://www.w3.org/TR/xmlschema-2/).

dateTo: optional

The date from which the location information was no longer current. This is only applicable where the address has changed and older addresses have been recorded in the metadata being provided. Should be UTC and of one of the forms described in section 3.2.7 of the W3C's Schema Data Types document (http://www.w3.org/TR/xmlschema-2/).

Top

Element <address>

Wrapper element for physical and electronic address metadata.

May contain: physical | electronic

Contained within: location

Top

Element <physical>

Describes the physical address of the object. This element acts as a wrapper for one or more addressPart elements.

May contain: addressPart

Contained within: address

Attributes:

type: optional

A value taken from the Physical Address Type vocabulary.

Top

Element <addressPart>

This element holds either a full or partial address. Multiple addressPart elements may be used to divide the full address into meaningful fragments (e.g. street address, postcode, country).

Contained within: physical

Attributes:

type: required

A value taken from the Physical Address Part Type vocabulary

Top

Element <electronic>

Wrapper element holding metadata describing the electronic address of the object. An electronic address will generally hold a URI pointing to the object being described. However in the case of a service it is possible to describe the service in terms of its base URL using the <value> element and using the <arg> element to describe the service arguments. A separate collection object which supports the service would then provide a URL to its implementation of the service in its <url> element when describing the <relatedObject>.

May contain: arg | value

Contained within: address

Attributes:

type: optional

A value taken from the Electronic Address Type vocabulary.

Where 'wsdl' is specified, the content of the value element must be a URL to the WSDL file.

Top

Element <value>

Element holding a URI representing the electronic address of the object. For collection, activity and party objects this will typically contain a URI. For services it will likely contain the base URL of the service point for HTTP services with the <arg> element(s) describing the service argument(s). Alternatively a service object could use this element to provide a URL to a WSDL file.

Contained within: electronic

Top

Element <arg>

The arg element is used to describe the arguments for an electronic service. In an ANDS Collections Registry context this element must not be used when describing activity, collection or party objects.

Contained within: electronic

required: required

Indicates whether the argument is required (true) or optional (false).

type: required

A value taken from the Arg Type vocabulary.

use: required

A value taken from the Arg Use vocabulary.

Top

Element <spatial> (location)

Holds geographical address information such as co-ordinates or region information.

Contained within: address

NOTE: Do not use location to record the data coverage (temporal/spatial) of a registry object. Instead use the <coverage> element.

Attributes:

type: required

A value taken from the Spatial Type vocabulary.

If this information is encoded in a markup language (i.e. gml, gpx and/or kml) a URL pointing to this information must be provided.

Top

Element <relatedObject>

Wrapper element containing metadata describing the relationship of a registry object related to the object currently being described.

May contain: key | relation

Contained within: activity | collection | party | service

Top

Element <relation>

A wrapper element describing the current registry object's relationship to another registry object.

May contain: description | url

Contained within: relatedObject

Attributes:

type: required

A value taken from one of the Activity/Collection/Party/Service Relation Type vocabularies.

Where a hasAssocationWith relation is specified an accompanying description should outline the details of the association.

In an Activity context hasPart and isPartOf must only be used with activities of the same type.

Top

Element <url> (relation)

A URI expressing or implementing the relationship between registry objects. For example if describing a collection's relation to a service, the URL which implements the related service in the collection's context can be represented in this element.

Contained within: relation

Top

Element <description> (registryObject)

A plain text description of a registry object.

Contained within: activity | collection | party | service

Attributes:

type: required

A value taken from the Description Type vocabulary.

Top

Element <description> (relation)

A plain text description further refining or describing a relation.

Contained within: relation

Top

Element <subject>

A term or phrase representing the primary topic(s) on which a registry object is focused.

Use subject to associate activities with the field of activity, collection with the subject matter of items in the collection and party with field of activity or occupation. Services can be assigned subjects but may also be associated with a topic through the collections which support them.

Contained within: activity | collection | party | service

Attributes:

type: required

The name of an authoritative list from which the subject term or phrase is taken or that governs its form, taken from the Australian New Zealand Standard Research Codes standard (ANZSRC) or the Library of Congress Source Codes for Subjects.

Use 'local' for other controlled lists not yet registered with the LC.

Use 'local' for uncontrolled terms.

termIdentifier: optional

The value of an associated URL which identifies the term.

Top

Element <coverage>

Wrapper element containing metadata describing the data coverage (temporal and/or spatial) of the registry object.

Note: Do not use <coverage> to record the physical location of an object. Instead use an instance of the <location> element.

May contain: temporal | spatial (coverage)

Contained within: activity | collection | party | service

Top

Element <temporal>

Wrapper element containing metadata describing the temporal coverage of the registry objects data. Temporal metadata can be entered as a date range using the <date> element or it can be entered as a string literal using the <text> element.

May contain: date (temporal) | text

Contained within: coverage

Top

Element <date> (temporal)

Use this element to record a date as a string.

When entering a date range use two <date> elements with dateType attributes of 'dateFrom' and 'dateTo'. Both dates should be entered using the same format where possible.

When entering a date for temporal coverage use the 'dateFormat' attribute on the <temporal> element to specify the format of the date being entered.

For temporal values which are described in words (e.g. Middle Ages), use the <text> element instead of the <date> element.

Contained within: temporal

Attributes:

type: mandatory

A value taken from the Temporal Coverage Date Type vocabulary.

dateFormat: required

A value taken from the Temporal Coverage Date Format vocabulary.

Use 'dateFormat' when entering temporal dates in a specific format.

Top

Element <spatial> (coverage)

Holds geographical coverage information such as co-ordinates or region information.

NOTE: Do not use spatial to record the physical location(s) of a registry object. Instead use use the <location> element.

Contained within: address

Attributes:

type: required

A value taken from the Spatial Type vocabulary.

If this information is encoded in a markup language (i.e. gml, gpx and/or kml) a URL pointing to this information must be provided.

Top

Element <text>

A plain text literal describing the temporal coverage period. Use the <text> element instead of the <date> element when the temporal period is described in words rather than with a date range(e.g. Middle Ages).

Contained within: temporal

Top

Element <rights>

Wrapper element for rights, Creative Commons licences and other rights information related to the registry object.

May Contain: rightsStatement | licence | accessRights

Contained within: activity | collection | party | service

Top

Element <rightsStatement>

A statement about the intellectual property rights held over a registry object, a legal document giving official permission to do something with a registry object, or a statement about access rights.

Example: Copyright, John M. Smith, 2011

Contained within: rights

Attributes:

rightsUri: optional

A URI containing one or more of a rights statement, licence or access rights and constraints relating to the registry object.

Top

Element <licence>

Text of a legal document giving official permission to do something with a registry object.

Contained within: rights

Attributes:

type: optional

A value taken from the Licence Type vocabulary.

rightsUri: optional

A URI pointing to a licence related to the registry object.

Top

Element <accessRights>

Description of access rights and constraints, including who may access, when access may occur (including any embargo), and uses that may be made of the collection. Restrictions may be based on security, privacy or other policies.

Examples:

Contained within: rights

Attributes:

type: optional

A value taken from the Rights Type vocabulary.

rightsUri: optional

A URI pointing to access rights and constraints relating to the registry object.

Top

Element <existenceDates>

Wrapper element for the existence dates of the registry object being described.

May Contain: startDate | endDate

Contained within: activity | party | service

Top

Element <startDate>

Use this element to record an existence start date as a string.
Use the required 'dateFormat' attribute to specify the format of the date being entered.

Contained within: existenceDates

Attributes:

dateFormat: required

A value taken from the Date Format vocabulary.

Top

Element <endDate>

Use this element to record an existence end date as a string.
Use the required 'dateFormat' attribute to specify the format of the date being entered.

Contained within: existenceDates

Attributes:

dateFormat: required

A value taken from the Date Format vocabulary.

Top

Element <citationInfo>

Wrapper element for citation metadata related to a registry object. Citation metadata can be represented as a single block of text by using the <fullCitation> element or it can be broken down into a more granular structure by using the <citationMetadata> element.

May contain: fullCitation | citationMetadata

Contained within: collection

Top

Element <fullCitation>

This element is used to enter a full text description of a citation for a registry object. Use this element where it is not possible to provide a set of segmented citation parts in citationMetadata.

Contained within: citationInfo

Attributes:

style: optional

A value taken from the Citation Style vocabulary.

Use style to specify the style of the citation.

Top

Element <citationMetadata>

Wrapper element containing metadata elements that describe a citation.

Contained within: citationInfo

May contain: identifier citationMetadata | contributor | title citationMetadata | edition | placePublished | date citationMetadata | url citationMetadata | context

Top

Element <identifier> (citationMetadata)

This element is used to enter a string literal which uniquely identifies the publication being cited within a <citationMetadata> element. (E.g. ISSN/ISBN/ReportNumber)

Contained within: citationMetadata

Top

Element <contributor>

Wrapper element containing metadata naming a contributor as part of a citation. Multiple contributors can be added to a citation by repeating the <contributor> element.

Contained within: citationMetadata

May contain: namePart (contributor)

Attributes:

seq: optional

Use seq to specifically order multiple contributors in a citation. Seq should be expressed as a cardinal number e.g. 1

Top

Element <namePart> (contributor)

A name can be represented by either a single namePart (as in the case of an organization or group) or may be split into a more granular structure (as in the case of a person) through use of multiple namePart elements (e.g. for title, first name, surname, etc).

Contained within: contributor

Attributes:

type: optional

A value taken from the Name Part Type vocabulary.

Use 'type' when there is more than one namePart and there is a need to distinguish between the multiple namePart instances that together make up a name.

Top

Element <title> (citationMetadata)

This element is used to store a title that will be used as part of a citation.

Contained within: citationMetadata

Top

Element <edition>

Use this element to specify the edition of a publication being cited within a <citationMetadata> element.

Contained within: citationMetadata

Top

Element <publisher>

Use this element to specify the publisher of a publication within a <citationMetadata> element.

Contained within: citationMetadata

Top

Element <placePublished>

Use this element to specify a place of publication within a <citationMetadata> element.

Contained within: citationMetadata

Top

Element <date> (citationMetadata)

Use this element to record a date as a string.

Contained within: citationMetadata

Attributes:

type: mandatory

A value taken from the Citation Date Type vocabulary.

Top

Element <url> (citationMetadata)

Use this element to specify the URL of a publication being cited within a <citationMetadata> element.

Contained within: citationMetadata

Top

context

Use this element to specify the context (e.g. series title, database name) of an object being cited within a <citationMetadata> element.

Contained within: citationMetadata

Top

Element <relatedInfo>

Any URIs pointing to information related to the collection, party, activity or service. For example a web site providing contextual information about a collection.

May contain: identifier (relatedInfo) | title (relatedInfo) | notes

Contained within: activity | collection | party | service

Attributes:

type: optional

A value taken from the Related Information Type vocabulary.

Top

Element <identifer> (relatedInfo)

This element is used to enter a string literal which uniquely identifies an object located outside of the ANDS registry that is related this registry object.

Contained within: relatedInfo

Attributes:

type: mandatory

A value taken from the Related Information Identifier Type vocabulary.

Top

Element <title> (relatedInfo)

This element is used to store the title of a related object.

Contained within: relatedInfo

Top

Element <notes>

Use this element to enter any information relevant to the <relatedInfo> element being entered.

Contained within: relatedInfo

Top

Element <accessPolicy>

A URL describing service access policies. This could be a web site or XACML resource for example.

Contained within: service

Top

5. Frequently Asked Questions

Why RIF-CS?


Why is there duplication of content models in each of the activity, collection, party and service schema fragments?

It was envisaged that individual content models for these common structures would evolve over time and so are currently duplicated across registry objects to potentially ease maintenance of the schema and reduce major structural changes to the schema.


How do I mark up the relationship between a collection and its related service?

For argument's sake, assume a repository offers an RSS feed as a service. Assume also the RSS service can be offered for a single collection by providing the collection identifier as an argument to that service. The service object metadata would contain the description of how to use this service as the following fragment shows:

<registryObject group="my-group">
   <key>au.edu.myuni.myrepo.RSS2.0</key>
  ...
    <service type="syndicate-rss">
  ...
    <name type="primary">
     <namePart>RSS 2.0 Feed</namePart>
    </name>
    <location>
      <address>
         <electronic type="url">
            <value>http://myrepo.myuni.edu.au/feed/rss_2.0</value>
            <arg required="true" type="string" use="keyValue">identifier</arg>
         </electronic>
    </location>
  ...
  </service>
</registryObject>

The collection object could then describe its relationship to this service through its relatedObject element as follows:

<collection type="collection">
  ...
   <relatedObject>
      <key>au.edu.myuni.myrepo.RSS2.0</key>
      <relation type="supports">
         <description>Notification of latest 20 items added to this collection</description>
         <url>http://myrepo.myuni.edu.au/feed/rss_2.0?identifier=1030.58/19896</url>
      </relation>
   </relatedObject>
  ...
</collection>

Top

6. Guidelines Revision History

12 October 2011 - Initial draft

Top