Minor issue with set relationships

This has probably been discussed before, in which case I apologise, but I don’t see it exactly. I also know that the functionality here has already been around for some time.

My seventh great grandfather, Samuel Watson, is shown here as spouse of fifth great grand aunt.


One of his wives, my seventh great grandmother, is correctly shown as such (red shows direct ancestors in this colour scheme), but another of his wives was my fifth great grand aunt.

It is doubtless open to debate, but I think that a blood relationship, particularly one of being a direct ancestor, should be shown in preference to a spousal relationship, even if the latter is a degree or two closer.

Then there is his father John Watson, my eighth great grandfather.

As you will see, he is shown as my seventh great granduncle. In fact he was both (I am a direct descendant of his parents in two different ways.)

Again, I would have thought that a direct ancestor relationship should take preference.

The situation looks odder still when you look at his children other than my direct ancestor.

Elizabeth Watson is shown as first cousin eight times removed in preference to her other relationship to me as seventh great grandaunt, which looks odd.

Presumably, there must be a table or an algorithm to work out the preferences, but I am not sure that the preferences are always right at present.

This has been much discussed.

The “spouse of” relationships feature was added in RM10. The Set Relationships tool can only set one relationship. Within actual blood relationships, there is nothing in the tool that tries to pick the “best” relationship". And beyond that, since the “spouse of” relationship feature was added, there is nothing in the tool that tries to give priority of blood relationships over “spouse of” relationships.

I had an SQLite script that color coded my people based on the Set Relationships data in the RM database. Since the “spouse of” relationships was added, I have changed my SQLite script not to depend on RM’s data from Set Relationships. My script now figures out blood relationships and “spouse of” relationships on its own. So my spouses that are also blood relations are once again color coded as blood relations instead of as spouses.

If this problem is not fixed by RM, I plan to write my own SQLite script to set the Set Relationships data in my RM database correctly.

2 Likes

I’m almost there. I’ve a rare problem with half-relationships but it otherwise prioritizes blood relationships over in-law and spouse.

2 Likes

Thanks for your replies and sorry for wasting time on something raised many times before.

My first issue was indeed about favouring blood relationships over spousal ones, but my second issue was about the ranking of two different blood relationships; does it seem odd to others that a relationship of seventh great granduncle is chosen in preference to eighth great grandfather? I would have thought that direct ancestral relationships should take preference over relationships as cousins, uncles, aunts or whatever.

What’s more, the application seems inconsistent in practice. I am descended from one couple in three ways. They appear as fifth great grandmother and grandfather. Their child with whom I have the most direct link is fourth great grandmother; other children from whom I am not descended are fourth great grand uncles or aunts, and the two with the longer descents are fifth great grandmothers like their parents. I think this is as it should be, but why choose fifth great grandmother in preference to fourth great grandaunt, but seventh great granduncle in preference to eighth great grandfather? It seems illogical.

RM’s algorithm for Set Relationships does not do any ranking. It appears to stop at the first relationship it comes to. It’s like it’s going through the database in RIN order or in FamilyID order or something like that and it stops for a person as soon as their first relationship has been determined. But I have never been able to figure out the exact algorithm nor the exact order in which it goes through the database.

My color coding algorithm starts with the base person and color codes the ancestors. The base person is usually me, but sometimes I use one of my children as the base person to color code my wife’s side of the family. As a second step, it color codes the descendants of the ancestors. So this automatically processes a fifth great grandmother before a fourth great aunt. As a third step, it color codes spouses. So this automatically processes blood relationships before spouse relationships. This simple procedure automatically provides most and perhaps all of the prioritization I need without doing any sort of additional and complicated calculations.

I haven’t yet seen Tom’s new Set Relationships script that’s under development. I’m assuming that it will work in a fashion similar to my color coding script, but I won’t know for sure until I see it. A Set Relationships script is going to be more complicated than a color coding script. I’m unlikely to develop my own Set Relationships script given that Tom already has one that is almost done.

One of the things that any such script has to worry about is loops in the data, such as a person being their own grandfather. My script doesn’t look explicitly for loops. Rather, it’s written recursively and it keeps a recursion count. It simply stops if the recursion count gets too high.