Deno project for managing Akvaplan-niva's publications
The data service is used as backend for https://akvaplan.no/en/pubs
List publications: /pub
: https://pubs.deno.dev/pub (use ?limit=-1
to list
all)
Get metadata: /pub/:id
Examples:
- doi: https://pubs.deno.dev/pub/https://doi.org/10.1088/1748-9326/9/11/114021
- handle: https://pubs.deno.dev/pub/https://hdl.handle.net/10037/28898
- nva:
/pub/https://api.test.nva.aws.unit.no/publication/01907a69a2c5-c2cdce45-0c25-4b84-8913-c2ad1a8354c6
Get works by Akvaplanist: /by/:id
: https://pubs.deno.dev/by/aki?limit=-1
Also remove by!
The production database is persisted in Deno Deploy's KV
./kv/bootstrap.ts
deno task refresh
New publications are automatically added by polling Norway's
National research archive via the
NVA API: see kv/refresh.ts
This project replaces https://github.com/akvaplan-niva/dois, using a backwards-compatible format ("slim").
Any published work where
- At least 1 author has explicit Akvaplan-niva affiliation
- At least 1 author is currently affiliated with Akvaplan-niva
- The work is financed, supported, contributed to, by Akvaplan-niva*
Criteria 2 means that employees may be listed with their full academic record including works pre/post-dating employment.
[*] Examples:
$ (base) che@:~/akvaplan-niva/pubs$ cat <(./kv/_list.ts pub | nd-map d.key[1] | nd-map '{id:d}') <(curl -s https://pubs.deno.dev/pub?limit=-1 | nd-map d.value | nd-map --select id,title) | nd-group d.id | nd-filter 'd[1].length !== 2'
["https://doi.org/10.1139/cjfas-56-8-1370",[{"id":"https://doi.org/10.1139/cjfas-56-8-1370"}]]
["https://doi.org/10.1016/j.chemgeo.2018.05.040",[{"id":"https://doi.org/10.1016/j.chemgeo.2018.05.040","title":"The GEOTRACES Intermediate Data Product 2017"}]]
["https://doi.org/10.1139/f99-075",[{"id":"https://doi.org/10.1139/f99-075","title":"Effect of temperature on the P4501A response in winter- and summer-acclimated Arctic char (<i>Salvelinus alpinus</i>) after oral benzo[a]pyrene exposure"}]]
$ ./kv/_list.ts pub | nd-map d.value | nd-filter 'd.doi?.length>0' | nd-count '{ nva: d.nva?.length>0 }'
{"nva":false,"count":712}
{"nva":true,"count":1015}