RM9: "reference no" schemes

I am using a rather sophisticated “reference no” scheme, by which every person can be uniquely identified within the overall tree and within their generation - easy to use, and an invaluable orientation assistance once it is implemented. However so far it is necessary to enter the respective code manually for each and every person. Would it be possible to develop a RM-Tool that uses a description of such a scheme and implements it to all specified records?


I truly doubt this is going to happen, especially if this reference scheme is something custom that you created. There are simply too many possible reference numbering systems that can be used to even make this remotely feasible. There is a reference number fact and that is all that any of us have so any reference numbering system is going to need to be manually maintained.

1 Like

Please describe your schema.

1 Like

I’d also be interested in hearing about a super-flexible, expandable numbering system.

It starts with a root-person or root-siblings that is/are set to 0
Parents: (1-1), (1-2)
Grandparents: (2-1), (2-2), (2-3), (2-4)
Great-Grandparents: (3-1), (3-2), (3-3), (3-4), (3-5), (3-6), (3-7), (3-8)
The 1st number is the generational distance from the root person, the 2nd number is the count within this generation. Males count odd-, females count even-numbered.
(3-1): pure male line, geat-grandfather connecting through father of father
(3-2): great-grandmother connecting through father of father
(3-3): great-grandfather connecting through mother of father

(3-8): pure femal line, great-grandmother connecting through mother of mother

The count-number within the generation of the parents of a given person are calculated:

  • for the mother the count-number of the given person in their own generation times 2
  • for the father the count-number of the given person in their own generation times 2 minus 1
    i.e. the parents of (2-3) are (3-5) - father and (3-6) - mother

Siblings of father’s mother: [2-2] or more specifically, if grandma was the 3rd sibling of 4:
Siblings of father’s father: [2-1] or more specifically, if grandpa was the 1st of 2:
Thus direct ancestors are enclosed in braces, relatives in square brackets.

Father’s cousins:
[2-2a_1a] - 2 children of grandmother’s oldest sibling
[2-2b_1a] - 1 child of grandmother’s older sibling
[2-2d_1a] - 3 children of grandmother’s younger sibling
[2-1a_1b] - 1 child of grandfather’s younger sibling

[2-2b_1a♂] husband of father’s cousin
[2-2d_1b♀1] 1st wife of father’s cousin
[2-2d_1b-0a] 1st child of father’s cousin
[2-2d_1b♀1-2F] father of 1st wife of father’s cousin
[2-2d_1b♀1-2M] mother of 1st wife of father’s cousin

The numbers before the “_” underscore always point to the ancestor from whose sibling we are branching. After the underscore comes a chain of connected descendents or ancestors - each person starting with a new hyphen followed by a generational number and possibly a letter designating the position amongst his/her siblings

What would a relationship like 4th cousin or 2nd cousin twice removed look like? Or 12th cousin for those able to trace back 350 years or so?

Here are 2 real examples from my own tree:

[8-035_7-6-5-4-3-2-1-0] 1966 - NN
We are related through a common ancestor in the 9th generation, that is, in the 8th generation our ancestors were siblings. I do not have the complete in-between families leading to that person, so I just count the generations (without the sibling letters). He and I are in the same generation.

[4-08a_3a-2a-1a-0c=1a] 1966 - NN
We are related through a common ancestor in the 5th generation, that is, in the 4th generation our ancestors were siblings. Here I have the complete in-between family tree, so that I can not just identify the generations but in each generation the sibling through which we are connected. She is a generation after mine.

As you can see, the system is pretty flexible and can cope with incomplete information.

After generation 0 (which is mine) the count goes to -1. To formally distinguish a generation <0 (coming after my own one) I use the “=”-sign (you can imagine the minus under the hyphen).

The [8-035] and [4-08a] are siblings of my ancestors (8-035) and (4-08i). For my ancestor (8-035) I do not know his position in the line of siblings, therefore no letter.

Other than for the direct ancestors (females even-, males odd-numbered) the system does not distinguish between men and women. For this the attached name will have to do.

That is “sophisticated” alright! Not convinced it is “easy to use” - there is definitely a learning curve (my brain is not up to speed).

How is it an “invaluable orientation assistance”? That is, what advantage does it bring to your RM database over the Set Relationships status for each person and the Relationship Calculator? And the Family, Pedigree, Descendants main views?

There is a simple coding hidden in the database that contains the results of Set Relationships for each person: one field is the number of generations from the common ancestor to that person and the other from the common ancestor to the reference person. I’ve accessed them for Consanguinity operations, just the sum of the two. 4th cousin: 4,4; 2nd cousin 4x removed: 2,6. Both are consanguinity 8, i.e., equal relationship distance so, arguably, of equal interest. It would be much simpler, programmatically, to copy those or their sum to a fact such as Reference Number but I’d rather have Consanguinity as a criterion for color coding, groups, search…

