...
- LDPR - original resource
- LDPRv - one in the same with as LDPR, but it has the versioning interaction model turned on (http://fedora.info/definitions/fcrepo#VersionedResource). This implies that it is a TimeGate and has a TimeMap.
- LDPCv - a LDP container that contains information about the LDPRm's LDPRms associated with a LDPRv. The TimeMap is generated from this information, so this is <<what, the LDPCv itself?>> is generally considered the TimeMap, though it may contain more information then than what's delivered in a TimeMap response.
- LDPRm - a specific version of a LDPR. The LDPRv is not a LDPRm itself.
- TimeGate - the application which selects the best Memento of an Original Resource for a given datetime. This is where datetime negotiation happens.http://timegate.readthedocs.io/en/latest/getting-started.html#memento-timegate
- TimeMap - LDPRv URL + "/fcr:versions"
...
RESTful Interactions
Enable Versioning on a LDPR:
...
- Upon Resource Creation: if a Link: rel="type" header of type http://fedora.info/definitions/fcrepo#VersionedResource is provided when creating a resource, it will be created with versioning turned on.
- A 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: timegateTimegate, timemapTimemap
- On Existing Resource: if a PUT request is made against an existing resource with a link header ( Link: rel="type") specifying type of http://fedora.info/definitions/fcrepo#VersionedResource included the resource will become versionable.
- The 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
...
- A GET request to the TimeGate Resource (the LDPRv itself) with "Accept-Datetime" header specified will return the LDPRm associated with that datetime, or the closest one if there is not an exact match.
- example header usage: "Accept-Datetime: Thu, 31 May 2007 20:35:00 GMT"
- a Link header will be in the response to show the TimeGate URI
- If an "Accept-Datetime" header is provided which predates the first LDPRm of the resource, then a 404 is returned.
- If an "Accept-Datetime" header is provided with a time that is later then the last memento gathered, then the current LDPR will be returned. See: Datetime negotiation algorithm example for Accept-Datetime negotiation details.
...
Internal Interactions / Algorithms
...