Nell’era della digitalizzazione, anche il sapere scientifico passa sempre più attraverso il software. Il codice sorgente non è solo uno strumento tecnico, ma una vera e propria parte della conoscenza scientifica, utile per documentare, riprodurre e comprendere i processi della ricerca.
Roberto Di Cosmo, professore di informatica e co-fondatore del progetto Software Heritage,* ci spiega come questa infrastruttura stia cambiando il modo di pensare l’archiviazione e la condivisione del codice.

Il percorso che ha condotto Roberto Di Cosmo allo sviluppo di Software Heritage è stato multisfaccettato, influenzato dalla sua formazione, dalla sua esperienza professionale e dalla sua osservazione delle problematiche legate all’accesso e alla conservazione del software nel contesto della rivoluzione digitale e della scienza aperta.

*Software Heritage è un archivio internazionale per il codice sorgente che mira a garantire la preservazione e l’accessibilità del software a livello globale, evidenziandone l’impatto sulla ricerca, l’industria e l’autonomia strategica delle nazioni.


Professor Di Cosmo, lei ha un background piuttosto variegato, iniziato con gli studi di lettere prima di passare all’informatica. Come ha influenzato questo percorso la sua visione, soprattutto in relazione all’etica nel mondo digitale?

È vero, ho iniziato con lettere, ma negli anni ’80 mi sono iscritto a Informatica a Pisa, l’unico dipartimento in Italia all’epoca, dove i docenti provenivano da Fisica, Matematica e Ingegneria, essendo l’informatica una disciplina neonata.
All’epoca, chi avrebbe mai detto che ci sarebbero stati problemi etici con l’informatica!
Dopo il dottorato e un periodo negli Stati Uniti, mi sono stabilito a Parigi, dove ho trovato un ambiente di ricerca incredibile e ho apprezzato il ruolo dello Stato con la “S” maiuscola.
Intorno al 1998, in modo del tutto imprevisto, mi sono trovato al centro delle discussioni sui monopoli informatici, in particolare quello di Microsoft. Ho scritto un articoletto, quasi per “terapia personale”, intitolato “Trappola nel Ciberspazio” (o “Piège dans le Cyberespace” in francese), che ha fatto il giro del mondo agli albori di internet, catapultandomi nel “giro politico” della difesa del software libero, della difesa dell’Open Access e della difesa della trasparenza nei metodi informatici applicati alla società moderna, come il voto elettronico. Questo impegno mi ha, tra virgolette, “rovinato la vita” per l’intensità delle attività pubbliche, ma ha segnato l’inizio della mia “doppia vita” tra ricerca accademica e attività di sviluppo notturno e advocacy politica.

In Francia, lei ha avuto un ruolo importante nella creazione di un polo di competitività dedicato all’open source. Come ha contribuito questo all’evoluzione del software libero nel mondo industriale?

Tra il 2005 e il 2006, ho contribuito alla creazione di un polo di competitività dedicato al software libero in Francia. Questa struttura ha finanziato oltre 60 progetti di ricerca e sviluppo collaborativi tra industria, comunità di sviluppo e laboratori di ricerca francesi, orientando circa 250 milioni di euro verso lo sviluppo di nuovi prodotti open source con un impatto sociale. Oggi, l’open source è diventato “banale”, un concetto quasi scontato nel mondo industriale: l’80-90% dei prodotti riutilizza componenti open source, riconoscendolo come un fattore chiave della rivoluzione digitale. La rivoluzione digitale è stata permessa da una congiunzione di fattori: l’accelerazione delle reti di comunicazione, che ha reso la collaborazione e la condivisione di programmi molto più fattibile, e il cloud computing, che ha ridotto drasticamente il tempo e il costo per lanciare applicazioni. Il software libero è fondamentale per questo modello perché le startup non potrebbero ricreare da zero tutte le componenti necessarie.

In questo contesto di accelerazione e condivisione, ha identificato una lacuna critica: la mancanza di un archivio per il codice sorgente. Come è arrivato a questa constatazione?

Ho osservato un’incredibile accelerazione anche nell’ambito della ricerca scientifica, anch’essa facilitata dalla condivisione di informazioni, nonostante le “barriere artificiali” delle sottoscrizioni a pagamento per le pubblicazioni scientifiche.
Nel 2012-2014, mentre lavoravamo con Stefano Zacchiroli (che mi aveva raggiunto a Parigi nel 2008) per creare una collezione del software, partendo dalla distribuzione Debian, ci siamo resi conto che il software era sparso ovunque e i progetti “andavano e sparivano” senza essere archiviati.
Nel 2014, abbiamo realizzato che, mentre esistevano archivi per quasi ogni forma di conoscenza – web, video, suono, cinema, musica, giochi elettronici – il codice sorgente del software, “il cuore della rivoluzione digitale”, non era “sul radar di nessuno”.

