Highlights:

Reverse octal
and other numberings of ancestors

Sosa numbering

Genealogists who compile a list of a person's ancestors, called an ahnentafel or ahnenreihe, most often use Sosa numbering. The "root" individual whose ancestors are being listed is numbered 1, and at each generation the father and then the mother of each person in the previous generation is listed, and numbered, in order.

Thus here are the first few generations:

  1. Person.
  2. Person's mother
  3. Person's father's mother
  4. Person's mother's father
  5. Person's mother's mother
  6. Person's father's father's mother
  7. Person's father's mother's father
  8. Person's father's mother's mother
  9. Person's mother's father's father
  10. Person's mother's father's mother
  11. Person's mother's mother's father
  12. Person's mother's mother's mother

This system has these features:

Nevertheless, Sosa is not always easy to work with. For instance, tracing an ancestral line, or seeing who is an ancestor (or even parent) of who, can require considerable arithmetic. It takes some crunching to get that the descent from #7399 goes 3699, 1849, 924, 462, 231, 115, 57, 28, 14, 7, 3, 1. Which of the sixteen of the root's great-great-grandparents, 16 through 31, is #889 an ancestor of? (Answer: 27.)

And these are fairly small numbers. Many genealogies sport far more generations. Here are two extreme examples, where the largest numbers appearing are 18484050353669565969914629455873 and 147793783161630549847572480, respectively. Can you guess which of the root's great-great-grandparents each of these is alleged to be the ancestor of? These examples are of course rather incredible, but many ahnentafels with two or three dozen generations are not, such as long royal descents. It can be quite hard to see the relationships in the numbers.

Binary

Today the whole world uses a positional number system with a base of 10, also known as decimal. Starting from the right, each position to be filled with a digit in a written number has a value ten times the previous one. So, "4253" represents four thousands plus two hundreds plus five tens plus three ones.

The choice of ten is arbitrary, stemming from the number of fingers humans have. A positional system based on another number, say seven, works just the same. Then "4253" represents four seven-cubeds (343 in decimal) plus two seven-squareds (49 in decimal) plus five sevens plus and three ones, or what in decimal we would call 1508.

Other bases are mostly a mathematical curiosity, but do have applications. For instance, computers internally use base 2, or binary, since it is easier to make an electronic switch with two positions than with ten. Thus the stereotype that machines think in ones and zeros, or bits. "11001001" is 201 in decimal.

And ancestor numbering is really binary. Analogous to bits of 0 or 1, each ancestor is either a mother or a father. As an example, take the Sosa number above of 8109. In binary, this is 1110101110111, and the line of descent goes 111010111011, 11101011101, 1110101110, 111010111, 11101011, 1110101, 111010, 11101, 1110, 111, 11, 1, in other words we just drop the bits off the end. Similarly, we readily see that #1101111001 (889) is an ancestor of #11011 (27).

Binary ancestor numbering has many nice features:

However, it has one glaring defect: it is quite cumbersome. Even eight- or nine-bit numbers are an eyesore, and hearing one spoken may just be hypnotic.

Octal

Computer programmers who must work with binary also find it cumbersome, so a common technique is to group bits by threes or by fours. This is accomplished by using a base of a power of two, in this case 8 or 16 respectively. These bases are better known as octal and hexadecimal, and are both widely used.

Thus "10101001" could be grouped "10 101 001", and thus be "251" in octal, or as "1010 1001", and be "a9" in hexadecimal (since hexadecimal requires sixteen distinct digits, the letters a through f are added with the values ten through fifteen).

We do the same with Sosa numbering. I do not recommend hexadecimal, since mixing letters and numbers is confusing, and letters are often used to label descendants. Octal has only two fewer digits than decimal, and the average number is about 11% longer written in octal versus decimal1, which is not too burdensome.

For comparison, the last generation in the above list would instead read as follows:

  1. Person's father's father's father
  2. Person's father's father's mother
  3. Person's father's mother's father
  4. Person's father's mother's mother
  5. Person's mother's father's father
  6. Person's mother's father's mother
  7. Person's mother's mother's father
  8. Person's mother's mother's mother

