System metadata (often referred to as sysmeta) is the information used by DataONE to track and manage objects across the distributed Coordinating and Member Nodes of the network. System metadata documents contain low level information (e.g. size, type, owner, access control rules) about managed content such as science data, science metadata, and resource map objects and obsolescence chains (obsoletes and obsoletedBy).
System Metadata is maintained dynamically by Coordinating Nodes and some properties are mutable to reflect the current state of an object in the system. Initial properties of system metadata are generated by clients and Member Nodes. After object synchronization, the Coordinating Nodes hold authoritative copies of system metadata. Mirror copies of system metadata are maintained at each of the Coordinating nodes.
System metadata are considered operational information needed to run DataONE, and can be read by all Coordinating Nodes and Member Nodes in the course of service provision. In order to reduce issues with third-party tracking of data status information, users can read system metadata for an object if they have the access rights to read the corresponding object which a system metadata record describes.
System Metadata elements are partitioned into two classes: metadata elements that must be provided by client software to the DataONE system, and elements that are generated by DataONE itself in the course of managing objects.
The mutability of system metadata elements is described in Table 1.
Table 1. Mutability of system metadata. Values are Initialized By different components during creation, and those values are vetted by (Controlled By) downstream, authoritative components. Mutable properties are edited through Edit Method.
Property | Mutable? | Initialized By | Controlled By | Edit Method |
---|---|---|---|---|
serialVersion | Yes | MN | CN | Various |
identifier | No | Client | Client | |
formatId | No | Client | Client | |
size | No | Client | MN | |
checksum | No | Client | MN | |
submitter | No | Client | MN | |
rightsHolder | Yes | Client | client | CNAuthorization.setOwner |
accessPolicy | Yes | Client | client | CNAuthorization.setAccessPolicy, MNStorage.update (calls CN setAccessPolicy) |
replicationPolicy | Yes | Client | client | CNReplication.setReplicationPolicy |
obsoletes | Yes | Client | client | MNStorage.update |
obsoletedBy | Yes | Client | client | MNStorage.update |
archived | Yes | MN | MN | MNStorage.delete |
dateUploaded | No | MN | MN | |
dateSysMetadataModified | Yes | MN | CN | Various - any change to system metadata |
originMemberNode | No | MN | CN | |
authoritativeMemberNode | Yes | MN | CN | Manual update process |
replica | Yes | CN | CN | CNReplication.updateReplicationMetadata |
The system metadata schema is expressed in XMLSchema and the development version is available at:
The most recent release version is available from:
This document refers to the current target for release, version 1 which is located at:
If there are discrepancies between this document and the schema, then the schema shall be considered authoritative.
The current development version of the system metadata schema document (version 1.0) is included here for reference. It is located in the source control repository at:
The example instance document included here was auto-generated so does not include useful values. It is included here to provide a general indication as to the structure of a populated system metadata document.