I'm thinking of creating a family tree organization application and was wondering what you guys thought of for storage and display ideas. I was also thinking there might be good programs out there all ready, or open source projects, I could join instead.
I can't decide whether I should use a database or store the data in XML. It seems like a database would be good in the long term but given the amount of missing data for certain fields (like birth/death deaths), an XML page might be more natural, especially given the low need to update existing people (ya know, unless someone comes back to life?)
Also, are there good programs to convert the data into an object graph? I'm definitely not looking to build a graphics system, so at the least I'd be borrowing something from somewhere.
There was a product called something like "My Brain" that displayed complex structures as linked nodes; if you clicked on one node, it centered it in the screen and showed all linked nodes on the periphery. Struck me as a good (GUI) model for displaying family tree. Also thinking of writing an app of this kind, as my mother's cousin has just spend some time compiling the information for our family.
Personally, I would never *store* the data in GEDCOM format, but you'd want to be able to read/write it. I've done a lot of work with the GEDCOM format and it's lousy, but the previous poster was absolutely correct about it being the lingua franca of genealogical data interchange. A genealogy program that can't handle GEDCOMs is severely crippled.
Paul Clapham wrote:If you are writing a serious application you should store the data in GEDCOM format. This seems to be the lingua franca of the genealogy world.
NO, no, no, a thousand times no. GEDCOM is the external transfer language, the least common subset of requirements. Yes, you must be able to import and export from and to GEDCOM, but you do not want to use that internally. GEDCOM was invented by the Mormons (Church of Latter Day Saints) for their own theological needs. It meets them, but it does not meet the needs of general genealogy research. The LDS have stated that they do not intend to revise the standard, it suits their needs well.
Any relational DBMS will work fine. You do have to make is support how complicated real world families are. My grandfather had three wives, so you had better not just have a structure to support one. A multi-linked tree is probably the right in-memory datastore, as genealogy is usually a directed graph.
There is an old bluegrass standard song about this: "I am my own grandpa"