09-03-2022
Cosa ho fatto
- Ora vengono preprocessati tutti i tipi di risorse bibliografiche che possono fare da venue e solo nel caso in cui siano state pubblicate da più di una casa editrice.
- Più specificamente, vengono preprocessate le risorse bibliografiche di tipo book, book series, book set, edited book, journal, journal volume, journal issue, monograph, proceedings series, proceedings, reference book, report series, standard series.
Il tipo della venue viene dedotto dal tipo di risorsa contenuta. Ad esempio, se la risorsa è di tipo “reference entry”, la venue è di tipo “reference book” se ha un ISBN, “journal” se ha un ISSN.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25def get_venue_type(br_type:str, venue_ids:list) -> str:
if br_type in {'journal article', 'journal volume', 'journal issue'}:
venue_type = 'journal'
elif br_type in {'book chapter', 'book part', 'book section', 'book track'}:
venue_type = 'book'
elif br_type in {'book', 'edited book', 'monograph', 'reference book'}:
venue_type = 'book series'
elif br_type == 'proceedings article':
venue_type = 'proceedings'
elif br_type in {'proceedings', 'report', 'standard'}:
venue_type = 'series'
elif br_type == 'reference entry':
schemas = {venue_id.split(':')[0] for venue_id in venue_ids}
if 'isbn' in schemas and 'issn' not in schemas:
venue_type = 'reference book'
elif 'issn' in schemas and 'isbn' not in schemas:
venue_type = 'journal'
elif 'issn' in schemas and 'isbn' in schemas:
# It is undecidable
venue_type = ''
elif br_type == 'report series':
venue_type = 'report series'
elif not br_type:
venue_type = ''
return venue_typeIl software crasha (UnboundLocalError) se una risorsa per cui non è prevista venue ha una venue. Questo comportamento è utile per individuare nuove regole di contenimento.
- È inefficiente preprocessare tutte le venue solo perché in rarissimi casi alcune venue sono state pubblicate da più di una casa editrice. Pertanto, ora vengono preprocessate solo le venue multi-publisher.
- È un algoritmo in 5 step:
- Vengono individuate tutte le venue in tutti i file in input, in modo da generare un dizionario ridondante in cui ogni id è una chiave.
- Vengono individuate le venue multi-publisher.
- Le venue multi-publisher vengono individuate sia se i loro identificativi compaiono nel campo “venue” sia se compaiono nel campo “id”.
- A partire dal dizionario ridondante, viene generato un nuovo dizionario che è un sottoinsieme del primo e contiene solo le venue-multipublisher.
- Le venue multi-publisher vengono unite sulla base degli identificativi.
- Le venue-multipublisher vengono esportate in CSV seguendo lo schema di Meta.
- È un algoritmo in 5 step:
- Più specificamente, vengono preprocessate le risorse bibliografiche di tipo book, book series, book set, edited book, journal, journal volume, journal issue, monograph, proceedings series, proceedings, reference book, report series, standard series.
- Ho aggiornato crossref_processing per permettergli di gestire tutti i tipi di risorse bibliografiche previsti da Crossref, sia per quanto riguarda gli schemi dei loro id, che per quanto riguarda gli schemi degli id delle venue che li contengono.
- Se “type” è uguale a “journal volume“ e sono presenti valori sia nel campo “volume” che nel campo “issue”, entrambi i campi vengono invalidati. Se “type” è uguale a “journal“ e sono presenti valori nel campo “volume” o nel campo “issue”, tutti i campi vengono invalidati. Entrambi i comportamenti sono stati testati.
- Se nel CSV viene specificato un metaid non presente sul triplestore, tale metaid nel CSV viene invalidato e ne viene generato uno nuovo. Un MetaID invalido viene invalidato in qualunque campo (id, author, venue, publisher, editor).
- Ho testato il caso in cui un volume o un issue hanno un titolo.
- Novità relative all’articolo sulle time-traversal queries:
- Pubblicare su JASIST rimane difficile anche rimuovendo interamente il capitolo sulla libreria. Il conto della parole passa infatti da 15,376 a 9,834, su un massimo di 7,000 concesso dalla rivista.
- Ho selezionato 20 entità casuali su cui ripetere i benchmark che prevedono un soggetto. L’unico requisito è che fossero entità di tipo foaf:Expression con citazioni, perché la query riguarda appunto questo genere di entità.
- Esse hanno un numero variabile di snapshot di provenance, che va da un minimo di 2 a un massimo di 35. In media hanno 20 snapshot, la mediana è 20 e la deviazione standard 8.
- Ho aggiunto media e deviazione standard all’output dei benchmark.
Domande
- In Crossref, attualmente, non c’è nessun proceedings dotato di ISBN e non ci sono nemmeno proceedings-article che specificano l’ISBN del contenitore. Dovrei comunque prevedere la possibilità che ciò accada? Sì.
- In caso di riga vuota o riga contenente valori invalidi, Meta genera comunque un MetaId per quella riga e carica sul triplestore una risorsa bibliografica vuota. Siete d’accordo con questo comportamento? No, bisogna eliminare quella risorsa.
- Come fa Meta a capire se la venue di un book è di tipo book series o book set? Al momento questi due tipi di venue non vengono gestiti dal creator, né vengono appiattiti in un generico ‘series’ dal curator. Solo una book series ha un ISSN.
- Meta appiattisce il tipo “dissertation” in ”book”. Propongo invece di conservare ”dissertation”, dato che esiste fabio:Thesis e che oc_ocdm mette a disposizione il metodo create_dissertation. Da fare.
- Non ho più accesso ai file su SharePoint di OpenAIRE-Nexus, perché la e-mail abilitata è arcangelo.massari2, con la quale non posso più accedere a SharePoint visto che l’ho cambiata in arcangelo.massari. A chi mi devo rivolgere per abilitare la nuova e-mail? Androiniki.
- Usa informazione sullo schema degli id anche per validare gli altri tipi.
09-03-2022
https://arcangelo7.github.io/p/9f423454a0f44b9a9fbff03a2d9d18c3/