Ward Cunningham

We write genealogy in pages where one can discuss parents and children and navigate back and forth clicking on diagrams. We aspire make "normal" English statements guide the traversal.

> Parents by birth link and link. Raised by link through remarriage at 10.

All three links will be shown as parents. A similar paragraph will describe children with arrows pointing in the opposite, outward direction.

DOT digraph HERE WHERE /^Parents/ LINKS NODE -> HERE WHERE /^Children/ LINKS HERE -> NODE

We will create pages from Family History Template which will duplicate the diagram found in our what we do page, Family History. Only this second page has instructions as to how links of interest will be formatted.

# Observations

We learn something from every little project like this and sometimes the become a lasting object of study.

Note. Node titles are introduced in paragraphs. When clicking on a yet to be written node the wiki page creation logic finds these paragraphs and extracts the proper case.

Note. This example uses first names and nicknames to identify individuals. This works so long as a site is confined to a single family and name collisions can be accommodated. But when graphs merge from multiple sites we loose the additional site context that makes these unique.

Note. We haven't represented marriage directly in our graph though it can be inferred by noting the parents of children. We short-circuit this my mentioning spouses in the unexamined text.

# Alternatives

We have previously explored modeling the Hatfield-McCoy feud as two interrelated sites using the Graph plugin.

The Hatfields hailed from the West Virginia side of the Tug Fork of the Big Sandy River.

The McCoys hailed from the Kentucky side of the Tug Fork of the Big Sandy River.

We've offered an introduction to graphviz in three parts ranging from drawing yourself, using a program to draw, and interacting with a program that draws.

Graphviz will draw a graph composed of nodes and arrows from a declarative text description. Here we describe how to get something up fast and then annotate that with useful debugging results.