Report Assessment Ch1 Evidence Causes

Data Management Report

Author
Affiliation

Rainer M, Krug

Doi
Abstract

A short description what this is about. This is not a tracditional abstract, but rather something else …

DOI GitHub release GitHub commits since latest release License: CC BY 4.0

Working Title

IPBES_TCA_Ch1_evidence_causes

Code repo

Build No: 405

The BuidNo is automatically increased by one each time the report is rendered. It is used to indicate different renderings when the version stays the same.

TODO

Introduction

All searches are done on all works in OpenAlex. The search in the TCA Corpus is not possibly at the moment, but we are working on it.

The following steps will be done in documented in this report:

See Google Doc with search terms and questions for details.

Methods

Show the code
count$nature_corpus <- openalexR::oa_fetch(
    title_and_abstract.search = nature_st,
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

count$tca_corpus <- openalexR::oa_fetch(
    title_and_abstract.search = compact(tca_corpus_st),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

1. Ethical arguments for transformative change

The search terms is ethical on OpenAlex.

Show the code
count$ethical <- openalexR::oa_fetch(
    title_and_abstract.search = ethical_st,
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

The search terms is ethical on TCA Corpus.

Show the code
#|

count$ethical_tca <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", ethical_st, ") AND (", tca_corpus_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

2. Assessing broader biodiversity concepts

The search terms is concepts_1 Open Alex search.

The concepts_1 search returns a subset of the nature corpus as biodiversity is a subset of the nature corpus. Therefore, it is not nbecessary to subset the nature corpus and the search can be done on the complete OpenAlex corpus .

Show the code
#|

count$concepts_1 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", nature_st, ") AND (", concepts_1_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
Show the code
#|

count$concepts_2 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", nature_st, ") AND (", concepts_2_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

Assessing the broader biodiversity concepts by searching for concepts_1 corpus AND concepts_2 corpus

Show the code
#|

count$concepts_1_2 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", nature_st, ") AND (", concepts_1_st, ") AND (", concepts_2_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

3. Assessing disciplinary bias in the nature corpus

To be discussed

4. Narrowed transformative change corpus

Here the term narrowed_tca is used to narrow down the TCA corpus.

Show the code
#|

count$narrowed_tca <- openalexR::oa_fetch(
    title_and_abstract.search = compact(narrowed_tca_st),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

count$narrowed_tca_tca <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", tca_corpus_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

##########

set.seed(13)
data <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", tca_corpus_st, ")")),
    options = list(
        select = c(
            "id",
            "doi",
            "authorships",
            "publication_year",
            "display_name",
            "abstract_inverted_index"
        ),
        sample = 250,
        seed = 13
    ),
    count_only = FALSE,
    output = "tibble",
    verbose = TRUE
) |> dplyr::mutate(
    ab = substr(ab, 1, 5000)
)

data$author_abbr <- IPBES.R::abbreviate_authors(data)

data |>
    dplyr::select(
        id,
        doi,
        author = author_abbr,
        title = display_name,
        abstract = ab
    ) |>
    writexl::write_xlsx(path = file.path("ch1_evidence_causes", "data", "samples_4.2_narrowed_tca.xlsx"))
rm(data)

##########


count$narrowed_tca_nature <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", nature_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

5. Assessing criteria in the narrowed TFC corpus

Here the terms about criteria are used: - criteria_1 - criteria_2 - criteria_3 - criteria_4

Show the code
#|

count$narrowed_tca_c1 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", criteria_1_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

##########

set.seed(13)
data <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", criteria_1_st, ")")),
    options = list(
        select = c(
            "id",
            "doi",
            "authorships",
            "publication_year",
            "display_name",
            "abstract_inverted_index"
        ),
        sample = 250,
        seed = 13
    ),
    count_only = FALSE,
    output = "tibble",
    verbose = TRUE
) |> dplyr::mutate(
    ab = substr(ab, 1, 5000)
)

data$author_abbr <- IPBES.R::abbreviate_authors(data)

data |>
    dplyr::select(
        id,
        doi,
        author = author_abbr,
        title = display_name,
        abstract = ab
    ) |>
    writexl::write_xlsx(path = file.path("ch1_evidence_causes", "data", "samples_5.1_narrowed_criteria1.xlsx"))
rm(data)

##########

count$narrowed_tca_c2 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", criteria_2_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

