bibgraph
builds a citation graph from an annotated bibtex file.
Bibgraph expects to find the following optional fields:
cites
on every entry to be added to the graph; this contains a list of (keys of) entries cited by that entrytags
(optional) marking the status of that document; the following tags are supported:i
- in progresst
- to readr
- readm
- append this tag to each entry you have fully mapped (i.e. checked all interesting references and works that refer to it and added them to the bibliography graph)
This means you have to add these two fields (By hand) if you want to see a graph.
An example entry for a paper citing zhang2009fpga
which is in progress
and mapped
:
@inproceedings{kestur2012towards,
title = {{Towards a universal FPGA matrix-vector multiplication architecture}},
author = {Kestur, Srinidhi and Davis, John D and Chung, Eric S},
booktitle = FCCM,
pages = {9--16},
year = {2012},
cites = {zhang2009fpga},
tags = {im}
}
- Pick a paper
- Set it as
t
- Add it to the bibliography graph
- Add all interesting references (based on title and context)
- Add all work citing the paper (e.g. using Google Scholar's Cited By feature)
- Set is as
m
- Play some Mass Effect...
- Installed version of Python 3. This script is tested with version 3.8
- Clone reposiitory
# git clone git@github.com:paul-g/bibgraph.git;
git clone git@github.com:lissonc/bibgraph3.git;
- Install graphviz on linux
sudo apt-get update;
sudo apt-get install graphviz;
- Install graphvix on Mac
brew install graphviz;
- Install Python helper files: Pydot, Bibtexparser, networkx
python3 -m pip install --upgrade pip;
python3 -m pip install pydot bibtexparser networkx;
python3 -m pip freeze| grep pydot;
python3 -m pip freeze| grep bibtexparser;
python3 -m pip freeze| grep networkx;
Bibgraph3 relies on bibtexparser which only supports BibTeX entry types; not the full set available in BibLaTeX.
For example: @techreport is supported while @report is not. This can be a pain to figure out because it fails silently.
The script can read bibtex entries without cites, and correctly not put this in a graph.
The script can read bibtex entries without tags.
python3 bibgraph.py /path/to/your/bibliography.bib
This produces a bib.png
and a bib.pdf
file a the bibliography graph like the one below.
- Orginal script - https://github.com/paul-g/bibgraph/
- Fork into python3 script - https://github.com/lissonc/bibgraph3
- Fork into minor adjustments - https://github.com/edzob/bibgraph3