ArcheoBOT – Telegram per l’archeologia e il patrimonio culturale

Indice: bot guidaaggiornamentisviluppi – privacy

In occasione della XIII edizione di ArcheoFOSS, con Paolo Rosati di Una_Quantum Inc abbiamo presentato il 21 febbraio il prototipo di un nuovo bot per Telegram, ArcheoBot. Si tratta di un esperimento che vede le comuni esperienze digitali convergere per offrire uno strumento rapido, potente, facile da utilizzare, al servizio dell’indagine archeologica (e altro). Telegram, grazie alla sua diffusione e alla possibilità di creare bot con diversi linguaggi di programmazione, offre una flessibilità e una comodità di interazione ottenibile con una app solo a scapito di una compilazione specifica e un’installazione ad hoc. È possibile utilizzarlo, anziché per consultare banche dati come nel caso dei miei precedenti bot [DBCAR, Fasti Romani], per inserire informazioni consequenziali e strutturate? È possibile sfruttarne comodità e potenzialità per mettere a punto uno strumento a supporto di attività specifiche che richiedono velocità e puntualità di annotazione e documentazione, come uno scavo di emergenza o una ricognizione, memorizzando informazioni che possano poi essere rielaborate in un secondo momento con più calma e agio? Cosa succede se un’app di messaggistica e una plugin di QGis iniziano a comunicare tra loro?

Semplice. ArcheoBot: memorizzare siti e UUSS, con informazioni stratigrafiche e di dettaglio, con possibilità di aggiungere foto, note audio, coordinate…e poi scaricarle direttamente in QGis tramite il sempre più potente pyArchInit, con il quale si può anche elaborare un matrix in tempo reale. Questo (e altro) è quanto ArcheoBot consentirà di fare, utilizzando semplicemente uno smartphone o un tablet così da garantire mobilità e facilità di spostamento, e un qualsiasi computer con QGis per visualizzazioni ed elaborazioni.

Nella filosofia open che caratterizza Telegram nella sua versione client (tramite le API), pyArchInit e QGis nella loro interezza e noi come visione e modalità di azione, al termine della programmazione beta del bot tutto il codice sarà reso disponibile su GitLab; al momento lo sviluppo e l’ottimizzazione sono continui, per cui il codice subisce cambiamenti notevoli con elevata frequenza. Nel mentre, essendo il bot già presente su Telegram, ogni feedback o suggerimento è più che gradito (scrivi via Telegram a @saveriogm).

Segui gli aggiornamenti per conoscere lo stato di sviluppo del bot.

Guida

ArcheoBot presenta una lista di comandi cui si può accedere digitando “/” oppure tappando il tasto con il medesimo simbolo, a destra nell’area di inserimento testo. I comandi disponibili al momento dell’ultimo aggiornamento sono:

  • /sito: consente l’immissione delle informazioni relative ad un sito, chiedendone nome, descrizione e coordinate geografiche. N.B.: finché non si usa il comando /us o non si inserisce un nuovo sito anteponendo al nome il punto esclamativo, rimarrà attivo l’ultimo sito inserito: pertanto tutte le informazioni inserite o le US create faranno riferimento ad esso;
  • /us: consente l’inserimento speditivo di informazioni circa l’unità stratigrafica di interesse; viene chiesto il numero, la tipologia (es.: taglio), una rapida descrizione, i rapporti stratigrafici (nell’ordine: copre, coperto da, taglia, tagliato da, riempe, riempito da, si appoggia a, gli si appoggia, si lega a, uguale a), una fotografia (funzionalità in via di sviluppo), un eventuale file audio per note vocali (funzionalità in via di sviluppo), e infine le coordinate geografiche. N.B.: finché non si usa il comando /sito o non si immette una nuova scheda anteponendo al numero il punto esclamativo, rimarrà attiva l’ultima voce dell’ultima scheda inserita: pertanto tutte le informazioni inserite faranno riferimento a tale voce;
  • /registro: visualizza l’elenco di tutte le UUSS memorizzate via bot, in ordine cronologico di inserimento, con indicazione del sito e tipologia
  • /lavori: visualizza l’elenco di tutti i siti memorizzati via bot, in ordine cronologico di inserimento, con indicazione delle coordinate e descrizione;
  • /info: per visualizzare le informazioni relative al bot e accedere a questa pagina direttamente da link.

Aggiornamenti

  • 08 marzo 2019: implementazione della geolocalizzazione nella scheda sito; ultimazione connessione pyArchInit – server via PostgreSQL
  • 06 marzo 2019: attivazione delle funzionalità di geolocalizzazione e testing per attività di ricognizione
  • 27 febbraio 2019: ottimizzazione del codice sinora scritto (471 linee) per razionalizzare e velocizzare processi di lettura e scrittura nel database
  • 20 febbraio 2019, notte: primo prototipo funzionante di ArcheoBot, per i test durante la presentazione del giorno dopo; durante i 15 minuti di quest’ultima, mentre Paolo esponeva il progetto, il bot verrà utilizzato dal pubblico ben 84 volte (database poi svuotato)
  • 19 febbraio 2019: prime 300 linee di codice di ArcheoBot!
  • 15 febbraio 2019: si inizia a programmare ArcheoBot in php

