Generare e gestire un DOI con Bash

Il DOI (Digital Object Identifier) è un identificatore persistente usato per identificare contenuti digitali in modo univoco. In ambito accademico e scientifico, è essenziale per citare pubblicazioni, dataset e risorse digitali. In questo articolo vediamo come generare e gestire un DOI utilizzando la shell Bash.

Prerequisiti

  • curl o wget installato
  • Un account su un servizio di registrazione DOI (come DataCite o Crossref)
  • Un file XML o JSON con i metadati della risorsa da registrare

1. Preparazione dei Metadati

Per registrare un DOI, servono i metadati in formato standard. Ecco un esempio minimale in XML conforme allo schema DataCite:


<resource xmlns="http://datacite.org/schema/kernel-4">
  <identifier identifierType="DOI">10.1234/abcde</identifier>
  <creators>
    <creator>
      <creatorName>Rossi, Mario</creatorName>
    </creator>
  </creators>
  <titles>
    <title>Un esempio di DOI</title>
  </titles>
  <publisher>Open Research Repository</publisher>
  <publicationYear>2025</publicationYear>
  <resourceType resourceTypeGeneral="Dataset">Dataset</resourceType>
</resource>

2. Registrazione del DOI con Bash

Una volta preparati i metadati, si può inviare una richiesta HTTP al servizio DOI. L’esempio seguente usa curl per inviare i dati a DataCite:


#!/bin/bash

USERNAME="tuo_utente"
PASSWORD="tua_password"
DOI="10.1234/abcde"
URL="https://api.test.datacite.org/dois"

curl -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/vnd.api+json" \
  -X POST "$URL" \
  -d @metadati.json

Assicurati che metadati.json contenga i dati conformi allo standard richiesto (puoi convertire l’XML in JSON se necessario).

3. Aggiornare i Metadati

Per aggiornare un DOI già registrato:


curl -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/vnd.api+json" \
  -X PUT "https://api.test.datacite.org/dois/$DOI" \
  -d @nuovi_metadati.json

4. Verifica dello Stato del DOI

Per controllare che il DOI sia stato registrato correttamente:


curl -s "https://api.test.datacite.org/dois/$DOI" | jq

Considerazioni Finali

L'automazione della gestione dei DOI tramite Bash è utile per workflow ripetibili e integrabili in pipeline di pubblicazione o archiviazione scientifica. Tuttavia, è fondamentale assicurarsi che i metadati siano conformi agli standard del provider e che le credenziali siano gestite in modo sicuro.

Per l’uso in produzione, ricordati di usare l’endpoint ufficiale e non l’ambiente di test (api.test.datacite.org).

Torna su