The Persistent Identifier Library allows to manipulate persistent identifiers that are used to locate scholar resources online. The library knows about the following formats:
- isbn: International Standard Book Number (https://isbn.org)
- issn: International Standard Serial Number (https://www.issn.org)
- doi: Digital Object identifier (https://www.doi.org)
- pmid: PubMed (https://pubmed.ncbi.nlm.nih.gov)
- pmcid: PubMed Central (https://www.ncbi.nlm.nih.gov/pmc)
- arxiv: Cornell University (https://arxiv.org)
Given an identifier in one of the known formats, the libray can query information about the resources and format it as a bibtex entry. To do so, the library primarily use the crossref.org API (doi,pmid, pcmi), openalex.org API (issn), arxiv API (arxiv) and OpenLibrary (isbn) Unfortunately, OpenLibrary is far from being complete and a lot of ISBN records are missing.
The main function is the interactive persid-insert-bibtex
function
that accept a single identifier and return the corresponding
bibtex inserting it into the buffer. To do that, the format of the identifier is
first identified and normalized (if needed), then the correspoding bibtex
is queried online:
- doi: Crossref API is used to get bibtex
- pmid: PubMed converter API is used to convert pmid to doi, then the crossref API is used to get bibtex.
- pmcid: PubMed converter API is used to convert pmcid to doi, then the crossref API is used to get bibtex.
- arxiv: arXiv API is used to get bibtex
- issn: OpenAlex API is used to get the name and the publisher information.
- isbn: OpenLibrary Book API is used to get bibtex
See also: Information Studies: APIs for scholarly resources
(persid-insert-bibtex "arxiv:2008.06030")
@Article{2020arXiv200806030R,
author = {{Rougier}, Nicolas P.},
title = "{On the design of text editors}",
journal = {arXiv e-prints},
keywords = {Computer Science - Human-Computer Interaction},
year = 2020,
month = aug,
eid = {arXiv:2008.06030},
pages = {arXiv:2008.06030},
archivePrefix = {arXiv},
eprint = {2008.06030},
primaryClass = {cs.HC},
adsurl = {https://ui.adsabs.harvard.edu/abs/2020arXiv200806030R},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
- biblio.el makes it easy to browse and gather bibliographic references and publications from various sources, by keywords or by DOI. References are automatically fetched from well-curated sources, and formatted as BibTeX.
- org-ref makes it easy to insert citations, cross-references, indexes and glossaries as hyper-functional links into org files. The links are fontified so you can tell them apart from other links, and each link is clickable to access functions like opening a pdf, notes or url associated with the link. Each link also can be exported to LaTeX to build a PDF. For citations, export to other formats is supported by citeproc for high quality export to HTML, markdown, plain text, or stand-alone (i.e. independent of a bibtex file) LaTeX.
- org-capture-ref extends org-ref’s idea to auto-retrieve BiBTeX from scientific paper links. Instead of limiting BiBTeX generation to research purposes (scientific articles and books), this package auto-generates BiBTeX for any possible web link (Youtube videos, blog posts, reddit threads, etc).
- bookiez is a library for looking up ISBNs via the Google Book API, displaying the result, and maintaining a database of books.
- zotra provides functions to get bibliographic information from a url and save it into a bibtex file. It also provides a way to obtain a list of attachments (e.g. PDF files) associated with a url. This is done using Zotero translators, but without using the Zotero client.
- biblio-zotero retrieves and insert BibTeX records from various sources by using Zotero translation server. Calling biblio-zotero-insert-bibtex will forward the provided URL to the server and insert a formatted BibTeX entry in the current buffer.
- Citar provides a highly-configurable completing-read front-end to browse and act on BibTeX, BibLaTeX, and CSL JSON bibliographic data, and LaTeX, markdown, and org-cite editing support.
- biblio-openlibrary provides an OpenLibrary backend for
biblio.el
, allowing to interactively browse and gather bibliographic entries from OpenLibrary by ISBN.