Claims Network

Living Document,

Previous Versions:
Issue Tracking:
GitHub
Editors:
(Ghent University Library)
(DANS)

Abstract

This document specifies a decentralized claims network.

1. Introduction

Research assessment is an integral part of academic life and measures the quality of the research output and, by cumulative evaluations, contributes to the assessment of each researcher. There is a global activity to take a broad range of activities and contributions into account in researcher assessments. Examples are the [COARA] (Coalition for Advancing Research Assessment) initiative and OpenAIRE [Graspos] researcher profile. A recurring question in these initiatives is: "How to capture information beyond traditional research outputs?" Current Research Information Systems (CRIS) seldom capture activities such as interviews, news reports about a researcher or research project, teaching activities, and contributions to open-source development.

In 2024, SURF (the ICR cooperative of Dutch education and research institutions) and IMEC-IDLab (the Flemish Internet Technology and Data Science Lab) created an experimental, decentralized claim network that collects and distributes claims about researcher activities and contributions. The claims network is depicted in Figure 1 below.

Claims network architecture

Figure 1: Overview of the claims network

The processing flow in the claims network is listed below:

2. Functional and non-functional requirements

A claims network should have the following functional requirements:

3. Terminology

The following terms are used in this specification:

Academic social networking service

A social network platform such as Mastodon that is used in an academic setting that is used by researchers to publish claims about a contribution to the scholarly record of the researcher.

Activity Log

A public machine-readable Web resource that contains descriptive metadata about claims created by a researcher combined with provenance information about the claim itself.

Artifact

An artifact is a Web resource identified by a URL that serves at the main focus of interaction between the participants in the network. Examples of artifacts are traditional scholarly contributions but also interviews, news reports about a researcher or research project, teaching activities, and contributions to open-source development.

Claim

An artifact that is a proof of a researcher activity that needs to become part of the scholarly record of a researcher.

Claim bot

An automated process that works on behalf of the researcher to collect claims, descriptive metadata about such claims and updates the activity Log of a researcher.

Claims network

A decentralized network of evolving claim assertions.

Claims service

A service node that collects claims made by a researcher and provides an public accessible overview activities and contributions of a researcher.

Data Node

A data node is a network node that hosts artifacts. Examples of data nodes are news agencies, institutional repositories, blogs, and governmental websites.

Inbox

An inbox is a Web location conform with the Event Notifications in Value-Adding Networks specification. Inboxes are setup by data nodes and service nodes to receive LDN+AS2 JSON-LD messages that are exchanged in the claims network.

Notification

A notification is are JSON-LD messages exchanged in the claim network using the Event Notifications in Value-Adding Networks specification.

Service Node

A service node provides value-added services for artifacts hosted by data nodes. An example of a service node is a summarizer service that generates descriptive metadata for a given Web resource.

Service Result

A service result is any outcome of providing a value-added service for an artifact. An example of a service result is a JSON document that contains the descriptive metadata generated by a summarizer service.

Summarizer Service

A summarizer service is a service node that, given claim, generates descriptive metadata about the claim.

Verification Service

A verification service is a node in the network that provides that verifies the identities of used by researchers in the claims network.

4. Network communication patterns

In a claims network automated agents, such as the claims bot, operate on behalf of a researcher to update an activity log and claims service with descriptive metadata about claims made by the researcher on a (national) academic social networking service. The network nodes operate by sending LDN+AS2 between each other that follow the Event Notifications in Value-Adding Networks specification.

Depending on the type of sender an receiver different types of messages that are specified below.

4.1. Academic social network service to claimbot

The academic social network service to claimbot pattern is used by the academic social networking service to forward claims to a claims bot. Example 1 provides an example of such a claim made by the researcher Alice on a Mastodon instance hosted at https://social.edu.nl .

Alice creates a toot message on social.edu.nl claiming her contribution https://parlaiment.nl/questions/2025-21-121291 .
I just submitted by first question to the Dutch parliament! 
https://parlaiment.nl/questions/2025-21-121291 /cc @logbot@bots.surf.nl 

We assume the claim bot has the Mastodon account @logbot@bots.surf.nl .