The next generation would be numbered 20–37.

However, some benefits of binary are weakened with octal:

Using octal for Sosa numbering is certainly still appealing, but I propose a further alteration.

Reverse octal

Different bases can be used not just with whole numbers (integers), but with any real number. For instance, in decimal 0.43 means four tenths plus three hundredths. "0.43" in base 7 would thus be four sevenths plus 3 forty-ninths, which is about 0.633 decimal. The "." (or a "," in some countries) is often called a "decimal point"; this can be confusing if we're not using decimal, so I will call it a binary point, an octal point, or whatever is appropriate.

Reverse binary numbering works just like binary numbering, except we put the bits after the binary point (in the same order). Thus, we number ancestors with fractions rather than integers, starting with 0.1 instead of 1. I will explain in a moment why we would do this, but first a technical point: In binary Sosa numbering there is a placeholder 1 at the start. The placeholder is needed because 110, 0110, and 00110 are all the same number, while 1110, 10110, and 100110 are not. In reverse binary we put the placeholder bit at the end, because 0.011, 0.0110, and 0.01100 are all the same number, but 0.0111, 0.01101, and 0.011001 are not. We thus start with 0.1 (the root); 0.01, 0.11 (the parents); 0.001, 0.011, 0.101, 0.111 (the grandparents); and so on. 0.001101 is the root's father's father's mother's mother's father.

Reverse binary offers no real advantage over just binary, but reverse octal does offer an advantage over octal, namely that the bits are not shifted through the groups of three when a generation is added. For instance, if a person's reverse binary number is 0.1011100111, then her (it is a her!) parents are 0.10111001101 and 0.10111001111. Grouping by threes, these numbers are 0.101 110 011 1, 0.101 110 011 01, and 0.101 110 011 11, or in octal 0.5634, 0.5632, and 0.5636. No arithmetic is needed at all! The only confusing part is the disposition of the last digit, but for that you just need to remember "the basic pattern":


The Basic Pattern

All ancestors of x4 start with x, and this pattern iterates indefinitely.

I use the distinct symbol ° as the octal point. Also, the initial zero before the octal point is redundant and so is dropped, so the person above would be labelled °5634. The octal point itself may be optionally dispensed with in tables and lists.

The root person is thus °4. The Sosa decimal example of 7399 translates to °63474, and the line of descent is 6347, 6346, 6344, 635, 636, 634, 63, 62, 64, 7, 6, 4. It requires no arithmetic to see that °5714 (decimal 889) is the ancestor of °56 (decimal 27), though you do need to know that any x7y (for y not empty) descends through x74, x7, x6, x4. Someone's direct patrilineal line goes 4, 2, 1, 04, 02, 01, 004, 002, 001, etc., and the matrilineal line goes 4, 6, 7, 74, 76, 77, 774, and so on.

A summary of the properties of reverse octal:

Mathematicians may appreciate another interpretation of this system: The root "owns" the interval (0,1), where all his or her ancestors are. The root's father owns (0,1/2) and the root's mother owns (1/2,1), and so on, with each person's two parents splitting the interval that person owns. A person is labelled with the midpoint of their interval.

A long example

I illustrate this system with Stewart Baldwin's table of ancestors of Llywelyn the Great. This work, though impressive, is hard to follow via the Sosa numbers, the largest of which is 25763840. Here are the same ancestors labelled with reverse octal (for full details see Baldwin's page):