##########

set.seed(13)
data <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", criteria_2_st, ")")),
    options = list(
        select = c(
            "id",
            "doi",
            "authorships",
            "publication_year",
            "display_name",
            "abstract_inverted_index"
        ),
        sample = 250,
        seed = 13
    ),
    count_only = FALSE,
    output = "tibble",
    verbose = TRUE
) |> dplyr::mutate(
    ab = substr(ab, 1, 5000)
)

data$author_abbr <- IPBES.R::abbreviate_authors(data)

data |>
    dplyr::select(
        id,
        doi,
        author = author_abbr,
        title = display_name,
        abstract = ab
    ) |>
    writexl::write_xlsx(path = file.path("ch1_evidence_causes", "data", "samples_5.2_narrowed_criteria2.xlsx"))
rm(data)

##########

count$narrowed_tca_c3 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ")  AND (", criteria_3_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

##########

set.seed(13)
data <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", criteria_3_st, ")")),
    options = list(
        select = c(
            "id",
            "doi",
            "authorships",
            "publication_year",
            "display_name",
            "abstract_inverted_index"
        ),
        sample = 250,
        seed = 13
    ),
    count_only = FALSE,
    output = "tibble",
    verbose = TRUE
) |> dplyr::mutate(
    ab = substr(ab, 1, 5000)
)

data$author_abbr <- IPBES.R::abbreviate_authors(data)

data |>
    dplyr::select(
        id,
        doi,
        author = author_abbr,
        title = display_name,
        abstract = ab
    ) |>
    writexl::write_xlsx(path = file.path("ch1_evidence_causes", "data", "samples_5.3_narrowed_criteria3.xlsx"))
rm(data)

##########

count$narrowed_tca_c4 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", criteria_4_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

##########

set.seed(13)
data <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", narrowed_tca_st, ") AND (", criteria_4_st, ")")),
    options = list(
        select = c(
            "id",
            "doi",
            "authorships",
            "publication_year",
            "display_name",
            "abstract_inverted_index"
        ),
        sample = 250,
        seed = 13
    ),
    count_only = FALSE,
    output = "tibble",
    verbose = TRUE
) |> dplyr::mutate(
    ab = substr(ab, 1, 5000)
)

data$author_abbr <- IPBES.R::abbreviate_authors(data)

data |>
    dplyr::select(
        id,
        doi,
        author = author_abbr,
        title = display_name,
        abstract = ab
    ) |>
    writexl::write_xlsx(path = file.path("ch1_evidence_causes", "data", "samples_5.4_narrowed_criteria4.xlsx"))
rm(data)

##########

6. Assessing the literature that discusses the causes of biodiversity loss

(using the full Nature corpus, the narrowed TFC corpus and the overlap between the full nature corpus and the narrowed TFC corpus) – for thematic analysis

Here the terms about criteria are used:

These need to be AND with - Nature Corpus - Narrowed TFC Corpus - Nature Corpus AND Narrowed TFC Corpus

Show the code
#|


