| Type: | Package |
| Title: | Resolution, Conversion, Linking and Metadata for Scholarly Identifiers |
| Version: | 0.1.0 |
| Language: | en-US |
| Description: | Enables querying of scholarly identifier services to verify identifier existence, convert identifiers across systems, retrieve bibliographic metadata, and discover linked identifiers. Supports common identifier types including DOI, PMID, PMCID, arXiv, and ORCID. |
| License: | MIT + file LICENSE |
| URL: | https://thomas-rauter.github.io/scholidonline/ |
| BugReports: | https://github.com/Thomas-Rauter/scholidonline/issues |
| Depends: | R (≥ 4.0.0) |
| Imports: | scholid, httr2, rlang |
| Suggests: | testthat (≥ 3.0.0), knitr (≥ 1.30), rmarkdown |
| Encoding: | UTF-8 |
| RoxygenNote: | 7.3.3 |
| Config/testthat/edition: | 3 |
| VignetteBuilder: | knitr |
| NeedsCompilation: | no |
| Packaged: | 2026-04-02 08:29:42 UTC; thomasrauter |
| Author: | Thomas Rauter |
| Maintainer: | Thomas Rauter <rauterthomas0@gmail.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-04-07 08:10:02 UTC |
Convert scholarly identifiers across systems
Description
Convert scholarly identifiers across registries, for example from PMID to DOI.
Usage
id_convert(
x,
to = scholidonline_types(),
from = NULL,
provider = c("auto", .scholidonline_providers()),
...,
quiet = FALSE
)
Arguments
x |
A character vector of scholarly identifiers. |
to |
A single target identifier type string, such as |
from |
A single source identifier type string, or |
provider |
A single provider string specifying which online service to
use for the conversion. Use |
... |
Reserved for future provider-specific arguments. |
quiet |
A single logical value; if |
Value
A character vector of converted identifiers. Elements that cannot
be identified, normalized, or converted return NA_character_.
Examples
id_convert("12345678", to = "doi", from = "pmid")
id_convert("10.1038/nature12373", to = "pmid", from = "doi")
Check whether scholarly identifiers exist
Description
Check whether scholarly identifiers are found in their respective registries.
Usage
id_exists(
x,
type = c("auto", scholidonline_types()),
provider = c("auto", .scholidonline_providers()),
...,
quiet = FALSE
)
Arguments
x |
A character vector of identifiers. |
type |
A single identifier type string, or |
provider |
A single provider string specifying which online service to
use for the lookup. Use |
... |
Reserved for future provider-specific arguments. |
quiet |
A single logical value; if |
Value
A logical vector. TRUE indicates that the identifier was found,
FALSE indicates that it was not found, and NA indicates that the
input could not be identified, normalized, or checked reliably.
Examples
id_exists("10.1038/nature12373", type = "doi")
id_exists(c("31452104", "PMC6784763"))
Return identifiers linked to the same scholarly record
Description
Return identifiers that external registries link to the same scholarly record or to a closely corresponding version of it.
Usage
id_links(
x,
type = c("auto", scholidonline_types()),
provider = c("auto", .scholidonline_providers()),
...,
quiet = FALSE
)
Arguments
x |
A character vector of identifiers. |
type |
A single identifier type string, or |
provider |
A single provider string specifying which online service to
use. Use |
... |
Reserved for future provider-specific arguments. |
quiet |
A single logical value; if |
Details
id_links() is vectorized over x and returns a long data.frame with one
row per discovered identifier link.
Typical links include DOI <-> PMID, DOI <-> PMCID, PMID <-> PMCID, arXiv ID <-> DOI, and ORCID -> DOI for works recorded in ORCID.
Only identifier links explicitly exposed by the queried provider are
returned. id_links() does not retrieve general metadata or broader related
records unless the provider represents them as direct identifier links.
Trivial self-links are excluded from the result.
Value
A data.frame with columns query, query_type, linked_type,
linked_id, and provider. If no links are found, a zero-row
data.frame with these columns is returned.
Examples
out <- id_links("31452104", provider = "epmc")
knitr::kable(out)
Retrieve scholarly metadata
Description
Retrieve structured metadata for scholarly identifiers from external registries.
Usage
id_metadata(
x,
type = c("auto", scholidonline_types()),
provider = c("auto", .scholidonline_providers()),
fields = NULL,
...,
quiet = FALSE
)
Arguments
x |
A character vector of identifiers. |
type |
A single identifier type string, or |
provider |
A single provider string specifying which online service to
use. Use |
fields |
An optional character vector naming the columns to return. If
|
... |
Reserved for future provider-specific arguments. |
quiet |
A single logical value; if |
Details
id_metadata() is vectorized over x and returns a data.frame with one row
per input identifier.
The function returns a consistent cross-provider subset of core bibliographic metadata, such as title, publication year, container title, linked DOI, PMID, PMCID, and a canonical URL when available.
Value
A data.frame with one row per input identifier. By default, the
returned columns are input, type, provider, title, year,
container, doi, pmid, pmcid, and url. Inputs that cannot be
identified, normalized, or resolved are returned as rows with missing
metadata fields.
Examples
out <- id_metadata("10.1038/nature12373", type = "doi")
knitr::kable(out)
out <- id_metadata(c("31452104", "PMC6821181"))
knitr::kable(out)
out <- id_metadata(
"10.1038/nature12373",
fields = c("title", "year", "doi")
)
knitr::kable(out)
Supported scholidonline capabilities
Description
Return a summary of the capabilities supported by the scholidonline package.
The returned table describes, for each supported identifier type:
which single-identifier operations are available (
exists,links,meta),which identifier conversions are available,
which providers support each capability, and
which provider is used by default when
provider = "auto".
This function is useful for discovering what scholidonline can do for a given identifier type or conversion pair.
Usage
scholidonline_capabilities()
Value
A data.frame with one row per supported capability and the following columns:
-
type: source identifier type -
operation: operation name (exists,links,meta, orconvert) -
target: target identifier type for conversion operations, otherwiseNA -
providers: comma-separated names of providers supporting the capability -
default_provider: default provider used whenprovider = "auto"
Examples
caps <- scholidonline_capabilities()
subset(caps, type == "pmid" & operation == "convert")
subset(caps, type == "doi" & target == "pmcid")
Supported scholidonline identifier types
Description
Return the set of identifier types supported by the scholidonline package.
This is the set of identifier types for which scholidonline provides registry-backed functionality, including existence checks, identifier conversion, metadata retrieval, and link discovery.
Usage
scholidonline_types()
Value
A character vector of supported identifier type strings.
Examples
scholidonline_types()
"doi" %in% scholidonline_types()