# Solid (projet de web décentralisé)

Solid (Social Linked Data, en anglais) est un projet développant, de manière collaborative, des solutions pour un web décentralisé. Il est dirigé par Tim Berners-Lee, l'inventeur du WWW (World Wide Web), au sein du Massachusetts Institute of Technology depuis 2015.
Le projet « vise à changer radicalement le mode de fonctionnement actuel des applications Web, pour aboutir à une véritable propriété des données et à une confidentialité améliorée » en développant une plate-forme pour les applications de données liées qui seront complètement décentralisées et entièrement sous le contrôle des utilisateurs plutôt que contrôlées par d'autres entités. Le but de Solid est de permettre aux utilisateurs d'avoir le contrôle total de leurs données personnelles (ou au moins de disposer de leurs propres données), y compris le contrôle d'accès et l'emplacement de stockage. À cette fin, Tim Berners-Lee a créé une société, dont le nom est Inrupt, pour aider à construire un écosystème commercial pour développer Solid.

## Historique

Deux décennies après l’invention du World Wide Web en 1989, Tim Berners-Lee a exposé les problèmes de conception de ce dernier (WWW) dans les brouillons (ou ébauches) qu'il a écrit pour le World Wide Web Consortium pour ce qui est devenu plus tard le projet Solid$^,$. Berners-Lee est devenu de plus en plus consterné de voir son invention utilisée abusivement, comme lors de la possible ingérence russe dans l'élection américaine de 2016, ou quand le scandale Facebook-Cambridge Analytica est devenu public, quand Facebook a effectué des expériences psychologiques sur près de 700 000 utilisateurs en secret en 2012, ou quand Google et Amazon ont déposé des demandes de brevets pour des appareils qui écoutent les voix humaines afin de déterminer des changements émotionnels.
Berners-Lee a estimé que l'Internet avait besoin d'être réparé et a conçu le projet Solid comme une première étape pour le réparer, c'est-à-dire un moyen de donner un contrôle total sur l'utilisation de leurs données aux utilisateurs individuels. Le projet Solid est à la disposition de tous, toute personne peut le rejoindre pour y participer et contribuer à celui-ci, bien que Berners-Lee conseille aux personnes sans compétences de développement ou codage qu'elles devraient plutôt plaider publiquement pour le changement de l'Internet.
En 2015, le MIT a reçu un don de la société Mastercard pour soutenir le développement (logiciel) de Solid. L'équipe de recherche de Berners-Lee a collaboré avec l'Institut de recherche informatique du Qatar et l'Université d'Oxford sur Solid.
En 2018, Berners-Lee a pris un congé sabbatique du MIT pour lancer une entreprise commerciale basée sur le développement de Solid et dont le nom est Inrupt$^,$. La mission de la société est de "fournir de l'énergie commerciale et un écosystème pour aider à protéger l'intégrité et la qualité du nouveau web bati sur Solid."
En décembre 2021, Inrupt lève 30 millions de dollars de levée de fonds en Serie A de la part d'investisseurs .

## Conception

Pour décentraliser le Web selon la vision de Berners-Lee, il faut surmonter un certain nombre de défis techniques en les résolvant. Plutôt que d’utiliser un système centralisé avec un paradigme de distribution de type réseau en étoile (Hub and spoke), un réseau décentralisé de type Pair à pair est mis en œuvre d'une manière qui ajoute plus de contrôle et de performance que les réseaux traditionnels en pair à pair (peer-to-peer) tel le BitTorrent. Les autres objectifs sont que le système soit facile à utiliser, rapide, et permette aux développeurs de créer simplement des applications.
L'objectif principal de Solid est de permettre la découverte et le partage d'informations de manière à préserver la confidentialité et la vie privée. Un utilisateur stocke ses données personnelles dans des "pods" (magasins de données personnelles en ligne (personal online data stores)) ou "modules" ou "magasins" hébergés partout où l'utilisateur le souhaite. Les applications, qui sont authentifiées par Solid, sont autorisées à demander des données, si l'utilisateur a donné la permission à l'application. Un utilisateur peut diffuser ou répartir ses informations personnelles sur plusieurs pods (ou modules ou magasins); par exemple, des pods (ou modules ou magasins) différents peuvent contenir des données de profil personnel, des informations de contact, des informations financières, des données sur la santé, un plan de voyage ou d'autres informations. L'utilisateur peut alors rejoindre (ou se connecter à) une application de réseau social authentifiée en donnant sa permission pour accéder aux informations appropriées dans un pod ou magasin spécifique. L'utilisateur conserve la propriété totale et le contrôle complet des données dans les pods ou magasins qui lui appartiennent : quelles sont les données contenues dans chaque pod ou magasin, où chaque pod ou magasin est stocké, et quelles applications ont la permission d'utiliser les données.
Plus en détail, Solid est constitué des composants suivants :
* Une collection organisée de normes et de formats/vocabulaires de données fournissant les mêmes fonctionnalités que les services de réseaux ou médias sociaux centralisés offrent, tels que l'identification, l'authentification, la connexion, les listes d'autorisations, la gestion des contacts, la messagerie, les abonnements aux flux divers (infos, etc), les commentaires, les discussions et autres choses.
* Des spécifications et des notes de conception décrivant une API REST pour étendre les normes existantes, pour guider les développeurs dans la construction de serveurs ou d'applications.
* Des serveurs qui mettent en œuvre la norme de la spécification Solid en l'implémentant dans leur code source.
* Une suite de test pour tester et valider les implémentations ou mise en œuvre de Solid dans des serveurs ou applications.
* Un écosystème d'applications de réseaux sociaux, de fournisseurs d'identification, et des bibliothèques d'aide qui fonctionnent sur la plateforme Solid.
* Une communauté fournissant de la documentation, (des forums) de discussion, des tutoriels, et des présentations.