count$st_1_nat <- openalexR::oa_fetch(
    title_and_abstract.search = st_1_nat,
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

count$st_2_tca <- openalexR::oa_fetch(
    title_and_abstract.search = st_2_tca,
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

count$st_3_nat <- openalexR::oa_fetch(
    title_and_abstract.search = st_3_nat,
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count



count$biodiv_loss_nat_s_1 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_1_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_nat_s_2 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_2_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_nat_s_3 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_3_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_nat_s_4 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_4_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_nat_s_5 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_5_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count



count$biodiv_loss_narrowed_s_1 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_1_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_narrowed_s_2 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_2_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_narrowed_s_3 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_3_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_narrowed_s_1 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_4_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_narrowed_s_5 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_5_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count


count$biodiv_loss_nat_narrowed_s_1 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_1_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_nat_narrowed_s_2 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_2_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_nat_narrowed_s_3 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_3_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_nat_narrowed_s_4 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_4_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count
count$biodiv_loss_nat_narrowed_s_5 <- openalexR::oa_fetch(
    title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_5_st, ")")),
    count_only = TRUE,
    output = "list",
    verbose = TRUE
)$count

Download Corpora

Show the code
#|

if (!file.exists(params$fn_corpus_6)) {
    corpus_6$st_1_nat <- openalexR::oa_fetch(
        title_and_abstract.search = st_1_nat,
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)

    corpus_6$st_2_tca <- openalexR::oa_fetch(
        title_and_abstract.search = st_2_tca,
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)

    corpus_6$st_3_nat <- openalexR::oa_fetch(
        title_and_abstract.search = st_3_nat,
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)

    corpus_6$biodiv_loss_nat_s_1 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_1_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_nat_s_2 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_2_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_nat_s_3 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_3_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_nat_s_4 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_4_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_nat_s_5 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_1_nat, ") AND (", biodiv_loss_3_5_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)

    corpus_6$biodiv_loss_narrowed_s_1 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_1_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_narrowed_s_2 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_2_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_narrowed_s_3 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_3_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_narrowed_s_4 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_4_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_narrowed_s_5 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_2_tca, ") AND (", biodiv_loss_3_5_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)

    corpus_6$biodiv_loss_nat_narrowed_s_1 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_1_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_nat_narrowed_s_2 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_2_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_nat_narrowed_s_3 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_3_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_nat_narrowed_s_4 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_4_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)
    corpus_6$biodiv_loss_nat_narrowed_s_5 <- openalexR::oa_fetch(
        title_and_abstract.search = compact(paste0("(", st_3_nat, ") AND (", biodiv_loss_3_5_st, ")")),
        output = "dataframe",
        verbose = TRUE
    ) |>
        dplyr::distinct(id, .keep_all = TRUE)

    saveRDS(corpus_6, file = params$fn_corpus_6)
}

Save the Counts

Show the code
#|

saveRDS(count, params$fn_count)

Export data

export Part 6 to Excel

Show the code
if (!file.exists(params$fn_corpus_6_xlsx)) {
    corpus_6 <- readRDS(params$fn_corpus_6)[-1]

    for (nm in names(corpus_6)) {
        corpus_6[[nm]] <- corpus_6[[nm]] |>
            dplyr::select(
                id,
                doi,
                title = display_name,
                abstract = ab,
                author,
                publication_year
            ) |>
            dplyr::mutate(
                abstract = substr(abstract, 1, 5000),
                set = nm
            )
        corpus_6[[nm]]$author_abbr <- IPBES.R::abbreviate_authors(corpus_6[[nm]])
        corpus_6[[nm]] <- corpus_6[[nm]] |>
            dplyr::select(
                id,
                doi,
                author_abbr,
                title,
                abstract,
                set
            )
    }

    all <- do.call(rbind, corpus_6) |>
        dplyr::mutate(
            set = NULL
        ) |>
        dplyr::distinct(
            id,
            .keep_all = TRUE
        )

    for (nm in names(corpus_6)) {
        corpus_6[[nm]] <- corpus_6[[nm]] |>
            dplyr::select(
                id
            ) |>
            dplyr::mutate(
                set = "X"
            )
        names(corpus_6[[nm]])[2] <- nm
    }

    all <- all |>
        dplyr::full_join(
            corpus_6$st_1_nat,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$st_2_tca,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$st_3_nat,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_s_1,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_s_2,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_s_3,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_s_4,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_s_5,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_narrowed_s_1,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_narrowed_s_2,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_narrowed_s_3,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_narrowed_s_4,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_narrowed_s_5,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_narrowed_s_1,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_narrowed_s_2,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_narrowed_s_3,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_narrowed_s_4,
            by = "id"
        ) |>
        dplyr::full_join(
            corpus_6$biodiv_loss_nat_narrowed_s_5,
            by = "id"
        )

    names(all)[-(1:5)] <- c(
        "6.1", "6.2", "6.3",
        "6.1.1", "6.1.2", "6.1.3", "6.1.4", "6.1.5",
        "6.2.1", "6.2.2", "6.2.3", "6.2.4", "6.2.5",
        "6.3.1", "6.3.2", "6.3.3", "6.3.4", "6.3.5"
    )

    writexl::write_xlsx(all, path = params$fn_corpus_6_xlsx)
    rm(all, corpus_6)
}

Greate Graph

Show the code
#|

basename <- file.path("ch1_evidence_causes", "figures", "Ch1_evidence_causes")

nf <- list.files(
    path = dirname(basename),
    pattern = basename(basename)
) |>
    length()

