Summary of PCI Endorsement workflow discussion #33
paulwalk
announced in
Announcements
Replies: 2 comments 2 replies
-
|
Hi, just to let you know that Olivier and I have been working on fixing the workflow for DSpace >= 8.x - fixes are both ends were required. I'll be working on a PR (DSpace) in the upcoming weeks (likely in the New Year). |
Beta Was this translation helpful? Give feedback.
2 replies
-
|
Thanks @amgciadev & @fambon for the updates - good to know 👍🏻 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
PCI Endorsement workflow discussion
These notes are from a call (2024-09-12) between: Olivier Fambon, Richard Jones, Stefano Maffei, Adan Roman, Raphaël Tournoy, Paul Walk & Sean Wiseman
Notes by Paul Walk
Preamble
It has become clear that there is some confusion regarding the COAR Notify workflow for PCI. This has been revised several times - the latest draft has come from discussion with Olivier and Raphael primarily.
However - as Stefano has pointed out - there is an existing DSpace implementation, together with the one which Adan has just finished implementing with CSIC.
Stefano has detailed some discrepancies1
In addition, Cottage Labs are just about to start working on a Zenodo implementation of the PCI workflow.
So, there are a few questions that I think need some urgent attention:
Separately from this, Richard pointed out that "Accept notification does not specify
objectin docs or example, butobjectis a required field"2Decisions
1. Versioning of the specification
The lack of versioning of the specification is a problem. This is understood but it has proven difficult to know how and what to version exactly. However, recent discussions have clarified this and an approach is being attempted now. This will be described and shared for comment very soon.
One thing we have decided is that it is necessary to version the patterns and the workflows separately.
We will reinstate older versions of the patterns and workflow as "version 1" - this is so that the existing implementations (notably the DSpace 8 codebase) can refer to the version of the Notify specification that they support.
2. Use of
TentativeRejectThe
TentativeRejectwill be re-introduced to the specification. It was previously removed because it was thought to be unnecessary. This change will not affect any existing implementations. However, the refactored PCI Endorsement workflow (see below) will make use of this type. As this type is from the existing Activity Vocabulary3 used by Activity Streams 2.0,4 this can be used immediately.3. The requirement of
objectin all notificationsThe COAR Notify Editorial Board discussed this issue and concluded that all COAR Notify payload must contain an
object.4. Use of
objectinAccept,TentativeAccept, RejectorTentativeRejectnotificationsWe noted that all notifications must contain an
object. Currently, theAcceptandRejectpatterns do not have anobjectwhich is a mistake. In the case ofAcceptandRejectpatterns, theobjectshould contain the entireOffernotification that theAcceptorRejectrefers to. This means that the details of the original artefact that was being "offered" are included. Example:{ "@context": [ "https://www.w3.org/ns/activitystreams", "https://purl.org/coar/notify" ], "id": "urn:uuid:4fb3af44-d4f8-4226-9475-2d09c2d8d9e0", "inReplyTo": "urn:uuid:0370c0fb-bb78-4a9b-87f5-bed307a509dd", "object": { "actor": { "id": "mailto:josiah.carberry@example.com", "name": "Josiah Carberry", "type": "Person" }, "id": "urn:uuid:0370c0fb-bb78-4a9b-87f5-bed307a509dd", "object": { "id": "https://research-organisation.org/repository/preprint/201203/421/", "ietf:cite-as": "https://doi.org/10.5555/12345680", "ietf:item": { "id": "https://research-organisation.org/repository/preprint/201203/421/content.pdf", "mediaType": "application/pdf", "type": [ "Article", "sorg:ScholarlyArticle" ] }, "type": "sorg:AboutPage" }, "origin": { "id": "https://research-organisation.org/repository", "inbox": "https://research-organisation.org/inbox/", "type": "Service" }, "target": { "id": "https://https://peercommunityin.org", "inbox": "https://peercommunityin.org/inbox/", "type": "Service" }, "type": [ "Offer", "coar-notify:EndorsementAction" ] }, "origin": { "id": "https://generic-service.com/system", "inbox": "https://generic-service.com/system/inbox/", "type": "Service" }, "target": { "id": "https://some-organisation.org", "inbox": "https://some-organisation.org/inbox/", "type": "Organization" }, "type": "Reject" }5. Refactored PCI Endorsement Workflow
The current draft of this workflow is on the Notify website5
We have agreed the following:
Reject: this is used to completely & finally reject the offer. No further activities related to theOfferthat has been rejected will be welcomed by either party.TentativeReject: this is used by PCI to indicate that no endorsement is forthcoming, but that PCI will consider a "re-submission" following revisions of the artefact being offered for endorsement. The communication about what revisions are required happens via email outside of the COAR Notify exchange. In either case, theobjectcontains the fullOfferbeing rejected (as in example above).inReplyTowhich will reference a previous notification with typeTentativeReject. This facilitates the re-submission of a revised offer. It is not permitted to make a Request EndorsementOfferinReplyToa previous rejection with typeReject.6. Use of RFC 2119
An earlier version of the documentation made use of the IETF's RFC 21196 convention for indicating requirement levels in standards and specifications. The COAR Notify Editorial Board previously decided to remove this level of specificity. However, the recent experience of implementors of COAR Notify has strongly suggested this approach would be beneficial.7
Github issues addressed by these decisions
objectandcontextfieldsobjectin docs or example, butobjectis a required fieldNext steps
I propose the following steps to reconcile all of the above:
TentativeReject(although this may be actually a case of re-introducing something that was previously removed from the specification)Footnotes
https://github.com/coar-notify/notify.coar-repositories.org/issues/25 ↩
https://github.com/coar-notify/notify.coar-repositories.org/issues/27 ↩
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-tentativereject ↩
https://www.w3.org/TR/activitystreams-core ↩
https://notify.coar-repositories.org/catalogue/workflows/repository-pci-1/ ↩
https://www.ietf.org/rfc/rfc2119.txt ↩
https://github.com/coar-notify/notify.coar-repositories.org/issues/30 ↩
Beta Was this translation helpful? Give feedback.
All reactions