I've been playing with GraphViz to try to make it produce family trees. It seems to be one of those things that look easy until you try it when it suddenly becomes non-trivial.
Basic problem: how do you make it put the husband and wife in the same rank with their childen in the next lower rank.
I note than some of the GraphViz::X authors report that reordering of the nodes is a problem - for family trees you almost always want the children to be in order of birth and not to be reordered by the layout algorithm.
The ability to produce a pretty diagram from a simple