Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated to be correct for 6.0

...

Fedora follows Memento Datetime negotiation pattern 1.1 as described in section 4.1.1 of the Memento specification, in which the Original Resource Acts as its own TimeGate (URI-R=URI-G; 302-Style Negotiation; Distinct URI-M).

Note bene

Fedora does not automatically initiate versioning for automatically versions all changes to all resources by defaultThe client MUST initiate versioning by invoking a special Link header at the time a resource is created.  See ?????It is possible to convert a LDPR into a LDPRv after the LDPR exists, but this process effectively forces the client to recreate the existing resource as a new resource by performing a GET on the existing resource and then resubmitting the resource, via a PUT, with the proper Link headerThis can be changed by setting the fcrepo.autoversioning.enabled  property to false. You can find more information on how to configure properties on the Properties page.

Memento has a one second granularity, because of this there are some things to consider for both automatic and manual versioning.

  • Manual versioning
    • You are unable to create two versions within a single second.
  • Autoversioning
    • If more than one versions are automatically generated in a single second then you can only access the last version via the Fedora HTTP API. You can see all versions by browsing the OCFL storage on disk.

The Memento specification strongly suggests clients initiate negotiation with a HEAD request.  This is largely because all interaction with Memento operates within HTTP Headers.  They must be examined closely.  Headers are the only way to learn that a resource is a LDPRv (a Memento Original Resource and a Memento Timegate) or a LDPRm (a Memento). 

...

Fedora will emit messages after the creation of a LDPRv resource (Memento Original Resource), the creation of LDPRm resources (Mementos), and the deletion of LDPCv resources (Memento Timemaps) and LDPRm resources.  These messages provide no hint that they pertain to versioning.  If software acts on these messages, that software should perform a HEAD request on the resource and inspect the headers to determine if the resource is related to Fedora versioning, and if further action is warranted.LDPRm resources should generally be created by issuing a simple POST request to the LDPCv (Memento Timemap) resource, but it is technically possibly to issue a POST request with a message body, which will be stored as a LDPRm (Memento), and a timestamp, which will be used as the Memento Datetime.   This functionality – providing the resource to be stored as a versioned resource - exists to address the need to be able to Import data to Fedora as a part of a migration.  It is inadvisable to create LDRPm resources with POST and a message body without specific need to take advantage of this feature.