I suppose it all depends on how we internally represent the complex web of ancestors and relatives to ourselves, the point being, that this web is only a “tree”, if you look at how the number of ancestors doubles for you in each generation backward in an ordered manner, but if you look at the people involved, the “tree” becomes twisted in complicated knots. The way I have come to “identify” a person in that web is to look in an abstract way at the line/lines through which we are related and here I begin with the ancestral “tree”. In it every node is unique, even if one and the same person appear in more than one node. " With “abstract” I mean that I do not represent to myself the connecting lines by names of concrete people, (there are just too many and they are too repetitive), but by those nodes.

My half-brother is on one hand connected to me via the path (1-1b_0a½) - through my father - and on the other hand via the path [3-8d_2b-1b], that comes from my mother’s side. From my ancestor (8-3) the path to my mother would be (8-3b_2e_1a). Here my brother belongs to the generation of my parents.

Now to the “invaluable assistance”:
Since in RM the “reference no” can everywhere be displayed together with a person’s name, I can identify the location of a given person within the web, just by looking at the chain of nodes connecting to one of my ancestors, without having to evoke a specific function, choosing a specific view and pretty much independently from the size of my screen. Of course the “reference no” I attach to a person shows the shortest possible path. After a while you can “read” such a string of nodes from left to right like a story and every node is described with a minimum of characters. I have found no better way to “readably” condense so much information.

For example in a people list view all family names are “Kruse” each equipped with several "1st! names in diverse orders. When looking at such a list - I have NO idea who I am looking at. However if every person is identified by their reference number, I see immediately:

  • is it a direct ancestor or a relative?
  • what generation I am looking at?
  • at which generation we are connected?
  • are there any siblings around?
  • are we connected via someone’s spouse?
    and so on…

The “2nd cousin 4x removed” approach is too ambiguous for my taste. Internally I do not operate this way.

2nd advantage is that you can alphabetically order people in a way that reflects the relationships to you. I would not know any other way to do so.

[2-1e_♂] 1885 NN
[2-1e_1a] 1912 NN
[2-1e_1a-0a] 1940 NN
[2-1e_1a-0a-1a] 1965 NN
[2-1e_1a-0a-1b] 1966 NN
[2-1e_1a-0a-1c] 1971 NN
[2-1e_1a-0a-1d] 1971 NN
[2-1e_1a-0a-1e] 1988 NN
[2-1e_1a-0a-1f] 1995 NN
[2-1e_1a-0b] 1941 NN
[2-1e_1a-0c] 1943 NN
[2-1e_1a-0c-1] 1974 NN
[2-1e_1a-0d] 1946 NN
[2-1e_1a-0d-1a] 1977 NN
[2-1e_1a-0d-1b] 1979 NN
[2-1e_1a-0e] 1949 NN
[2-1e_1a-0e-1a] 1974 NN
[2-1e_1b] 1914 NN

In most cases, the system represents an extremely condensed “descendents view”.

3rd advantage: I collect material relating to different people outside RM in a folder tree. With such a code I can easily identify a person without using up lots of characters and I don’t have to map the ancestral tree-structure fully to a sub-folder structure, but can have many generations on one and the same sub-folder level. Alphabetically ordered they appear as they would appear in the descendents view (see above).

What happens when cousins marry, so that one person in your tree has more than one role? I have many thousands of people in my tree that I am related to in more than one way.

Same with me. As I pointed out above, I am related in more than one way to my half-brother.

