I’ve finally finished: a family tree / genealogy of every named figure in the Torah, the first five books of the bible. I’ve been on this project off-and-on for two years– not because I didn’t have the data (that part was easy), but because creating a tree of more than six hundred nodes is more than I wanted to do by hand, especially because I intend to move on to the next books soon. My end goal is to produce a tree of every figure in the bible.
Geeks can work awfully hard at being lazy. Since I refused to do the layouts by hand, I wrote my own software. I first built a flatfile database of everyone in the Torah, then built software to convert that into the DOT graphing format for processing by the open source tool “graphviz”. I complete a first pass (in Perl) almost a year ago, but it was broken and difficult to maintain before it was done. I completed a second pass (in Java) this month. As annoying as Java is for text processing, I needed type safety and modern data structures. I spent the last several weeks massaging the output to work around weaknesses in Graphviz: it wasn’t designed for this sort of abuse either.
The end result isn’t perfect:
- Relationship boxes still don’t show up correctly with unnecessarily wavy lines and the “offspring” dots sometimes misaligned. You can tell what’s what, but it’s not great.
- Sometimes paths can be confusing. Even a computer can’t perfectly lay out such complex data!
This is a draft. The first draft. It has errors. My next step will be to carefully comb over the data, using the “plain” meaning of the text whenever possible, to make a better version. The Torah presents many challenges in this project such as names that may refer to multiple people (Abimelech), multiple names that refer to only one (Moses’s father-in-law), places where it isn’t clear if a “son” refers to a direct son or a descendant, etc. I will also produce an appendix (interesting to very few) where I will itemize these decisions and describe why I made each one.
I hope you find this tree as interesting as I do. I had great fun putting it together. You can download the draft genealogy of the torah here. (PDF)
(The old PNG image version is available here. Still a 5MB file.)
- Black lines are direct descendants
- Red lines are tribal descendants (Canaan -> Caananites & Midianites -> Reuel)
- Blue lines are royal lines of kings / other rulers
- Triangles represent tribes/races/nations
- Round boxes are individuals
- Rectangles define relationships/families