{"id":15373708,"url":"https://github.com/maxheld83/biblids","last_synced_at":"2026-01-28T05:52:38.178Z","repository":{"id":73224528,"uuid":"317611495","full_name":"maxheld83/biblids","owner":"maxheld83","description":"Validating with bibliometric identifiers","archived":false,"fork":false,"pushed_at":"2022-04-29T15:58:37.000Z","size":319,"stargazers_count":2,"open_issues_count":27,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-12T20:45:35.249Z","etag":null,"topics":["bibliometrics","doi","rstats","rstats-package"],"latest_commit_sha":null,"homepage":"https://maxheld.de/biblids/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxheld83.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-01T17:05:03.000Z","updated_at":"2022-05-23T08:03:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"78a7275a-617d-4733-b674-f6f110bc4d05","html_url":"https://github.com/maxheld83/biblids","commit_stats":{"total_commits":144,"total_committers":1,"mean_commits":144.0,"dds":0.0,"last_synced_commit":"0a44b82075430e54316bbad97df32fd9a705af78"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxheld83%2Fbiblids","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxheld83%2Fbiblids/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxheld83%2Fbiblids/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxheld83%2Fbiblids/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxheld83","download_url":"https://codeload.github.com/maxheld83/biblids/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247500440,"owners_count":20948875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bibliometrics","doi","rstats","rstats-package"],"created_at":"2024-10-01T13:56:07.646Z","updated_at":"2026-01-28T05:52:33.125Z","avatar_url":"https://github.com/maxheld83.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# biblids\n\n\u003c!-- badges: start --\u003e\n[![Main](https://github.com/subugoe/biblids/workflows/.github/workflows/main.yaml/badge.svg)](https://github.com/subugoe/biblids/actions)\n[![Codecov test coverage](https://codecov.io/gh/subugoe/biblids/branch/master/graph/badge.svg)](https://codecov.io/gh/subugoe/biblids?branch=master)\n[![CRAN status](https://www.r-pkg.org/badges/version/biblids)](https://CRAN.R-project.org/package=biblids)\n[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html#stable)\n\u003c!-- badges: end --\u003e\n\nIn bibliometric analysis, we frequently work with specialised identifiers, such as [Digital Object Identifiers (DOIs)](https://www.doi.org) or [Research Organisation Registry IDs (RORs)](https://ror.org).\nThe goal of biblids is to help you work with these identifiers.\n\n## Vctrs S3 Classes\n\nBiblids implements bibliometric identifiers as S3 classes based on the [vctrs](https://vctrs.r-lib.org) package.\nThese object-oriented (OO) extensions teach R what, for example, a DOI is.\n\nYou don't have to know anything about OO, vctrs or even S3 to use biblids.\nBibliographic identifiers should just work as you might expect them to.\nFor example, with biblids, R \"understands\" that `10.1038/nphys1170`, `https://doi.org/10.1038/nphys1170` and `10.1038/NPHYS1170` are all the same DOI.\n\nEach bibliometric identifier comes with a family of functions:\n\n- A **constructor** function to help you create valid IDs, such as `doi()` for the `biblids_doi` class.\n- **Casting** methods to help you **normalise** IDs, such as `as_doi()`.\n- **Extraction** functions to extract valid IDs from arbitrary text such as `str_extract_all_doi()` as well as the underlying **regular expressions** `regex_doi()`.\n- **Predicate** functions to test whether some object is (`is_doi()`) or could be (`is_doi_ish()`) a bibliometric ID.\n- **Some examples** to play with, such as `doi_examples()`.\n- **Other methods** to fully support bibliometrics in R, including for presentation (`format()`), logic (`is.na()`) or arithmetic.\n\nFor large sets of identifiers (such as the DOIs), only the syntax is validated.\nFor smaller sets (such as RORs), the package ships with datasets including presently valid identifiers, or wrappers to pull such information from external sources.\n\n## Optional Extensions\n\nBiblids is designed to be lightweight and comes with minimal `Imports` dependencies.\nTo install the package with minimal dependencies run:\n\n```r\nremotes::install_github(\"subugoe/biblids\")\n```\n\nAdditional features are enabled when you have `Suggests` packages installed.\nInstall these extended dependencies by running:\n\n```r\nremotes::install_github(\"subugoe/biblids\", dependencies = TRUE)\n```\n\n### Presentation Methods\n\nBibliographic IDs are displayed appropriately in various output formats, such as inside [knitr](https://yihui.org/knitr/)/[rmarkdown](https://rmarkdown.rstudio.com) documents and [tibble](http://tibble.tidyverse.org) tables.\nFor example, `knit_print.biblids_doi()` will automatically render DOIs appropriately.\n\n### Shiny Input Modules\n\nYou can rely on ready-made, well-tested [shiny](https://shiny.rstudio.com) input modules to ingest and validate bibliographic identifiers.\nThis may be helpful inside a bibliographic dashboard or another shiny app, where users can supply their own data for an analysis.\n\nFor example, you can ingest DOIs using `doiEntryApp()`.\n\n### Minimal API Clients\n\nBiblids also includes some API clients to resolve bibliomatric IDs and query related databases.\n\nThese clients are minimal API clients in the spirit of [gh](https://github.com/r-lib/gh).\nThey do *not* comprehensively duplicate external APIs in an R interface.\n\nThese wrappers are limited:\n\n- They only cover APIs which do not already have an R client (such as [rcrossref](https://github.com/ropensci/rcrossref)).\n- They only cover relatively simple APIs, where the output can be transformed into a straightforward R object.\n\nThey come in two forms:\n\n1. You can use a thin wrapper around [httr](https://httr.r-lib.org) two write your own queries.\n    These will usually return a deeply nested list for you to wrangle.\n    \n    For example, you can \"roll your own\" query with `get_doi_handles()`.\n1. You can use some ready-made R functions with common queries baked in.\n    These will usually return a simple vector.\n    \n    For example, you can test whether a doi has been published with `is_doi_found()`, or retrieve the resolved URL `resolve_doi()`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxheld83%2Fbiblids","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxheld83%2Fbiblids","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxheld83%2Fbiblids/lists"}