The utility of this system is not to assign to everyone a unique identity (here it would make much more sense to assign consecutive numbers (as is done anyway by RM in the Rec#), but to show a condensed and at the same time a recognizable path how you are related - as unambiguous as possible with the available information. If not sufficent information is available to make the path unambiguous, the string still gives you an overall orientation - and you can add information later as it becomes available. When there is more than one path, I prefer to put the shorter one into the “reference no”. Sometimes I store 2 paths follwing each other or I put a 2nd and 3rd path it into other “facts” or I omit them alltogether.

There are several numbering systems that are already in use, some which go back to the 1850s. Wikipedia has a very good write-up on many of them, including some I had never heard of before. Take a look at the article here: Genealogical numbering systems - Wikipedia Of the ones described, my favorite is the d’Aboville system, which appears to do much of the same functions as described above, but somewhat more simply. If you are familiar with numbering systems, it is a take off of the Henry system, but adds a period between the generation markers. If you want to know more about existing systems used by professionals and publications, there are several books available on them.

I have read, re-read and read again the Member’s question, and no where do i see him mention or ask the Roots Magic Creators be involved or anyone else for that matter, tampering with the Roots Magic program or code to create such a utility.
Personally I tweak and use and involve lots of software before my database even sees the light of day in the actual Roots Magic program.
There seems to be a number of punters on this site who ridicule, reject or scoff at anyone who attempts to find something that might be an enhancement to assist them in their creating family history.
I certainly hope you are not of of those doubting thomas’s

The original poster asked if it was possible for an “RM-Tool” as I recall. Precisely how many people are out there developing ‘RM-Tools’ outside of the program’s creators? If you also paid attention, it is apparent that the OP is not a native English speaker so on occasion one must read what is being said not how it is written. He was indeed asking if such “tampering” could be done. He may not of asked a specific entity to do it, only if it could be done.

If you have been around for very long then you would known that RM discourages usage of third party tools to alter your database, which is precisely what would have to happen if said tool came into existence. This further decreases the likelihood of such a tool, not to mention that from the OP’s description, that tool would be a real pain in the ashes to write.

Thanks a lot for the link. Most of the systems I know of - and described in the Wikipedia article - handle descendents (so does the d’Aboville-System), not ancestors and the ones which handle ancestors can not branch into sidelines, let alone into their descendents. I can’t say that I know all the numbering systems in existence, but what I do know does not fit my purpose.

You sumise too much. Your reply clearly indicates that you have either not read the question or have not understood what was asked. Other replies seem to have grasped both and have offered up constructive and enlightening opinions, rather than grandstanding. I have been around long enough.

I have not been asking whether RM could develop a specific tool for my specific purposes, but whether they could develop a tool that would use input of a user and then implement a numbering scheme defined by the user (of course they could offer some pre-defined numbering schemes as are described in the Wikipedia article suggested by merryann). I have not given it much thought what it would take to implement something like that myself, because so far I have not much of a clue about the RM-database structure and how to access it directly - and I don’t know whether or not I really want to get into that. In any case, I think such a “tool” should be possible to implement and I don’t think that it would indeed be that complicated to write as you suggest. - I can’t see either how such a tool would mess up the database, because it is just operating on a single “fact”, which people anyway use as they wish. I was asking precicely because I am NOT really a fan of tampering with 3rd-party tools that won’t be supported long term. The main question ist, of course, whether or not there would be a large enough demand for such a tool, but how would we ever find out if nobody ever raisis the issue?

I assure you that I understood the question quite well and I can assure you that my response was probably quite spot on. Such a tool is not likely to happen…which is what I said.

If you note the OP’s followup, they state “The main question ist, of course, whether or not there would be a large enough demand for such a tool”, so once again, they are feeling out a use case which is not likely to happen and when I finally win something on the lottery, I would likely be willing to bet that I am right!

For your specific use or whether they could develop it, it is the same thing. You have a use case and you want to know if a tool can be developed to implement said use case.

I assume from your question that this tool that you ask about but didn’t really ask about is supposed to generate and insert a reference number based on a numbering system that the user supposedly chooses. If you don’t expect this tool to automatically generate and insert the reference number, then there is really no point for the tool as you would still be manually entering it into the reference number field.

I am also going to guess you haven’t spent much time writing code. People that haven’t very often seem to think that a request "can’t be that hard’ when they know little if anything about what it takes to write their brilliant ideas. In a relational database it is not just going to be a single fact that you alter. In this example, it will likely involve altering two table and possible even three (or maybe more.). Given the hoops that already have to be jumped through to make some alterations to the RM DB (RMNOCASE collation for example), this is going to be a pain in the ashes to do.

Now, you ‘raise this issue’, I gave my answer that it wasn’t likely. I also suspect that regardless of the demand (which I can’t imagine there is much of) this still is not likely to happen from either Rootsmagic or a third party.

You DO seem to make a lot of assumptions :slight_smile: but I won’t get into commenting each and every one of them. Anyway, I put out a suggestion and it will either be picked up or not picked up by the RM-programmers irrespectively of OUR personal opinions about what is or isn’t easy to implement and whether or not such a suggestion could be a useful addition. We can opinionate here until hell freezes over, since we are not the ones programming RM, it won’t really matter. Thus, I suggest we leave it at that. - By the way: you are right, I am not a native English speaker and when you want to make a polite suggestion in German, you usually formulate it as a question - which doesn’t make it an opinion poll. As far as my knowledge of English goes, such a construction translates pretty straight forward, especially since the original post is clearly tagged as “feature request”. I don’t know how RM works internally, but I wouldn’t be surprized, if they somehow collect and review posts that have been tagged “feature request” and see whether they contain valuable ideas.

There has been some much on the topic interest from the community with questions, links, suggestions and requests to flesh out and clarify my original suggestion. - That’s the kind of content-focussed conversation I’d hope to see myself when looking up a topic in the archives - so thanks to everyone for that.