We assume that the claims network includes the capability to transform (toot) messages that are forwarded to the claims bot into a LDN+AS2 message. An example implementation could involve a process operating on behalf of the claim bot, which monitors the @logbot@bots.surf.nl account on bots.surf.nl using the Mastodon API and generates LDN+AS2 messages for each incoming toot directed at the claim bot.

4.1.1. Announce

An academic social networking service should trigger a claim bot by sending an LDN+AS2 message to the Inbox of the claim bot with the following properties:

In Example 2, we illustrate the structure of an LDN+AS2 message corresponding to the toot message presented in Example 1.

A generated LDN+AS2 message for the toot in Example 1.
{
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "urn:uuid:6d21a2ae-df59-40d9-999c-18e19277d21a",
    "type": "Announce",
    "published": "2025-02-02T06:45:54.000Z",
    "actor": {
      "id": "https://social.edu.nl/@alice",
      "name": "Alice",
      "type": "Person"
    },
    "origin": {
      "id": "https://mycontributions.info/service/m/profile/card#me",
      "name": "Mastodon Bot",
      "type": "Service"
    },
    "object": {
      "id": "https://social.edu.nl/@alice/112891078566219289",
      "content": "<p>I just submitted by first question to the Dutch parliament! https://parlaiment.nl/questions/2025-21-121291 /cc @logbot@bots.surf.nl",
      "url": [
        {
          "type": "Link",
          "href": "https://parlaiment.nl/questions/2025-21-121291"
        }
      ],
      "type": "Note"
    }
}

4.2. Claimbot to summarizer service

The claimbot to summarizer service pattern is used by a claim bot to request the generation of descriptive metadata for a claim at one or more summarizer services. Example 1, contains an example of such a claim: https://parlaiment.nl/questions/2025-21-121291 . A summarizer service can have many types of implementations such as Zotero Translation Server, web archives, Crossref clients, web crawlers, AI-driven text analyzers to name a few. What all implementation have in common is that they employ the LDN+AS2 messages using the Event Notifications protocol to communicate asynchronously with the claims bot. Asynchronous messaging enables the summarizer service to scale efficiently by executing data extraction algorithms through batch jobs, as opposed to real-time processing.

4.2.1. Offer

To request a summary for a claim an LDN2+AS2 message should be send to the Inbox of a summarizer service with the following properties:

In Example 3, we illustrate the structure of an LDN+AS2 message that the claim bot sends to the summarizer service pertaining to the claim of Example 1.

A generated LDN+AS2 message for the claim https://parlaiment.nl/questions/2025-21-121291 in Example 1.
{
    "id": "urn:uuid:urn:uuid:75806b42-41f5-46fb-8519-6e964c93c19e",
    "type": "Offer",
    "published": "2025-02-02T06:46:01.000Z",
    "actor": {
      "id": "http://mycontributions.info/service/m/profile/card#me",
      "name": "Mastodon Bot",
      "inbox": "http://mycontributions.info/service/m/inbox/",
      "type": "Service"
    },
    "object": {
      "id": "https://parlaiment.nl/questions/2025-21-121291",
      "type": "Document"
    }
}

4.3. Summarizer to claimbot service

The summarizer service has the four possible responses to respond to an LDN+AS2 message received in the Inbox of the service:

For each of the four scenarios we will present below the requirements for the LDN+AS2 messages.

4.3.1. Accept

To (tentatively) accept an offer for the summarization of a claim, the summarizer service can optionally send an Accept LDN+AS2 message to the Inbox of the claim bot with the following properties:

In Example 4, we illustrate the structure of an LDN+AS2 message that the summarizer service can send to the claim bot in to tentatively accept the Offer send in Example 3.

An Accept LDN+AS2 message send by the summarizer service to the claim bot in response to the Offer send in Example 3.

