Insubrica Historica non si occupa solo di ricerca storica qualitativa, usando fonti primarie e secondarie. Una parte considerevole della nostra attività è la ricerca e lo sviluppo nel campo della digitalizzazione dell’informazione. Lavoriamo molto con Python e MicrosoftBI. Siamo specializzati nell’acquisizione automatica d’informazioni e nella creazione di dashboard per la visualizzazione di dati.
Vi presentiamo due progetti digitali realizzati alla fine del 2024 e inizio2025. Dapprima il progetto Gutenberg, il quale riesce in maniera automatica e intuitiva a raccogliere una moltitudine di citazioni bibliografiche su qualsiasi tema, che sia economico, storico oppure ancora scientifico. La seconda parte è dedicata al progetto Henri, il quale gestisce tramite Zotpress la moltitudine di citazioni.
Progetto Gutenberg di IH. Come raccogliere automaticamente le citazioni presenti in Google Scholar e Google Books

Questo progetto integra i dati di Google Books e Google Scholar in un unico file CSV scaricabile tramite l’interfaccia intuitiva dell’applicazione Streamlit. Gli utenti possono inserire una richiesta, impostare limiti di recupero e memorizzare i risultati in un CSV organizzato già con campi predefiniti, garantendo un facile accesso ai dati accademici e bibliografici.

I dati .csv possono poi essere importati manualmente in un account Zotero Online. Utilizzando l’App ZotPress, l’intero contenuto è accessibile online utilizzando l’URL henri.insubricahistorica.ch.
Progetto Python di recupero dati
Per poter permettere di integrare in maniera automatica l’informazione delle citazioni presenti su Google Books e Google Scholar è stato necessario utilizzare delle API. Per Google Books (da google cloud) e per Google Scholar (SerpAPI). Grazie a queste due API è stato possibile realizzare la recuperazione dei dati.
Per il frontend ovvero per l’interazione con l’utente, con campi per le query, i limiti dei risultati, le chiavi API e i file di output abbiamo invece usato Streamlit.
Partendo dalla necessità di poter fare più ricerche per un dato soggetto, abbiamo anche organizzato la gestione dei CSV. La libreria CSV è stata implementata usando Python, cosa che ha permesso un’efficiente archiviazione e manipolazione dei dati.
Approccio al problema
Innanzitutto abbiamo dovuto organizzare la recuperazione dei dati presenti su Google Scholar e Google Books. Grazie alla creazione di funzioni modulari per le API di Google Books e Google Scholar è stato possibile raccogliere questi dati. Ogni funzione analizzava i campi essenziali (ad esempio, titolo, autore, anno di pubblicazione, etc).
Sono stati implementati in maniera automatica la pulizia dei dati: Codifica e standardizzazione dei campi di testo per gestire i problemi di codifica (come i caratteri di ellissi). Inoltre abbiamo anche implementato la prevenzione delle duplicazioni: Implementati controlli per i titoli unici prima del salvataggio nel CSV.
L’applicazione Streamlit ha permesso di realizzare una semplice ma funzionale UI guidando gli utenti in maniera intuitiva nella configurazione della chiave API, nell’inserimento delle query e nella gestione dei file che vengono automaticamente creati, una volta che vengono inseriti gli specifici parametri di ricerca.
Sfide incontrate e soluzioni
Abbiamo naturalmente anche risolto qualche problema. Nell’ambito della programmazione, usando Unicode e pulendo/ricodificando i campi di testo, soprattutto per gli snippet contenenti caratteri speciali. Per la gestione dei duplicati è stata aggiunta una logica per evitare voci ridondanti, tenendo traccia dei titoli già salvati nel CSV. Un ulteriore problema riscontrato: Nei file csv/xls l’URL proveniente da Google Scholar, se cliccato, presenta il messaggio di errore: “I nostri sistemi hanno rilevato un traffico insolito dalla vostra rete di computer. Si prega di riprovare la richiesta più tardi”. La soluzione – per il momento – è copiare l’URL e aprirlo su un altro PC o smartphone.
Risultato: gutenberg.insubricahistorica.ch
Abbiamo progettato un’interfaccia grafica molto intuitiva e semplice. L’applicazione è per il momento distribuita sul seguente domain: gutenberg.insubricahistorica.ch. I dati possono essere facilmente scaricati in csv, trasformati in Excel in una tabella e analizzati e puliti per l’importazione in Zotero.
Progetto Henri di IH. Come gestire in maniera online una bibliografia
Il sito WordPress di Henri.Minimarisk.com è stato sviluppato utilizzando il tema a blocchi Raft per sfruttare le capacità di un design flessibile e moderno. Per la funzione bibliografia, il plugin Zotpress è stato integrato con le chiavi API di Zotero per recuperare e visualizzare i risultati della ricerca bibliografica. Abbiamo personalizzato l’aspetto e la funzionalità della barra di ricerca di Zotpress con CSS e JavaScript per garantire un’esperienza utente pulita e reattiva.

Al momento abbiamo le seguenti limitazioni:
La prima versione includeva opzioni di “ricerca predefinite” come l’anno o un determinato argomento. JavaScript è stato utilizzato per rendere cliccabili i termini di ricerca predefiniti e per riempire automaticamente la barra di ricerca quando vengono cliccati. Tuttavia, Zotpress ha il problema che i tag su Zotero Online non possono essere interpretati. Per il momento abbiamo abbandonato questa funzione.
Poche voci casuali vengono duplicate da Zotpress, nonostante siano disponibili solo una volta in Zotero. e la regolazione dell’allineamento e degli stili per migliorare l’interfaccia.
Le sfide principali sono state l’allineamento degli elementi personalizzati dell’interfaccia utente all’interno del layout a blocchi e la gestione dei problemi di spazi bianchi ridondanti, entrambi risolti grazie a modifiche mirate dei CSS e dei codici brevi. I compiti rimanenti prevedono ulteriori test e piccoli perfezionamenti dell’interfaccia utente in base al feedback degli utenti.
Schermata di come appare henri.minimarisk.com. A sinistra l’interfaccia grafica della pagina principale. A destra, i risultati della ricerca di un determinato elemento. I risultati sono elencati in ordine alfabetico. Abbiamo 10 risultati per pagina.