Come è nata l’idea di Software Heritage, e quali lezioni avete tratto dagli errori, per esempio, nell’Open Access, per garantire la sua sostenibilità?

Ci siamo resi conto di questa lacuna nell’estate del 2014, con Stefano abbiamo avuto l’idea di come archiviare il software tecnologicamente in modo utile, producendo un documento di analisi e una proposta d’azione. Abbiamo certamente tratto insegnamento dalle lezioni apprese dagli errori nell’Open Access; faccio un esempio: l’archivio ArXiv era nato senza informare le autorità, senza un piano economico e senza un “advisory board” e questo ha portato a una frammentazione del settore. La “maledizione” dell’Open Access, con migliaia di repository sparsi e non coordinati, ci ha mostrato l’importanza di evitare una balcanizzazione simile per il software.

Per Software Heritage, abbiamo scelto un approccio istituzionale e sostenibile. Ci siamo rivolti subito all’Inria (Istituto Nazionale di Ricerca in Informatica e Matematica Applicata). Il nuovo direttore di Inria, Antoine Petit, interessato a progetti ad “alto impatto sociale”, ha sostenuto l’idea. Dopo oltre sei mesi di lavoro per ottenere le approvazioni, la raccolta dei dati è iniziata nell’estate del 2015, con sostegno istituzionale. Nel 2016, il lavoro è stato annunciato al pubblico e nel 2017 è stato siglato un accordo con l’UNESCO, con la visione che Software Heritage dovesse essere un’infrastruttura internazionale e salvare “tutto il software del pianeta”, fornendo un servizio universale.

Quali sono i pilastri fondamentali su cui si basa Software Heritage e per chi è pensato il suo servizio?

L’AI Software Heritage serve diverse categorie di utilizzatori e scopi cruciali:

  • Preservazione del patrimonio culturale: permette di ricostruire la storia dell’informatica.
  • Ricerca scientifica (scienza aperta): è uno dei tre pilastri della scienza aperta, insieme a pubblicazioni e dati. Garantisce la riproducibilità scientifica, permettendo di accedere al software esatto usato in una ricerca. Anche discipline come le scienze della vita producono e riutilizzano incredibili quantità di software.
  • Autonomia strategica dei paesi: riduce la dipendenza da piattaforme esterne che potrebbero bloccare l’accesso al software.
  • Cybersecurity e intelligenza artificiale: il software è dappertutto, anche in settori critici come la difesa, le banche e la pubblica amministrazione.

Può fornirci qualche esempio pratico delle funzionalità e degli strumenti offerti da Software Heritage, in particolare per la comunità scientifica?

Certo. Abbiamo sviluppato diversi strumenti:

  • Barometro della Scienza Aperta francese: questo strumento analizza gli articoli scientifici e le menzioni al software, mostrando che anche le scienze sociali e umanistiche usano il software in oltre il 20% degli articoli. Questo dimostra che il software è un problema trasversale per tutte le discipline, non solo per gli informatici.
  • Estensione browser “Update Software Heritage”: se installata, questa estensione consente la visualizzazione di un pallino verde nelle piattaforme di sviluppo (GitHub, Bitbucket, GitLab) se il codice è archiviato e aggiornato. Cliccandoci sopra, si viene portati direttamente alla versione archiviata in Software Heritage.
  • Identificatore unico SWHID (Software Heritage ID): è un hash crittografico del file e uno standard ISO 18670. Permette di identificare in modo univoco qualsiasi pezzo di codice, garantendo la riproducibilità scientifica.
  • codemeta.json e Generatore di CodeMeta: un file che contiene metadati descrittivi associati al codice (autori, affiliazioni, licenza, link a pubblicazioni). Il generatore codemeta.json semplifica la creazione di questo file.
  • Citazione automatica del software: se esiste un codemeta.json (o citation.cff), Software Heritage può generare automaticamente una citazione nel formato BibTeX o altri, facilitando il riconoscimento del lavoro degli sviluppatori e ricercatori. Questo cambia radicalmente il modo di citare il software.
  • Integrazione con piattaforme esistenti: stiamo collaborando con sistemi come HAL (la piattaforma nazionale francese di Open Access), Dagstuhl ed Episcience, dove è possibile importare i metadati del software direttamente da Software Heritage, pre-compilando i formulari e facilitando la dichiarazione delle produzioni software per la valutazione istituzionale. Questo riduce l’onere amministrativo per i ricercatori.

