All Projects → yuchenlin → Rebiber

yuchenlin / Rebiber

Licence: mit
A simple tool to update bib entries with their official information (e.g., DBLP or the ACL anthology).

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Rebiber

Jabref
Graphical Java application for managing BibTeX and biblatex (.bib) databases
Stars: ✭ 2,385 (+137.31%)
Mutual labels:  bibtex, bibliography, latex
bibtex-js
Library for parsing .bib files, used in Bibliography.js 📚
Stars: ✭ 55 (-94.53%)
Mutual labels:  latex, bibtex, bibliography
snipmate-snippets-bib
Snipmate.vim support for BibTeX files
Stars: ✭ 13 (-98.71%)
Mutual labels:  latex, bibtex
biblatex-abnt
📚 Estilo para BibLaTeX compatível com as normas da ABNT
Stars: ✭ 97 (-90.35%)
Mutual labels:  latex, bibliography
pandoc alfred
Pandoc-Suite for Academic Writing in Markdown
Stars: ✭ 68 (-93.23%)
Mutual labels:  bibtex, bibliography
academic-cv-publications
Generate a customised list of publications for your LaTeX CV using BibTeX entries.
Stars: ✭ 60 (-94.03%)
Mutual labels:  latex, bibtex
rfc-bibtex
A command line tool that creates bibtex entries for IETF RFCs and Internet Drafts.
Stars: ✭ 43 (-95.72%)
Mutual labels:  latex, bibtex
nom-bibtex
A feature complete bibtex parser using nom
Stars: ✭ 13 (-98.71%)
Mutual labels:  latex, bibtex
citeproc-el
A CSL 1.0.2 Citation Processor for Emacs.
Stars: ✭ 75 (-92.54%)
Mutual labels:  bibtex, bibliography
Helm Bibtex
Search and manage bibliographies in Emacs
Stars: ✭ 328 (-67.36%)
Mutual labels:  bibtex, bibliography
Org Roam Bibtex
Connector between Org-roam, BibTeX-completion, and Org-ref
Stars: ✭ 253 (-74.83%)
Mutual labels:  bibtex, bibliography
Betterbib
Update BibTeX files with info from online resources.
Stars: ✭ 380 (-62.19%)
Mutual labels:  bibtex, latex
scholia
Wikidata-based scholarly profiles
Stars: ✭ 166 (-83.48%)
Mutual labels:  bibtex, bibliography
LaTeX-Templates
Document templates composed using LaTeX for my college assignments and projects (Applicable for any other university or college) ✨
Stars: ✭ 18 (-98.21%)
Mutual labels:  bibtex, bibliography
ads2bibdesk
ads2bibdesk helps you add astrophysics articles listed on NASA/ADS to your BibDesk database using the new ADS Developer API
Stars: ✭ 32 (-96.82%)
Mutual labels:  latex, bibtex
proofengineering-bib
BibTeX bibliographies for proof engineering-related papers
Stars: ✭ 24 (-97.61%)
Mutual labels:  bibtex, bibliography
Zotero Better Bibtex
Make Zotero effective for us LaTeX holdouts
Stars: ✭ 2,336 (+132.44%)
Mutual labels:  bibtex, latex
Shbib
A BibTeX-centric bibliography manager written in POSIX shell
Stars: ✭ 26 (-97.41%)
Mutual labels:  bibtex, bibliography
videlibri
📚 Cross-platform library client to automate any OPAC and library catalog from your local device, e.g. for renewing of borrowed books or searching for books available in the library in automated scripts.
Stars: ✭ 18 (-98.21%)
Mutual labels:  bibtex, bibliography
Fiduswriter
Fidus Writer is an online collaborative editor for academics.
Stars: ✭ 405 (-59.7%)
Mutual labels:  bibtex, latex

Rebiber: A tool for normalizing bibtex with official info.

We often cite papers using their arXiv versions without noting that they are already PUBLISHED in some conferences. These unofficial bib entries might violate rules about submissions or camera-ready versions for some conferences. We introduce Rebiber, a simple tool in Python to fix them automatically. It is based on the official conference information from the DBLP or the ACL anthology (for NLP confernces)! You can check the list of supported conferences here. Apart from handling outdated arXiv citations, Rebiber also normalizes citations in a unified way (DBLP-style), supporting abbreviation and value selection.

You can use this google colab notebook as a simple web demo.

Changelogs

  • 2021.02.08 We now support multiple useful feaures: 1) turning off some certain values, e.g., "-r url,pages,address" for removing the values from the output, 2) using abbr. to shorten the booktile values, e.g., Proceedings of the .* Annual Meeting of the Association for Computational Linguistics --> Proc. of ACL. More examples are here.
  • 2021.01.30 We build a colab notebook as a simple web demo. link

Installation

pip install rebiber -U
rebiber --update  # update the bib data and the abbr. info 