4. Llywelyn ap Iorwerth, prince of North Wales
2. Iorwerth Drwyndwn ab Owain Gwynedd 6. Margred ferch Madog
1. Owain Gwynedd 3. Gwladus ferch Llywarch 5. Madog ap Maredudd
04. Gruffydd ap Cynan, king of Gwynedd 14. Angharad ferch Owain 24. Llywarch ap Trahaern 44. Maredudd ap Bleddyn 54. Hunydd ferch Einudd
02. Cynan ab Iago 06. Radnaillt of Dublin 12. Owain ab Edwin 20. Trahaern ap Caradog, king of Gwynedd 42. Bleddyn ap Cynfyn, king of Gwynedd and Powys 46. Haer ferch Cillin 52. Einudd of Dyffrin Clwyd
01. Iago ab Idwal, king of Gwynedd 05. Amlaíb mac Sitric 07. Máelcorcre ingen Dúnlaing 11. Edwin of Tegeingl 13. Iwerydd ferch Cynfyn 21. Caradog 41. Cynfyn ap Gwerystan 43. Angharad ferch Maredudd 45. Cillin y Blaidd Rhudd
004. Idwal ap Meuric, king of Gwynedd 044. Sitric mac Amlaíb, king of Dublin 054. Slani ingen Briain 064. Dúnlaing mac Tuathail, king of Laigin 124. =41 404. Gwerystan 424. Maredudd ap Owain
002. Meuric ab Idwal Voel 042. Amlaíb Cuaran, king of Dublin and York 046. Gormlaith ingen Murchada 052. Brian Bóruma mac Cennétig, king of Mumu/Munster and Ireland 062. Tuathal mac Augaire, king of Laigin 122. =404 422. Owain ap Hywel Dda, king of South Wales
001. Idwal Voel ab Anarawd, king of Gwynedd 272. Sitric ua Ímair, king of Dublin and York 045. Murchad mac Finn, king of Laigin 051. Cennétig mac Lorcain, king of Thomond 053. Be Bind ingen Aurchada 061. Augaire mac Ailella, king of Laigin 421. Hywel Dda ap Cadell, king of South Wales 423. Elen ferch Llywarch
0004. Anarawd ap Rhodri Mawr, king of Gwynedd 0404. ? mac Ímair 0444. Finn mac Máel Mórda 0504. Lorcan mac Lachtnai 0524. Aurchad mac Murchada, king of Uí Briúin 0604. Ailill mac Dúnlaing, king of Laigin 4204. Cadell ap Rhodri, king of South Wales 4224. Llywarch ap Hyfaidd
0002. Rhodri Mawr, king of Gwynedd 0402. Ímar, king of Dublin 0442. Máel Mórda mac Muirecáin, king of Airthir Liphi 0502. Lachtnae mac Cuircc 0522. Murchad mac Máenaig, king of Iarthar (West) Connacht 0602. Dúnlaing mac Muiredaig, king of Laigin 4202. =0002 4222. Hyfaidd ap Bleiddig, king of Dyfed
0001. Merfyn Frych ap Gwriad, king of Gwynedd 0441. Muirecán mac Diarmata, king of Laigin 0501. Corcc mac Anluain 0521. Máenach mac Flaithnia 0601. Muiredach mac Brain, half-king of Laigin 0603. Etromma ingen Indellaig 4201. =0001 4221. Bleiddig (or Bledri) 4223. Tangwystyl ferch Owain
00004. Gwriad 00014. Esyllt ferch Cynan Dindaethwy 04404. Diarmait mac Ruadrach, king of Airthir Liphi 05004. Anluan mac Mathgamna 05204. Flaithnia mac Fiangalaig 06004. Bran Ardchenn mac Muiredaig, king of Laigin 06024. Indellach mac Meic [F]orb[b]a 06034. Fidcossa 42004. =00004 42014. =00014 42224. Owain ap Maredudd
00012. Cynan Dindaethwy ap Rhodri Molwynog, king of Gwynedd 04402. Ruaidri mac Fáeláin, king of Laigin 05002. Mathgamain mac Toirrdelbaig 05202. Fiangalach mac Flainn Rodba 06002. Muiredach mac Murchada, king of Laigin 06022. Mac [F]orb[b]a 42012. =00012 42222. Maredudd ap Tewdws, king of Dyfed
00011. Rhodri Molwynog ab Idwal Iwrch 04401. Fáelán mac Murchada, king of Laigin 05001. Toirrdelbach 05201. Flann Rodba mac Amalgada 06001. Murchad mac Brain Muit, king of Laigin 06003. Conchenn ingen Cellaig Cualain 42011. =00011 42221. Tewdos ap Rhain
0001 04. Idwal Iwrch ap Cadwaladr Fendigaid 0440 04. =06001 0520 04. Amalgaid mac Cind Fáelad 0600 04. Bran Mut mac Conaill 0600 14. Almaith ingen Blathmaic 0600 24. Cellach Cualann mac Gerthide, king of Laigin 0600 34. Mugain ingen Faílbe 4201 04. =000104 4222 04. Rhain ap Cadwgon Trydelig
0001 02. Cadwaladr Fendigaid ap Cadwallon, king of Gwynedd 0440 02. =060004 0520 02. Cenn Fáelad mac Colgan, king of Connacht 0600 02. Conall mac Fáeláin 0600 06. Condadil ingen Crundmáel 0600 12. Blathmac mac Eogain 0600 16. Etain ingen Mongáin 0600 22. Gerthide mac Dícolla Dánae 0600 32. Failbe mac Domnaill 0600 36. Ethne ingen Crundmáel 4201 02. =000102 4222 02. Cadwgon Trydelig ap Cathen
0001 01. Cadwallon ap Cadfan, king of Gwynedd 0440 01. =060002 0440 03. =060006 0520 01. Colgú 0600 01. Fáelán mac Colmáin, king of Laigin 0600 03. Sárnat ingen Echach 0600 05. Crundmáel mac Fínáin 0600 11. Eogan mac Colmáin 0600 15. Mongán 0600 21. Dícuill Dánae mac Rónáin Craich 0600 31. Domnall mac Cormaic 0600 35. Crundmáel Erbuilc mac Rónáin, king of Laigin 0600 37. Failend ingen Suibne 4201 01. =000101 4222 01. Cathen ap Gwlyddien
0001 004. Catamanus, king of Gwynedd 0440 004. =060001 0440 014. =060003 0440 024. =060005 0600 004. Colmán mac Cairpri 0600 014. Fedelm ingen Óengusa 0600 024. Eochu mac Báeth 0600 044. Fínán mac Maine 0600 054. Lassar of Airgialla 0600 104. Colmán mac Báetáin 0600 204. Rónán Crach mac Óeda 0600 304. Cormac mac Diarmata 0600 344. Rónán mac Coluim, king of Uí Chennselaig 0600 364. Suibne mac Commáin 4201 004. =0001004 4222 004. Gwlyddien ap Nowy
0001 002. Iago, king of Gwynedd 0440 002. =0600004 0440 006. =0600014 0440 012. =0600024 0440 022. =0600044 0440 026. =0600054 0600 002. Cairpre mac Cormaic 0600 012. Óengus 0600 016. Lassi ingen Fergna 0600 022. Báeth 0600 042. Maine mac Nad Fraích 0600 102. Báetán mac Echdach 0600 202. Áed Díbchíne mac Senaig 0600 302. Diarmait 0600 342. Columb mac Cormaic 0600 362. Colmán mac Cobthaig 4201 002. =0001002 4222 002. Nowy ap Arthur
0440 001. =0600002 0440 005. =0600012 0440 007. =0600016 0440 011. =0600022 0440 021. =0600042 0600 001. Cormac mac Ailella 0600 015. Fergnae mac Fergusa 0600 041. Nad Fraích mac Echdach 0600 101. Eochaid mac Muiredaig 0600 201. Senach Díbech 0600 301. Eochu Guinech, king of Uí Bairrche 0600 341. Cormac mac Nath Í 0600 361. Cobthach 4222 001. Arthur ap Pedr
0440 0004. =0600001 0440 0064. =0600015 0440 0204. =0600041 0600 0004. Ailill mac Dúnlainge, king of Laigin/Leinster 0600 0144. Fergus 0600 0404. Eochaid mac Dúnlainge 0600 1004. Muiredaig mac Loairn 0600 3404. Nath Í mac Crimthaind 4222 0004. Pedr/Peter ap Cyngar
0440 0002. =06000004 0600 0002. Dúnlaing 0600 0402. =06000002 0600 1002. Loarn 0600 3402. Crimthann mac Énnai Chennselaig, king of Laigin/Leinster 4222 0002. Cyngar ap Gwerthefyr
0440 0001. =06000002 0600 3401. Énnae Cennselach 4222 0001. Uortiporius, king of Demetia/Dyfed
4222 0000 4. Agricola, king of Demetia/Dyfed

