All aspects of versioning seem to work in reasonable ways, except the viewing of old versions.  Because the old versions are represented differently in JCR, maintaining translations for the RDF (both those that come from properties and those implicit in our resources) is a burden that hasn't been met and is fraught with likely oddities.

In order to ship a product for which future versions are likely to be backwards compatible, it may be prudent to severely limit or eliminate the view of historic versions.  The following is a conservative proposal:

  1. simplify but improve response to GET "path/to/resource/fcr:versions" to just list
    1. each version canonical URI (which should be in the label)
    2. each version creation date (currently not displayed)
  2. eliminate viewing old versions (GET "path/to/resource/fcr:versions/version-label")*
  3. retain deleting old versions (DELETE "path/to/resource/fcr:versions/version-label")
  4. retain restoring old versions (PATCH "path/to/resource/fcr:versions/version-label")
  5. disallow label reuse (return a conflict)
    1. document behavior of labels for deleted versions (can be reused?)

 

*If we wanted to retain some semblance of views of historic versions the following limitations may need to apply:

  1. Exclude links to children and parents
  2. Exclude serialization-related triples
  3. Disallow viewing historic versions of resources that have been deleted
  4. Maybe more...
  • No labels