Stefano Costa

There's more than potsherds out here

Faccio l’archeologo e vivo a Genova

Categoria: Archaeology

  • Qual è la colonna sonora di un gasometro?

    Non è facile cominciare a raccontare questa storia, quindi comincio da dove mi viene in mente. Avete presente un gasometro? Avete mai visto un gasometro dal vivo o in foto, in video, in televisione? Fino ad alcuni anni fa per me era una parola un po’ strana eppure è diventato uno dei luoghi con cui ho a che fare più spesso nella mia vita quotidiana. A Ventimiglia, dentro un’area archeologica romana abbastanza famosa e importante, ci sono due gasometri. Alcuni anni fa ho iniziato a occuparmi di questi due gasometri e di tutto quello che ci sta intorno che si chiama Officina del Gas è un impianto abbastanza grande, di 12.000 m² che dal 1906 al 1993 ha funzionato per dare il gas alla città.

    Foto aerea di un'area archeologica con resti di edifici romani e di due gasometri metallici. Il terreno è un grande prato verde intenso. Sulla sinistra passa una strada con auto e oltre la strada si vede la prosecuzione dell'area archeologica. Ai margini si vedono i tetti in tegole di costruzioni moderne.

    Prima di iniziare a lavorare veramente alla realizzazione del progetto, con alcune persone molto preparate ho iniziato a studiare la storia di questo luogo e a farmi raccontare dalle persone che ci vivono accanto che cosa rappresenta per loro.

    Ma un giorno ho anche condiviso alcune immagini di questi gasometri e di altri gasometri, tra cui quello di Corso Farini a Torino, ed è successo quello che succede sul fediverso, cioè qualcuno ha commentato lanciando un ponte verso un altro mondo diverso, il mondo musicale.

    Lo scheletro metallico di un gasometro ripreso guardando verso l'alto, la foto non è in bianco e nero ma il cielo grigio chiaro sullo sfondo la rende quasi tale. La struttura è una serie di travi orizzontali, verticali e diagonali disposta a formare un grande cilindro vuoto.

    Sembra quasi scontato ma ci sono alcuni generi specifici di musica che sembrano avere un legame profondo con l’immagine e l’essenza stessa di un gasometro e di un’officina del gas. Uno di questi generi è quello che possiamo etichettare come rock industriale, industrial rock, un genere che è molto diffuso soprattutto nel Regno Unito e in Germania. Un altro genere completamente diverso che ha un legame profondo con un gasometro con un impianto industriale è sicuramente la musica elettronica techno e techno industrial. Allora per chiudere temporaneamente il cerchio vediamo alcuni album e gruppi di artisti che hanno realizzato di recente o anche meno di recente una serie di opere musicali legate al gasometro. Non c’è quasi nulla che sia frutto di una mia ricerca: sono tutti suggerimenti che ho avuto sia dal fediverso sia da alcuni colleghi e colleghe che hanno condiviso con me questo percorso ed è interessante vedere che in certi casi addirittura il gasometro compare sulla copertina di un disco.

    Ovviamente questa abbuffata musicale molto variegata mi ha fatto pensare che il gasometro, ora che ha smesso di funzionare, rimane un buon posto dove esplorare questa connessione musicale e quindi ho cominciato a lavorare per rendere possibile un ritorno di suoni e musica sotto i gasometri stessi.

    Gli album

    Questa la selezione sul lato rock

    Sul versante techno, ho queste tracce:

    • The bells di Jeff Mills
    • Orbit degli Underground Resistance (sempre con Jeff Mills)

    E per finire l’incredibile performance di Jeff Mills, Jean-Phi Dary and Prabhu Edouard dentro il sito archeologico di Delos, Tomorrow comes the harvest. La metto qui perché chiude il cerchio in modo mirabile riportando all’unità l’archeologia classica, la musica elettronica e l’archeologia industriale da cui sono partito.

  • IOSACal 0.7

    IOSACal 0.7 was released yesterday. Here is a quick summary of what’s new.

    One of the standard plots rendered in the latest IOSACal version. It looks exactly as before.

    This long cycle was mostly about documentation improvements and some maintenance tasks, the boring but essential work that keeps the project going.

    Version 0.7 is already available in PyPI and conda-forge. There is an updated version record at Zenodo.

    All changes were contributed by Stefano Costa.

    • Documentation improvements, including a new short how-to about running IOSACal in Google Colab and a tutorial for loading radiocarbon dates from a spreadsheet or CSV file
    • add a dedicated page with list of publications citing IOSACal (there’s quite a few)
    • update dependencies to current versions, in particular NumPy
    • align Python versions used as CI targets with current versions supported by Numpy (3.11-3.14)
    • add a Forgejo action for running tests
    • Update Code of Conduct to Contributor Covenant 2.1
    • Replace deprecated pkg_resources with importlib.resources
    • switch entirely to pyproject.toml for package metadata

    If you’re using IOSACal in your work, it’s recommended to update to the latest version.

    Development is active at the Codeberg repository, if you feel like contributing some improvements please check out the open issues or open a new one.

    Reazioni nel fediverso
  • Research papers and case studies using iosacal

    Research papers and case studies using iosacal

    I have updated the documentation of iosacal with a new page that lists all research papers and case studies where the software gets a mention for being used.

    A collage of figures from the papers using iosacal

    The list is at https://iosacal.readthedocs.io/en/latest/literature.html and it’s longer than I thought, with 6 papers ranging from Norway to Antarctica, from the Last Glacial Maximum to the European Middle Ages.

    It’s humbling to see this small piece of software find its way in so many research projects and I’m learning a lot by studying these publications.

    Some authors contributed to iosacal with new features and bug fixes, and that is the most accurate metric of a healthy project that I can think of.

    I’m going to add more useful content to the documentation as the main focus of the 0.7 release. In the meantime, you can continue using iosacal 0.6 in your research projects.

  • Gli atti del workshop Archeofoss 2022 sono stati pubblicati

    Gli atti del workshop Archeofoss 2022 sono stati pubblicati in open access su Archeologia e Calcolatori. Li trovate qui http://www.archcalc.cnr.it/journal/idyear.php?IDyear=2023-07-26 come numero 34.1 della rivista.

    Ho curato insieme a Julian Bogdani l’edizione di questo volume ed è quindi motivo di soddisfazione, anche per i tempi rapidi con cui siamo arrivati alla pubblicazione grazie al lavoro collettivo degli autori e autrici, di chi ha fatto il referaggio, della redazione e della casa editrice.

    Rimane una mancanza in questo volume rispetto alla ricchezza dei due giorni di incontro, delle sette sessioni tematiche, delle discussioni guidate da chi ha moderato le sessioni, ibride eppure vivacissime. La mancanza in parte è fisiologica ma in parte deriva da un certo numero di autrici e autori che non hanno presentato il proprio contributo per la pubblicazione. Ad esempio, nella sessione sui dati stratigrafici che ho moderato con Emanuel Demetrescu erano stati presentati 7 interventi ma solo 2 sono confluiti come paper nel volume.

    Nei prossimi anni dovremo fare di più per fare in modo che gli atti raccolgano ancora più fedelmente il convegno.

    Ci ritroveremo con la comunità Archeofoss a Torino nel mese di dicembre 2023.

  • Using Harris Matrix Data Package with the stratigraphr package

    I am working on the Harris Matrix Data Package specification with the aim of decoupling it from my own “hmdp” tool. An important step towards the adoption of a data format is to have more software implementations. With this in mind, I present a procedure to import, analyze and plot a Harris Matrix data package in R, with the experimental stratigraphr library maintained by Joe Roe.

    stratigraphr is a tidy framework for working with archaeological stratigraphy and chronology in R. It includes tools for reading, analysing, and visualising stratigraphies (Harris matrices) and sequences as directed graphs

    https://stratigraphr.joeroe.io/

    Let’s go!

    Installing the needed libraries

    Apart from the common tidyverse libraries, we need to install the stratigraphr and frictionless packages.

    Please follow the installation instructions on their respective websites:

    Loading packages

    library(stratigraphr)
    library("ggraph")
    library(frictionless)
    library(purrr)
    library(tidyr)
    library(dplyr)

    Loading datasets

    We load a Harris Matrix Data Package describing figure 12 from E.C. Harris’s manual Principles of archaeological stratigraphy, as modified by T.S. Dye. Please note that we are loading a package straight from a URL, and this could be an institutional repository like Zenodo or OSF.

    fig12 <- frictionless::read_package("https://codeberg.org/steko/harris-matrix-data-package/raw/branch/main/fig12/datapackage.json")
    contexts <- frictionless::read_resource(fig12, "contexts")
    observations <- frictionless::read_resource(fig12, "observations")

    Converting Harris Matrix Data Package to the stratigraphr format

    Now the observations tibble contains our initial data that must be converted to the stratigraphr native format. We modify it in place.

    observations <- observations %>% pivot_wider(names_from = url, values_from = older, values_fn = list)
    observations <- rename(observations, context = younger)
    observations <- rename(observations, below = `NA`)

    Warning! The names_from = url parameter is a bit of a hack, and only works because the values in that column are all NULL.

    The first approach is to use the same code from the stratigraphr documentation, but it returns an error. Directly loading the data in stratigraphr only works if all contexts exist in the context column of the observations table (the following code chunk is not going to work, shown here for demonstration):

    h12_graph <- stratigraph(observations, "context", "below", "below")
    ggraph(h12_graph, layout = "sugiyama") +
      geom_edge_elbow() +
      geom_node_label(aes(label = context), label.r = unit(0, "mm")) +
      theme_graph()

    It seems like the context column doesn’t actually contain all contexts, which makes sense because there is no duplication of relationships in the Harris Matrix Data Package format ‒ it’s a tidy format! We can easily work around this by loading the full contexts table.

    edges <- stratigraphr::strat_connect(observations[["context"]], observations[["below"]], "below")
    str(edges)
    'data.frame':   26 obs. of  2 variables:
     $ to  : chr  "2" "11" "12" "13" ...
     $ from: chr  "1" "1" "1" "1" ...
    h12_graph <- tidygraph::tbl_graph(nodes = contexts, edges = edges, node_key = "label", directed = TRUE)

    Ready to plot!

    So far so good. Let’s try plotting the Harris Matrix.

    ggraph(h12_graph, layout = "sugiyama") +
      geom_edge_elbow() +
      geom_node_label(aes(label = label), label.r = unit(0, "mm")) +
      theme_graph()
    A Harris Matrix visualization of archaeological stratigraphy. It's a graph of nodes labeled with numbers, connected by edges drawn as orthogonal lines
    A Harris Matrix visualization of archaeological stratigraphy, data from figure 12 from E.C. Harris’s manual Principles of archaeological stratigraphy, as modified by T.S. Dye.

    It works perfectly!

    We still need to include once-whole contexts in the picture, from the inferences table, but apparently this is not yet supported by stratigraphr either.

    Summary: the quick way to analyze and plot archaeological stratigraphy data in R

    In short, the equivalent to the stratigraphr vignette with Harris Matrix Data Package is:

    harris12 <- frictionless::read_package(file="https://codeberg.org/steko/harris-matrix-data-package/raw/branch/main/fig12/datapackage.json")
    contexts <- frictionless::read_resource(harris12, "contexts")
    observations <- frictionless::read_resource(harris12, "observations")
    observations <- observations %>% pivot_wider(names_from = url, values_from = older, values_fn = list) %>% rename(context = younger) %>% rename(below = `NA`)
    edges <- stratigraphr::strat_connect(observations[["context"]], observations[["below"]], "below")
    h12_graph <- tidygraph::tbl_graph(nodes = contexts, edges = edges, node_key = "label", directed = TRUE)
    ggraph(h12_graph, layout = "sugiyama") +
      geom_edge_elbow() +
      geom_node_label(aes(label = label), label.r = unit(0, "mm")) +
      theme_graph()
    A Harris Matrix visualization of archaeological stratigraphy. It's a graph of nodes labeled with numbers, connected by edges drawn as orthogonal lines
    A Harris Matrix visualization of archaeological stratigraphy, data from figure 12 from E.C. Harris’s manual Principles of archaeological stratigraphy, as modified by T.S. Dye.

    It’s slightly more verbose than the original stratigraphr, and it could certainly be improved, but it’s a good way to get started with archaeological stratigraphy data in R.

  • Harris Matrix Data Package: version 2022 of the hmdp tool with new features for the creation of stratigraphy data packages

    A few weeks ago I presented a new version of the hmdp tool at the ARCHEOFOSS conference in Rome. You can find the archived presentation on Zenodo.

    Harris Matrix Data Package is a proposal for a standardised digital format of archaeological stratigraphy datasets in CSV format, following the table schema developed by Thomas S. Dye for the hm Lisp package, augmented with a metadata descriptor (datapackage.json) that enables consistency checks and streamlined data access with the Frictionless Data tools and programming libraries. In the standard, each dataset consists of various CSV tables and a metadata descriptor, forming a data package. I proposed this standard in 2019 at a previous ARCHEOFOSS conference based on a 2015 work by Dye and Buck .

    Based on this proposal, hmdp is a command line program for working with archaeological stratigraphy data in the Harris Matrix Data Package format.

    This new version adds an “init” command, that will create an empty data package with the correct metadata. You can find the archived source code of hmdp version 2022.10.16 on Zenodo, too.

    The hmdp init command works both interactively and with explicit command line parameters, and it is centered around the idea that in the Harris Matrix Data Package:

    • each Harris Matrix is a data package
    • there is 1 data descriptor
    • there are from 2 to 7 CSV tables
    • each CSV table is a resource

    The two resources that MUST be present are:

    • contexts
    • observations

    Most often, excavation data will make use of three other resources:

    • inferences
    • periods
    • phases

    Only in case there are radiocarbon dates or other absolute chronology available the two resources should be used:

    • events
    • event-order

    With the above outline, default presets are defined, and choosing a preset will create the corresponding CSV files (resources). The CSV files are created only with the standard column headers, data must be filled by the user.

    The current released version of hmdp init can create a Harris Matrix Data Package from scratch, e.g. in a new empty directory. Support for recognizing existing CSV files and adding the metadata descriptor is in progress.

    The project home page is at https://www.iosa.it/software/harris-matrix/ and the development repository is on Codeberg at https://codeberg.org/steko/harris-matrix-data-package

    References

    {12096:TZPPQB42},{12096:G2QPMZQT} apa default 0 3622

  • An updated IOSA website

    Today marks the 18th anniversary of IOSA, Internet and Open Source in Archaeology, the project/working group that I got started with Giovanni Luca Pesce in 2004. Luca Bianconi would join a few years later and give a substantial contribution to the development of the oldest active software project under the IOSA umbrella, Total Open Station.

    It seems an appropriate time to announce that the iosa.it website is now available with a revamped look, and has become the single container for all content previously available in separate websites, such as the Quantitative Archaeology Wiki.

    There will be no substantial improvements to the website, but I consider it a “living archive” so I’m going to add more content as I find it and have the time to organize it properly.

    Please find it at https://www.iosa.it/ as usual, and browse like it’s 2004 again.

  • Peer Community in Archaeology, una peer review migliore per tutti

    Qualche giorno fa ho completato la mia prima peer review per Peer Community in Archaeology. Faccio peer review (o referaggio, come molti dicono in anglo-italico) da una decina d’anni. Per diversi anni sono stato editor del Journal of Open Archaeology Data e ho gestito il processo di peer review, che può essere anche molto estenuante e sempre, rigorosamente, gratuito.

    Quando ho scoperto PCI Archaeology mi è parsa subito una iniziativa con grande potenzialità. La open peer review non è una novità, ma con PCI viene messo a sistema l’utilizzo sistematico dei preprint, che sono pressoché sconosciuti tra gli archeologi e ancora più tra gli archeologi italiani. Tutto il progetto Peer Community in conta al momento 11 comunità specializzate in discipline varie.

    PCI Archaeology è attivo dal 2019, ha un cuore francese, è sostenuto dal CNRS e da molte università, ma anche dal Max Planck Institute, se avete bisogno di farvi convincere dal prestigio. C’è già una lista importante di riviste che ha aderito al progetto, tra cui Quaternary, PLOS One, Internet Archaeology, Open Quaternary e ovviamente Journal of Open Archaeology Data. Tra gli 80 recommenders ci sono diversi italiani, con una maggioranza sul versante preistorico e scientifico. Chi fa parte del comitato editoriale di una rivista dovrebbe dedicare un po’ di tempo a capire come funziona PCI, la via più semplice è candidarsi come reviewer e sperimentare di persona il funzionamento.

    Perché la peer review aperta di PCI Archaeology è migliore per tutti?

    Per gli autori, consente di far circolare la propria ricerca appena pronta per l’invio a una rivista e di sottoporla a un processo trasparente. Il preprint deve essere caricato su un server esterno affidabile, come OSF Preprints o Zenodo, perché la review ha una sua autonomia editoriale. È possibile per i reviewer rimanere anonimi ma nella maggior parte dei casi ci sarà un nome affiancato alla review che riceviamo. Il ruolo del “recommender” è abbastanza originale ed è un po’ come avere un editor su misura per ciascun articolo, che può anche essere suggerito tra quelli attivi al momento (oggi sono 80). Quando la review finisce, il preprint diventa una porzione di un “oggetto editoriale” più esteso che collega le review, la recommendation finale (che può anche essere negativa!) e le risposte degli autori alle review. Tutto è pubblico e pubblicato, archiviato e citabile, e il preprint può a questo punto essere inviato a una rivista tradizionale oppure anche citato così com’è, perché di fatto ha tutte le caratteristiche di un articolo completo: identificativo permanente, archiviazione a lungo termine, peer review.

    Per i reviewer, anzitutto la trasparenza incoraggia a svolgere con maggiore attenzione la revisione, perché tutti potranno leggere i nostri commenti ‒ anche se scegliessimo di rimanere anonimi quella review è comunque opera nostra. Ma l’aspetto più incredibile è la possibilità di leggere gli altri reviewer! L’articolo che ho rivisto ha avuto ben 4 reviewer, è stato incoraggiante vedere che diversi punti delle nostre review erano molto simili ed è ancor più stimolante invece capire quali aspetti mi erano sfuggiti, in che modo posso migliorare la mia comprensione di un articolo e la mia attività futura di ricerca e pubblicazione.

    Per i lettori, credo che una diffusione dei preprint in archeologia possa solo aiutare a far crescere la ricerca, e rendere più brillante la ricerca di buona qualità. Ovviamente i preprint sono una forma di open access, quindi tra i vantaggi c’è anche quello di scansare costosi abbonamenti che ormai nemmeno più le biblioteche specializzate riescono a mantenere. Leggere in dettaglio i commenti fatti da altri ad un articolo è corroborante, per me stimola immediatamente un approccio di curiosità, approfondimento e dibattito. Ovviamente le discussioni avvengono comunque, ma si perdono nell’etere. E comunque il fatto che un articolo venga presentato alla comunità scientifica da una persona terza è una tradizione con radici profonde, che solo la burocratizzazione dell’editoria accademica ha cancellato.

    Allora, la breve lista di suggerimenti per iniziare il 2021:

    • iscriversi come reviewer a PCI Archaeology
    • leggere gli articoli già raccomandati!
    • per la prossima pubblicazione, caricare il preprint e mandarlo a PCI Archaeology
  • La villa romana di Bussana, una diretta streaming

    Lo scorso 12 dicembre ho organizzato e presentato un evento in diretta streaming dedicato alla villa romana di Bussana, uno dei siti archeologici più conosciuti di Sanremo.

    La “locandina” dell’evento

    Non mi sono mai occupato nello specifico di questo sito quindi ho pensato di coinvolgere altri colleghi, persone che hanno svolto ricerche e scavi, che hanno lavorato nel contesto paesaggistico circostante. Tutto è stato composto sotto forma di una lunga diretta di oltre tre ore e mezza, in cui ho presentato gli interventi registrati, incluse due visite virtuali, intervallate dai miei commenti e dalle risposte alle domande del pubblico, soprattutto nella seconda parte.

    In questi lunghi mesi di pandemia e lockdown ho partecipato come tanti (anche se certamente non tutti, sia chiaro) a svariate videoriunioni, ho creato contenuti registrati per la diffusione da parte di istituzioni culturali e ho anche tenuto una lezione universitaria. Ma erano tutte situazioni con attori ben precisi, anche quando solo spettatori. Con l’evento dedicato alla villa di Bussana per la prima volta ho sperimentato il parlare al pubblico in diretta digitale. Parlare in pubblico è per me un fatto non quotidiano ma accade regolarmente, in particolare per conferenze e visite guidate. In questo caso la vera complicazione è stato improvvisarsi anche regista e presentatore.

    La diretta streaming è stata trasmessa sulla pagina Facebook della Soprintendenza: chi mi conosce da più tempo sa che non ho più un account Facebook da molti anni e che non apprezzo nessuno dei social network proprietari che hanno così tanto peso nelle nostre vite. Tuttavia, attualmente il MiBACT segue semplicemente le abitudini comuni a tutte le pubbliche amministrazioni e istituzioni culturali, addirittura elevando a sistema la moltitudine di profili social su un nuovo portale dedicato ‒ CulturaItaliaOnline ‒ realizzato “per aggregare in un unico luogo i contenuti Social pubblicati dalle principali istituzioni culturali italiane sui propri account”. I servizi contemplati sono unicamente Facebook, Instagram e Youtube.

    Quando è venuto il momento di decidere se annullare del tutto la visita guidata prevista oppure trasformarla in un evento digitale, avevo già fatto qualche prova con OBS Studio, il programma che consente di organizzare contenuti di tipi diversi e trasmettere in diretta streaming su Facebook, Youtube e molti altri servizi. OBS Studio ha molte funzionalità ed è abbastanza intuitivo, quindi permette di trasformarsi in “registi” improvvisati senza troppe difficoltà. La mia apparecchiatura domestica non era delle migliori ma tutto sommato è stata accettabile. L’inesperienza mi ha portato a sopravvalutare l’utilità della mia connessione ultraveloce, senza tenere conto della scarsa potenza del mio computer, che ha reso scarsa la qualità del video in alcuni momenti, soprattutto mentre stavo trasmettendo video registrati e contemporaneamente seguendo la diretta streaming per verificare che tutto funzionasse a dovere. La latenza di circa 30 secondi ha causato alcuni momenti di “buio” o di parlato tagliato. Non sono riuscito a trovare un modo efficace per ascoltare i contenuti registrati all’interno di OBS in modo da seguire in modo più preciso la fine delle scene preparate e il ritorno alla diretta.

    Quindi la prossima volta, se possibile, dovrebbero essere due persone a occuparsi della diretta (forse nemmeno fisicamente nello stesso posto) in modo che non sia necessario sovraccaricare una singola postazione. Una scheda video dedicata avrebbe comunque migliorato di molto le prestazioni di transcodifica in diretta, e forse anche la conversione dei video registrati in formati più adatti avrebbe aiutato.

    Stanno iniziando a funzionare strumenti liberi per lo streaming indipendente dalle grandi piattaforme, come owncast o Peertube 3.0. Questo è sicuramente uno sviluppo interessante, anche perché si possono comunque usare i social mass media come cassa di risonanza per la promozione senza per questo tenere il contenuto in diretta sui loro spazi e sui loro archivi capienti ma smemorati – vi sfido infatti anche a distanza di pochi giorni a trovare la registrazione se non ne conoscete l’esistenza. Per il momento potete rivedere la registrazione della diretta a questo indirizzo:

    https://fb.watch/2xrEyvQC8Y/

    Il buon successo della diretta e delle visualizzazioni successive (ad oggi oltre 800) mi fa ovviamente pensare che ci sia grande bisogno di questo formato di comunicazione diretto e umano, certamente più coinvolgente di una conferenza anche se molto meno approfondito, a maggior ragione quando le conferenze si svolgono dentro un’area archeologica.