Family Tree Utility

This is a simple tool for turning a family tree into a web site. The data comes from a file like this, which you have to type in by hand. The output looks like this.


The utility is written in pure Java, and so it should run on pretty much any platform. It requires at least version 1.2 of Java (you can get the latest version for free here). To run it:

That's it.

Format of family-tree files

You should make your family-tree files in a text editor, such as Notepad. Conventionally, their filenames end with .tree. Each line of the file can be

Blank lines and comments don't do anything. I'll explain the other three kinds of line one at a time.

PERSON lines

A typical PERSON line looks like this:

PERSON APT1975 M Alistair Phipps Turnbull BORN 1975 Cambridge QUALIFICATIONS MA MSci
The line consists of words, separated by spaces. The first word (not including PERSON) is a unique identifier for the person. I make my identifiers from initials and dates of birth, but you can use any convention you want. The second word is the sex of the person, and must be M, F or ?. The next few words give the person's full name. If you don't know the person's name, skip it.

The line ends with any combination of the following:

Any parts you miss out will be assumed to be unknown.

NOTE lines

A typical NOTE line looks like this:

NOTE APT1975 Author of the family tree program.
The first word (not including NOTE) is the identifier of the person the note is about. The rest of the line can be anything you like. It is included literally in the output as a paragraph, so you can even use HTML tags. This means you can include a link to the person's home page, for example, or a photograph. However, be sure to use &lt;, &gt; and &amp; instead of <, > and &.


A typical MARRIAGE line looks like this:

MARRIAGE BPT1944 RMPT1946 1972 Eskdale CHILDREN APT1975 SGT1977 MMT1979
The first word (not including MARRIAGE) gives the identifier of the father, and the second gives the mother. Both are compulsory, and the people must be described by a PERSON line somewhere else in the file (not necessarily earlier). The line can stop here if you don't have any more information.

If the line continues, the third and fourth words give the time and place of the wedding (one word each). The line can stop here too, to indicate that you don't know if there were any children.

The fifth word, if present, must be CHILDREN, and all remaining words are the identifiers of the children. The order in which the children are listed is the order they will appear in the output. It is conventional to list them in decreasing order of age.

The order in which MARRIAGE lines appear in the file is the order in which they will appear in the output. Chronological order is conventional.

Source code

This program is pretty basic, and not remotely configurable. Unless it already does exactly what you want, you will probably need the source code.


This program is copyright Alistair Turnbull 2003. You may use it under the terms of the GNU Public Licence (which you can easily find on the web).