Giter VIP home page Giter VIP logo

persid's Introduction

Persistent Identifier Library

The Persistent Identifier Library allows to manipulate persistent identifiers that are used to locate scholar resources online. The library knows about the following formats:

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:

See also: Information Studies: APIs for scholarly resources

Example usage

(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}
}

Related work

  • 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.

persid's People

Contributors

fabcontigiani avatar rougier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

persid's Issues

Unexpected URL encoding

I am trying

(persid-bibtex-from "https://doi.org/10.1016/j.jmst.2022.12.050")

and getting

"@article{Han_2023,
	doi = {10.1016/j.jmst.2022.12.050},
	url = {https://doi.org/10.1016%2Fj.jmst.2022.12.050},
	year = 2023,
	month = {jul},
	publisher = {Elsevier {BV}},
	volume = {152},
	pages = {237--246},
	author = {D.X. Han and G. Wang and Q. Wang and R. Feng and X.D. Ma and K.C. Chan and C.T. Liu},
	title = {Micro-scaled plastic yielding and shear-banding dynamics in metallic glasses},
	journal = {Journal of Materials Science {\\&}amp$\\mathsemicolon$ Technology}
}"

Note the url = {https://doi.org/10.1016%2Fj.jmst.2022.12.050}, with "/" encoded into %2F, which is unexpected.

Publish on ELPA?

I am planning to use your package as dependency to fetch DOI/ISBN in org-capture-ref. However, persid is currently not available on ELPA/non-GNU ELPA.

Would you consider publishing persid on one of the package repos? (Ideally, on GNU ELPA).

interactive use not working?

Hi, thanks a lot for this package. Maybe I'm missing something but I am unable to use it in the interactive mode. I.e. when I do M-x persid-from-bibtex <RET> I see "Identifier: " prompt in the minibuffer. So I type: doi:10.1080/02699206.2019.1673486 and press enter, which outputs "Contacting host: api.crossref.org:443" in the echo area but nothing more happens.
It does work when I evaluate (persid-from-bibtex "doi:10.1080/02699206.2019.1673486").

ebook.de does not seem to be operational

I tried (persid-bibtex-from-isbn "isbn:978-1-890771-74-4"), but the query appears to be stumbling upon a JS-only page. Something should have changed in ebook.de.

Issue is welcome. If you can tell also where to find the ISBN information, we can start to try to include it (if openly accessible)

Check out "meta" in the readme of https://github.com/xlcnd/isbnlib
It lists some more stable APIs provided by wikipedia and openlibrary.

I previously used ottobib, but it is no longer operational.

Prior art

Just in case you don't know it: https://github.com/cpitclaudel/biblio.el
If you do, do close the issue, but a comparison might be useful for prospective users!

org-ref also has some similar-looking code, but also lots of unrelated functionality.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.