
Essenziale ma spesso dimenticato, il software di ricerca è il motore nascosto della produzione scientifica. Pur contribuendo in modo decisivo alla scoperta e alla riproducibilità dei risultati, rimane in ombra nei criteri di valutazione accademica: riconoscerne il valore significa non solo garantirne la conservazione e la citazione, ma anche rafforzare la scienza aperta e la qualità della ricerca.
Si racconta che negli Stati Uniti, sul finire degli anni ’30, uno sceneggiatore si sedette davanti al produttore della Paramount e consegnasse al famoso regista Ernst Lubitsch 200 pagine bianche, invitandolo a mettere lì il suo già leggendario Lubitsch touch. Una provocazione usata per sottolineare come il lavoro degli sceneggiatori, pur essenziale, restasse sistematicamente nell’ombra nonostante desse corpo alla visione e alle scelte di registi geniali come Lubitsch, appunto.
Un destino simile tocca al software di ricerca, quello cioè pensato e utilizzato per produrre un risultato pubblicato o diffuso in qualche articolo o contributo scientifico. Pur essendo onnipresente nella produzione scientifica, resta spesso invisibile agli occhi della comunità accademica. Questo accade perché viene considerato un mero strumento di supporto. Il codice sviluppato per la ricerca rimane nascosto tra le righe degli articoli, citato solo indirettamente, disperso in repository personali o dimenticato dopo la pubblicazione dei risultati.
Eppure, senza di esso gran parte della scienza moderna semplicemente non sarebbe possibile. Anche nei criteri di valutazione accademica il software resta in ombra: si premiano gli articoli, ma la produzione di codice non viene valorizzata. Eppure, il software non è solo un mezzo per produrre risultati. È un artefatto complesso, frutto della creatività umana, che combina competenze tecniche avanzate e una profonda conoscenza del dominio scientifico di riferimento. Spesso altamente specializzato, rappresenta un prodotto intellettuale a tutti gli effetti, al pari di altri contributi scientifici.
Ma il valore del software non si esaurisce nella sua complessità tecnica: è anche un elemento chiave per garantire la riproducibilità nella scienza aperta. Accanto agli articoli scientifici, che descrivono le scoperte, e agli insiemi di dati, che contengono le informazioni utilizzate o prodotte negli studi, il codice sorgente definisce infatti con precisione il processo con cui questi dati vengono elaborati e analizzati. Senza di esso, replicare esperimenti e verificarne i risultati diventa spesso impossibile, compromettendo uno dei principi fondamentali della scienza aperta.
Se il valore di articoli e dati è ampiamente riconosciuto, per portare anche il software in primo piano occorre agire su più fronti. Da un lato, serve un cambiamento culturale che sensibilizzi la comunità scientifica su come il software sia parte integrante del processo di ricerca. Dall’altro, è fondamentale dotare i ricercatori di strumenti semplici ed efficaci per documentare, citare e valorizzare il codice nei loro lavori, senza aggravare il già complesso processo di pubblicazione scientifica. Infine, è necessario che la comunità accademica si doti di un sistema di valutazione adeguato del software, con metriche ad hoc capaci di misurarne l’impatto e il valore.
Sul piano culturale, qualcosa si sta finalmente muovendo: sempre più istituzioni stanno infatti riconoscendo l’importanza del software di ricerca, anche grazie all’adozione dei principi FAIR (Findable, Accessible, Interoperable, Reusable) per tutti gli oggetti digitali della scienza.
Dal 2016, con la pubblicazione dei FAIR Guiding Principles for scientific data management and stewardship [1], i principi FAIR sono diventati un riferimento essenziale per la gestione dei dati nella scienza aperta, contribuendo alla loro riproducibilità.
I quattro principi, definiti dall’acronimo FAIR, sono:
- Findable (Trovabile) → i dati devono essere facilmente rintracciabili tramite metadati accurati e identificatori persistenti.
- Accessible (Accessibile) → le modalità di accesso devono essere chiaramente specificate, anche quando soggette a restrizioni etiche, legali o contrattuali (FAIR non significa necessariamente aperto).
- Interoperable (Interoperabile) → i dati e i metadati devono poter essere combinati ed elaborati da strumenti diversi, utilizzando formati standard.
- Reusable (Riutilizzabile) → i dati devono essere descritti in modo completo e chiaro, per facilitarne il riuso anche in nuove ricerche.
L’obiettivo non è solo raccogliere, documentare e archiviare i dati, ma garantirne la cura e la conservazione nel tempo, ottimizzando le risorse e favorendo la condivisione della conoscenza. Per questo, nel programma Horizon Europe (2021-2027), il supporto alla Scienza Aperta è stato rafforzato e si raccomanda fortemente l’uso dei principi FAIR nella gestione dei dati.
Sebbene i principi FAIR siano stati inizialmente sviluppati per i dati della ricerca, già nell’articolo del 2016 si sottolineava come tutti gli oggetti digitali collegati all’attività scientifica, incluso il software di ricerca, possano beneficiare della loro adozione. Tutti questi elementi contribuiscono infatti alla riproducibilità e riutilizzabilità dei risultati scientifici.
Affinché il software sia riconosciuto come un vero e proprio prodotto della ricerca, al pari di articoli e dataset, deve poter essere identificato e registrato con identificatori persistenti (PID), in linea con i principi FAIR. Questi sono stati adattati al software di ricerca1 dal gruppo FAIR4RS nell’articolo Introducing the FAIR Principles for Research Software [2]. Tuttavia, la loro applicazione concreta richiede il supporto di infrastrutture dedicate e il coinvolgimento attivo della comunità scientifica.
1Il gruppo di lavoro distingue tra il software di ricerca, cioè quello che comprende "file di codice sorgente, algoritmi, script, flussi di lavoro computazionali ed eseguibili sviluppati durante il processo di ricerca o specificamente per scopi di ricerca", dal software utilizzato nella ricerca (sistemi operativi, librerie, pacchetti, ecc.) ovvero codice che supporta la ricerca ma non creato esplicitamente in un contesto di ricerca o con un chiaro intento di ricerca.
[1] Wilkinson, M., Dumontier, M., Aalbersberg, I. et al. The FAIR Guiding Principles for scientific data management and stewardship. Sci Data 3, 160018 (2016). https://doi.org/10.1038/sdata.2016.18
[2] Barker, M., Chue Hong, N.P., Katz, D.S. et al. Introducing the FAIR Principles for research software. Sci Data 9, 622 (2022). https://doi.org/10.1038/s41597-022-01710
Per quanto riguarda gli strumenti per valorizzare il codice e favorirne la valutazione, l’infrastruttura per rendere questo possibile esiste già ed è operativa. Si tratta di quella messa a disposizione dall’iniziativa Software Heritage (ne avevamo parlato qui) . Ora è necessario compiere il passo decisivo: utilizzarla e integrarla stabilmente nelle pratiche scientifiche.
Software Heritage [1, 2] è un’iniziativa aperta, non profit e multi-stakeholder, lanciata nel 2016 da Inria in collaborazione con l’UNESCO, con l’obiettivo di costruire l’archivio universale di tutto il codice sorgente pubblicamente disponibile. Si tratta della più grande raccolta di codice sorgente del genere mai realizzata. Contiene oggi quasi 23 miliardi di file sorgente unici raccolti da quasi 350 milioni di progetti software.
Oltre a essere una sorta di Arca di Noè [3] per preservare la conoscenza tecnica e scientifica contenuta nel software, Software Heritage rappresenta un punto di accesso unico a una vasta base di conoscenza tecnologica, fondamentale per sostenere la trasformazione digitale e l'innovazione.
Si tratta di un'infrastruttura aperta, concepita per durare nel tempo grazie a una rete di siti mirror, al servizio dell'ecosistema scientifico e tecnologico.
Software Heritage si configura, allo stesso tempo, come
- un catalogo di riferimento, per trovare e consultare tutto il codice sorgente dei progetti software;
- un archivio universale per garantire la conservazione di tutto il codice sorgente;
- un’infrastruttura di ricerca per analizzare e studiare il software archiviato.
Software Heritage rappresenta quindi un'infrastruttura strategica per la ricerca, l’innovazione e la conservazione del sapere digitale.
[1] https://www.softwareheritage.org/
[2] https://archive.softwareheritage.org/?guided_tour=0&guided_tour_next=htt...
[3] Chiara Bodei. Software Heritage: l'arca di Noè digitale Scienza in rete, maggio 2024
Per garantire che il codice sorgente sia adeguatamente archiviato, referenziato, descritto e citato, è fondamentale costruire un corpus stabile e duraturo di conoscenze scientifiche. Software Heritage (softwareheritage.org) offre un’infrastruttura unica per questo scopo, offrendo:
- Archiviazione permanente del codice sorgente: Software Heritage accoglie il raccoglie codice da repository pubblici, piattaforme di sviluppo e siti web, e accoglie il software garantendone la conservazione nel tempo. I programmatori stessi possono contribuire direttamente, depositando il proprio codice nell’archivio.
- Indicizzazione e accessibilità: Ogni artefatto software archiviato è associato a un identificatore unico e persistente (SWHID). Questi identificatori sono progettati per garantire integrità e tracciabilità, basandosi su hash crittograficamente forti e alberi di Merkle generalizzati, come nei più diffusi sistemi di controllo di versione distribuiti (git, mercurial). Un file di metadati aiuterà a indicizzare il codice, migliorandone la reperibilità e fornendo un modo semplice per collegarlo ai risultati di ricerca correlati.
- Permetterne la citazione scientifica: Grazie al pacchetto biblatex-software, gli utenti di BibLaTeX possono includere correttamente il software nelle bibliografie, con voci specifiche per descrivere software, versioni, moduli e frammenti di codice.
Software Heritage fornisce quindi strumenti concreti per garantire che il software di ricerca sia non solo conservato, ma anche facilmente accessibile e citabile, contribuendo alla corretta documentazione e valorizzazione del codice nella comunità scientifica.
Come procedere?
- Per archiviare e citare il codice: segui le istruzioni qui https://www.softwareheritage.org/how-to-archive-reference-code/
- Per generare metadati standard (Codemeta): usa il generatore https://codemeta.github.io/codemeta-generator/
Solo affrontando questi nodi - culturali, tecnici e valutativi - potremo dare al software di ricerca il riconoscimento che merita. Senza questa consapevolezza, la scienza rischia di perdere un tassello fondamentale per la sua evoluzione, compromettendo anche la possibilità di costruire una conoscenza davvero aperta, riproducibile e duratura.
Valorizzare il software non è quindi solo un gesto simbolico verso l’Open Science, ma un’opportunità concreta per migliorarne l’integrazione nelle pratiche accademiche e rafforzare il suo impatto sulla produzione scientifica, anche a livello dei singoli enti di ricerca.