scholidonline

R-CMD-check Codecov test coverage

scholidonline provides lightweight online utilities for working with scholarly identifiers in R. It builds on scholid for identifier detection and normalization, and adds minimal-dependency functions to query external registries.

See the full documentation at the scholidonline website.

Installation

Install the released version from CRAN:

install.packages("scholidonline")

Scope

The package focuses on online operations for common identifier systems used in scholarly communication:

It provides registry-backed functionality such as:

Interface

User-available functions:

Function Purpose
scholidonline_types() Supported scholidonline identifier types
scholidonline_capabilities() Supported scholidonline capabilities
id_exists() Check whether identifiers exist in their respective registries
id_convert() Convert identifiers across systems (e.g., PMID → DOI)
id_metadata() Retrieve basic structured metadata
id_links() Discover identifiers linked to the same scholarly record

Examples

# List supported scholidonline identifier types
scholidonline::scholidonline_types()
## [1] "arxiv" "doi"   "orcid" "pmcid" "pmid"
# List scholidonline capabilities
scholidonline::scholidonline_capabilities()
##     type operation target               providers default_provider
## 1  arxiv    exists   <NA>             auto, arxiv            arxiv
## 2  arxiv     links   <NA>             auto, arxiv            arxiv
## 3  arxiv      meta   <NA>             auto, arxiv            arxiv
## 4    doi    exists   <NA> auto, doi.org, crossref          doi.org
## 5    doi     links   <NA>          auto, crossref         crossref
## 6    doi      meta   <NA> auto, crossref, doi.org         crossref
## 7    doi   convert   pmid        auto, ncbi, epmc             ncbi
## 8    doi   convert  pmcid        auto, ncbi, epmc             ncbi
## 9  orcid    exists   <NA>             auto, orcid            orcid
## 10 orcid     links   <NA>             auto, orcid            orcid
## 11 orcid      meta   <NA>             auto, orcid            orcid
## 12 pmcid    exists   <NA>        auto, ncbi, epmc             ncbi
## 13 pmcid     links   <NA>        auto, ncbi, epmc             ncbi
## 14 pmcid      meta   <NA>        auto, ncbi, epmc             ncbi
## 15 pmcid   convert   pmid        auto, ncbi, epmc             ncbi
## 16 pmcid   convert    doi        auto, ncbi, epmc             ncbi
## 17  pmid    exists   <NA>        auto, ncbi, epmc             ncbi
## 18  pmid     links   <NA>        auto, ncbi, epmc             ncbi
## 19  pmid      meta   <NA>        auto, ncbi, epmc             ncbi
## 20  pmid   convert    doi        auto, ncbi, epmc             ncbi
## 21  pmid   convert  pmcid        auto, ncbi, epmc             ncbi
# Check if an ID exists online
scholidonline::id_exists(
  "10.1000/182",
  type = "doi"
  )
## [1] TRUE
# Convert identifiers across systems
scholidonline::id_convert(
  "12345678",
  to = "doi",
  from = "pmid"
  )
## [1] "10.1234/2013/999990"
# Retrieve scholarly metadata
out <- scholidonline::id_metadata(
  "10.1038/nature12373",
  type = "doi"
  )

# Show key fields
knitr::kable(out)
input type provider title year container doi pmid pmcid url
10.1038/nature12373 doi crossref Nanometre-scale thermometry in a living cell 2013 Nature 10.1038/nature12373 NA NA https://doi.org/10.1038/nature12373
# Return identifiers linked to the same scholarly record
out <- scholidonline::id_links(
  "31452104",
  provider = "epmc"
  )

knitr::kable(out)
query query_type linked_type linked_id provider
2 31452104 pmid doi 10.1007/978-1-4939-9752-7_10 epmc

Relationship to scholid

scholid provides dependency-free utilities for detecting, normalizing, classifying, and extracting scholarly identifiers.

scholidonline builds on that foundation and adds online registry queries.

License

MIT