Riguardo all’intelligenza artificiale e al copyright, Software Heritage come si posiziona sull’uso del codice per l’addestramento dei modelli LLM?

Questo è un tema cruciale, emerso con forza a fine 2022. La nostra posizione, dettagliata in uno “statement for code“, si basa su tre principi fondamentali per collaborare con le entità che sviluppano modelli AI:

  1. Modelli fondazionali a licenza aperta: i modelli fondazionali, derivati direttamente dal training, devono essere rilasciati con licenze aperte (almeno “open-weights”), in modo che siano liberamente utilizzabili dall’umanità.
  2. Trasparenza sui dati di training: Tutti i codici usati nel training devono essere chiaramente dichiarati pubblicando la lista dei loro SWHID (Software Heritage ID).
  3. Meccanismi di “opt-out”: Devono essere implementati meccanismi che permettano agli autori di escludere il proprio codice dall’uso per il training.

Abbiamo avuto collaborazioni positive, per esempio con HuggingFace e Service Now per il modello StarCoder 2, che hanno accettato questi principi. Questo ci permette di influenzare le pratiche dell’industria per una maggiore trasparenza e apertura. Stiamo anche sviluppando strumenti per comparare il codice generato dai modelli AI con l’archivio, identificando somiglianze e licenze, per aiutare gli sviluppatori a gestire il debito tecnico e a riutilizzare librerie esistenti piuttosto che rigenerare codice inutile.

Qual è il modello di sostenibilità di Software Heritage e come intendete garantire la sua resilienza nel lungo termine?

La sostenibilità si basa su un modello di finanziamento diversificato, coinvolgendo un’ampia gamma di stakeholder. Abbiamo sponsor provenienti dall’industria (Microsoft, IBM, Huawei, Google), ministeri (Ministero francese della Ricerca e Difesa), università (Pisa, Sant’Anna, Normale), centri di ricerca (CNRS, CEA), e piccole imprese. L’idea è che se un finanziatore dovesse ritirarsi, questo non metta in pericolo l’intera iniziativa.

Dal punto di vista tecnico, il piano prevede una rete di mirror internazionali indipendenti. Il primo mirror in Italia è stato aperto all’ENEA nel dicembre 2023. Altri mirror sono in fase di costruzione in Grecia, Germania e Spagna. Avere copie multiple indipendenti garantisce la resilienza dell’archivio di fronte a eventi imprevisti o politiche di chiusura. Nonostante i costi di gestione siano “microscopici” rispetto ad altre infrastrutture di ricerca come gli acceleratori di particelle o i telescopi, la “tragedia dei beni comuni” ci impone di sensibilizzare tutte le istituzioni che si avvalgono di questo servizio a partecipare finanziariamente e alla governance, condividendo il costo comune.

Guardando al futuro, qual è la sua visione per Software Heritage e quali sono i prossimi passi in tale direzione?

La visione è quella di essere un’infrastruttura comune globale, simile a Internet o al Web. La parte infrastrutturale di base – archiviazione, identificazione, descrizione, citazione e metadati – deve essere standardizzata e mutualizzata per tutti, indipendentemente dalla piattaforma di sviluppo o dal linguaggio. Ogni progetto mantiene la sua autonomia su come sviluppare o rilasciare il software.

Stiamo lavorando per estendere la piattaforma con informazioni su licenze e diritti d’autore (progetto CodeCommons), e per creare un sistema che faciliti l’integrazione per chi non ha piattaforme centralizzate come HAL. Desideriamo coinvolgere il maggior numero possibile di collaboratori esterni e centri di ricerca, per avere un approccio estremamente aperto.
Il messaggio chiave per i ricercatori è semplice: assicurarsi che il proprio software sia archiviato (anche tramite l’archiviazione automatica con webhook) e aggiungere il file codemeta.json. Questo porta vantaggi immediati, come la citabilità e, a medio termine, la visibilità della produzione software per la valutazione.
Confidiamo nel fatto che, con un valido lavoro di fondo, riusciremo a cambiare la maniera di fare scienza, rendendo il software parte integrante e citabile della ricerca.


*Roberto Di Cosmo è professore ordinario di informatica con un vasto interesse nella programmazione funzionale, parallela e distribuita e nella semantica dei linguaggi di programmazione. Ha contribuito significativamente alla promozione del software libero attraverso pubblicazioni e lo sviluppo di software fin dal 1998. Ha fondato IRILL nel 2010, un centro di ricerca dedicato al software libero e open source, e co-creato Software Heritage nel 2015, un’iniziativa con l’UNESCO per archiviare il codice sorgente globale. Attualmente, dirige anche il collegio software nel Comitato Nazionale Francese per la Scienza Aperta.
© Inria / Photo M. Magnin