# Solid (Internet)

Solid (Social Linked Data) è un progetto di decentralizzazione dei dati del web guidato da Tim Berners-Lee, inventore del World Wide Web, sviluppato in collaborazione con il Massachusetts Institute of Technology (MIT). Il progetto "punta a cambiare il modo in cui funzionano le attuali applicazioni Web, per ottenere una reale proprietà dei dati ed una privacy migliore." sviluppando una piattaforma per le applicazioni di linked-data che saranno completamente decentralizzate e sotto il pieno controllo degli utenti, invece che essere controllate da altre entità. L'obiettivo finale di Solid è mettere in grado gli utenti di avere il pieno controllo dei propri dati, inclusi il controllo di accesso e il luogo di archiviazione. A tal fine, Tim Berners-Lee ha fondato un'azienda chiamata Inrupt, per costruire un ecosistema commerciale per alimentare Solid.

## Storia

Due decenni dopo aver inventato il World Wide Web nel 1989, Tim Berners-Lee delineò i problemi di progettazione di ciò che sarebbe poi divenuto il progetto Solid in alcune bozze che scrisse per il World Wide Web Consortium. Berners-Lee era mosso da una crescente preoccupazione di fronte agli abusi della sua invenzione, tra cui la verificata interferenza di hacker russi nelle elezioni presidenziali USA del 2016, lo scandalo Facebook-Cambridge Analytica, gli esperimenti psicologici condotti segretamente da Facebook nel 2012 su quasi 700.000 utenti, le domande di brevetto da parte di Google e Amazon su dispositivi in grado di percepire i cambiamenti dello stato emotivo nella voce degli utenti.
Berners-Lee sentiva che internet aveva bisogno di essere riparata e concepì il progetto Solid come primo passo in quella direzione, come un modo per dare agli individui il pieno controllo sull'utilizzo dei propri dati. La partecipazione al progetto Solid è aperta a tutti, anche se Berners-Lee avverte che persone che non hanno abilità di programmazione debbano piuttosto sostenere pubblicamente la causa di un cambiamento di internet.
Nel 2015, il MIT ha ricevuto una donazione da Mastercard per sostenere lo sviluppo di Solid. Il team di ricerca di Berners-Lee ha collaborato su Solid con l'Istituto di Ricerca Informatica del Qatar e l'Università di Oxford.
Nel 2018, Berners-Lee prese un congedo sabbatico dal MIT per lanciare un'impresa commerciale basata su Solid, chiamata Inrupt. Obiettivo dell'azienda è "fornire energia commerciale ed un ecosistema per aiutare a proteggere l'integrità e la qualità del nuovo web basato su Solid."

## Design

Per decentralizzare il web secondo la visione di Berners-Lee, occorre superare un certo numero di sfide tecniche. Invece che utilizzare un paradigma centralizzato di tipo Hub and spoke, viene implementato un modello di rete Peer-to-peer che porta maggiore controllo e migliori prestazioni rispetto alle tradizionali reti peer-to-peer come BitTorrent. Altri obiettivi che il sistema dovrebbe raggiungere sono: la facilità di utilizzo, la velocità e la possibilità per gli sviluppatori di creare applicazioni in modo semplice.
L'obiettivo principale di Solid è consentire la scoperta e la condivisione delle informazioni in un modo che tuteli la privacy. L'utente memorizza i dati personali in "pods" (personal online data store), presso il suo hosting preferito. Le applicazioni, che siano state verificate da Solid, hanno il permesso di accedere ai dati richiesti per cui l'utente ha dato il permesso di accesso alla specifica applicazione. Un utente può distribuire le informazioni personali su vari pods; per esempio, diversi pods possono contenere i dati del profilo personale, le informazioni di contatto, informazioni finanziarie, sulla salute, programmi di viaggio e altre informazioni. L'utente può iscriversi alle applicazioni di social networking autenticate dando il permesso di accesso alle informazioni opportune inserite in un apposito pod. L'utente mantiene la proprietà ed il completo controllo delle informazioni nel suo pods: di qual siano i dati contenuti nel pod, dove sia memorizzato ciascun pod e quali applicazioni abbiano il permesso di utilizzare i dati.
Più dettagliatamente, Solid consiste dei seguenti componenti:
* Un insieme organizzato di standard e formati/vocabolari che offrono le stesse funzionalità offerte dai servizi di social media centralizzati, come l'identificazione, autenticazione, l'accesso, la gestione dell'elenco di permessi, la gestione dei contatti, la messaggistica, la sottoscrizione ai feed, i commenti, le discussioni e altri.
* Specifiche e note di progetto che descrivono una REST API per estendere gli standard esistenti, per guidare gli sviluppatori nella costruzione di server e applicazioni.
* Servers che implementano le specifiche di Solid.
* Una suite di test per il testing e la validazione delle implementazioni di Solid.
* Un ecosistema di applicazioni sociali, fornitori di servizi d'identità e librerie di aiuto che girano sulla piattaforma Solid.
* Una comunità che fornisce documentazione, discussioni, tutorial e presentazioni.