Mellon Orchestrator use cases

A Collection of Interesting Ideas,

Issue Tracking:
Inline In Spec
Editors:
(IDLab - Ghent University)
(IDLab - Ghent University)

Abstract

TODO

1. Mellon Orchestrator use cases

2. Glossary

Copied from Orchestrator for a decentralized Digital Heritage Network:

Actor

A entity (person, application or service) that participates in the network.

Human Agent

A person that operates directly as an Actor on the network.

Autonomous Agent

An intelligent software instance that operates on an Actor's behalf but without any interference of that Actor.

Maintainer

A Human Agent that can manually perform actions (see ) on the network using a Dashboard application.

Usually a person employed by an organisation (e.g., a Cultural Heritage Institution) to maintain data and datasets owned by that organisation.

Data Pod

As defined by [solid-protocol], a Data Pod is a place for storing documents, with mechanisms for controlling who can access what.

Inbox

An [LDP] resource where others can POST Linked Data Notifications [LDN] in order to notify the actor of a change an artefact’s lifecycle.

Artefact Lifecycle Event Log

An HTTP resource served by an actor (e.g., as a resource in the Data Pod) that represents a log of lifecycle events that artefacts known by the actor were involved in..

Artefacts are considered known when they reside in the actor’s Data Pod or if the actor has been made aware via [LDN].

Service Hub

An Actor that provides a service to other actors in the network. It is a Solid app and serves an Inbox.

Policy

A set of machine-readable business rules that instruct the Orchestrator on what actions to take in response to a trigger such as incoming notifications, perceived changes in the data, or manual invocation by an Actor.

Dashboard

A user application and Solid app that enables users to interact with the contents of the Data Pod, the Orchestrator, or other Actors in the Digital Heritage Network.

New added terminology:

Artefact

An HTTP resource on a Data Pod that the subject of (Scholarly) Communication (e.g. a publication, a review, a nanopublication, a dataset)

Orchestrator

An Orchestrator is an Autonomous Agent dedicated to an Actor that hosts a Data Pod with associated Inbox and Artefact Lifecycle Event Log. It interprets and executes business rules described in a Policy. The Orchestrator watches the Inbox for possible triggers, records the actions it takes to the to the Artefact Lifecycle Event Log, and communications with other Actors.

App

An App is an Autonomous Agent dedicated to an Actor that hosts a Data Pod. The App can write to the Data Pod unsupervised by the Human Agent and is not limited to the Inbox or Artefact Lifecycle Event Log.

Need a better name for the App

3. Difference between the Dashboard, App and Orchestrator

In the following discussion three agents communicate with the Data Pod with different privileges: the Orchestrator, the Dashboard and the App. While in real applications these agents could overlap or might not be required at all (in some cases), in this document they are treated as separate entities to help the discussion. Some reasons why these Actors could be treated as separate entities:

With this regard:

App

The App is a headless Autonomous Agent that doesn’t need a Human Agent to execute write operations on the Data Pod. It is a trusted application for the Maintainer that could in principle update any artifact on the Data Pod. This application could run as a background service on the computer of the maintainer and be online as long as the computer is connected to a network.

Dashboard

The Dashboard is an Agent that responds to feedback from an Human Agent. Typically this Dashboard runs in a browser can be in an online or offline modus when a browser is running on the computer of the maintainer with one of the browser tabs opened with the dashboard application.

Orchestrator

The Orchestrator is an Autonomous Agent that can read the (Scholarly) Inbox of the Data Pod and append to the Artefact Lifecycle Event Log. Guided by policies expressed as business rules, the Orchestrator also communicates with the Scholar Community network using the Scholarly Communication Notification protocol implementing Policies.

