Genealogy Software (Draft of 4/22/2006 - software updated 5/28/06)

Author: Theo Pavlidis

Motivation and Design

In February 2006 I looked around for genealogy software and I did not like what I found. (My search was not exhaustive, so there may be products that I have missed.) I wanted to share genealogical data with relatives in several countries and the only practical way to do this was to present the data in a form readable and displayable by a web browser. Some relatives objected to a web site (even if password protected) for privacy reasons and there were also technical reasons against that solution. So I opted for a set of XML files and a style sheet going with them. A relative would receive the files and the style sheet and they could view them right away on their web browser.

The primary genealogy data consist of a set of XML files, mutually linked in the way shown below.

There is a file for each family connected through hyperlinks to the families of the parents of the husband and wife as well as to the families of their married children.

Blue arrows in the figure denote connections to parents and green arrows connections to children. Dashed arrows in the figure denote connections either to siblings (green) of the couple of the family in the center or connections to the parents of the spouses of their children (blue).

One can traverse the genealogy of the family and follow the arrows by clicking on hyperlinks.

Click on typical family for the look of the data. Then click on the ancestry and/or children links. Or look at several examples of family trees.

The project could have ended with the writing of the style sheet but for two reasons. People like to see family trees, either of descendants of a couple (progeny trees) or ancestors of a person (pedigree trees) so I had to write a program creating such views of the XML database. In addition, creating the XML files using an ordinary XML/HTML editor was rather laborious, so there was a need for a program to enter family data that enforce the expected XML format. The program for generating views is called Genie and that for data entry is GenieEntry. Neither program requires familiarity with XML.

Brief Description of the Programs

Genie is a C++ program that generates HTML views of the XML files in the database folder. Because the database changes only a few times a year (as a result of births, deaths, marriages, and information updates) such a conversion (instead of dynamic style sheets) is acceptable. The core of the program is the parsing of the XML files and the construction of the trees. There is also a lot of code for a GUI and for the graphic display of the trees. Those parts rely a lot on the particular platform, in this case Microsoft Windows XP, so Genie is not likely to run on other platforms. (It requires GDIplus.dll). However the core code is platform independent and at some point it will be made public. The executable has been built with static MFC library.

GenieEntry is also a C++ program that provides a form for entering family data in the database. Compared to Genie, this is a simple program, consisting mostly of the GUI. While GenieEntry is confined to the Microsoft platform, because of its simplicity it runs on earlier versions of Windows than Windows XP. The executable has been built with static MFC library.

How to Use the System (Warning: The programs may have bugs. Use at your own risk!)

A Personal Comment

Another reason for staying away from commercial products is that many of them offer search facilities for accessing US and Western European databases. Because my ancestors came from the Ottoman empire and those of my wife from the Russian empire (in both cases the ancestors fled persecution) I did not want to pay for a feature that I had no use for. Anyway, I have posted an early history of my family on the web.

Back to the Main Software Page Site Map