Genealogy Graph Generator

An academic genealogy graph tells you who your advisor and your advisor's advisor and her advisor and so on are.

Genealogy Graph Generator (GGG) is a set of programs for automatically generating academic genealogy graphs.

The end result looks like this:

Usage

  1. Locate an appropriate Mathematics Genealogy Project (MGP) page. If you are not famous or graduated enough to be there, find the closest ancestor. We will add extra information later. For this example we will build the genealogy for Felix Klein you see above.

    Another online genealogy database is TCS, but GGG does not support that yet.

  1. Run download-mgp to create an AGML file:

    download-mgp genealogy.agml http://genealogy.ams.org/html/id.phtml?id=7401
    

    download-mgp performs a directed breadth-first search on advisor relationships in MGP, recording full name, institution, year, and MGP URL.

  1. (Optional) Add missing entries and make other corrections by editing the AGML file.

    Let's say we want Klein to be displayed as "Felix Klein" instead of "C. Felix (Christian) Klein". Add "Felix Klein" as the first <name> entry so that the block looks like this:

    <person id="KLEIN">
      <advisor>PLÜCKER</advisor>
      <advisor>LIPSCHITZ</advisor>
      <institution>Rheinische Friedrich-Wilhelms-Universität Bonn</institution>
      <name>Felix Klein</name>
      <name>C. Felix (Christian) Klein</name>
      <url label="MGP">http://genealogy.ams.org/html/id.phtml?id=7401</url>
      <year>1868</year>
    </person>
    

    See the AGML documentation for more information.

  1. (Optional) Run annotate-wikipedia to automatically add Wikipedia URLs:

    annotate-wikipedia klein.agml
    

    This searches Google for Wikipedia articles with the person's name in the title. Results are annotated into the AGML file with <url label="Wikipedia"> entries. When the automated Googling fails, you can add aliases to the AGML file, or just add entries manually.

  1. Run ggg <format> <input.agml> [output] to generate images and optionally image maps:

    ggg magick+png klein.agml klein.png
    ggg cmapx klein.agml klein.html
    

    GGG uses GraphViz which supports many formats including regular image formats (JPEG, GIF, PNG) and vector formats (PS, SVG).

    • magick+png uses SVG as an intermediate format and annotates the SVG, then uses ImageMagick to convert to PNG. Annotation allows more flexibility in fonts. The result is also anti-aliased. (The latest GraphViz with a cairo plugin allows anti-aliased PNG output as well.) Use png for regular GraphViz PNG output.
    • cmapx is a client-side HTML area map. It allows you to have tooltips and hyperlinks on the image.

Download

Dependencies

Development

License: GPL v2+

GGG is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

GGG is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.