if (nf < 3) {
    puml <- readLines(file.path("ch1_evidence_causes", "input", "Ch1_evidence_causes.plantuml"))

    ## 0.[1:2]]
    puml <- gsub(
        pattern = "%$%0.1%$%",
        replacement = paste0("**n = ", count$nature_corpus |> format(big.mark = ","), "**\\n---\\nnature_corpus"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%0.2%$%",
        replacement = paste0("**n = ", count$tca_corpus |> format(big.mark = ","), "**\\n---\\ntca_corpus"),
        x = puml,
        fixed = TRUE
    )

    ## 1
    puml <- gsub(
        pattern = "%$%1%$%",
        replacement = paste0("**n = ", count$ethical |> format(big.mark = ","), "**\\n---\\nethical"),
        x = puml,
        fixed = TRUE
    )

    ## 2.[1:2]
    puml <- gsub(
        pattern = "%$%2.1%$%",
        replacement = paste0("**n = ", count$concepts_1 |> format(big.mark = ","), "**\\n---\\nconcepts_1"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%2.2%$%",
        replacement = paste0("**n = ", count$concepts_2 |> format(big.mark = ","), "**\\n---\\nconcepts_2"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%2.3%$%",
        replacement = paste0("**n = ", count$concepts_1_2 |> format(big.mark = ","), "**\\n---\\nconcepts_1_2"),
        x = puml,
        fixed = TRUE
    )

    ## 3 OUTSTANDING

    ## 4.[1:2]
    puml <- gsub(
        pattern = "%$%4.1%$%",
        replacement = paste0("**n = ", count$narrowed_tca_tca |> format(big.mark = ","), "**\\n---\\nnarrowed_tca_tca"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%4.2%$%",
        replacement = paste0("**n = ", count$narrowed_tca |> format(big.mark = ","), "**\\n---\\nnarrowed_tca"),
        x = puml,
        fixed = TRUE
    )

    ## 5.[1:4]
    puml <- gsub(
        pattern = "%$%5.1%$%",
        replacement = paste0("**n = ", count$narrowed_tca_c1 |> format(big.mark = ","), "**\\n---\\nnarrowed_tca_c1"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%5.2%$%",
        replacement = paste0("**n = ", count$narrowed_tca_c2 |> format(big.mark = ","), "**\\n---\\nnarrowed_tca_c2"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%5.3%$%",
        replacement = paste0("**n = ", count$narrowed_tca_c3 |> format(big.mark = ","), "**\\n---\\nnarrowed_tca_c3"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%5.4%$%",
        replacement = paste0("**n = ", count$narrowed_tca_c4 |> format(big.mark = ","), "**\\n---\\nnarrowed_tca_c4"),
        x = puml,
        fixed = TRUE
    )

    ## 6.[1:3]
    puml <- gsub(
        pattern = "%$%6.1%$%",
        replacement = paste0("**n = ", count$st_1_nat |> format(big.mark = ","), "**\\n---\\nst_1_nat"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.2%$%",
        replacement = paste0("**n = ", count$st_2_tca |> format(big.mark = ","), "**\\n---\\nst_2_tca"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.3%$%",
        replacement = paste0("**n = ", count$st_3_nat |> format(big.mark = ","), "**\\n---\\nst_3_nat"),
        x = puml,
        fixed = TRUE
    )

    ## 6.1.[1:5]
    puml <- gsub(
        pattern = "%$%6.1.1%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_s_1 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_s_1"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.1.2%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_s_2 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_s_2"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.1.3%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_s_3 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_s_3"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.1.4%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_s_4 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_s_4"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.1.5%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_s_5 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_s_5"),
        x = puml,
        fixed = TRUE
    )

    ## 6.2.[1:5]
    puml <- gsub(
        pattern = "%$%6.2.1%$%",
        replacement = paste0("**n = ", count$biodiv_loss_narrowed_s_1 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_narrowed_s_1"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.2.2%$%",
        replacement = paste0("**n = ", count$biodiv_loss_narrowed_s_2 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_narrowed_s_2"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.2.3%$%",
        replacement = paste0("**n = ", count$biodiv_loss_narrowed_s_3 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_narrowed_s_3"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.2.4%$%",
        replacement = paste0("**n = ", count$biodiv_loss_narrowed_s_4 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_narrowed_s_4"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.2.5%$%",
        replacement = paste0("**n = ", count$biodiv_loss_narrowed_s_5 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_narrowed_s_5"),
        x = puml,
        fixed = TRUE
    )

    ## 6.3.[1:5]
    puml <- gsub(
        pattern = "%$%6.3.1%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_narrowed_s_1 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_narrowed_s_1"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.3.2%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_narrowed_s_2 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_narrowed_s_2"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.3.3%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_narrowed_s_3 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_narrowed_s_3"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.3.4%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_narrowed_s_4 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_narrowed_s_4"),
        x = puml,
        fixed = TRUE
    )
    puml <- gsub(
        pattern = "%$%6.3.5%$%",
        replacement = paste0("**n = ", count$biodiv_loss_nat_narrowed_s_5 |> format(big.mark = ","), "**\\n---\\nbiodiv_loss_nat_narrowed_s_5"),
        x = puml,
        fixed = TRUE
    )

    puml |>
        paste(collapse = "\n") |>
        plantuml::plantuml() |>
        plantuml::get_graph(
            file = file.path("ch1_evidence_causes", "figures", "Ch1_evidence_causes.pdf")
        )

    puml |>
        paste(collapse = "\n") |>
        plantuml::plantuml() |>
        plantuml::get_graph(
            file = file.path("ch1_evidence_causes", "figures", "Ch1_evidence_causes.svg")
        )

    puml |>
        paste(collapse = "\n") |>
        plantuml::plantuml() |>
        plantuml::get_graph(
            file = file.path("ch1_evidence_causes", "figures", "Ch1_evidence_causes.png")
        )
}

Results

1. Ethical arguments for transformative change

Subset of TCA Corpus

How many, what percentage, and what papers in the full TC corpus?

The Ethics Corpus consists of 135025 works, which is 2.85% of the TCA Corpus

2. Assessing broader biodiversity concepts

Subset of OpenAlex Corpus

The Concepts 1 Corpus (talking about biodiversity in relation to conservation, management, policy, or governance ) consists of 242186 works, which is 0.93% of the Nature Corpus. Of these, 63160 (% of Nature Corpus and % of the Concept 1 Corpus) works also talk about broader than non-human species and ecosystems.

3. Assessing disciplinary bias in the nature corpus

To be discussed

4. Narrowed TFC corpus

Subset of TCA Corpus

The Narrowed TFC Corpus consists of 1059666 works, which is 22.4% of the TCA Corpus.

Subset of Nature Corpus

The Narrowed Nature Corpus consists of 1175388 works, which is 4.49% of the Nature Corpus.

5. Assessing criteria in the Narrowed TFC corpus

Criteria 1

284036 works in the narrowed TCA Corpus, which is 26.8% of the Narrowed TCA Corpus.

Criteria 2

410758 works in the narrowed TCA Corpus, which is 38.76% of the Narrowed TCA Corpus.

Criteria 3

575643 works in the narrowed TCA Corpus, which is 54.32% of the Narrowed TCA Corpus.

Criteria 4

866756 works in the narrowed TCA Corpus, which is 81.8% of the Narrowed TCA Corpus.

6. Assessing the literature that discusses the causes of biodiversity loss

Nature Corpus AND Step 1 AND Step 2

  • 1568 works in the Nature Corpus crossed with Step 1 and Step 2 terms, which is 0.01% of the Nature Corpus

There are the following numbers of wotks in the Nature Corpus:

  • 229 works in the Nature Corpus that discuss the Topic 1, which is 0%
  • 31 works in the Nature Corpus that discuss the Topic 2, which is 0%
  • 63 works in the Nature Corpus that discuss the Topic 3, which is 0%
  • 193 works in the Nature Corpus that discuss the Topic 4, which is 0%
  • 217 works in the Nature Corpus that discuss the Topic 5, which is 0%

Narrowed TCA Corpus AND Step 1 AND Step 2

  • 378 works in the Narrowed TCA Corpus crossed the NAture Corpus and with Step 1 and Step 2 terms, which is 0.04% of the Narrowed TCA Corpus

There are the following numbers of wotks in the Narrowed TCA Corpus:

  • 99 works in the Narrowed TFC Corpus that discuss the Topic 1, which is 0.01%
  • 20 works in the Narrowed TFC Corpus that discuss the Topic 2, which is 0%
  • 36 works in the Narrowed TFC Corpus that discuss the Topic 3, which is 0%
  • **** works in the Narrowed TFC Corpus that discuss the Topic 4, which is %
  • 92 works in the Narrowed TFC Corpus that discuss the Topic 5, which is 0.01%

Nature Corpus AND Narrowed TCA Corpus AND Step 1 AND Step 2

  • 448 works in the Narrowed TCA Corpus crossed with Step 1 and Step 2 terms, which is 0.04% of the Narrowed TCA Corpus

There are the following numbers of wotks in the Nature Corpus AND Narrowed TCA Corpus:

  • 89 works in the Nature Corpus AND Narrowed TFC Corpus that discuss the Topic 1, which is 0.01%
  • 20 works in the Nature Corpus AND Narrowed TFC Corpus that discuss the Topic 2, which is 0%
  • 33 works in the Nature Corpus AND Narrowed TFC Corpus that discuss the Topic 3, which is 0%
  • 99 works in the Nature Corpus AND Narrowed TFC Corpus that discuss the Topic 4, which is 0.01%
  • 85 works in the Nature Corpus AND Narrowed TFC Corpus that discuss the Topic 5, which is 0.01%

Diagram

LegendSearch TermLink to search termNumber of Worksn = number of works fron searchessection numberinternal name of variableOpenAlexSearch TermNATURENumber of Worksn = 26,165,9860.1nature_corpusSearch TermNATUREANDTFCNumber of Worksn = 4,731,124-0.2-tca_corpusSearch TermNATUREANDTFCSearch TermETHITCALNumber of Worksn = 1,589,9131ethicalSearch TermCONCEPTS 1Number of Worksn = 242,1862.1concepts_1Search TermCONCEPTS 2Number of Worksn = 2,624,9832.2concepts_2Number of Worksn = 63,1602.3concepts_1_2Search TermNARROWED TCANumber of Worksn = 1,059,6664.1narrowed_tca_tcaNumber of Worksn = 5,641,3264.2narrowed_tcaSearch TermCRITERIA 1Number of Worksn = 284,0365.1narrowed_tca_c1Search TermCRITERIA 2Number of Worksn = 410,7585.2narrowed_tca_c2Search TermCRITERIA 3Number of Worksn = 575,6435.3narrowed_tca_c3Search TermCRITERIA 4Number of Worksn = 866,7565.4narrowed_tca_c4Search TermBIODIV LOSS 1Search TermBIODIV LOSS 2Number of Worksn = 1,5686.1st_1_natNumber of Worksn = 4486.2st_2_tcaNumber of Worksn = 3786.3st_3_natSearch TermBIODIV LOSS 3 1Search TermBIODIV LOSS 3 2Search TermBIODIV LOSS 3 3Search TermBIODIV LOSS 3 4Search TermBIODIV LOSS 3 5Number of Worksn = 2296.1.1biodiv_loss_nat_s_1Number of Worksn = 316.1.2biodiv_loss_nat_s_2Number of Worksn = 636.1.3biodiv_loss_nat_s_3Number of Worksn = 1936.1.4biodiv_loss_nat_s_4Number of Worksn = 2176.1.5biodiv_loss_nat_s_5Number of Worksn = 996.2.1biodiv_loss_narrowed_s_1Number of Worksn = 206.2.2biodiv_loss_narrowed_s_2Number of Worksn = 366.2.3biodiv_loss_narrowed_s_3Number of Worksn = NULL6.2.4biodiv_loss_narrowed_s_4Number of Worksn = 926.2.5biodiv_loss_narrowed_s_5Number of Worksn = 896.3.1biodiv_loss_nat_narrowed_s_1Number of Worksn = 206.3.2biodiv_loss_nat_narrowed_s_2Number of Worksn = 336.3.3biodiv_loss_nat_narrowed_s_3Number of Worksn = 996.3.4biodiv_loss_nat_narrowed_s_4Number of Worksn = 856.3.5biodiv_loss_nat_narrowed_s_5

Overview of the analysis and results.

Reuse

Citation

BibTeX citation:
@report{krug,
  author = {Krug , Rainer M},
  title = {Report {Assessment} {Ch1} {Evidence} {Causes}},
  doi = {XXXXXX},
  langid = {en},
  abstract = {A short description what this is about. This is not a
    tracditional abstract, but rather something else ...}
}
For attribution, please cite this work as:
Krug, Rainer M. n.d. “Report Assessment Ch1 Evidence Causes.” IPBES Data Management Report. https://doi.org/XXXXXX.