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

An overview of a processing flow in the claims network is listed below. The details of such a processing flow will be presented in section 4.

2. Functional and non-functional requirements

A claims network should have the following functional requirements:

Non-functional requirements of a decentralized claims network includes: scalability to handle the processing of researcher claims on a national level, performance levels to process and update claims service pages in near-real time, resilience against network outages, and adherence to interoperability affordances using open standards and protocols.

3. Terminology

To discuss the claims network, 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 append-only Web resource that contains descriptive metadata about claims artifacts 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

A claim is a notification attributed to a researcher, presenting an artifact as evidence of their research activity.

Claim bot

An automated process that works on behalf of the researcher to collect claims, descriptive metadata about claim artifacts and updates a activity log on behalf 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.

Claim summary

An RDF source in the JSON-LD format containing a summary of a claim artifact including provenance information about the claim itself.

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 notifications that are exchanged in the claims network.

Notification

A notification is a JSON-LD message 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 artifact, generates descriptive metadata about the artifact.

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. General Process Flow

A claims network consists of multiple actors exchanging information through a combination of application-specific notifications (e.g., Mastodon API notifications, if Mastodon serves as the implementation for the academic social networking service) and application-neutral claims network notifications. The application-neutral messaging format follows the Event Notifications in Value-Adding Networks messaging patterns, which will be explained in the next section.

The processing workflow in a claim network is depicted in Figure 2 and is explained below.

Overview of the network participants Figure 2: notification exchanges in a claims network

Step (1) The processing workflow in Figure 2 when a researcher, depicted as Alice , creates a toot in an academic social networking service presenting a contribution to her scholarly record. In our example we will use Mastodon as the implementation of such a service. Each claim toot contains at least a URL to an artifact and a references to a Mastodon account of a claim bot . An example of such a toot could be:

I just submitted my first question to the Dutch parliament! 
https://parliament.nl/questions/2025-21-121291 /cc @logbot@bots.surf.nl

In our examples we assume that this toot is available at the URL https://social.edu.nl/@alice/112891078566219289 . The toot with this URL we call the claim. The URL https://parliament.nl/questions/2025-21-121291 we will call the (claim) artifact.

Step (2) A process in the associated with claim bot monitors toots that are directed to the Mastodon account of the claim bot. This process picks up the new toot from Alice.

Step (3) The process of Step 2, transforms each artifact in the toot (claim) into an Event Notifications in Value-Adding Networks (EN) LDN+AS2 Announce notification and deliver this notification to the LDN Inbox of the claim bot.

Step (4) For each LDN+AS2 Announce notification the claim bot creates an LDN+AS2 Offer notification directed to a summarizer service requesting the summarization of the artifact mentioned in the claim.

Step (5) A summarizer service (tentatively) accepts the request for summarization of the artifact and sends an LDN+AS2 Accept notification to the claim bot.

Step (6) The summarizer service retrieves the Web resource of the artifact and generates a metadata summary. This service result is made available at a public URL. In our examples we assume this URL to be https://summary.surf.nl/result/12712-128219.jsonld .

Step (7) The summarizer service sends an LDN+AS2 Announce notification to the claim bot with the location of the service result.

Step (8) The claim bot uses the service result of the summarizer service to publish an RDF claim summary. The claim bot sends an LDN+AS2 Announce notification to a activity log with the location of the claim summary. The activity log uses this information to document open science activities of the researcher.

Step (9) The claim bot send a toot to Alice informing her about the update of the activity log.

5. 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 notifications that are specified below.

5.1. Academic social network service to claim bot

The academic social network service to claim bot 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 on social.edu.nl claiming her the artifact https://parliament.nl/questions/2025-21-121291 .
I just submitted my first question to the Dutch parliament! 
https://parliament.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) notifications that are forwarded to the claims bot into an LDN+AS2 notification. 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 notifications for each incoming toot directed at the claim bot.

5.1.1. Announce

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

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

A generated LDN+AS2 notification 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://bots.surf.nl/profile/card#me",
      "name": "Mastodon Bot",
      "type": "Service"
    },
    "object": {
      "id": "https://social.edu.nl/@alice/112891078566219289",
      "content": "<p>I just submitted my first question to the Dutch parliament! https://parliament.nl/questions/2025-21-121291 /cc @logbot@bots.surf.nl",
      "url": [
        {
          "type": "Link",
          "href": "https://parliament.nl/questions/2025-21-121291"
        }
      ],
      "type": "Note"
    }
}

