Two Laptop Bag*
The moose likes Programming Diversions and the fly likes Family Tree Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCA/OCP Java SE 7 Programmer I & II Study Guide this week in the OCPJP forum!
JavaRanch » Java Forums » Other » Programming Diversions
Bookmark "Family Tree" Watch "Family Tree" New topic
Author

Family Tree

Scott Selikoff
author
Saloon Keeper

Joined: Oct 23, 2005
Posts: 3712
    
    5

Hey all...

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.

Any thoughts or suggestions?


My Blog: Down Home Country Coding with Scott Selikoff
Stan James
(instanceof Sidekick)
Ranch Hand

Joined: Jan 29, 2003
Posts: 8791
A real "computer science" tree probably won't do the job. People marry people with earlier children, their cousins and their ex-wife's sister and all kinds of weird things.

I enjoyed playing with GraphViz and DOT to produce graphs from structured text. You don't get fine control over the layout but it usually does a nice enough job.

A sample that might be as tricky as your family:


A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Nicholas Way
Greenhorn

Joined: Feb 06, 2006
Posts: 11
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.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18708
    
    8

Originally posted by Scott Selikoff:
I can't decide whether I should use a database or store the data in XML.
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.
Ajith Kallambella
Sheriff

Joined: Mar 17, 2000
Posts: 5782
Or use some Ontology based framework for modeling relationships on RDF.



Open Group Certified Distinguished IT Architect. Open Group Certified Master IT Architect. Sun Certified Architect (SCEA).
Matt Harrah
Ranch Hand

Joined: Aug 05, 2006
Posts: 54
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.
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11441
    
  16

so Matt,

I doubt anyone is still waiting for an answer after seven years...


There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
Seetharaman Venkatasamy
Ranch Hand

Joined: Jan 28, 2008
Posts: 5575

yup. here i am
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

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"
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18708
    
    8

Yup, both you and Matt describe what should be done much better than the way I put it those many years ago.
Pat Farrell
Rancher

Joined: Aug 11, 2007
Posts: 4659
    
    5

Oh wow, I didn't notice how decomposed this thread was.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Family Tree