Note that for octal strings of six digits or more I group the digits in fours, similar to how decimal digits are traditionally grouped in threes.

With this labelling, one can "read off" interesting facts. For instance, the last entry, Agricola °4222 0000 4, is a direct patrilineal ancestor of the woman Tangwystyl ferch Owain °4223. The line founder Dúnlaing, who appears three times in the genealogy, is the direct patrilineal ancestor of three women—Máelcorcre ingen Dúnlaing °07, her distant ancestor Condadil ingen Crundmáel °0600 06, and her husband's grandmother Gormlaith ingen Murchada °047. There are four "maternal" steps out to Agricola—and six (out of 17) to Failend ingen Suibne °0600 37.

The only tricky part is the gymnastics with the last digit, but that just takes practice.

Twisted octal (a tangent)

Reverse octal has a few unsatisfactory properties, the largest one in my view being that it uses funny fractions instead of a simple sequence of integers starting with 1. What I call twisted octal is a variation designed to address this. I don't really intend it as a serious proposal, just an interesting one. Who knows though?

It's twisted because the order of the bits is reversed but the placeholder bit is at the start, as is necessary for integers. The numbering is done at each generation by sequentially numbering first the fathers of everyone in the previous generation, and then the mothers. Hence, it starts off

  1. Person.
  2. Person's mother
  3. Person's mother's father
  4. Person's father's mother
  5. Person's mother's mother
  6. Person's mother's father's father
  7. Person's father's mother's father
  8. Person's mother's mother's father
  9. Person's father's father's mother
  10. Person's mother's father's mother
  11. Person's father's mother's mother
  12. Person's mother's mother's mother