5.2. Claim bot to summarizer service

The claim bot to summarizer service pattern is used by a claim bot to request the generation of descriptive metadata for an artifact at one or more summarizer services. Example 1, contains an example of such an artifact: https://parliament.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 notifications 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.

5.2.1. Offer

To request a summary for an artifact an LDN2+AS2 notification 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 notification that the claim bot sends to the summarizer service pertaining to the claim of Example 1.

A generated LDN+AS2 notification for the artifact 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": "https://bots.surf.nl/profile/card#me",
      "name": "Mastodon Bot",
      "inbox": "https://bots.surf.nl/inbox/",
      "type": "Service"
    },
    "object": {
      "id": "https://parliament.nl/questions/2025-21-121291",
      "type": "Document"
    }
}

5.3. Summarizer to claim bot service

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

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

5.3.1. Accept

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

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

An Accept LDN+AS2 notification 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://summary.surf.nl/profile/card#me",
        "name": "Zotero Service Provider",
        "inbox": "https://summary.surf.nl/inbox/",
        "type": "Service"
    },
    "context": "https://parliament.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": "https://bots.surf.nl/profile/card#me",
          "name": "Mastodon Bot",
          "inbox": "https://bots.surf.nl/inbox/",
          "type": "Service"
        },
        "object": {
          "id": "https://parliament.nl/questions/2025-21-121291",
          "type": "Document"
        }
    }
}

5.3.2. Reject

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

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

A Reject LDN+AS2 notification 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://summary.surf.nl/profile/card#me",
        "name": "Zotero Service Provider",
        "inbox": "https://summary.surf.nl/inbox/",
        "type": "Service"
    },
    "context": "https://parliament.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": "https://bots.surf.nl/profile/card#me",
          "name": "Mastodon Bot",
          "inbox": "https://bots.surf.nl/inbox/",
          "type": "Service"
        },
        "object": {
          "id": "https://parliament.nl/questions/2025-21-121291",
          "type": "Document"
        }
    },
    "summary": "Page does not exist"
}

5.3.3. Announce

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

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

