Drawing a family tree looks easy until the complexities of a real, sometimes messy, family are encountered. It isn't the actual drawing - it's the deciding where on the 'paper' each individual is to be put so that their family-as-child doesn't look too spread out and likewise their families-as-parent.
None of the commercial family tree packages does exactly what I want, so I have my own program running off a database of my own design.
But drawing a family tree chart is by no means straightforward when relationships can be very complex and the number of people very large. What I have devised works up to a point but has grown like topsy and needs a fundamental redesign. Starting from (basically) a list of individuals and their parents, I want to get an x and y for everyone such that nuclear families cluster and marriage partners are adjacent - as far as reasonably practicable on both scores.
I have found on the internet a paper by Coulson and Glasspool (The RAGs Software: Pedigree Layout Algorithm) published by the Advanced Computation Laboratory, Imperial Cancer Research Fund in 2000 which at first sight looks promising, but the key assumptions they make are not true of my data, viz:
1. Each Individual can be given a unique generation number such that their children all have the generation number which is one more than that individual.
2. Where one parent of an individual is known, so is the other.
Both of these could be got round, I think, by the use of dummy individuals to act as placeholders, but this is messy both in computation and in presentation, so I'd rather not do it. And I'm not sure this will get round assumption 1 in all cases.
What's more, I think there may be implicit assumptions which are also not true of my data. What I want to cater for would allow for all these:
11. Any individual may be married several times, as may any of the spouses.
12. Any individual may have children whose other parent is not one of the spouses of that individual.
13. An individual may marry his first cousin.
14. An individual may marry his/her first cousin once (or twice!!) removed.
15. The people to be charted may not all be related to one another, ie two or more trees may be needed on the same chart.
16. Approximate contemporaries should have approximately the same y
17. There may be no common ancestor and no common descendant for any tree and no one person who is the focus of a tree, ie everyone is an ancestor or descendant of that person or the spouse or sibling of one.
So I want an algorithm! The few commercial packages and websites I have seen do not seem to have solved this one - one administrator went so far as to say that a GEDCOM file which allowed no 13 above must be invalid.
Does anyone have any ideas? I can't be the first to have sought an answer!
Sorry about the long post, but at least it gets it off my chest!
None of the commercial family tree packages does exactly what I want, so I have my own program running off a database of my own design.
But drawing a family tree chart is by no means straightforward when relationships can be very complex and the number of people very large. What I have devised works up to a point but has grown like topsy and needs a fundamental redesign. Starting from (basically) a list of individuals and their parents, I want to get an x and y for everyone such that nuclear families cluster and marriage partners are adjacent - as far as reasonably practicable on both scores.
I have found on the internet a paper by Coulson and Glasspool (The RAGs Software: Pedigree Layout Algorithm) published by the Advanced Computation Laboratory, Imperial Cancer Research Fund in 2000 which at first sight looks promising, but the key assumptions they make are not true of my data, viz:
1. Each Individual can be given a unique generation number such that their children all have the generation number which is one more than that individual.
2. Where one parent of an individual is known, so is the other.
Both of these could be got round, I think, by the use of dummy individuals to act as placeholders, but this is messy both in computation and in presentation, so I'd rather not do it. And I'm not sure this will get round assumption 1 in all cases.
What's more, I think there may be implicit assumptions which are also not true of my data. What I want to cater for would allow for all these:
11. Any individual may be married several times, as may any of the spouses.
12. Any individual may have children whose other parent is not one of the spouses of that individual.
13. An individual may marry his first cousin.
14. An individual may marry his/her first cousin once (or twice!!) removed.
15. The people to be charted may not all be related to one another, ie two or more trees may be needed on the same chart.
16. Approximate contemporaries should have approximately the same y
17. There may be no common ancestor and no common descendant for any tree and no one person who is the focus of a tree, ie everyone is an ancestor or descendant of that person or the spouse or sibling of one.
So I want an algorithm! The few commercial packages and websites I have seen do not seem to have solved this one - one administrator went so far as to say that a GEDCOM file which allowed no 13 above must be invalid.
Does anyone have any ideas? I can't be the first to have sought an answer!
Sorry about the long post, but at least it gets it off my chest!
Comment