OR

git clone https://github.com/yuchenlin/rebiber.git
cd rebiber/
pip install -e .

If you would like to use the latest github version with more bug fixes, please use the second installation method.

Usage(v1.1.1)

Normalize your bibtex file with the official converence information:

rebiber -i /path/to/input.bib -o /path/to/output.bib

You can find a pair of example input and output files in rebiber/example_input.bib and rebiber/example_output.bib.

argument usage
-i or --input_bib. The path to the input bib file that you want to update
-o or --output_bib. The path to the output bib file that you want to save. If you don't specify any -o then it will be the same as the -i.
-r or --remove. A comma-seperated list of value names that you want to remove, such as "-r pages,editor,volume,month,url,biburl,address,publisher,bibsource,timestamp,doi". Empty by default.
-s or --shorten. A bool argument that is "False" by default, used for replacing booktitle with abbreviation in -a. Used as -s True.
-d or --deduplicate. A bool argument that is "True" by default, used for removing the duplicate bib entries sharing the same key. Used as -d True.
-l or --bib_list. The path to the list of the bib json files to be loaded. Check rebiber/bib_list.txt for the default file. Usually you don't need to set this argument.
-a or --abbr_tsv. The list of conference abbreviation data. Check rebiber/abbr.tsv for the default file. Usually you don't need to set this argument.
-u or --update. Update the local bib-related data with the lateset Github version.
-v or --version. Print the version of current Rebiber.

Example Input and Output

An example input entry with the arXiv information (from Google Scholar or somewhere):

@article{lin2020birds,
	title={Birds have four legs?! NumerSense: Probing Numerical Commonsense Knowledge of Pre-trained Language Models},
	author={Lin, Bill Yuchen and Lee, Seyeon and Khanna, Rahul and Ren, Xiang},
	journal={arXiv preprint arXiv:2005.00683},
	year={2020}
}

An example normalized output entry with the official information:

@inproceedings{lin2020birds,
    title = "{B}irds have four legs?! {N}umer{S}ense: {P}robing {N}umerical {C}ommonsense {K}nowledge of {P}re-{T}rained {L}anguage {M}odels",
    author = "Lin, Bill Yuchen  and
      Lee, Seyeon  and
      Khanna, Rahul  and
      Ren, Xiang",
    booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP)",
    month = nov,
    year = "2020",
    address = "Online",
    publisher = "Association for Computational Linguistics",
    url = "https://www.aclweb.org/anthology/2020.emnlp-main.557",
    doi = "10.18653/v1/2020.emnlp-main.557",
    pages = "6862--6868",
}

Supported Conferences

The bib_list.txt contains a list of converted json files of the official bib data. In this repo, we now support the full ACL anthology, i.e., all papers that are published at *CL conferences (ACL, EMNLP, NAACL, etc.) as well as workshops. Also, we support any conference proceedings that can be downloaded from DBLP, for example, ICLR2020.

The following conferences are supported and their bib/json files are in our data folder. You can turn each item on/off in bib_list.txt. Please feel free to create PR for adding new conferences following this!

Name Years
ACL Anthology (until 2021-01)
AAAI 2010 -- 2020
AISTATS 2013 -- 2020
ALENEX 2010 -- 2020
ASONAM 2010 -- 2019
BigDataConf 2013 -- 2019
BMVC 2010 -- 2020
CHI 2010 -- 2020
CIDR 2009 -- 2020
CIKM 2010 -- 2020
COLT 2000 -- 2020
CVPR 2000 -- 2020
ICASSP 2015 -- 2020
ICCV 2003 -- 2019
ICLR 2013 -- 2020
ICML 2000 -- 2020
IJCAI 2011 -- 2020
KDD 2010 -- 2020
MLSys 2019 -- 2020
MM 2016 -- 2020
NeurIPS 2000 -- 2020
RECSYS 2010 -- 2020
SDM 2010 -- 2020
SIGIR 2010 -- 2020
SIGMOD 2010 -- 2020
SODA 2010 -- 2020
STOC 2010 -- 2020
UAI 2010 -- 2020
WSDM 2008 -- 2020
WWW (The Web Conf) 2001 -- 2020

Thanks for Anton Tsitsulin's great work on collecting such a complete set bib files!

Adding a new conference

You can manually add any conferences from DBLP by downloading their bib files to our raw_data folder, and run a prepared script add_conf.sh.

Take ICLR2020 and ICLR2019 as an example:

  • Step 1: Go to DBLP
  • Step 2: Download the bib files, and put them here as raw_data/iclr2020.bib and raw_data/iclr2019.bib (name should be in the format as {conf_name}{year}.bib)
  • Step 3: Run script
bash add_conf.sh iclr 2019 2020

Contact

Please email [email protected] or create Github issues here if you have any questions or suggestions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].