An Announce LDN+AS2 notification 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://bots.surf.nl/profile/card#me",
        "name": "Zotero Service Provider",
        "inbox": "https://bots.surf.nl/inbox/",
        "type": "Service"
    },
    "context": "https://parliament.nl/questions/2025-21-121291",
    "inReplyTo": "urn:uuid:75806b42-41f5-46fb-8519-6e964c93c19e",
    "object": {
        "id": "https://bots.surf.nl/result/12712-128219.jsonld",
        "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.

Example 7 provides an example schema.org summarization service result https://summary.surf.nl/result/12712-128219.jsonld of Example 6.

A schema.org summarization service result for Example 6 made available as the Web resource https://summary.surf.nl/result/12712-128219.jsonld .
{
  "@context": "https://schema.org/",
  "id" : "https://parliament.nl/questions/2025-21-121291",
  "type" : "http://purl.org/net/xbiblio/csl#post-weblog",
  "author" : {
     "id" : "https://orcid.org/0000-0000-0000-0001",
     "familyName" : "Hayes",
     "givenName" : "Alice",
     "type" : "Person"
  },
  "datePublished" : "2025",
  "language" : "en-US",
  "title" : "Violating the ban on killing eels with a salt bath."
}

5.4. Claim bot to the activity log service

The claim bot to the activity log service pattern is used by a claim bot to update an activity log about a summary that was made for a claim. Example 1, contains an example of such a claim: https://parliament.nl/questions/2025-21-121291 . Example 7, provides an example of a summary that was generated for that claim. To publish the summary in an application-neutral format while including its provenance, we propose a Claim Summary RDF source, of which we will provide an example in the following subsection, an explained in section 6. This claim summary will be offered to an activity log using an LDN+AS2 event notification.

5.4.1. Claim Summary

A claim summary is a JSON-LD serialization of a claim summary including provenance information about the source of this claim. The about section of the claim summary contains the RDF version of the claim using the Schema.org vocabulary. The creator and isBasedOn sections provides information the account on the academic social networking service that made the claim. The mainEntity provides the URL of the claim. And, the sdPublisher and sdDatePublished provides information about the claim bot service that was responsible for collecting metadata about the claim.

The claim summary should be published by the claim bot as a publicly available Web resource. Example 8 provides an example of such a claim summary based on the claim of Example 1 and the generated summary of Example 7. We assume this claim summary is available at https://bots.surf.nl/summary/237123-21318.jsonld .

An example of a claim summary created for the claim of Example 1 and the generated metadata summary of Example 7. This claim summary will be published by the claim bot at URL https://bots.surf.nl/summary/237123-21318.jsonld .

{
    "@context" : "https://mycontributions.info/contexts/claim.jsonld",
    "id" : "urn:uuid:80965c07-59b4-429c-bdf9-50932284425c",
    "type" : "Claim",
    "about" : {
       "https://summary.surf.nl/result/12712-128219.jsonld" : {
          "id" : "https://parliament.nl/questions/2025-21-121291",
          "type" : "https://schema.org/WebPage",
          "author" : {
             "id" : "https://orcid.org/0000-0000-0000-0001",
             "familyName" : "Hayes",
             "givenName" : "Alice",
             "type" : "Person"
          },
          "datePublished" : "2025",
          "language" : "en-US",
          "title" : "Violating the ban on killing eels with a salt bath."
       }
    },
    "creator" : {
       "id" : "https://social.edu.nl/@alice",
       "name" : "Alice Hayes",
       "type" : "Person"
    },
    "isBasedOn" : "https://social.edu.nl/@alice/112891078566219289",
    "mainEntity" : "https://parliament.nl/questions/2025-21-121291",
    "sdDatePublished" : "2025-02-02T06:45:54.000Z",
    "sdPublisher" : {
       "id" : "https://bots.surf.nl/profile/card#me",
       "type" : "Service",
       "name" : "Mastodon Bot"
    }
 }

5.4.2. Announce

To announce a new claim summary, the claim bot sends an Announce LDN+AS2 notification to the LDN Inbox of the activity log service with the following properties:

Example 9 provides an example of an Announce LDN+AS2 notification sent by the claim bot using claim summary of Example 8 published at https://bots.surf.nl/summary/237123-21318.jsonld .

An announce LDN+AS2 notification send by the claim bot to the activity log service to request the addition of the claim summary of Example 8 at https://bots.surf.nl/summary/237123-21318.jsonld to the log.
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "urn:uuid:535dff96-1082-43b8-b1ce-66933bee768a",
  "type": "Announce",
  "published": "2025-02-02T06:48:39.000Z",
  "actor": {
    "id": "https://bots.surf.nl/profile/card#me",
    "name": "Mastodon Bot",
    "type": "Service"
  },
  "origin": {
    "id": "https://mastodon.bit.are.us/profile",
    "name": "Mastodon Bot Software",
    "type": "Service"
  },
  "object": {
    "id": "https://bots.surf.nl/summary/237123-21318.jsonld",
    "type": "Document"
  }
}

6. Claim Summary

A claim summary is an RDF source in the JSON-LD format containing a summary of a claim artifact including provenance information about the claim itself. Each claim summary has the following properties:

An example of a claim summary document is provided in Example 8.

7. Activity Log

An activity log is a public machine-readable append-only Web resource that contains descriptive metadata about claims artifacts created by a researcher combined with provenance information about the claim itself.

Individual claim summaries are published as RDF resources. A logical next step would be to make all these RDF resources accessible through an RDF endpoint. In a claims network, we follow the Linked Data Fragments architecture, which does not prescribe a specific publication platform for such logs. A collection of claim summaries can be made available as a downloadable dump. This solution would be expensive for clients. At the high end a SPARQL end point would provide clients with a query interface, but a high implementation cost for servers. In the middle a Quad Pattern Fragments service could be setup that is relatively a low bandwidth solution for a server and a bit higher implementation cost for clients.

8. Discovery of network components

TDB

9. Trust

TDB

10. Process Flow with 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
[SPARQL-QUERY]
Eric Prud'hommeaux; Andy Seaborne. SPARQL Query Language for RDF. URL: https://w3c.github.io/sparql-query/spec/