2.0.co;2","W2079425473" "doi:10.2514/1.29388","W2081279472" "pmid:20223728","W2092136432" "doi:10.3816/clml.2010.n.004","W2092136432" "doi:10.1017/s0041977x00024927","W2097516519" "pmcid:3814769","W2112446184" "doi:10.1074/jbc.m113.469858","W2112446184" "pmid:24030829","W2112446184""> 2.0.co;2","W2079425473" "doi:10.2514/1.29388","W2081279472" "pmid:20223728","W2092136432" "doi:10.3816/clml.2010.n.004","W2092136432" "doi:10.1017/s0041977x00024927","W2097516519" "pmcid:3814769","W2112446184" "doi:10.1074/jbc.m113.469858","W2112446184" "pmid:24030829","W2112446184""> 2.0.co;2","W2079425473" "doi:10.2514/1.29388","W2081279472" "pmid:20223728","W2092136432" "doi:10.3816/clml.2010.n.004","W2092136432" "doi:10.1017/s0041977x00024927","W2097516519" "pmcid:3814769","W2112446184" "doi:10.1074/jbc.m113.469858","W2112446184" "pmid:24030829","W2112446184"">
"supported_id","openalex_id"
"doi:10.1529/biophysj.106.102293","W2069644707"
"pmid:17545234","W2069644707"
"pmcid:1965444","W2069644707"
"doi:10.1111/j.1540-8167.1997.tb00841.x","W2076879947"
"pmid:9255690","W2076879947"
"doi:10.1175/1520-0442(1993)006<1327:rvosca>2.0.co;2","W2079425473"
"doi:10.2514/1.29388","W2081279472"
"pmid:20223728","W2092136432"
"doi:10.3816/clml.2010.n.004","W2092136432"
"doi:10.1017/s0041977x00024927","W2097516519"
"pmcid:3814769","W2112446184"
"doi:10.1074/jbc.m113.469858","W2112446184"
"pmid:24030829","W2112446184"
"omid","ids","type"
"meta:br/060209","doi:10.4230/lipics.approx/random.2020.19","report"
"meta:br/060100","doi:10.3109/9780203417447 doi:10.4324/9780203417447","reference book"
"meta:br/060562","doi:10.4230/lipics.disc.2020.38","report"
"meta:br/060629","doi:10.4230/lipics.ecoop.2020.15","report"
"meta:br/060593","doi:10.4230/lipics.disc.2021.49","report"
"meta:br/060406","doi:10.4230/lipics.concur.2021.14","report"
"meta:br/06030","doi:10.1002/(sici)1097-0215(20000115)85:2<298::aid-ijc24>3.0.co;2-l","journal article"
/data/works/
├── manifest
├── updated_date=2021-12-30
│ ├── 0000_part_00.gz
│ ...
│ └── 0031_part_00.gz
└── updated_date=2022-01-04
├── 0000_part_00.gz
...
└── 0031_part_00.gz
Nella cartella del dump di OpenAlex che ho processato (la cartella Works), ci sono solo singole risorse bibliografiche (non journals e simili, che sono invece nella cartella Sources). Gli identificativi presenti per un oggetto all’interno di Works possono, per definizione, essere i seguenti: doi, pmid, pmcid, (mag), e ovviamente openalex.
Bisogna fare un database con SQL Lite per poter salvare in memoria tutte le tabelle di OpenAlex. Caricare le tabelle in memoria è fondamentale, perché altrimenti iterare tutto OpenAlex per ogni identificativo delle tabelle di Meta è un processo troppo lungo. Al fine di caricare queste tabelle in memoria, si potrebbe anche pensare ad altre soluzioni a parte il database, ma questa è quella per cui abbiamo deciso.
Puoi parlare con Ivan per farti dare una mano a fare il database con SQL lite, ma ricordati di guardare il primer di Silvio tra i materiali del corso di Data Science. Quello che dovrai fare è mettere nel database tre tabelle distinte, una per ogni tipo di ID: una tabella per i DOI, una per i PMID, una per i PMCID. Ciascuna di queste tre tabelle deriva da quella che hai già creato, ma contiene solo le righe che mappano il tipo di ID rilevante. Ad esempio la tabella per i DOIs avrà tutte righe come: doi:10.234/63t71 --> W12345.
Il processo di creazione delle tabelle di mapping funzionerà in questo modo: per ogni entità (riga) nella tabella di Meta, per ogni identificativo di quell'entità (elemento della stringa da splittare), si cerca nel database nella tabella relativa al tipo di ID in questione.
Questo processo è molto più veloce che non iterare tutte le tabelle che hai creato tu.