Important note: Version control was added to the COAR Notify Protocol specification from version 1.0.0 onwards. These release notes (below) record some of the development which preceded version 1.0.0. We have given this the notional version number 0.9.0.
The following history is provided for interest only and is not necessarily comprehensive. The notes refer to "scenarios" which are broadly equivalent to the workflows in the current specification.
Removed Acknowledge and Tentatively Reject pattern.
Previously, some uses of the object and context properties included a url property. We have replaced url with ietf:item to improve interoperability with related initiatives - notably signposting.org. The content of this sub-property is unchanged, so this is simply a change to the property name.
Added three new patterns:
The mediaType property used in the object property of several patterns was incorrectly represented as 'media-type'. This has been fixed.
Relaxed the requirement that the id property in the actor property must contain an HTTP URI. Now, the property must contain any valid URI.
HTTP URIs are generally still preferred, however there are some use-cases where other URIs - such as mailto: URIs for human actors - may be more pragmatic and useful.
Changed the example patterns to be more specific. They now (mostly) mention specific types of system actor, etc. instead of being completely generic. With a few specific exceptions (listed below under Exceptional Changes), the properties used have not changed significantly, nor the patterns themselves. In most cases only the example entities mentioned in the properties have changed.
This means that there is no change to the relationship between the example scenarios and the patterns, or to the scenarios themselves.
Part of the reasoning for this is to build a relationship between the (slightly more specific) Notify patterns, and the (more generic) patterns specified in Event Notifications in Value-Adding Networks.
context property removedcontext property has been added to the Announce Ingest pattern.https://purl.org/coar/notify_vocabulary/ - now uses HTTPS instead of HTTP. However the HTTP form will continue to resolve correctly.Changed the URL for the COAR namespace used in the JSON-LD @context to use the HTTPS protocol (previously HTTP). This is a non-breaking change since the original HTTP version will still resolve, but we will standardise on HTTPS from now on.
This is a significant revision.
These general changes have been made across all patterns and scenarios.
object (as required by Activity Streams 2.0). If the notification is for an activity which has caused a resource to be created or updated, then that resource will normally be referenced (with an HTTP URI) in the object. If the notification has not caused a resource to be created or updated, then the object will normally contain just a local ID (e.g. a UUID URI) and possibly some simple metadata.actor. In some cases this is a person - e.g. a reviewer, however in most cases this is an organisation or a service.inbox property has been removed from all instances of the actor propertyinReplyTo, when used, no longer contains any references to resources - it just references the id of the activity which it is "replying" to.context property. For example, a notification of a new review of a preprint would reference the review in the object property and the preprint in a context property.type, inReplyTo, and the type in origin, object, target and actor.actor added
inReplyTo changed to just contain URI to Offer activitycontext addedactor addedcontext addedactor addedcontext addedinReplyTo changed to just contain URI to Offer activitycontext addedactor addedThe following terms from the COAR Notify vocabulary have changed:
coar-notify:ReviewSuccess has become coar-notify:ReviewActioncoar-notify:EndorsementSuccess has become coar-notify:EndorsementActioncoar-notify:IngestSuccess has become coar-notify:IngestActionThe following terms from the COAR Notify vocabulary have been removed:
ReviewRequestReviewFailureEndorsementRequestEndorsementFailureIngestRequestreviewsendorsesobject in steps 3 and 5 no longer references the resource that was reviewedcontext added in steps 3 and 5actor addedinReplyTo changed to just contain URI to Offer activity in steps 4 and 6object in steps 4 and 6 no longer references the resource that was reviewedcontext added in steps 4 and 6actor addedobject in steps 2 and 4 no longer references the resource that was reviewedcontext added in steps 2 and 4actor addedobject in step 3 no longer references the resource that was reviewedcontext added in step 3actor addedinReplyTo changed to just contain URI to Offer activity in steps 3 and 5object added in step 3object in step 5 no longer references the resource that was reviewedcontext added in steps 3 and 5actor addedinReplyTo changed to just contain URI to Offer activity in step 4object in steps 7 and 9 no longer references the resource that was reviewedcontext added in steps 4, 7 and 9actor addedobject in step 2 no longer references the resource that was reviewedcontext added in step 2actor addedobject in step 2 no longer references the resource that was reviewedcontext added in step 2actor addedinReplyTo changed to just contain URI to Offer activity in steps 5 and 9object in steps 5 and 9 no longer references the resource that was reviewedcontext added in steps 5 and 9actor addedRemoved the ldp: prefix from the inbox property as it is already defined in Activity Streams 2
Removed the nested object (causing an unnecessary 'blank node') from the coar-notify:reviews and coar-notify:endorses patterns.
So, what was expressed, for example, as:
"object": {
"coar-notify:reviews": {
"object": {
"id": "https://repository.org/preprint/201203/421/",
"ietf:cite-as": "https://doi.org/10.5555/12345680"
}
},
is now expressed as:
"object": {
"coar-notify:reviews": {
"id": "https://repository.org/preprint/201203/421/",
"ietf:cite-as": "https://doi.org/10.5555/12345680"
},
Fixed typo in scenarios, replacing incorrect nat: namespace with coar-notify:.
Renamed the terms in the coar-notify vocabulary to use camelCase. So, for example:
endorsement-success has become EndorsementSuccess.
Removed some unused terms from the vocabulary.
Fixed typo in scenarios, replacing incorrect nrr: namespace with coar-notify:.
We have made some changes to the Notify documentation. The changes are to improve the notification payloads in terms of linked data (ensuring that they can be expressed as RDF) and so the changes should not have any breaking impact on current software development.
The structure of the notification payloads is essentially unchanged, except that we have created a first draft Notify JSON-LD context (http://purl.org/coar/notify), and changed the example JSON-LD in the patterns and scenarios to reflect this. All patterns now have this as the context property:
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"http://purl.org/coar/notify"
]
}
The descriptions of the payloads were previously described in strict, 'IETF' language (e.g. MUST, SHOULD etc.). This language implied a strict 'schema' which is not really the case here, since we are working in a linked-data paradigm. It became clear that the imposition of a pseudo schema could have unforeseeable consequences in later re-use of the patterns. We expect these patterns to evolve with use, as the community becomes more skilled and ambitions in their application.
As such, these patterns are best thought of as conventions, rather than standards, relying on the underlying standards of W3C LDN, W3C Activity Streams 2.0 et. al.
For this reason, we have relaxed the language used to describe the patterns. However, the structures and patterns described have not changed (with the exception of the @context property as described above.
Changed incorrect value 'System' to 'Service' in all examples of origin and target properties used in patterns and scenarios.
Changed URI used in @context property for Activity Streams 2.0 from 'https://www.w3.org/ns/activitystreams#' to 'https://www.w3.org/ns/activitystreams' (i.e. removed the '#' suffix)
Changed docs to indicate that an array SHOULD be used for the type property.
Updated all examples to use array values for the type property.