{"id":30328809,"url":"https://github.com/orrp/dblpify","last_synced_at":"2026-04-16T00:32:44.686Z","repository":{"id":221595343,"uuid":"754816192","full_name":"orrp/dblpify","owner":"orrp","description":"Updating BibTeX entries with information from dblp","archived":false,"fork":false,"pushed_at":"2024-02-09T19:13:35.000Z","size":14,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-05T20:00:18.594Z","etag":null,"topics":["bibtex","dblp","latex","references"],"latest_commit_sha":null,"homepage":"","language":"Python","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/orrp.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,"zenodo":null}},"created_at":"2024-02-08T20:21:25.000Z","updated_at":"2025-03-28T09:07:12.000Z","dependencies_parsed_at":"2024-02-08T23:11:22.497Z","dependency_job_id":"91f3b3fd-8c64-405f-9e59-ec186300a3a4","html_url":"https://github.com/orrp/dblpify","commit_stats":null,"previous_names":["orrp/dblpify"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/orrp/dblpify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orrp%2Fdblpify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orrp%2Fdblpify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orrp%2Fdblpify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orrp%2Fdblpify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orrp","download_url":"https://codeload.github.com/orrp/dblpify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orrp%2Fdblpify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31866345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bibtex","dblp","latex","references"],"created_at":"2025-08-18T01:42:28.481Z","updated_at":"2026-04-16T00:32:44.666Z","avatar_url":"https://github.com/orrp.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"**Update: Use [rebiber](https://github.com/yuchenlin/rebiber) instead! It features more bibliographic sources and is\nactively maintained.**\n# dblpify\n\u003e _dblpify (verb, transitive)_: The act of updating one's bibliography from the [dblp computer science bibliography](https://dblp.org) service.\n\u003e - Etymology: From the [orphan initialism](https://dblp.org/faq/What+is+the+meaning+of+the+acronym+dblp.html) _dblp_ and the English suffix _-ify_, meaning \"to make\" or \"to cause to become\".\n\u003e - Example usage: \"I accidentally cited the arXiv version of the paper instead of the journal one. I really should have dblpified my references before submitting!\"\n\n\n`dblpify` is a tool for replacing BibTeX entries with their corresponding entries from [dblp](https://dblp.org).\nKeys are preserved so that no changes to the LaTeX source are necessary.\nIt uses [bibtexparser](https://bibtexparser.readthedocs.io/en/main/) for parsing,\nand handles rate limiting, caching, and [matching](#matching-heuristic).\n\n### Installation\nTo install `dblpify`, you first need a working Python installation (e.g. [Miniconda](https://docs.anaconda.com/free/miniconda/)).\nThen, clone this repository and install the package:\n```bash\ngit clone https://github.com/orrp/dblpify\ncd dblpify\npip install .\n```\n\n### Usage\nYou can use `dblpify` directly from the command line. Here is a basic example:\n```bash\npython dblpify/run.py --bib_path references.bib\n```\nBy default, the output will be saved to the `output` directory, and will consist of two files:\n- `references_dblpified.bib`: The original .bib file with entries replaced by their dblp counterparts.\n- `references_report.csv`: An entry-by-entry report on the outcome of the matching process.\n\nHere are the full options:\n```\nusage: run.py [-h] [--bib_path BIB_PATH] [--out_path OUT_PATH] [--save_formatted] [--clear_cache] [--num_hits NUM_HITS] [--log_path LOG_PATH] [--dev]\n\noptions:\n  -h, --help           show this help message and exit\n  --bib_path BIB_PATH  Path to the BibTeX file.\n  --out_path OUT_PATH  Directory to store outputs.\n  --save_formatted     Save the original BibTeX in the same format as the updated one (useful for diffing).\n  --clear_cache        Clear the cache before running.\n  --num_hits NUM_HITS  Number of hits to request from DBLP.\n  --log_path LOG_PATH  Path to log file (default stdout).\n  --dev                Dev mode (saves report and response cache at each iteration).\n```\n\n### Reporting\nReports are output as a CSV and contain a row for each entry, with the following columns:\n- `Key`: The BibTeX key of the entry. \n- `Status`: The outcome of the matching process. An uninterrupted run of the tool will result one of following:\n  - `Updated with dblp entry!`: The entry was successfully matched and replaced.\n  - `Already from dblp`: The entry was already from dblp and was left unchanged.\n  - `No hits to query`: The entry's title was not found in dblp.\n  - `No match among hits`: The entry's title was found in dblp, but no hit matched its title and author fields.\n- `Match URL`: The URL of the matching entry in dblp, for entries that were updated.\n\nYou may additionally want to diff the original and dblpified .bib files to check for any discrepancies.\nUnfortunately, the dblpified .bib does not retain the formatting (e.g. linebreaks) of the original .bib file, but\nyou can specify the `--save_formatted` flag to save the original .bib file in the new formatting, which can\nbe used for line-by-line comparison.\n\n### Matching heuristic\n`dblpify` uses a simple matching heuristic as follows. For each entry:\n1. Query dblp for the entry's title.\n2. Keep only hits that exactly match the title and author fields (up to special characters, case, spaces, etc.).\n3. If multiple entries are matching, break ties according to venue type: book \u003e journal \u003e conference/workshop \u003e preprint.\n\nEntries that are already from dblp are left unchanged.\n\nThis heuristic may fail in some cases.\nFor example, it will fail to match entries with incomplete titles, or typos in author names.\nFor now, our approach is to minimize false matches and let the user complete the matching manually themselves\nbased on the report.\n\n## Contributing\n\nThis tool started as a quick hack to solve a personal problem, and is still very much a work in progress.\nPlease feel free to open an issue if you encounter a bug, or directly submit a pull request if you like. Thanks!\n\nHere are a few ways you can help:\n- [ ] Add unit tests (you may want to use pytest mock).\n- [ ] Retain the formatting (e.g. spacing) of the original .bib file.\n- [ ] Improve the matching heuristic. \n- [ ] Wrap the tool in a browser extension so it can be used directly from Overleaf.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forrp%2Fdblpify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forrp%2Fdblpify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forrp%2Fdblpify/lists"}