The three Actors can be seen as a mini solar system with the Data Pod as the Sun. The App is a fully trusted agent that runs very near to the data pod (in level of trust). The Orchestrator has very limited access rights to the data pod. The main task of the Orchestrator is to update the event log and execute policies in order to talk the Scholarly Communication Notification protocol (read/send messages from/to the corrrect Service Hubs). The Dashboard sits in between, it has control over the Data Pod but might (always) need user input to update the pod. Communication between the App/DashBoard and the Orchestrator happens via the Data Pod’s Inbox.

The networks below demonstrates the CRUD privileges imagined for the different actors in this document. The first network demonstrates a typical Solid setup where the Dashboard is a single page application that has direct access to the Data Pod and the App is more a background process running in the same computer as the Maintainer.

CRUD operations in case the DashBoard is single-page application and the App a background task

Are the Rules and Inbox necesearily part of the Data Pod or can they exist as separate resources?

The second network demonstrates a more classic setup with a browser Dashboard controlled by a server App which uses a Data Pod as backend storage.

CRUD operations in case the Dashoard and App is a classic client/server application

4. Communication between Data Pod and Scholarly Community network

A2 Notifications can be sent from the researcher environment to Service Hub environments. For instance, in case of a request to review an artefact that resides in the Data Pod, an appropriate notification can be sent to a review Service Hub. The Service Hub can respond, for example, accepting or rejecting the review request, and, in the latter case, to relay the result of the review.

The Orchestrator sends notifications in response to triggers that result from the execution of Policies - implemented as business rules - that are associated with the Data Pod. The Orchestrator receives notifications in response to the ones it sent. The Orchestrator records information contained in both outgoing and incoming notifications in the Artefact Lifecycle Event Log.

The AS2 notifications are regarded as a high-level approach to automatically coordinate the distributed execution of the crucial functions of scholarly communication. The notifications merely ensure that the respective functions are in effect executed as prescribed by Policies, but do not attempt to automate the actual fullfilment of the function itself. For instance, when an Offer is sent to a Review Service we don’t envision that message contains all the steps to fully automate the submission process. It could contain enough metadata for simple workflows. In general out of band communication could be needed to perform all required steps.

All AS2 notifications are send to all Actors in the network in the form of Linked Data Notifications.

In this use case document we use 5 types AS2 notifications in line with the COAR Notify project.

Offer

The Offer notification is used when one system offers one of its resources to an other system to conduct some activity.

Undo

The Undo notification is used to retract an offer made in a previous notification.

Accept

The Accept notification is a response to an Offer made in a previous notification. It indicates that the offer is accepted.

Reject

The Reject notificaion is a response to an Offer made in a previous notification. It indicates that the offer is rejected.

Announce

The Announce notification is used to announce the outcome of an activity: typically to announce the availability of a new (scholarly) artefact.

5. Data Pod sends notifications to a Service Hub

Let’s provide two examples how AS2 notifications can be sent out of the researcher environment and generate some communication patterns out of these examples.

5.1. Maintainer Announces a (finished) artefact in the Data Pod

This all assumes that the ServiceHub service doesn’t send a 4** (for any reason, metadata, privileges, etc)

We need to determine what is required for an Orchestrator to be able to understand in which phase of an artefact lifecycle it is dealing with. Also we will need some kind of typology for an artefact type itself, eg paper, dataset, software, etc.

5.2. Maintainer Offers an artefact in the Data Pod to a Service Hub

Herbert: This would typically be triggered by a notification sent from the Orchestrator to the Inbox as a result of the execution of the Policy "once an artefact has entered the scholarly realm it should be certified". The Maintainer can then decide whether or not to request review and where. I think it would be good to add this to the pic as it nicely connects to the previous cases + illustrates policy

5.3. Possible Policies

Possible policies that can be available for these use cases (using a pseudo policy language).

The pseudo policy language used there tries to match new Notifications to a Shape , constructing this shape with new properties, under specific conditions
<SHAPE>
  <PROPERTIES>
  when
    <CONDITIONS>

Add only Announce and Accept notifications from the Maintainer to the Event Log