Sviluppi

Con Paolo siamo ormai in braistorming permanente riguardo a tutte le possibilità che Telegram, PHP e pyArchInit offrono operando lato server. Alla data dell’ultimo aggiornamento, questi gli sviluppo previsti:

    • connessione al database server pyArchInit per visualizzazione diretta in QGis
    • realizzazione di schede sito/uuss in formato odt/pdf da inviare via mail
    • creazione del portale di gestione delle informazioni inserite via bot relative al proprio ID Telegram
    • comando /eliminatutto per eliminare i propri inserimenti dal server bot (dopo averli salvati in locale, si spera!)
    • comando /nota per inserimento speditivo in caso di ricognizione
    • comando /segnala per inserire o inviare segnalazioni circa situazioni di emergenze relative al patrimonio culturale

Privacy

Una problematica in cui ci siamo imbattuti nello sviluppo del bot riguarda la privacy dei dati e degli utenti. Per poter memorizzare correttamente i dati, è necessario registrare l’utente e la scelta che effettua; questo avviene utilizzando l’ID univoco cui ogni utente di Telegram viene associato, e viene criptato ulteriormente da un’apposita funzione del codice php. Il numero di utilizzi del bot è legato ai comandi /sito e /us, sciolto dall’ID – quindi assolutamente anonimo – e legato solo a orario e giorno di utilizzo, al fine di comprendere se vi sono eventuali picchi di utilizzo e ottimizzare il carico di elaborazione. Non viene quindi memorizzato nome, cognome, numero di telefono o altro, solo l’ID numerico, criptato, associato alle informazioni di stio e US. Essendo un bot utilizzato da un utente e destinato a inviare informazioni a sé stesso, non interagisce con gruppi; le informazioni inviate vengono comunque criptate: quindi, anche se memorizzate sul server di Telegram già criptate di per sé (per cui la conversazione con il bot è consultabile dal proprio smartphone, da computer via Telegram Web, Desktop o da qualunque dispositivo in cui sia possibile installare l’app e accedere con le proprie credenziali) in forma non strutturata (come se fosse una normale chat), e invece strutturate sul server cui si appoggia il bot, le informazioni – essendo criptate prima dell’invio – però non sono leggibili. Rimangono comunque memorizzate sul server Telegram, per il quale però vigono le normative enunciate nel codice di condotta (https://telegram.org/privacy) che fanno di questo programma di messaggistica un unicum nel panorama di riferimento (https://telegram.org/faq/it#d-qual-il-vostro-pensiero-riguardo-la-privacy-su-internet e https://telegram.org/faq/it#d-per-quello-che-riguarda-il-gdpr). Dal server cui si appoggia il bot si possono eliminare completamente le informazioni in qualsiasi momento, tramite il portale di gestione o il comando /eliminatutto – funzionalità che sono in via di sviluppo. Essendo criptate, è per noi impossibile risalire a chi abbia scritto cosa, per cui contattarci per eliminare informazioni purtroppo è inutile (per feedback e suggerimenti invece assolutamente no! 🙂 ). Discorso diverso per fotografie e note audio, per cui è allo studio un processo per trattarli come stringhe di testo, e quindi criptarle alla stregua di tutti gli altri dati. L’unica informazione sensibile al momento rilevata è la posizione, quando vengono aggiunte le coordinate circa il sito, UUSS o segnalazioni: non viene inviata automaticamente, ma compare una richiesta all’utente tramite la pressione di un apposito pulsante, esattamente come quando si invia la propria posizione ad altri utenti via chat. Le coordinate inviate, essendo alfanumeriche (nel formato decimale, ad es. 41.89025, 12.49273), sono criptate esattamente come le altre.

Ovviamente, essendo tutto legato all’ID di Telegram elaborato in riferimento al numero di telefono, cedere il proprio smartphone a un’altra persona, o utilizzare un device in condivisione (ad esempio un tablet adoperato da più individui), comporta l’accessibilità ai dati memorizzati mediante il profilo presente sul dispositivo stesso. In caso di utilizzo multiplo, buona prassi è scrivere il nome del compilatore all’interno della voce ‘Descrizione’, cosicché al gruppo di lavoro sia chiaro chi inserisce cosa.

L’utilizzo del bot comporta la conoscenza e l’accettazione da parte dell’utilizzatore delle sopra indicate condizioni e modalità di utilizzo, nell’ottica di un prototipo software così com’è, senza alcuna garanzia, per cui viene declinata ogni responsabilità in merito.

Indice:bot guidaaggiornamentisviluppi – privacy