Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Upon Resource Creation: if a Link: rel="type" header specifying of type http://fedora.info/definitions/fcrepo#VersionedResource, the resource is provided when creating a resource, it will be created with versioning turned on for that resource
    • A LDPRm will be generated immediately as well. LDPR will be created with the versioning interaction model (therefore it will be an LDPRv)
    • A LDPCv will be created, from which a TimeMap can be generated.
    • A LDPRm will be generated, contained by the LDPCv.
    • Any subsequent responses from the LDPRv will include the appropriate memento links in the header: timegate, timemap
  • On Existing Resource:  The resource will become version-able if if a PUT with an empty body and request is made against an existing resource with a link header ( Link: rel="type") specifying type of http://fedora.info/definitions/fcrepo#VersionedResource is included the resource will become versionable
    • A LDPRm will be generated immediately for this resourceThe versioning interaction model will be added to the LDPR, making it a LDPRv.
    • A LDCPv will be created, from which a TimeMap can be generated.
    • A LDPRm will be generated, contained by the LDPCv.
    • Any subsequent responses from the LDPRv will include the appropriate memento links in the header: timegate, timemap

Creating a new version of a LDPRv:

  • A POST request to the LDPCv with an empty body will cause a new memento of the LDPRv to be created. 
  • If a "Memento-Datetime"  header is included in the POST request, then the value of this header will be used as the memento datetime for the new LDPRm.
  • A POST request with a body will be rejected with a HTTP 415 response.

Accessing the TimeMap (aka LDPCv):

...

  • Any response from the LDPRv will include a link header showing where the TimeGate resource and TimeMap resource are locatedheaders of type "TimeGate" (referring to the LDPRv), "original" (also referring to this LDPRv), and TimeMap (referencing the URI of the LDPCv)

Accessing a LDPRm:

  • A GET request to the TimeGate Resource (the LDPRv itself) with "Accept-Datetime" header specified will return the requested LDPRm associated with that datetime, or the closest one if there is not an exact match
    • example usage:  "Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT"
    • a Link header will be in the response to show the TimeGate URI 

Creating a new version of a LDPRv:

    • URI
  • If an "Accept
  • A POST request to the LDPCv with an empty body will cause a new memento of the LDPRv to be created. 
  • If a "Memento-Datetime"  header is included in the POST request, then the time that represents will be used as the memento creation date.  The resulting memento will be accessible via that Memento-DatetimeA POST request with a body will be rejected with a HTTP 415 response. is provided which predates the first LDPRm of the resource, then a 404 is returned.



Internal Interactions / Algorithms

...