zotero-inspire
zotero-inspire copied to clipboard
Fetch publication metadata from the INSPIRE-HEP database
Zotero INSPIRE Metadata Updater
This is an add-on for the excellent open-source reference manager Zotero. It is useful as most papers from arXiv will get published in journals later on. This add-on can be used to update the metadata and citation counts (with and without self citations) of the selected item(s) in your Zotero library from INSPIRE-HEP, which is a community maintained database for high energy physics and related fields.
Installation
Pre-built binaries
- This version is compatible only with Zotero 7, whose stable version has been released.
- The pre-built
.xpifile can be downloaded from https://github.com/fkguo/zotero-inspire/releases/. If you want a version compatible with Zotero 6, download the version 0.2.20 from the releases.
Building from source
-
Clone this repo
-
Run
npm installandnpm run build-prod -
In Zotero, the add-on can be installed by going to
Tools→Add-ons, then click the top-right button and chooseInstall Add-ons From File.... -
It can be updated in
Add-ons Manager→Check for Updates.
Usage
-
Right click a selected item or multiple selected items, click
Update INSPIRE Metadata, then choose one of the three options: fetch the metadata with or without abstracts, or update only the citations with and w/o self citations (if the paper is not in the INSPIRE database, then update the CrossRef citation counts). -
Right click a selected item or multiple selected items, click
Update INSPIRE Metadata, then choose one of the three options: fetch the metadata with or without abstracts, or update only the citations with and w/o self citations. -
Right click a selected collection, then click one of the three options.
-
Automatically retrieve the metadata from INSPIRE when adding a new item to the Zotero library. Options with or without getting abstracts can be set through the
Preferencespanel -
Metadata can be fetched as long as one of the following is provided:
- DOI in the field of
DOIorExtra; if it is only inExtra, then it should containDOI:ordoi.org/followed by the DOI. - arXiv link in
URLor arXiv ID inExtrain the form ofarXiv:. - INSPIRE Citation key in
Extrain the form ofCitation Key:.- If one does not want to set the citation keys to the INSPIRE ones, then set
Set citekeys in ExtrainINSPIRE Metadata Updater PreferencesunderToolsmenu toNo.
- If one does not want to set the citation keys to the INSPIRE ones, then set
- INSPIRE
recidinLoc. in Archiveor the url containing/literature/recidinURL.
- DOI in the field of
-
The add-on will update the following fields:
- Notice: the INSPIRE standard journal abbreviations (instead of the fill journal name) will be put into the
Publicationfield. - INSPIRE uses a unique
recidfor each publication in the database (calledcontrol_numberin the.jsonfile obtained via the INSPIRE API). The INSPIRErecidis set to the field ofLoc. in Archive(andINSPIREtoArchive) for the selected Zotero item.-
This also enables to write look-up engines using this
recidto exactly reach the INSPIRE page of that publication and its citations. The look-up engines can be added by editing theengines.jsonfile in thelocatefolder of the Zotero Data Directory. The directory can be found by clickingZotero Preferences→Advanced→Files and Folders→Show Data Directory. Add the following code to theengines.jsonfile:"_name": "INSPIRE", "_alias": "INSPIRE", "_description": "INSPIRE", "_icon": "https://inspirehep.net/favicon.ico", // or local path to the INSPIRE icon, "_hidden": false, "_urlTemplate": "https://inspirehep.net/literature/{z:archiveLocation}", "_urlNamespaces": { "z": "http://www.zotero.org/namespaces/openSearch#" } , "_name": "INSPIRE Citations", "_alias": "INSPIRE Citations", "_description": "INSPIRE citing papers", "_icon": "https://inspirehep.net/favicon.ico", "_hidden": false, "_urlTemplate": "https://inspirehep.net/literature?q=refersto%3Arecid%3A{z:archiveLocation}", "_urlNamespaces": { "z": "http://www.zotero.org/namespaces/openSearch#" } , -
If the Actions & Tags addon is installed, one may also setup the following action to copy the INSPIRE link of the selected item with right click or assigned shortcut keys
f (!item) { return "[Copy INSPIRE Link] not an item"; lse { f (item.getField("archive") != "INSPIRE") { return "[Copy INSPIRE Link] item not in INSPIRE-HEP" / get INSPIRE recid et recid ecid = item.getField("archiveLocation") onst clipboard = new Zotero.ActionsTags.api.utils.ClipboardHelper(); et linkText; / Use title / linkText = item.getField("title"); / Use citation key inkText = item.getField("citationKey"); et link; / Use plain-text / link = `https://inspirehep.net/literature/${recid}`; / Use MarkDown ink = `[${linkText}](https://inspirehep.net/literature/${recid})` lipboard .addText(link, "text/unicode") .addText(`<a href="https://inspirehep.net/literature/${recid}">${linkText}</a>`, "text/html") .copy(); eturn `[Copy INSPIRE Link] link to ${linkText} copied.`
-
journal(set toJournal Abbrin Zotero),volume,year,pages(either the page numbers or the modern article IDs),issue,DOI,authors($\leq10$, otherwise keeping only the first 3; the author list will be updated if no author is given or the first name of the first author is empty),title,abstract, etc.- Set the arXiv number of articles that are not published to the
Journal Abbrfield. Items of typereportorpreprintare set tojournalArticle. - It will also get the citation counts with and without self-citations for each selected item. One can also choose to update only the citation counts using
Citation counts onlyin the right-click menu.- The current INSPIRE system does not display the citation count without self citations for a given paper. However, this number is in the metadata, and can be extracted with this add-on.
- Citation counts are changed only when they are different from those of the last fetching.
- The Better BibTeX (BBT) plugin can pin the citation key from INSPIRE. When we add new arXiv articles, sometimes BBT fails to get the INSPIRE record. In that case, this plugin writes the INSPIRE citation key to the
Extrafield so that it is pinned correctly (the BBT plugin needs to be installed). - Work with the INSPIRE Zotero translator, and change
"_eprint"inExtratoarXiv. - Erratum information and additional publication information added as notes.
- Notice: the INSPIRE standard journal abbreviations (instead of the fill journal name) will be put into the
-
By default, those items that could not be found will be tagged as
⛔ No INSPIRE recid found, which will be removed once it is in INSPIRE. The automatic tagging can be turned off inSettings→INSPIRE Metadata Updater Preferences.
Additional tip for citing as you writing LaTeX
After building our own Zotero library, we can make the LaTeX writing process much more enjoyable in VS code (with the LaTeX Workshop extension) with the Zotero-cite VS code extension.
- usage:
- press
Ctrl+Shift+PorCmd+Shift+P, chooseZotero Cite: Cite and Create Bibliography for Pandoc/LaTeXand bind a hotkey, e.g.,Alt+z. - in
Settingsof VS code, setZotero-cite: Default Bib Nameto./refs.bib, which allows the extension update or create therefs.bibfile under the same directory of the.texfile. - now when you're writing, press the hotkey, a Zotero reference picker window will pop up, select the references you want to cite, then it is cited with the
\cite{}command and therefs.bibfile gets automatically updated if the cited reference does not exist in thebibfile.
- press
References
I knew basically nothing about javascript or typescript. The first version of this add-on was developed by modifying the codes of the following two add-ons:
-
https://github.com/bwiernik/zotero-shortdoi
-
https://github.com/eschnett/zotero-citationcounts
The version from 0.3.0 on (for Zotero 7) was developed based on:
- https://github.com/windingwind/zotero-plugin-template
License
Distributed under the Mozilla Public License (MPL) Version 2.0.