Indice: bot – scheda – aggiornamenti
Durante una visita al Colosseo con un’amica, ci siamo soffermati ad osservare una riproduzione della Tabula Peutingeriana esposta nella mostra che si articolava al primo piano dell’Anfiteatro. Ci siamo quindi divertiti a cercare tutte le località legate alle rispettive esperienze, finché di una non ci sfuggiva il nome antico; viceversa di un’altra non riuscivamo a ricordare la corrispondenza odierna.
Ricordando altre esperienze similari, ho iniziato a pensare ad un bot Telegram che consentisse una rapida ricerca di un toponimo antico. È nato così “Ancient Atlas bot“, attivabile scrivendo il nome del bot nella chat Telegram (@Ancient_Atlas_bot), oppure aprendo questa pagina: t.me/Ancient_Atlas_bot. Le istruzioni di avvio (“/start”) e i comandi presenti (attivabili digitando “/”) faranno da guida per l’utilizzo di Ancient Atlas.
Bot
Il bot ha costituito un’ottima occasione per studiare API, repositories dati, mapping, programmazione e… WordPress. Conoscevo già il progetto Trismegistos per la collaborazione con il monumentale database EDR, ma ho optato per un’altra soluzione: Pleiades. Si tratta di un fantastico repository di informazioni geografiche storiche messo a disposizione di studiosi, studenti e appassionati di tutto il mondo; i dati, rilasciati con licenza CC-by 3.0, possono essere liberamente utilizzati e condivisi, purché ne vanga indicata l’attribuzione. A cadenze regolari viene reso disponibile un dump di tutti i dati, disponibili sia in .json, sia in .csv.: il primo contiene l’intera struttura del database, il secondo, suddiviso in tre file, solo informazioni specifiche (names, locations, places). In aggiunta è disponibile un servizio API, che consente di interrogare in tempo reale il database. Un esempio è il contatore sottostante (realizzato mediante snippet PHP con programmazione di lettura della struttura JSON), che richiama le API relative allo status: al momento attuale, il database di Pleiades conta
Poiché le API di Pleiades consentono di leggere un valore solo una volta che sia nota l’associazione con il relativo toponimo, non è possibile utilizzarle per una ricerca basata solo su quest’ultimo (al contrario delle API di WikiData, che vedremo successivamente). Primo passo è stato quindi utilizzare il dump dei nomi, per ricavare in maniera speditiva il relativo codice univoco di Pleiades. Il bot consente di trovare più corrispondenze per toponimo ricercato, dopodiché riporta l’arco cronologico relativo, la possibilità di aprire una scheda con più informazioni, la relativa scheda su Pleiades o l’eventuale voce su Wikipedia, la visualizzazione su cartografia OpenStreetMap o Google Maps.
Scheda
Per non gravare troppo su Telegram (che è pur sempre un software di messaggistica), alcune funzioni le ho implementate mediante un apposito rimando web; in ottica di sperimentazione, ho voluto realizzare una pagina WordPress che fosse in grado di recepire l’identificativo passato dal bot e procedere all’elaborazione delle informazioni relative. Per far questo, è prevista in PHP un’apposita supervariabile, $_GET, non utilizzabile in WordPress a causa dell’intercettazione dal framework di sistema; per ovviare a tale inconveniente, occorre intervenire direttamente nel core del CMS, e determinare il nuovo tipo di marcatore:
function add_query_vars_filter($vars){
$vars[] = marcatore;
return $vars;
}
add_filter('query_vars', 'add_query_vars_filter');
Grazie a tale espediente, è possibile elaborare l’identificativo passato dal bot ed estrapolare informazioni aggiuntive via API in formato .json, direttamente dal database, dunque aggiornate in tempo reale. In particolare, la proprietà connectsWith consente di esaminare le relazioni dell’oggetto e consentire un ulteriore approfondimento del toponimo ricercato. La medesima funzione utilizzata per leggere la struttura JSON del sito principale è stata utilizzata ricorsivamente per determinare gli ulteriori toponimi o elementi connessi.
Tramite Leaflet, le coordinate – esplose in latitudine e longitudine con apposita funzione – sono state adoperate per una visualizzazione cartografica con marcatore, così da agevolare l’individuazione del sito; un popup riporta la descrizione che si ritrova anche nella scheda stessa. Tutte le coordinate, invece, sono state estrapolate per popolare una cartografia caricata speditivamente in QGIS, con etichette e differenziazione delle simbologie in base a cronologia (solo per l’Italia: la selezione è avvenuta mediante intersezione con .shp delle province, così da localizzare ogni toponimo a un più ristretto livello territoriale).
L’identificativo Pleiades è una delle proprietà memorizzate in un altro progetto, WikiData. Tale piattaforma fornisce un accesso centralizzato alla gestione di dati strutturati ai progetti Wikimedia tra i quali Wikipedia, Wikivoyage, Wikisource e altri. Un sistema di interrogazione mediante SPARQL consente di costruire query complesse, in grado di ricercare un elemento all’interno di tutte le voci del database. Mediante una prima query in cui si cerca la proprietà Pleiades (P1584), viene individuata la corrispondenza con la relativa voce WikiData; una seconda query, con restituzione in JSON, consente di estrapolare tutte le proprietà e gli elementi del sito cercato, consentendo di ampliare la gamma di informazioni che il bot – e la sua controparte web – sono in grado di fornire, come voce Wikipedia, sito ufficiale, immagini caricate in Commons.
Aggiornamenti
In cantiere:
- Collegamento a galleria su Wikimedia Commons
- Connessione a repository di fonti
- Connessione a altri repository dati