Welcome
The Real Time Solid session will provide an introduction to notification standards and their current implementations, as well as discuss future directions for real-time capabilities in Solid.
Date: May 3, 2024
Time: 11:00 - 12:30 and 13:30 - 15:00
Venue: Faculty Club, Groot Begijnhof, Leuven, Belgium
Programme
The session is divided into two themes:
Theme 1: Notifications
This theme will focus on the existing standards for implementing notifications in Solid.
Solid Notifications Protocol
Speaker: elf Pavlik (remote)
The Solid Notifications Protocol is the official specifications of receiving notifications from the Solid resources. It provides a mechanism for discovery of notification capabilities on resources, customisation of notification channels through subscriptions, capabilities of notification channels, and methods for establishing a connection to a notification channel.
In this presentation, we shall discuss the current state of the specification, differences between existing channel types, various implementations and future directions for the Solid Notifications Protocol.
Presentation
Slides
Demo
Specifications
Solid Notifications
EventSourceChannel2023
LDNChannel2023
StreamingHTTPChannel2023
WebhookChannel2023
WebSocketChannel2023
WebPushSubscription2022
Implementations
Solid Notification Client
Community Solid Server - Notifications
Per Resource Events
Speaker: Rahul Gupta
Per Resource Events is a minimal protocol built on top of HTTP that allows clients to receive notifications directly from any resource of interest. The Per Resource Events Protocol (PREP) is predicated on the idea that the most intuitive source for notifications about changes made to a resource is the resource itself.
The companion Solid-PREP specification defines representation and semantics for notifications sent from LDP Resources hosted on Solid PODS using the Per Resource Events Protocol.
Presentation
Slides
Slides with Speaker's Notes
Specifications
Per Resource Events
Solid-PREP
Real-Time Emissions Calculation using Solid Notifications Protocol
Speaker: Luka Bekavac, Lukas Volk, Jan Grau
The evolution of Life Cycle Assessment (LCA) is propelled by technological advancements and new regulations that demand the monitoring of greenhouse gas (GHG) emissions. Traditional LCA methodologies, though robust, often capture only a moment in time, specific to a particular product composition. The introduction of Solid Pods into LCA processes enables real-time recalculation of emissions. Utilizing Solid Notification Protocol with a Webhooks Channel allows stakeholders to receive instant updates whenever any LCA-related data changes, facilitating automated emission recalculations. This innovation ensures real-time alerts to changes, maintains privacy, and permits immediate responses or analyses, enhancing the overall efficiency and accuracy of environmental impact assessments.
Presentation
Slides
Links
Towards an integrated semantic approach to GHG Accounting
WISER Consortium
Theme 2: Synchronization
This theme will introduce various synchronization technologies using CRDT/OTs for Solid.
CRDTs and Solid in practice
Speaker: Noel De Martin
A while ago, I set out to make an offline-first Solid Application. I didn't know where to start, but that's when I stumbled upon CRDTs. The idea was enticing, but there weren't any examples of using this approach in a Solid application. How hard could that be?
In this presentation I shall discuss what I found along the way, and how I used the best of both worlds with a simple, yet effective approach.
Presentation
Slides
Video
Website
Umai
Live Local-First RDF Graph Sharing
Speaker: George Svarovsky
End-users now expect apps to offer live collaboration on content, where appropriate. Most apps still build this capability with hard-coded ad-hoc solutions using, for example, WebSockets and fine-grained locks. This practice is tricky, and hence, brittle. When using Solid, it also harms the principle of application independence, because the app's concurrency model is opaque. We have developed a software component for "local-first" RDF graph sharing, in which the concurrency model is declarative, allowing heterogeneous apps to dynamically adapt, so users can collaborate live. This talk will introduce the problem, demonstrate our solution, and look to the future.
Presentation
Slides
Website
m-ld
Specifications
Shared-Graph Model Pattern
m-ld Specification
Repository
m-ld.js
Braid
Speaker: Michael Toomim
Solid has a simple pub/sub protocol to notify clients of real-time events. However, it would be much better if HTTP itself knew about the change, and automatically synchronized multiple clients, servers, and peers without programmer intervention.
I will present Braid-HTTP, a set of extensions to HTTP that guarantee synchronization for the state of any HTTP resource, under arbitrary edits, by multiple writers, over arbitrary content-types, under arbitrary network conditions. I will demonstrate how Braid can synchronize real-time changes to RDF data in a Solid application.
Presentation
Notes
Website
Braid
Specifications
Braid HTTP
Range Patch
Merge Types
Linked JSON
Repository
Braid Monorepo