Family Tree

Web Family Tree (v1.2)

Date file format
Other tasks


I designed the web family tree to be more than just an online version of a traditional tree. With this software it is possible to draw a tree of ancestors and descendants for any person, showing any number of generations (where the information exists).Most other web-based "trees" are little more than text listings of people.

The pages are generated, on demand, by a program running on the web server. A datafile contains details of people and their relationships. This means that the tree is easy to maintain. It takes up less space on the server because there are no HTML files required. The generated pages can be complex, they are consistent with each other, and they are all as accurate and up-to-date as the underlying data file.


This screen shows a tree drawn for my grandfather, with three generations of ancestors and three generations of descendants.


Data file format

The datafile has been kept as simple as possible to reduce maintenance work. The following example shows how a small tree is represented:

  Homer Jay Simpson;Abraham Simpson;Mona Simpson;;;
  Herbert Powell;Abraham Simpson;;;;
  Bart Jo-Jo Simpson;Homer Simpson;Marge Simpson;;;
  Lisa Marie Simpson;Homer Simpson;Marge Simpson;;;
  Maggie Simpson;Homer Simpson;Marge Simpson;;;
  Patty Bouvier;Father Bouvier;Jackie Bouvier;;;
  Selma Bouvier;Father Bouvier;Jackie Bouvier;;;
  Marge Simpson;Father Bouvier;Jackie Bouvier;;;
  Father Bouvier;Unknown Bouvier1;;;;
  Gladys Bouvier;Unknown Bouvier1;;;;


  1. Full name.
    Middle names can be included in this field.
    If more than one person share the same name, a number can be appended (not shown in the displayed output). For example, "Bart Simpson2".
  2. Father (optional - leave blank if not known). No middle names.
  3. Mother (optional)
  4. email address (optional)
  5. web page (optional)
  6. Dates, birth-death (both optional).
    Examples: "17/10/49-24/11/83", "10/69-"
    Note that the year of birth is not shown for people who are still alive.

A single line per person defines their name, their parents (if known). Extra fields are available for storing email address, home page, and dates of birth & death.

The program that generates the pages is written in perl. It runs as a CGI program - its output is the HTML of the page that you see. The program reads in the data file, and analyses the relationships to determine the ancestors, siblings and descendants of the person selected. Tables are generated to display these trees, linking in the portrait images where they exist.



See some examples of trees that other people have created with this software: (some with their own modifications)


The Software

I've published this software with a GNU General Public License. You can access the code in the following ways:


Other tasks

Other tasks which come together to produce this on-line family tree include:


Many thanks to my father and uncle (Richard) for the genealogical research to gather the data for my own family tree.

Image library:

Collecting photographs for the image library is a big task in itself, and an ongoing one.

New images for my own tree can be emailed to me. The preferred format is .jpg, or .gif if necessary. The image size is not so important. The images I upload have an aspect ratio of 2:3, in order to avoid distortion when they are scaled into the "picture frames".