Bibliography Report

Author
Affiliation

Rainer M. Krug

Abstract

Reports analysing the IPBES Libraries on Zotero.

Introduction

This report assesses the IPCC Bibliography in regards to different measures and shows some information of the content. It does not assess the content of the sources but rather the bibliometric data.

Bibliographic analysis

In most cases, the bibliographic analysis is done on the OpenAlex library. In some cases, we can also do it using the Zenodo data. This is mentioned in the beginning of each subsection

Publication types

Analysis: Zenodo and OpenAlex

OpenAlex and Zotero use different tyoes. These are not directly compable, which is whu=y both are shown.

Show the code
bib_data$figure_types_data |>
  dplyr::arrange(
    from,
    desc(count)
  ) |>
  knitr::kable(
    caption = "Types of documents from the Zotero bibliography as well as from OpenApex."
  )
Types of documents from the Zotero bibliography as well as from OpenApex.
type count from
article 862 OpenAlex
review 109 OpenAlex
letter 14 OpenAlex
book-chapter 3 OpenAlex
editorial 2 OpenAlex
paratext 1 OpenAlex
preprint 1 OpenAlex
journalArticle 1139 Zotero
book 66 Zotero
bookSection 47 Zotero
report 40 Zotero
webpage 6 Zotero
conferencePaper 2 Zotero
Show the code
bib_data$figure_types

Zenodo versus OpenAlex Types

Analysis: Zenodo and OpenAlex

The types entered in the Zenodo library and the types as retrieved from OpenAlex are not linked, therefore they can differ. This can indicate faulty data entering in Zenodo but not necessarily has to. These cases need to be carefully evaluated and here only given as a starting point.

NA in OpenAlex is likely caused by the doi not found in OpenAlex (not in there, not valid, non-standard DOI in Zenodo). NA in Zotero is linked to non-standard DOI entries (i.e. with http) which can therefore not be linked to OpenAlex data. If all DOIs are in standard format, there should be no NAs in this Table in the column Ferom Zenodo.

TODO: Improvements should be done after feedback.

Show the code
bib_data$metrics$types$comparison |>
  knitr::kable(
    col.names = c("Type from Zenodo", "Type from [OpenAlex](https://OpenAlex.org){target='_blank'}", "count"),
    caption = "Table giving the combination of types from Zenodo as well as [OpenAlex](https://OpenAlex.org){target='_blank'} and their frequency"
  )
Table giving the combination of types from Zenodo as well as OpenAlex and their frequency
Type from Zenodo Type from OpenAlex count
journalArticle article 810
journalArticle NA 203
journalArticle review 106
book NA 66
NA article 52
bookSection NA 47
report NA 40
journalArticle letter 14
webpage NA 6
NA review 3
journalArticle editorial 2
journalArticle book-chapter 2
conferencePaper book-chapter 1
journalArticle paratext 1
journalArticle preprint 1
conferencePaper NA 1

Year of Publication

Analysis: Zenodo and OpenAlex

The following ranges of publication years can be found in the data.

Show the code
bib_data$figure_pub_year_data |>
  dplyr::summarize(
    min = min(publication_year, na.rm = TRUE),
    max = max(publication_year, na.rm = TRUE),
    .by = c(from)
  ) |>
  knitr::kable()
