Ivory Siege Tower

mobile construct built of thoughts and parentheses

Ether Gate: PaperGraph

This place is a map of research papers that I, at some point, found interesting or useful.

Since partly built with technology of a previous millennia, this page is intended to be browsed on a wide screen.


Those portal gates containing the ab-initio thermal transport literature review are permanently "frozen" due to my PhD being forever on hold...

Your browser does not support SVG, the portal therefore shows no signs of life...

DblClick to zoom in, Shift+DblClick to zoom out


The papergraph is drawn by a lisp package that fetches metadata for a set of publications from CrossRef and cycles them through a remix of a simplistic .bib parser and eventually renders a Graphviz SVG diagram.

For BibTex bookkeeping I do use the org-ref emacs package, where optional keywords= property not only helps searching but is also used for the papergraph clustering. A sample configuration (also included in the source) then may look like this:

  (in-package :papergraph)

  ;; When set to `t` the layout is hierarchical `dot`. Default is `fdp` spring layout.
  (setf layered-view nil)

  ;; Example cluster specification from tags in bibtex `keywords=` entries.
  ;; For each entry, the first one met takes effect.
  (setf clusters '(("md" . (:color ".3 .3 1.0" :label "Molecular Dynamics"))
                   ("cs" . (:color ".5 .3 1.0" :label "Computer Science"))))

  ;; Draw only entries that belong to any of the clusters specified above:
  (setf clusters-only nil)

  ;; If the previous option is `nil`, draw "unclustered" entries with this color:
  (setf unclustered-color ".7 .3 1.0")

  ;; Edge color for unclustered entries:
  (setf edge-color "magenta")

  ;; Number of parallel threads used to query metadata from CrossRef:
  (setf num-api-threads 8)

  ;; List of paths to input bibtex entry-files:
  (setf ref-files '("/app/refs.bib"))  ; /app is the working dir inside the container

  ;; Output directory:
  (setf out-dir #P"/app")  ; /app is the working dir inside the container

  ;; Intermediate Graphviz .dot-file name (.svg file will have the same):
  (setf out-file "papergraph.dot")

  ;; automatically show graph in specified browser when set:
  ;; (setf system-img-browser "eom")  ; off by default inside the container