I'm almost sure that my answer will come at surprise. Here is the amazing thing:
there is no such thing as family tree!
I would consider it as a pure historical
casus which is still alive, the result of extreme sexism. I'll explain it.
If you examine what a tree is (in computing, computer science, mathematics, and in genealogy, too) you will see that this is, simply speaking, a "graph without loops" (
http://en.wikipedia.org/wiki/Graph_%28mathematics%29[
^],
http://en.wikipedia.org/wiki/Tree_%28graph_theory%29[
^],
http://en.wikipedia.org/wiki/Tree_%28data_structure%29[
^]). Now, a relation is also a graph, but never a tree, if we talk about family relationships. Isn't that clear why? Because we all have
two parents, not one. Draw a simplest case of "family graph", and you will immediately see it cannot be a tree.
And please don't tell me that the "family tree" is actually a "family graph", only traditionally named a "tree". This is not true. A traditional "family tree" is really a tree, created
by means of massively ignoring the female component! Naive, natural, traditional sexism, not a bit more than that. In real life, such thing as "family tree" does not exist. And, in my strong opinion, does not deserve to be studied and programmed.
Look, I not a fan of the feminism as it is usually understood in modern society, I can easily and freely discuss gender differences and issues, but… come on, imagine that someone will seriously discuss the racial theory in Nazi form as the actual way of looking at things, would you accept this?
If you decide to change this foolishness and work with a family graphs, I would gladly help. This is a quite a doable thing, pleasure to work at.
—SA