mellon:AppendScholarlyRecord
  a EventResource
  a AppendResource
  when
    a Notification
        isFrom(Maintainer)
        inSet(Announce,Accept)
        isOfType(Article,Review,Dataset)

Forward every Announce from the Maintainer to the institutional Registation Service and Archiving Service

mellon:ForwardToCatalog
  a Notification
  rdfs:label "Register at my library catalog"
  target:
    id: http://my.institution.org
    ldp:inbox: http://my.institution.org/inbox
    type: System
  when
    a Notification
        isFrom(Maintainer)
        inSet(Announce)

mellon:ForwardToArchive
  a Notification
  rdfs:label "Add to our archive"
  target:
    id: http://dataforever.edu
    ldp:inbox: http://dataforever.edu/submission/new/inbox
    type: System
  when
    a Notification
        isFrom(Maintainer)
        inSet(Announce)

Forward a notification from a Maintainer with a cc (e.g. an Offer) to an external Service Hubs.

mellon:ForwardCC
  a Notification
  rdfs:label "Forward messages with a cc"
  target:
    id: @cc
  when
    a Notification
        isFrom(Maintainer)
        has(cc)
        notEqual(cc,Maintainer)

5.4. Orchestrator side effects

Based on the Policies:

6. Service Hub sends notifications to Data Pod

6.1. Service Hub Announces a new resource about an artefact in the Data Pod

6.1.1. Service Hub Announce is a response to a previous Offer

For example, a Maintainer request that a journal reviews on of the publications that can be found on the Data Pod. In a previous step an Offer was sent to to journal as Certification Service. In response to the offer the journal sends an Announce to the (Scholarly) Inbox of the Data Pod.

Is this a verbatim copy of the AS2 notification or a processed version?

6.1.2. Service Hub Announce is standalone

For example, an overlay journal adds an article it found in an Data Pod, via the WebID of the author, the journals sends an Announce notification to the (Scholarly) Inbox of the Data Pod.

6.2. Possible Policies

7. Acknowledgement

We thank Herbert Van de Sompel, DANS + Ghent University, hvdesomp@gmail.com for the valuable input during this project.

Conformance

Conformance requirements are expressed with a combination of descriptive assertions and RFC 2119 terminology. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative parts of this document are to be interpreted as described in RFC 2119. However, for readability, these words do not appear in all uppercase letters in this specification.

All of the text of this specification is normative except sections explicitly marked as non-normative, examples, and notes. [RFC2119]

Examples in this specification are introduced with the words “for example” or are set apart from the normative text with class="example", like this:

This is an example of an informative example.

Informative notes begin with the word “Note” and are set apart from the normative text with class="note", like this:

Note, this is an informative note.

Index

Terms defined by this specification

References

Normative References

[LDN]
Sarven Capadisli; Amy Guy. Linked Data Notifications. 2 May 2017. REC. URL: https://www.w3.org/TR/ldn/
[LDP]
Steve Speicher; John Arwe; Ashok Malhotra. Linked Data Platform 1.0. 26 February 2015. REC. URL: https://www.w3.org/TR/ldp/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119

Issues Index

Need a better name for the App
Are the Rules and Inbox necesearily part of the Data Pod or can they exist as separate resources?
This all assumes that the ServiceHub service doesn’t send a 4** (for any reason, metadata, privileges, etc)
We need to determine what is required for an Orchestrator to be able to understand in which phase of an artefact lifecycle it is dealing with. Also we will need some kind of typology for an artefact type itself, eg paper, dataset, software, etc.
Herbert: This would typically be triggered by a notification sent from the Orchestrator to the Inbox as a result of the execution of the Policy "once an artefact has entered the scholarly realm it should be certified". The Maintainer can then decide whether or not to request review and where. I think it would be good to add this to the pic as it nicely connects to the previous cases + illustrates policy
Is this a verbatim copy of the AS2 notification or a processed version?