Web Standards Column: Linked Data Notifications

This article was published in issue #296 (Summer 2017) of net magazine!

A photo of the article in print A photo of rhiaro and csarven with their netmag article

You may by now have come across the notion of 're-decentralising' the Web, particularly the Social Web. This is about gaining better control over where we store our personal data. It has become common practice to hand over our data to a few major companies in exchange for 'free' services like games, productivity apps, email, and of course social media. Linked Data Notifications (LDN) is a W3C Recommendation, and one of several protocols standardised by the Social Web Working Group as a core mechanism to make decentralisation possible.

Decentralisation

Right now, when you get a notification from your favourite social networking app (or your calendar, or your hotel reservation site) you can view it once within that closed system, and then it tends to disappear. Imagine if you could choose a trusted location to store your notifications data (for example a personal data store or server) and grant access to different applications. Notifications are no longer locked in to the system which generated them in the first place; data from one application can be reused by another.

There are clear benefits of this practice. The end user is free to switch between applications without having to input the necessary data from scratch each time, as well as changing where their data is stored without disrupting the apps they use, because applications can just re-discover the new location. This benefits application developers too, who can now focus on their core product or service. LDN integration means that applications can nonetheless enhance their functionality when users choose to share notification data from complementary services, and benefit from a standard mechanism for doing so rather than depending on the proprietary API of a third-party social network provider.

The Protocol

LDN is a simple HTTP-based protocol which describes three roles in notification-oriented interactions: senders, receivers, and consumers. Any resource on the Web (from a user profile to a single blog post) may advertise a receiving endpoint (their "Inbox"). Doing so is like pointing to a webhook URL, with LDN standardising the discovery mechanism. The receiver accepts requests from senders (for new notifications) and exposes received notifications in a standard format for other applications (consumers) to reuse. The sender can place any data in the contents of a notification - as much or as little as the application determines is useful for its own future reuse, or for sharing with other consumer applications in the same domain. Consumer applications which discover and read in the notification data could use notification contents to trigger another process in a system, or simply display it in a user interface.

So far we have seen decentralised notifications applied in social networking scenarios, as well as for archival activities and scientific experiments through monitoring the state of online resources, datasets and files, or sensor outputs, and sending notifications when changes occur.

Building Blocks

LDN serves as a building block rather than a complete solution for re-decentralisation. The three roles (sender, receiver, and consumer) can be implemented independently from each other (if you want to build a sender, you don't need to build a receiver to do so), or all together in one system. If you don't want to build your own "Inbox" (and let's face it, most people won't) you can rent one from a third-party you trust. Just like outsourcing the hosting of your social media profile today, but without the service-specific lock-in. No matter where your "Inbox" resides, any application can send notifications there. The protocol works well alongside other emerging or completed W3C standards such as ActivityStreams 2.0, ActivityPub, and the Web Annotations Protocol.

You can get started with LDN today; check out a growing list of reference implementations, and run your implementation against the test suite. Although the standardization process is complete, new implementors are nonetheless encouraged to run the tests and submit the automatically generated implementation reports. The W3C Social Web Community Group is the place to go for follow-up questions and comments about integrating this standard into your applications.

🏷 cv ldn resume socialwg