from min max
Zenodo 1978 2021
OpenAlex 1949 2023
Show the code
bib_data$figure_pub_year
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_col()`).

Access Status of References

Analysis: OpenAlex

Show the code
bib_data$figure_oa_status

50 Most often cited Journals

Analysis: Zenodo

TODO: OpenAlex should be added

Show the code
bib_data$figure_top_journals

This table contains all Journals as specified in the Zotero database.

Show the code
bib_data$figure_top_journals_data |>
  IPBES.R::table_dt("cited_journals")

Coutries of Institutes of all authors

Analysis: OpenAlex

In this section we will take a closer look at the countries from which ih the authors ot the publication come. THe data includes all authoirs without weighting.

Show the code
#|
#| fig-height: 10
#| fig-width: 10

bib_data$figure_top_country_map

This plot only contains the countries with more than 10 references.

Show the code
#|
#| fig-height: 10
#| fig-width: 10

bib_data$figure_top_country

This table contains all countries and the number of authorship.

Show the code
bib_data$figure_top_country_data |>
  IPBES.R::table_dt("top_countries")

Cleanliness of the Bibliography

Cleanliness of a bibliography is defined here as the quality of the bibliografic data in the bibliography. It does not concern any topical measures, only measures related to the bibliografic data in the bibliography.

The analysis is at the moment only done for DOIs as corresponding measures are not available at the moment for ISBNs and ISSNs and duplicate ISBNs and ISSNs can be rcorrect as different chapters of a book might be in the bibliography.

Entries with DOIs, ISBNs or ISSNs in Zotero

To identify a reference, the most widely used identifier is the DOI. The following table shows the number of references with a DOI and the number of unique DOIs.

To consider duplicate ISBNs or ISSNs as duplicates entries in the library is not waranted as e.g. differenc chapters of a book can be separate entries in the library and therefore lead to duplicates.

  • DOIs: 1072 (82.46%) - 0 duplicates
  • ISBNss: 70 (5.38%)
  • ISBNss: 922 (70.92%)

DOIs in Zotero

The following sections provide some more detailed analysis of the bibliography in Zenodo. The tables all contain clickable links which, shwen clicked, show the respective article in the Zotero bibliograpohy.

Duplicates

The following DOIs are duplicates in the bibliography. This table should be empty.

Show the code
if (length(bib_data$metrics$zotero_dois$duplicate) > 0) {
  data.frame(
    doi = bib_data$metrics$zotero_dois$duplicate,
    link = paste0(bib_data$bibliography$url, "/items/", names(bib_data$metrics$zotero_dois$duplicate))
  ) |>
    dplyr::mutate(
      sort = doi,
      doi = paste0('<a href="', link, '" target="_blank">', doi, "</a>"),
    ) |>
    dplyr::arrange(
      sort
    ) |>
    dplyr::mutate(
      sort = NULL
    ) |>
    knitr::kable(
      caption = "DOIs in Zenodo which are duplicated",
      escape = FALSE
    )
}

Non Standard

All DOIs should be given as only the DOI without the resolver, i.e. not starting with http. The following table shows all entries which do have a non-conform DOI:

Show the code
#|

http <- grep("http", bib_data$metrics$zotero_dois$id_raw)
data.frame(
  doi = bib_data$metrics$zotero_dois$id_raw[http],
  link = paste0(bib_data$bibliography$url, "/items/", names(bib_data$metrics$zotero_dois$id_raw)[http])
) |>
  dplyr::mutate(
    doi = paste0('<a href="', link, '" target="_blank">', doi, "</a>"),
    link = NULL
  ) |>
  knitr::kable(
    caption = "DOIs in Zenodo which include a `http`",
    escape = FALSE
  )
DOIs in Zenodo which include a http
doi
TF3LTY86 https://doi.org/10.1002/rra.3074
Z6QPT3U7 https://doi.org/10.1111/1365-2664.12124
3FCRYAMQ https://doi.org/10.1111/j.1472-4642.2010.00654.x
AXBU9SSQ https://doi.org/10.1111/gcb.13157
BKUEQMFF https://doi.org/10.1111/j.1439-0485.2011.00459.x
58853CZA https://doi.org/10.1111/gcb.13772
RMXN8PKD https://doi.org/10.1111/gcb.13247
DSHDLK95 https://doi.org/10.1111/raq.12427
IJAF9ZX3 https://doi.org/10.1002/fee.2148
I94Q3YHL 10.1038/nature16512 http://www.nature.com/nature/journal/v530/n7589/abs/nature16512.html#supplementary-information
KI2C5QII https://doi.org/10.1029/2020GL091279
29YQIVGB https://doi.org/10.1111/gcb.13423
MQE9EYIH https://doi.org/10.1111/1365-2664.13427
HFJAEA22 https://doi.org/10.1111/gcb.12667
PZIV8EC8 https://doi.org/10.1002/jgrc.20100
NBPGHAAA https://doi.org/10.1890/110205|
8Q7LYM3W http://dx.doi.org/10.5089/9781484393178.001
G9N6LD6K https://doi.org/10.1002/ece3.6978
A9Z56Q5N https://doi.org/10.1002/fee.1632
YSZT35CU https://doi.org/10.1002/wcc.673
VPIPY4SC https://doi.org/10.1111/cobi.12519
VKEAFQ8D https://doi.org/10.1111/btp.12456
HMQ2ANG3 https://doi.org/10.1111/cobi.12556
52F6VFCK https://doi.org/10.1111/j.1526-100X.2006.00136.x
MXG7UE3X https://doi.org/10.1002/grl.50563
5SDD5CSM https://doi.org/10.1002/eap.1473
7YXKDA5Z https://doi.org/10.1016/j.jclepro.2020.124871
UNEZ7BTY https://doi.org/10.1111/conl.12637
DVVDBUK4 https://doi.org/10.1002/fee.1309
FJFZHGSI https://doi.org/10.3389/fmars.2018.00400
Q8PI4YTL https://doi.org/10.1016/j.marpolbul.2020.111168
SI5KJXKL https://doi.org/10.1016/j.cub.2017.03.020
V946RJWK https://doi.org/10.3390/f7090183
WNB8VG6H https://doi.org/10.3389/fmars.2019.00411
UWVJ9DTQ https://doi.org/10.1073/pnas.0905620106
HQXW4WHW https://doi.org/10.3389/fmars.2016.00062
C7A7Z7YX https://doi.org/10.1146/annurev-marine-010213-135020
AVBSFZCG https://doi.org/10.1111/gcb.15392
6XVCQQV3 https://doi.org/10.1111/gcbb.12226
93DGSD83 https://doi.org/10.1111/gcbb.12307
TCCE4DUT https://doi.org/10.5194/hess-18-2859-2014
UIHQG5NV https://doi.org/10.1111/geb.12364
6FRRM5DT https://doi.org/10.1111/gcb.14893
ZXW8G6T4 https://doi.org/10.1111/conl.12664
YMRP6PWM https://doi.org/10.1002/ieam.4287
CNZN3NNG https://doi.org/10.1111/jbi.12508
KHGIFI55 https://doi.org/10.1111/j.1365-2486.2009.02071.x
KXFM2U5M https://doi.org/10.1111/1365-2745.13081
K2JR87D9 https://doi.org/10.1073/pnas.1710465114
CGDCV9AW https://doi.org/10.1111/1365-2664.12669
64K8WUN8 https://doi.org/10.1111/1365-2664.12790
BUKFKWBS https://doi.org/10.1111/gcbb.12040
MAJT7R5Q https://doi.org/10.1111/cobi.13158
U7CYTCS8 https://doi.org/10.1111/j.1755-263X.2010.00128.x
8FD32EHW https://doi.org/10.1002/wcc.555
JG3BA7RI https://doi.org/10.1111/cobi.12568
U72DZ6Q6 http://doi.org/10.18352/ijc.321
GE6CNNP2 https://doi.org/10.1111/cobi.13643
LFBGSQPB https://doi.org/10.1080/14888386.2018.1473168
HEXMRD4X https://doi.org/10.1080/08920753.2014.877768
WLYSQNGN https://doi.org/10.1002/fee.1433
XTYQ54CR https://doi.org/10.5038/1944-0472.13.4.1869
G5SISFIU https://doi.org/10.1111/gcb.15107
KJ99VN3U https://doi.org/10.1111/rec.13357
Q3GVC24A https://doi.org/10.1111/gcb.15021
BEITD6RV https://doi.org/10.1111/fwb.13108

Not Valid

Here we do acheck for the structural validity of the dois. This check needs to be improved. Of these 135 are not valid. These are:

Show the code
#|

if (length(bib_data$metrics$zotero_dois$not_valid) > 0) {
  data.frame(
    doi = bib_data$metrics$zotero_dois$not_valid,
    link = paste0(bib_data$bibliography$url, "/items/", names(bib_data$metrics$zotero_dois$not_valid))
  ) |>
    dplyr::mutate(
      doi = paste0('<a href="', link, '" target="_blank">', doi, "</a>"),
      link = NULL
    ) |>
    knitr::kable(
      caption = "DOIs in Zenodo which ar not valid",
      escape = FALSE
    )
} else {
  print("All DOIs in Zenodo are valid.")
}

Not in OpenAlex

To validate the existence and validity of the DOIs, we check if the DOIs are in the OpenAlex database.

Of the 1072 unique DOIs in the library, 135 (12.59%) are in not in OpenAlex. This includes the non-valid DOIS, which are filtered out in the table below.

Show the code
data.frame(
  doi = bib_data$metrics$zotero_dois$not_in_oa,
  link = paste0(bib_data$bibliography$url, "/items/", names(bib_data$metrics$zotero_dois$not_in_oa))
) |>
  dplyr::mutate(
    doi = paste0('<a href="', link, '" target="_blank">', doi, "</a>"),
    link = NULL
  ) |>
  knitr::kable(
    caption = "DOIs in Zenodo which ar not in [OpenAlex](https://OpenAlex.org){target='_blank'}",
    escape = FALSE
  )
DOIs in Zenodo which ar not in OpenAlex
doi
UFB44RG4 10.1111/j.1526-100X.2010.00744.x
9XAVJ9CX 10.1017/S2047102519000396
J4RW3KR8 10.1641/B580107
W2P6VH22 10.5751/ES-00650-090205
63DUAB4K 10.1002/2013EF000164
TF3LTY86 10.1002/rra.3074
Z6QPT3U7 10.1111/1365-2664.12124
YIRFEJM2 10.5751/ES-08373-210239
EPNYBFCT 10.1111/j.1526-100X.2007.00245.x
DI5GRWTW 10.1890/1540-9295(2005)003[0259:RWPBPT]2.0.CO;2
68U6CYH2 10.1016/S0964-5691(96)00067-1
M8Q784WZ 10.1002/2017EF000704
39TIGE6Z 10.5751/ES-10182-230322
3FCRYAMQ 10.1111/j.1472-4642.2010.00654.x
AXBU9SSQ 10.1111/gcb.13157
RZV5TB7W 10.1029/2007JC004551
D5R98X9B 10.1108/BFJ-06-2019-0451
BKUEQMFF 10.1111/j.1439-0485.2011.00459.x
Q7T87568 10.1017/S0376892920000272
AYSYAKN6 10.1017/S003060530999010X
YRMYNL28 10.5751/ES-11381-250125
VARMMCXE 10.1002/2017EF000632
SNWKCCFL 10.1371/journal.pone.0065427.s035
58853CZA 10.1111/gcb.13772
RMXN8PKD 10.1111/gcb.13247
DSHDLK95 10.1111/raq.12427
8FMRII4X 10.1111/j.1755-263X.2011.00166.x
IJAF9ZX3 10.1002/fee.2148
95E94FU2 10.5751/ES-09448-220324
I94Q3YHL 10.1038/nature16512 http://www.nature.com/nature/journal/v530/n7589/abs/nature16512.html#supplementary-information
KI2C5QII 10.1029/2020GL091279
29YQIVGB 10.1111/gcb.13423
MQE9EYIH 10.1111/1365-2664.13427
HFJAEA22 10.1111/gcb.12667
PZIV8EC8 10.1002/jgrc.20100
YH95RAJ6 10.5751/ES-02063-120203
NBPGHAAA 10.1890/110205|
UBXH74FM 10.1002/wcc.425|
PK53AWWN 10.1016/S0378-7788(02)00108-1
8Q7LYM3W 10.5089/9781484393178.001
MTGUQDHX 10.1659/MRD-JOURNAL-D-19-00053.1
G9N6LD6K 10.1002/ece3.6978
2XWRDXQ7 10.1002/eco.1822|
4DTKYK2H 10.1029/2020EF001616
A9Z56Q5N 10.1002/fee.1632
YSZT35CU 10.1002/wcc.673
S7N4FP7U 10.1080/0376835X.2018.1481732
W4V6I62U 10.1080/1747423X.2015.1096423
VPIPY4SC 10.1111/cobi.12519
NH44XQ8A 10.1371/journal.pone.0103000.s002
CMMV6LDY 10.1111/j.1755-263X.2009.00063.x
AFVVHQNX 10.1017/S1751731119002672
VKEAFQ8D 10.1111/btp.12456
RAK3QNX2 10.10520/EJC113181
HMQ2ANG3 10.1111/cobi.12556
52F6VFCK 10.1111/j.1526-100X.2006.00136.x
MXG7UE3X 10.1002/grl.50563
5SDD5CSM 10.1002/eap.1473
UAKDKVJX 10.1579/0044-7447(2007)36[622:ITIMTT]2.0.CO;2
WME8PP3S 10.3103/S106837391507002X
7YXKDA5Z 10.1016/j.jclepro.2020.124871
CRD5HJKU 074026 10.1088/1748-9326/11/7/074026
62Q7FAK8 10.5751/ES-00174-040107
UNEZ7BTY 10.1111/conl.12637
DVVDBUK4 10.1002/fee.1309
S4RDWKHT 10.1134/S1995425518010109
UBZ5A5UI 10.1029/2008GB003327
FJFZHGSI 10.3389/fmars.2018.00400
Q8PI4YTL 10.1016/j.marpolbul.2020.111168
EM5MY7Q4 10.1371/journal.pone.0158094 •
SI5KJXKL 10.1016/j.cub.2017.03.020
V946RJWK 10.3390/f7090183
WNB8VG6H 10.3389/fmars.2019.00411
UWVJ9DTQ 10.1073/pnas.0905620106
HQXW4WHW 10.3389/fmars.2016.00062
C7A7Z7YX 10.1146/annurev-marine-010213-135020
AVBSFZCG 10.1111/gcb.15392
3KZL4X6S 10.1080/1523908X.2019.1661234
NLQPDWF6 10.5751/ES-03335-150211
RQ2N22MC 10.5751/ES-08059-210113
6VVF468F 10.5751/ES-06639-190258
LMPAULB7 10.1017/S2047102518000183
6XVCQQV3 10.1111/gcbb.12226
93DGSD83 10.1111/gcbb.12307
TCCE4DUT 10.5194/hess-18-2859-2014
YUMCNLD8 10.1016/J.ECOLIND.2018.12.032
7TY7XPTL 20160329 10.1098/rstb.2016.0329
N8A2HS8Y 10.1111/j.1469-185X.2011.00185.x
UIHQG5NV 10.1111/geb.12364
6FRRM5DT 10.1111/gcb.14893
VUNYYZUX 10.1111/1365-2745.12147
ZXW8G6T4 10.1111/conl.12664
YMRP6PWM 10.1002/ieam.4287
CNZN3NNG 10.1111/jbi.12508
KHGIFI55 10.1111/j.1365-2486.2009.02071.x
KXFM2U5M 10.1111/1365-2745.13081
K2JR87D9 10.1073/pnas.1710465114
CGDCV9AW 10.1111/1365-2664.12669
64K8WUN8 10.1111/1365-2664.12790
BUKFKWBS 10.1111/gcbb.12040
7EK8BZLU 10.5751/ES-05873-180226
PY9CCDN8 10.1890/ES13-00181.1
K8JB9747 10.1504/IJESD.2008.018358
MAJT7R5Q 10.1111/cobi.13158
U7CYTCS8 10.1111/j.1755-263X.2010.00128.x
V9TQEY46 10.1029/2020EF001866
8FD32EHW 10.1002/wcc.555
MPAUPJZG 10.1016/S0308-597X(98)00009-8
RZY9TP3D 10.2305/IUCN.CH.2019.PARKS-25-2SW2.en
B2WW3M4K 10.1577/1548-8446(1999)024<0015:LME>2.0.CO;2
JG3BA7RI 10.1111/cobi.12568
BKT8R9DY 10.1080/1088937X.2013.879613
4ME78EFF 10.5751/ES-11085-240432
6A2AHQVU 10.1016/S0140-6736(18)31788-4
U72DZ6Q6 10.18352/ijc.321
7YACZNCE 10.1029/2020EO149927
GE6CNNP2 10.1111/cobi.13643
LFBGSQPB 10.1080/14888386.2018.1473168
HEXMRD4X 10.1080/08920753.2014.877768
WLYSQNGN 10.1002/fee.1433
JYATZW7A 10.1111/j.1755-263X.2010.00147.x
XTYQ54CR 10.5038/1944-0472.13.4.1869
G5SISFIU 10.1111/gcb.15107
KJ99VN3U 10.1111/rec.13357
APYP547Q 10.2495/SDP160311
M64PHAHN 10.1134/S207908641202003X
J9FMBFRC 10.1175/JCLI-D-16-0131.1
3VV2ATUG 10.1029/2018GB005886
A6P929BJ 10.1108/CG-03-2016-0066
P3IPI9CZ doi.org/10.5282/rcc/8213
WWNJ9DKV 10.5751/ES-09854-230107
Q3GVC24A 10.1111/gcb.15021
BEITD6RV 10.1111/fwb.13108
5BRM8S5I 10.5751/ES-09325-220222
2E9EPKWL 10.13140/RG.2.2.32505.08805

TODO Do Exist

TODO Finally we check, if these dois exist but are not ingested into OpenAlex. This is done using the doi.org resolver This is disabled at the moment and still needs to be implemented.

Reuse

Citation

BibTeX citation:
@report{krug,
  author = {Krug, Rainer M.},
  title = {Bibliography {Report}},
  langid = {en},
  abstract = {Reports analysing the IPBES Libraries on Zotero.}
}
For attribution, please cite this work as:
Krug, Rainer M. n.d. “Bibliography Report.”