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.
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.