{
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "urn:uuid:dea5fba6-fcf3-4fb3-a7c5-4052490a79b4",
    "type": "Accept",
    "published": "2025-02-02T06:47:13.000Z",
    "actor": {
        "id": "https://mycontributions.info/service/x/profile/card#me",
        "name": "Zotero Service Provider",
        "inbox": "http://mycontributions.info/service/x/inbox/",
        "type": "Service"
    },
    "context": "https://parlaiment.nl/questions/2025-21-121291",
    "inReplyTo": "urn:uuid:75806b42-41f5-46fb-8519-6e964c93c19e",
    "object": {
        "id": "urn:uuid:urn:uuid:75806b42-41f5-46fb-8519-6e964c93c19e",
        "type": "Offer",
        "published": "2025-02-02T06:46:01.000Z",
        "actor": {
          "id": "http://mycontributions.info/service/m/profile/card#me",
          "name": "Mastodon Bot",
          "inbox": "http://mycontributions.info/service/m/inbox/",
          "type": "Service"
        },
        "object": {
          "id": "https://parlaiment.nl/questions/2025-21-121291",
          "type": "Document"
        }
    }
}

4.3.2. Reject

To reject an offer for the summarization of a claim, the summarizer service should send a Reject LDN+AS2 message to the Inbox of the claim bot with the following properties:

In Example 5, we illustrate the structure of an LDN+AS2 message that the summarizer service can send to the claim bot in reject the Offer send in Example 3.

A Reject LDN+AS2 message send by the summarizer service to the claim bot in response to the Offer send in Example 3.

{
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "urn:uuid:dea5fba6-fcf3-4fb3-a7c5-4052490a79b4",
    "type": "Reject",
    "published": "2025-02-02T06:47:13.000Z",
    "actor": {
        "id": "https://mycontributions.info/service/x/profile/card#me",
        "name": "Zotero Service Provider",
        "inbox": "http://mycontributions.info/service/x/inbox/",
        "type": "Service"
    },
    "context": "https://parlaiment.nl/questions/2025-21-121291",
    "inReplyTo": "urn:uuid:75806b42-41f5-46fb-8519-6e964c93c19e",
    "object": {
        "id": "urn:uuid:urn:uuid:75806b42-41f5-46fb-8519-6e964c93c19e",
        "type": "Offer",
        "published": "2025-02-02T06:46:01.000Z",
        "actor": {
          "id": "http://mycontributions.info/service/m/profile/card#me",
          "name": "Mastodon Bot",
          "inbox": "http://mycontributions.info/service/m/inbox/",
          "type": "Service"
        },
        "object": {
          "id": "https://parlaiment.nl/questions/2025-21-121291",
          "type": "Document"
        }
    },
    "summary": "Page does not exist"
}

4.3.3. Announce

To announce the result for the summarization of a claim, the summarizer service should send an Announce LDN+AS2 message to the Inbox of the claim bot with the following properties:

In Example 6, we illustrate the structure of an LDN+AS2 message that the summarizer service can send to the claim bot to announce the summary for the claim of Example 3.

An Announce LDN+AS2 message send by the summarizer service to the claim bot in response to the Offer send in Example 3.

{
    "@context": "https://www.w3.org/ns/activitystreams",
    "id": "urn:uuid:ef99b36a-5896-46ee-b164-2da1467f6a35",
    "type": "Announce",
    "published": "2025-02-02T06:49:29.000Z",
    "actor": {
        "id": "https://mycontributions.info/service/x/profile/card#me",
        "name": "Zotero Service Provider",
        "inbox": "https://mycontributions.info/service/x/inbox/",
        "type": "Service"
    },
    "context": "https://parlaiment.nl/questions/2025-21-121291",
    "inReplyTo": "urn:uuid:75806b42-41f5-46fb-8519-6e964c93c19e",
    "object": {
        "id": "https://mycontributions.info/service/x/result/2024/08/14/9a3b6978a49f9aaf055181e5993c5d89.json",
        "type": "Document"
    }
}

Service Result summarization results can be serialized using many formats. Within a claims network it is essential for network partners to reach a common agreement on the expected output format. Examples of potential formats include, but are not limited to, CSL JSON, schema.org and Bibo.

4.4. Claim bot to Academic social network service

TDB

5. Trust

TDB

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

[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

Informative References

[COARA]
Coalition for Advancing Research Assessment (CoARA). URL: https://coara.eu
[Graspos]
GraspOS: moving forward to a more responsible research assessment. URL: https://www.openaire.eu/graspos-moving-forward-to-a-more-responsible-research-assessment