Online Resolution and Registry Validation

Introduction

This vignette explains what it means to validate scholarly identifiers against external registries and how scholidonline relates to scholid.

When working with identifiers programmatically, it is essential to distinguish between three levels of validity:

scholid operates at the structural (and, where applicable, checksum) level.

scholidonline operates at the registry level.


Structural vs Registry Validity

Structural Validity

Structural validity answers:

Example:

scholid::is_scholid(
  "10.1000/182",
  type = "doi"
  )
#> [1] TRUE

Structural validation uses regular expressions and, where applicable, checksum algorithms (e.g., ORCID).

It does not require internet access.

It does not confirm existence.


Registry Validity

Registry validity answers:

For example:

Example:

scholidonline::id_exists(
  "10.1000/182",
  type = "doi"
  )

Registry validation:

A structurally valid identifier may still fail registry validation.


Relationship to scholid

scholid classifies and normalizes identifier strings offline. scholidonline then queries external registries for types that have online support.

Identifiers must be classified and normalized with scholid before registry lookup in scholidonline. Structural validation in scholid does not imply registry support in scholidonline; use scholidonline_types() and scholidonline_capabilities() to see which types and operations are available online.