| Title: | Resolution, Conversion, Linking and Metadata for Scholarly Identifiers |
|---|---|
| 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. |
| Authors: | Thomas Rauter [aut, cre, fnd] (ORCID: <https://orcid.org/0009-0004-5578-3628>) |
| Maintainer: | Thomas Rauter <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.1 |
| Built: | 2026-06-07 14:57:09 UTC |
| Source: | https://github.com/thomas-rauter/scholidonline |
Convert scholarly identifiers across registries, for example from PMID to DOI.
id_convert( x, to = scholidonline_types(), from = NULL, provider = c("auto", .scholidonline_providers()), ..., quiet = FALSE )id_convert( x, to = scholidonline_types(), from = NULL, provider = c("auto", .scholidonline_providers()), ..., quiet = FALSE )
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 |
A character vector of converted identifiers. Elements that cannot
be identified, normalized, or converted return NA_character_.
id_convert("12345678", to = "doi", from = "pmid") id_convert("10.1038/nature12373", to = "pmid", from = "doi")id_convert("12345678", to = "doi", from = "pmid") id_convert("10.1038/nature12373", to = "pmid", from = "doi")
Check whether scholarly identifiers are found in their respective registries.
id_exists( x, type = c("auto", scholidonline_types()), provider = c("auto", .scholidonline_providers()), ..., quiet = FALSE )id_exists( x, type = c("auto", scholidonline_types()), provider = c("auto", .scholidonline_providers()), ..., quiet = FALSE )
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 |
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.
id_exists("10.1038/nature12373", type = "doi") id_exists(c("31452104", "PMC6784763"))id_exists("10.1038/nature12373", type = "doi") id_exists(c("31452104", "PMC6784763"))
Return identifiers that external registries link to the same scholarly record or to a closely corresponding version of it.
id_links( x, type = c("auto", scholidonline_types()), provider = c("auto", .scholidonline_providers()), ..., quiet = FALSE )id_links( x, type = c("auto", scholidonline_types()), provider = c("auto", .scholidonline_providers()), ..., quiet = FALSE )
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 |
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.
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.
out <- id_links("31452104", provider = "epmc") knitr::kable(out)out <- id_links("31452104", provider = "epmc") knitr::kable(out)
Retrieve structured metadata for scholarly identifiers from external registries.
id_metadata( x, type = c("auto", scholidonline_types()), provider = c("auto", .scholidonline_providers()), fields = NULL, ..., quiet = FALSE )id_metadata( x, type = c("auto", scholidonline_types()), provider = c("auto", .scholidonline_providers()), fields = NULL, ..., quiet = FALSE )
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 |
id_metadata() is vectorized over x and returns a data.frame with one row
per input identifier.
For providers that support batch lookup, such as arXiv, multiple identifiers may be resolved using a single provider request. This does not change the public return shape: the output still contains 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.
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.
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)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)
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.
scholidonline_capabilities()scholidonline_capabilities()
A data.frame with one row per supported capability and the following columns:
type: source identifier type
operation: operation name (exists, links, meta,
or convert)
target: target identifier type for conversion operations,
otherwise NA
providers: comma-separated names of providers supporting the
capability
default_provider: default provider used when
provider = "auto"
caps <- scholidonline_capabilities() subset(caps, type == "pmid" & operation == "convert") subset(caps, type == "doi" & target == "pmcid")caps <- scholidonline_capabilities() subset(caps, type == "pmid" & operation == "convert") subset(caps, type == "doi" & target == "pmcid")
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.
scholidonline_types()scholidonline_types()
A character vector of supported identifier type strings.
scholidonline_types() "doi" %in% scholidonline_types()scholidonline_types() "doi" %in% scholidonline_types()