I am researching genealogy on 23andMe.com, trying to find new cousins and determine their relationships to me. All the site gives me is a list of people and their predicted cousin-relationship to me (downloadable as a CSV file), along with a page where I can view a list of common relatives between us and a comparison of their predicted relationship to them (not downloadable, e.g. on person X's page it will say, "person Y-- You: 2nd cousin, X: 3rd cousin"). Unfortunately, in my culture, there has historically been a significant amount of endogamy due to discrimination, so "Distant cousin" can probably mean 10th+ cousins, or more. For my purposes, I take it to mean unrelated. This is the best I can do, given that 23andMe does not give access to a structured data set of all common relatives with respect to a given person, thereby removing the possibility of ruling out relatedness based on the lack of a relative being in another relative's common relatives set. Hence, if I see on person Z's profile that they are distant cousins to several of my cousins from my father's side, and they are 3rd cousins to person A who I'm unsure about, I will reason that person Z is on my mother's side, as is person A.
Reasoning about the information in the form of "If you are 2nd cousins with X and distant with Y, Z, A, and B, and X is 3rd cousins with C, 4th with D, and distant with E, then maybe the connection is..." has become exceedingly difficult and has not produced a smidgeon of results.
Is it possible to determine the exact person-to-person relationship to a cousin solely based on your relationship to mutual cousins vs. their relationship to mutual cousins, and those cousins to other cousins, etc.? If so, how would one go about determining the relationship?
If that was not clear, here is an example to illustrate the question:
Let's say that me and 3rd cousin X do not know how we are related, but share cousin A: X is 2nd cousins with A, I am 4th cousins with A. X is also 3rd cousins with shared cousin B, and B is 2nd cousins with (shared) cousin C who I know is my 2nd cousin from my father's side, etc. By going through this process enough times and documenting the information as I go or graphing it out on a tree, can I deduce that, for example, cousin X must be my paternal grandmother's paternal cousin? Is that possible? How can I do that?
Progress so far
Sometimes you learn more from what you don't know than from what you do, and often it makes the future research direction clearer when you get clear on what you don't know, so here is
What I don't know
After long consideration of the problem, the conclusion I came to was that the following four questions are at the heart of whether the question can be answered and how it would be done (maybe I am wrong and these are not at the heart of it):
- How do I determine whether two people come from the same grandparents?
- How do I determine from which side each person descends from those grandparents? (i.e. X's maternal grandfather and Y's maternal grandmother)?
- How do I keep track of those relationships (especially important if I were to write a program to do it)?
- In general, how much can you really determine from just knowing the cousin relationship to people? Are any of these things possible to determine?
What I do know
What I have determined so far:
Given: A is nth cousin of C and B is nth cousin of C
- To confidently say that A, B, and C shares the same nth-great-grandparents: A and B must also be nth cousins with each other.
But rarely does that happen, and thus, this rule does not take me very far. It is also not yet helpful because it does not explain how to determine which side the common grandparents are from.
The monotony of the solution is not a barrier
Even if the answer to my question is a method which involves a lot of trial and error, monotony, etc, so long as it is rigorously methodical (in a mathematical sort of sense,) such that will work 100% of the time when followed through to the end, I can teach it to a computer and send those results to my hand-made graph generating program by calling a few lines of code like this:
graph.addEdge("Grandmother #1" ,"Father #1") graph.addEdge("Grandmother #1", "Father #2") graph.addEdge("Grandmother #1", "Childless #3") graph.addEdge("Father #1", "Jimmy") graph.addEdge("Father #2", "Sally") graph.addEdge("Jimmy","Son #1") graph.addEdge("Jimmy","Son #2") graph.addEdge("Jimmy","Son #3")
This is what the above lines create:
Sometimes "working 100%" will mean determining that something cannot be determined. That's ok. I'd like to assume though that with enough cross-referencing, the whole picture can be figured out. I'd assume that this program would be useful to many people, so if I get help creating it I would love to distribute it so that others can benefit from it.
P.S: I wrote some of