Versions Compared

Key

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

...

Attendees

Agenda

  1. Indroductions
  2. Context: specifications and API alignment -  terminologyresource versioningauthorization
  3. Design decisions
  4. Open questions
  5. Next steps

Notes

  1. API Alignment Sprints
    • How to implement Memento in relation to LDP and WebAC
  2. Terminology: https://fcrepo.github.io/fcrepo-specification/#terminology
    • LDPR
    • LDP-RS
    • LDP-NR
    • LDPC
    • LDPRv - any resource that can be versioned
    • LDPCv - container of Mementos (is both LDPC and TimeMap)
  3. HvS: Is there a 'to'/'from' date associated with each LDPRm?
    • yes, each version has a start date, and implicit end date
  4. HvS: Suggesting storing Memento data in the LDP-NR-description
    • Are binaries and descriptions in versions in lock-step?
    • BP: Using headers and not adding new triples
  5. Har: Are LDPR and LDPRv separate resources?
    • No, they are the same. The LDPRv just notes that a resource can be versioned

Design

  1. Issue: referential integrity
  2. Issue: versioning of trees

Interactions

  1. Enabling versioning
    • Each memento has its own URI
  2. Content-Location header has conflicting usage
    • No on PUT and POST: can not use Content-Location as indirect ingest
    • Yes, conflict may still exist on GET for both Memento and External purposes
    • Need to consider if External content can be versioned
      • HvS: Possibly External versioning is not permitted!
    • Versioning binary descriptor would be valuable
  3. Check if a resource is versionable
  4. Check if the client can create versions
  5. Creating a new version of an LDPRv
    • Allowing clients to provide Memento-Datetime header on POST
      • Enables creation of old versions
      • POST is idempotent
    • TAR allows for updating system dates

ACLs

  1. Resources can have ACLs associated with them
  2. Is there value in having different permissions on LDPRv and LDPCv?
    • Example: restricted resource and restricted mementos, but TimeMap is open
    • HvS: Mementos should likely have their own ACLs
    • Proposal: three permissions: LDPRv, LDPCv, LDPRm(s)

Internal Representation of resources

  1. LDPCv will have RDF serialization, memento info will just be in headers
    • iana:original and iana:timemap should be used
  2. W3C has just released a "time ontology"
    • Consider using in TimeMap (LDPCv)
  3. Memento (LDPRm)
    • Would be helpful to use start and end time of the memento

Finding the ACL on an LDPRm

  1. When looking for LDPRm that is before the initial datetime, you get first
  2. When looking for LDPRm that is after the last datetime, you get current
    • This is in the Memento spec
    • 4.5.3. Issues with Accept-Datetime
  3. Can remove LDPRms

Referential integrity

  1. Proposal: Ignore ref-integrity when removing linked resources
    • Return 410 on deleted resources

Next Steps

  1. How should sprint-2 interact with Memento team?
    • Harish is point of contact, this week
      • email and phone
    • HvS is available next week

ACTION: have a check-in next week, Tue, 10/3 10amET