Time/Place
This meeting is a hybrid teleconference and slack chat. Anyone is welcome to join...here's the info:
Attendees
- Danny Bernstein
- Peter Eichman
- Bethany Seeger
- Jared Whiklo
- Andrew Woods
- Kevin Ford
- Ben Pennell
- Aaron Birkland
- Mohamed Mohideen Abdul Rasheed
- David Wilcox
Agenda
Announcements
- Sprint 2 Progress
Open questions:
- Shall we stop rejecting PUT requests that only contain SMTs in addition to your chosen triples? (Jared Whiklo )?
- Current situation: to replace non-server managed triples in RDF you must
- GET with `-H"Prefer: return=representation; omit=\"http://fedora.info/definitions/v4/repository#ServerManaged\""` and PUT with `-H"Prefer: handling=lenient; received=minimal"`
- Does the above conflict with https://fcrepo.github.io/fcrepo-specification/#http-put-ldprs
- Also seems to make complicated what should be a simple thing for the user to accomplish.
- Documentation of SMTs:
- https://docs.google.com/document/d/1xmuzYwMn0r3p5Dgch7GX3DACftL-3nr5ImSqt_KpUbk/edit?usp=sharing
- Related questions:
- What are our SMTs? What is the impact of allowing them to be modified?
- What is an acceptable workflow for changing interaction models? Does the presence of a matching rdf:type in the RDF matter?
- What is an acceptable workflow for updating the properties of a resource?
- What is an acceptable workflow for restoring a version? (either from a memento or from a local export)
- Should GET ONLY return SMTs when specifically requested?
- Essentially, reverse the current behavior by requiring an "include" header instead of an "omit"
- Should PreferContainment header be considered a subset of SMTs i.e. should they be suppressed on omit SMT? (Not relevant if we going to reverse the current behavior?)
- Shall we make all resources versionable by default?
- Follow-on question: Should it be possible to make resources non-versionable? In other words, are we saying, everything is versionable, period?
- Implications:
- Remove DELETE LDPCv
- Remove "Enable Versioning" from HTML UI
<your agenda item here>
Please squash a bug!
Tickets resolved this week:
Tickets created this week:
Minutes
Future Agenda Topics:
3. Open questions.
- Properly suppressing Server Managed Triples, how do we deal with ldp:contains.
- Meta-conversation about what are Fedora's SMTs and the workflow.
- Updating a properties of a resource requires a special header to GET and to PUT. Do we reverse the behaviour and get back the non-SMTs by default. But you are lacking some of the useful triples (lastModified).
- We expect that READ is a more common action than write.
- ldp:contains should be a SMTs, which makes (for Jared) suppressing SMTs by default a less enjoyable process.
- Having Fedora ignore SMTs included in a PUT does not seem to be a breaking change and could be done post-5.0.0 release.
- Should be able to update SMTs if you need to.
- How do you restore a Memento?
- Currently need to GET a Memento, set Fedora to relaxed mode, then restart and PUT with Prefer: handling=lenient; received=minimal
- Need to have relaxed mode on a per-request
- Is this an authZ question? Should only certain people be able to restore versions?
- What is the result of a restore? Do you get all the previous triples whether they are SMTs or not? That seems to be the consensus.
- Consensus is to use a new Prefer header to allow per request overwriting the entire resource including any SMTs.
- Will restoring a Memento result in restoring an older ACL? Consensus is NO, the Memento is separate. The link to the ACL is a static link added by the server and because the resource is not removed/re-added the current ACL will remain.
- Discussion to occur in Slack
- Changing interaction models?
- Currently there is no way to change between interaction models.
- Currently you can add types in the ldp: namespace, this should not be allowed.
- Make all resources versionable by default?
- Yes. Danny to create a JIRA to enable versioning. Also create JIRA to tag code that is used for enabling versioning for future review.
- Reviewing list of SMTs that Ben created
- Is the list full and complete?
- What is the expected behaviour in interacting with SMTs.
- "Anything that is created by the server" as the rule for SMTs?
- Anything created by the server, where if they did not exist the interaction would be indetermined.
- Any triples added to the resource as they are being generated on request. `ldp:contains` and some fixity ones. Also with RDF serialization.
- Also make sure that on the testing side we ensure the correct behaviour of SMTs.