Or, keep the "natural" order and number them

  1. Person.
  2. Person's mother
  3. Person's father's mother
  4. Person's mother's father
  5. Person's mother's mother
  6. Person's father's father's mother
  7. Person's father's mother's father
  8. Person's father's mother's mother
  9. Person's mother's father's father
  10. Person's mother's father's mother
  11. Person's mother's mother's father
  12. Person's mother's mother's mother

This system's structure is similar to reverse octal. However, as in "forward" octal, the first digit rather than the last is the exceptional one. The ancestors of 14 in this scheme are just those whose number ends in 4. Ancestors within each generation are no longer in numerical order, in contrast with Sosa numbering (of any base) and reverse octal.

I leave it to the reader to work out the other properties of this system, many of which are direct analogs of those in reverse octal.

Other operations

Sometimes one wants to computate relations relative to another root.

In Sosa numbering, the #76 of #123 is... #7884. In octal, the #114 of #173 is #17314. In reverse octal, the °144 of °734 is °73144. In these cases, octal can be conveniently applied without arithmetic. However, this is just "lucky"; both numbers denote six steps from the root, a multiple of three.

In other cases, a "shift" operation is needed. Consider in Sosa that #204 of #247 is #31692. In octal, #314 of #367 is #75714. In reverse octal, °462 of °736 is °73631. In these cases, one of the two numbers—the second in the case of "forward" octal, the first in the case of reverse octal—must be multiplied or divided respectively by two and attached to the other number, with due accommodation for the transitional digit. This is still far simpler than decimal.

Simpler examples: My °13 is my father's °26, and my °704 is my mother's °61. My °251 will be my children's °1244 or °5244, depending on my (hypothetical) sex.

Conclusion

The proposed numbering schemes trade some advantages for others. For me, the disadvantages of Sosa numbering led me to develop and use this altenative, despite Sosa's established position.

Whether reverse octal is a good idea or a crazy one, I have been using it for several years now. Perhaps others will also find it useful.

Galen Huntington
2015 Nov 14 ⊖ CTE