Analisi della provenance per br non mappate
- Introdotto parametro (obbligatorio) nel metodo per creare le tabelle di mapping (
Mapping.map_omid_openalex_ids()
): ogni risorsa senza mappatura viene scritta in una tabella salvata a parte, in uno dei file all’interno di non_mapped_dir
.
- Creato un database della provenance delle br in Meta: flat-file con due colonne, l’URI della br e la lista (json-encoded) degli URI della sorgente. IMPORTANTE: alcune risorse hanno più di un valore per la proprietà
prov:hadPrimarySource
: deve essere una lista per forza di cose.
- Workflow:
- Si creano le tabelle di ID per Meta e per OpenAlex (invariato; le risorse riportate nelle tabelle di Meta “ridotte”, proprio come prima, sono solo quelle che hanno ID esterni oltre ad OMID — qui si perde traccia delle risorse che hanno solo OMID, ovvero, mi aspetterei, la maggior parte di issues e volumes)
- Si crea il DB degli ID di OpenAlex (invariato)
- Si manda il processo di mapping: ora vengono create anche delle tabelle che contengono gli OMID (e i types) delle risorse che non sono state allineate, nonostante abbiano degli ID esterni oltre a OMID.
- Se è necessario, si possono analizzare i risultati del mapping: le risorse multi-mapped e le risorse che non state mappate.
- Per le risorse multi-mapped si utilizzano le utilities già implementate (da riordinare ed eventualmente integrare meglio nel progetto/pacchetto)
- Per le risorse non mappate, si crea un DB della provenance (già implementato) e si definiscono delle euristiche per capire quante risorse (e di che tipo) provengono da quali sorgenti (da fare, ma il processo consiste nel leggere le tabelle di risorse non mappate e interrogare il database per smistarle nelle varie categorie).
Dati
8.122.448 entità che hanno soltanto OMID come ID nel dump di Meta di giugno, su un totale di 93.478.035 entità analizzate (una per riga) → probabilmente volumes e issues, in realtà, non hanno per forza una riga nel dump nel dump CSV di Meta, altrimenti non si spiega perché manchino 6 milioni di entità!
Le entità nel dump in CSV che teoricamente potrebbero essere mappate, in quanto hanno degli ID esterni (anche se non necessariamente in comune con OpenAlex?), sono:
$$
\text{93.478.035(tot. rows in CSV) - 8.122.448 (rows['id'] senza PID esterni) = \textbf{85.355.587}}
$$
TODO: Verifica questo dato contando le righe delle tabelle di Meta ridotte (quelle con solo omid, ids e type): deve venire fuori 85355587.
Con questi dati, le entità che non sono mappabili (in assenza di ID esterni in comune, almeno nel dump CSV) sono circa l’8,7%. E le entità totali mappate rimangono sempre:
$$
\text{81.202.454 (mapping 1:1) + 162.598 (multi-mapping) = \textbf{81.365.052}}
$$
L’intersection tra le entità teoricamente mappabili e quelle effettivamente mappate ammonta a:
$$
\text{85.355.587 - 81.365.052 = \textbf{3.990.535}}
$$
quindi bisogna analizzare la provenance di circa 4 milioni di entità. Bisogna analizzare la provenance di tutte le risorse che non sono state mappate (anche se sono tra quelle non attualmente mappabili per mancanza di identificativi):
$$
⁍
$$
Domande
- Mi risulta che dai file della provenance ho processato 99.842.675 entità (out di tqdm sul generator: 99.842.675it [52:18, 31809.69it/s]), mentre sul sito il numero di risorse bibliografiche è 99,851,773 (9.098 entità in più): è normale? o comunque si spiega in qualche modo?
- Non è normale, dovrebbero essere in un rapporto 1:1. Da segnalare ad Arca e capire se questo problema c’è anche nel nuovo dump di Meta.
- Le entità di provenance a cui sia associata la proprietà
http://www.w3.org/ns/prov#invalidatedAtTime
posso scartarle serenamente, giusto?
- No, anzi. La provenance è costituita da tutti gli snapshot (ad ogni grafo viene associata la proprietà
invalidatedAtTime
ogni qualvolta si introducono nuove informazioni, ma si tratta semplicemente di uno snapshot). Per ogni br, devi mantenere le sources menzionate in tutti gli snapshot (sommandole insieme).
- A tale proposito, ci sono 3 br per cui esiste una entità di provenance che, nonostante non sia “invalidated”, non ha la proprietà
http://www.w3.org/ns/prov#hadPrimarySource
.
- È normale, si tratta di una modifica fatta a mano.
- Dovrebbero esserci 84.056 entità in Meta che hanno più di una source (generalmente 2, credo Crossref e Datacite).
- Questo è un errore da segnalare ad Arca, il valore dovrebbe essere solo uno. Se ci sono due sources ci dovrebbero essere due snapshot diversi.