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
owget
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
).