Notification Pattern

Announce Endorsement

Description: This pattern is used to announce the existence of an endorsement, referencing (in context) the resource that has been endorsed
Event Notification Pattern(s): OneWayPatternSNSN, OneWayPatternSNDN
Pattern Categories: Announcements

Properties

@context

The @context must include:

id

Notify payloads must describe an AS 2.0 activity. The activity has an id which must be a URI, and the use of URN:UUID is recommended. An HTTP URI may be used instead, but in such cases the URI should resolve to a useful resource.

type

The activity has a type which should include Announce & coar-notify:EndorsementAction

actor

The actor describes the party responsible for this activity. The actor has:

  • An id which must be a URI identifying the actor (HTTP URIs are preferred, but any valid URI is permitted)
  • A type which should be one of: Application, Group, Organization, Person or Service from AS 2.0.
  • The actor may also have a name

origin

The origin describes the system which has sent the notification. The origin has:

  • An id which is an HTTP URI identifying the sending system
  • A type which should include the value Service from AS 2.0.
  • An inbox which is the HTTP URI of the LDN inbox for the origin

inReplyTo

This particular example has the following properties:

inReplyTo may be specified if this is a response to a previous notification. inReplyTo takes the URI (URN:UUID or HTTP URI) which identifies the activity for which this is a response.

context

When the object describes the result of some service acting on a resource, the context may be used to refer to that second resource. This particular example has the following properties:

  • An id which is the HTTP URI of the "landing page" for the resource.
  • A type which should include the value AboutPage from schema.org.
  • An ietf:cite-as which contains the persistent HTTP URI (sometimes called the "PID") which is to be used to cite or link to the resource.
  • A url containing the details of the actual content resource. The url has:
    • An id containing the HTTP URI of the content file for the resource.
    • A type describing the content file.
    • A mediaType which contains the MIME Type of the content file.

object

The object describes the resource which is the main focus of this notification. This particular example has the following properties:

  • An id which identifies the resource representing the endorsement.
  • An ietf:cite-as which contains the persistent HTTP URI (sometimes called the "PID") which is to be used to cite or link to the resource representing the endorsement.
  • A type describing the content file.

target

The target describes the system which is intended to receive the notification. The target has:

  • An id which is an HTTP URI identifying the receiving system
  • A type which should include the value Service from AS 2.0.
  • An inbox which is the HTTP URI of the LDN inbox for the target

Example JSON-LD Payload

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://purl.org/coar/notify"
  ],
  "actor": {
    "id": "https://overlay-journal.com",
    "name": "Overlay Journal",
    "type": "Service"
  },
  "context": {
    "id": "https://research-organisation.org/repository/preprint/201203/421/",
    "ietf:cite-as": "https://doi.org/10.5555/12345680",
    "type": "sorg:AboutPage",
    "url": {
      "id": "https://research-organisation.org/repository/preprint/201203/421/content.pdf",
      "mediaType": "application/pdf",
      "type": [
        "Article",
        "sorg:ScholarlyArticle"
      ]
    }
  },
  "id": "urn:uuid:94ecae35-dcfd-4182-8550-22c7164fe23f",
  "inReplyTo": "urn:uuid:0370c0fb-bb78-4a9b-87f5-bed307a509dd",
  "object": {
    "id": "https://overlay-journal.com/articles/00001/",
    "ietf:cite-as": "https://overlay-journal.com/articles/00001/",
    "type": [
      "Page",
      "sorg:WebPage"
    ]
  },
  "origin": {
    "id": "https://overlay-journal.com/system",
    "inbox": "https://overlay-journal.com/inbox/",
    "type": "Service"
  },
  "target": {
    "id": "https://research-organisation.org/repository",
    "inbox": "https://research-organisation.org/inbox/",
    "type": "Service"
  },
  "type": [
    "Announce",
    "coar-notify:EndorsementAction"
  ]
}

Example scenarios which use this pattern

ID Scenario Participating Systems
1 Author requests review with possible endorsement (via overlay journal) Overlay Journal <-> Repository
2 Author requests review with possible endorsement (via repository) Repository <-> Overlay Journal
3 Overlay Journal Announces Review and Endorsement of Pre-print to Aggregator Overlay Journal <-> Aggregator
4 Overlay Journal Endorses Pre-print (Initiated by Author) Overlay Journal <-> Repository
6 Author submits to overlay journal using repository to host resource and reviews Overlay Journal <-> Repository