Tim Berners-Lee, inventor of the internet, is in the process of launching a startup called Inrupt, whose aim is to decentralize the web. Inrupt will be built using Solid, a decentralized web platform that Berners-Lee has been building for many years, along with others, at MIT. In doing so, Berners-Lee’s intention is to disrupt the monopolies that have come to control the majority of the web. Berners-Lee hopes that Inrupt will be just the first of many companies to emerge from Solid.
The Internet has become Centralized
When Berners-Lee first invented the web, his intention was that it would be for everyone and he believed that all could participate. Berners-Lee now believes, however, that the web has become “an engine of inequity and division” and the balance of power has gone to “powerful forces who use it for their own agendas.” Facebook and Google, and the sites and services they operate, such as Instagram (owned by Facebook) and YouTube and WhatApp (owned by Google) account for over 70% of all web traffic. The third giant in the trifecta is Amazon, which dominates e-Commerce. This trifecta controls servers, accounts, and networks, as well as massive amounts of people’s personal data. A centralized web has been built in which data is kept in silos.
All these companies have had instances in which that data was somehow mishandled, either in how it was collected, or how it was stored and secured. For Facebook, there was the Cambridge Analytica scandal and a security issue that compromised the data of 50 million Facebook accounts. Google meanwhile is facing a lawsuit since news emerged it was collecting location data even after users had turned off location services. Alexa, Amazon’s personal assistant, has at least one known instance of recording a user’s private conversation and sending it to a random contact. And these are only a handful of examples of data mismanagement from the big three.
Berners-Lee seeks to take control back over data back from those companies and put it back into the hands of the users, and return to the Internet to a free and open landscape in which individuals can control their own data.
Decentralizing the Web using Solid
Solid is a decentralized platform in which bits of data users create or add are kept within what is known as a solid POD (Personal Online Data store). The POD gives users greater control over their personal data because data is decoupled from the applications that use it. The goal is to take the power of the web away from corporations and restore them to the user.
With Solid, whose name comes from “social linked data,” users are given control over their own data as part of a much larger goal to flip the power dynamics of the web from corporations to individuals. “Solid changes the current model where users have to hand over personal data to digital giants in exchange for perceived value. As we’ve all discovered, this hasn’t been in our best interests. Solid is how we evolve the web in order to restore balance -by giving every one of us complete control over data, personal or not, in a revolutionary way,” said Berners-Lee.
Solid is creating a new standard by offering a set of conventions and tools that will allow developers to build data based on Linked Data principles. It relies on already-existing W3C protocols and standards. It is both modular and extensible. It offers:
- Data ownership. Solid gives data ownership to its users. Solid decouples the content from the application, which gives users the choice over where their data resides, and lets them decide who has access to it.
- Modular design. By decoupling applications and data, users can avoid vendor lock-in. Vendor lock-in had walled gardens and proprietary data formats. Eliminating them will allow users to switch between apps and the servers where their personal data is stored, without losing any of their data or their social connections. The reuse of existing data will allow innovation on the developers’ side. When creating new apps or improving existing apps, developers can reuse data that was created by other apps.
Users are able to store any data they want in their POD. They can have multiple PODs. They can install a Solid Server themselves, or get a POD from a trusted provider. They can give other users access to their PODs, and decide which parts of their PODs people can see, and which parts of their PODs apps can see. For users, this gives them unprecedented control, but it also creates a seamless transfer of data from one app to another. Rather than having one set of data with one company and one set with another, the user controls their own personal set of data, and can share it across applications. This gives developers access to data that was otherwise siloed and owned by a single corporation. The opportunity to create seamless data sharing across applications opens up a number of possibilities.
Solid Is Not Re-Centralizing
Encouraging Adoption by Appealing to Developers
Berners-Lee is hoping the popularity of Solid will spread via the global community of digital activists who are against corporate and governmental control of the web, among them developers, hackers, and hard-core Internet activists. “Developers have always had a certain amount of revolutionary spirit,” said Berners-Lee. In an effort to appeal to them, he has opened up the platform to developers, offering the ability for them to build their own decentralized apps with tools made available on the Inrupt site. Berners-Lee is also planning a tour to make presentations to developers and give them tutorials on both Solid and Inrupt.
There is a full tutorial available on GitHub, which introduces the ideas behind the personal datastores as well as how to build applications using Solid protocols.
Solid relies on interoperability. Since the data is decoupled from the applications that use it, that is only possible when data is written in a standard format that is mutually-intelligible. For the applications that read, create, and manipulate the data, it needs a common protocol to speak to the datastore.
Datastores store data as RDF and use a RESTful API. There is a URL for every resource in the data and to create, read, update and delete resources in a datastore, applications can use HTTP. These resources can be organized hierarchically in containers, which are similar in concept to folders or directories.
To get attributes and values of the data in any resource, an application will do a GET request on the URL of the resource. Data that is sent and retrieved is RDF and the RDF serialization used is Turtle.
In order to ensure interoperability, the creators knew they needed to find a way to cooperate when choosing schemas to represent their data. To do this, they wanted to reuse existing vocabularies as much as possible to ensure that when two people use the same term, they were using a globally unique identifier in order to show that they mean the same thing.
While anyone can publish a vocabulary, they can also use vocabularies that have been published. The creators give examples of well-known, stable vocabularies, such as RDF, RDFS, Dublin Core and schema.org. For social applications, they include vocabularies people might be interested in, such as FOAF, SIOC, and ActivityStreams 2.0.
In order to ensure that no matter where a user is interacting, they only have one identifier to sign into their own personal datastore, Solid uses WebID URLs as unique user IDs. In order to decide who has access to a particular resource, identities can be used to define who can read or write access to resources; these lists are called ACL (Access Control List). ACLs follow the Web Access Control spec.
If you would like to build a typical solid app, the tutorial, gives you detailed steps.
The Vision for Solid
Berners-Lee hopes that Solid will benefit users, developers who build on the platform, and businesses who use the platform. For users, it gives them a choice about where their data is stored, who has access to that data, including which people and groups can access certain elements, and the ability to link and share data with family, colleagues and friends. For developers and businesses, Berners-Lee hopes it will create opportunities for creativity and problem-solving, as well as new avenues of commerce. Breaking down data silos creates new and exciting opportunities. As Berners-Lee describes it, “Imagine if all your current apps talked to each other, collaborating and conceiving ways to enrich and streamline your personal life and business objectives? That’s the kind of innovation, intelligence and creativity Solid apps will generate.”
Solid’s main principle is “personal empowerment through data.” This empowerment not only comes from user control, but through seamless data sharing.
Upending the Web
Fundamentally, Berners-Lee is seeking to disrupt the current model of the web and replace it with something new; crucially, he is not threatened by the forces which currently dominate the web. “We are not talking to Facebook and Google about whether or not to introduce a complete change where all their business models are completely upended overnight. We are not asking their permission,” he says. Though only time will tell if Solid gets the mass adoption it needs to be sustainable and have the impact Berners-Lee imagines, it has some serious investment behind it already, with $112M in backing from Glasswing Ventures. Berners-Lee has made his bet, and is in the process of taking a sabbatical from MIT in order to work on Inrupt full time. “We have to do it now”, he told Fast Company recently, “It’s a historical moment”.