Gigatrees supports generation lists using the AGNUS numbering system. Generation lists are basically, nothing more than ancestor lists that use AGNUS rather than the popular Ahnen numbering system (referred to by some authors, including myself on occasion, as the Ahnentafel numbering system). The Ahnen numbering system has been in use for over 400 years, and has remained the most commonly used numbering system for creating lists of ancestors, called an Ahnenliste, due in part to its simplicity, and, no doubt, to its cool name.
The Encyclopedia of Genealogy described the numbering system briefly.
"In an Ahnentafel numbering system, the base person is assigned the number one. The father of each person is assigned a number equal to double the child's number. The mother of each person is assigned a number equal to double the child's number plus one. As a result, the number of any child is one-half that of their parent, ignoring any remainder."
The Ahnen numbering system was developed in the age of pen-and-paper genealogy, for persistence. It was important that id numbers did not change when someone was inserted or removed from a list; redrawing was a bear. There is of course no protection for ids when generations are inserted or removed.
The Ahnen numbering system has what can be referred to as a primary id number and an alternate id number. The alternate id number only appears when a person occurs in more than one location in a list. In a typical Ahnenliste, this can be seen as a "same as" number and is usually located next to an individual's name. Alternate id numbers are caused by consanguinity among ancestors due to intermarrying within families. Primary id numbers in an Ahnenliste grow by the power of two, so for a 50 generation list this results in ids in the hundreds of trillions. For those not interested in writing this out, it requires 15 digits and asks computer algorithms to perform 64 bit arithmemagic. The Ahnen numbering system was definitely never meant to be used for such large trees.
Agnus makes no attempt at being persistent and therefore cannot be thought of as a direct replacement for the Ahnen numbering system. Agnus was developed for computer presentation where renumbering can be done on the fly. Agnus uses a primary id, an alternate id, and an additional secondary id. The generation is kept separate, and for the purposes of presentation is optional when generational information is otherwise displayed. Also, the primary id is composed of a family line and a generational position. The secondary id, is also composed of a family line and a generational position, but for the secondary id, the position is always 0, so need only ever be optionally displayed. Where the primary id in both systems tracks the male ancestral line, the secondary id in Agnus tracks the female ancestral line. Alternate ids indicate the primary id of a duplicate individual.
The benefit of Agnus, is that a list with both primary and secondary ids (and alternate ids) is bidirectional in that it can be traversed in both directions, ancestrally and descendantly (my spell checker says that isn't even a word. I say it didn't use to be). With Agnus, you can tell at a glance who the parents of any person are as well as their descendant. You can traverse paternal ancestral lines by using primary ids only, or you can traverse maternal lines by using the family line numbers of both the primary and secondary ids. When an alternate id is found, the primary id effectively switches over to that of the alternate id -- this behavior is the same for the Ahnen numbering systems as well. For example, if a person's primary id is 1.01 and their secondary id is 2[.00], then their father will be found at primary id 1.02 and their mother at primary id 2.01. Alternately, if the person's primary id is 1.02, their child will be found at primary id 1.01. If the person's primary id is 2.01, their child will be found at secondary id 2[.00].
When it comes to presentation, each of the three ids can be displayed in fixed width formats containing an optional generation id followed by an optional colon, followed by a family line id, followed by a period and a 2 digit generational position, i.e. [GG:]LLLL.PP. The optimal fixed widths can be determined at presentation time. The brackets shown in this syntax indicate optional elements only. One additional presentation feature is needed to indicate whenever the primary id's final generational position has been reached, i.e. the individual has no father. For this I propose placing a simple asterisks (*) after the id, though any sort of visible terminator could suffice. The benefit of this terminator is to inform the viewer when traversing up the list that to continue on to the next generation they will need to follow the secondary id's (mother's) family line. If the mother's line has terminated, the secondary id is simply left blank. The terminator should not be used when an alternate id is present as that already provides that indication. The secondary and alternate ids have a similar syntax, except that neither will ever have an asterisks, the secondary id generational position (PP) is always "00" so only need be optionally displayed, and the alternate id is generally accompanied by the generation number, though it is not necessary as the generation list can still be used effectively without it, but may require more searching as alternate id family numbers are sometimes found in non-adjacent generations. When generation numbers are present in alternate ids, they can also provide an indication of generation hopping which may be helpful to viewers in locating errors in their lineages. A typical 3 id indication therefore might look something like: LLLL.PP* LLLL GG:LLLL.PP. The last presentation feature is strictly optional; whereas in the Ahnen numbering system, ancestors are paired by couples, I propose that Agnus primary ids are sorted by the family line number within each generation. This makes it much easier to visually trace family lines between generations. Each generation in the resulting generation list will then show all male ancestors before showing all female ancestors. Similarly, when secondary ids are assigned as described below, it would simplify presentation if they followed this sorting order, however, accomplishing this may be overly complex, so is not required.
The algorithm is simple. The primary id of the root person when their father is also present in the list will always be 1.01, that is, family line 1, position 1. The same person's secondary id when their mother is present in the list is 2[.00], representing family 2. The primary id of this person's father is 1.02, indicating the 2nd generational position, and their mother will be 2.01, indicating the 1st generational position. With the exception of the root ancestor, all lines begin with women, but generational positions always follow the male line. Best of both worlds, eh? New family lines are created for every woman in the list in numerical order (unless sorted as described above). That is it in a nutshell.
The following list includes the first 4 generations of ancestors for Henry Plantagenet III, King of England. Generations are sorted by family lines, secondary ids were assigned in numerical order (not sorted order).
[1.01 2] Henry Plantagenet, III, King of England
[1.02 3] John Plantagenet, I, King of England
[2.01 4] Isabelle d'Angouleme, Countess of Angouleme
[1.03 5] Henry Plantagenet, II, King of England
[2.02 7] Aymer de Valence, Count of Angoulême
[3.01 6] Eleanor, Duchess of Aquitaine and Queen of France
[4.01 8] Alice de Courtenay
[1.04 9] Geoffrey Plantagenet, V, Duke of Normandy
[2.03 13] William, VI, Count of Angoulême
[3.02 11] William, X, Duke of Aquitaine
[4.02 15] Pierre de Courtenay, I, Count of Courtenay and Montargis
[5.01 10] Princess Matilda, Empress of Germany
[6.01 12] Eleanor de Chastellerault
[7.01 14] Marguerite de Turenne
[8.01 16] Elizabeth de Courtenay
As you can readily see from this list, the root person's male ancestors follow family line 1, i.e. 1.01 -> 1.02 -> 1.03 -> 1.04. His maternal line: (2) -> 2.01 -> (4) -> 4.01 -> (8) -> 8.01. Since family numbers are doled out in order, this is not the same as doubling or bit shifting (adding powers of 2), so the maternal line can include odd numbered families as well. In a similar fashion then, the maternal line can be traced backwards 8.01 -> (8) -> 4.01 -> (4) -> 2.01 -> (2) - > 1.01. For the purposes of presentation, this is a great advantage. Though it is possible to manually traverse a list in such a manner, it is also possible to automate these traversals in a variety of different ways, making Agnus ideally suited for computer presentation of generation lists.
Generation Lists are included on the profile pages of all persons having ancestors. Generation Lists include for each ancestor listed, their migration path, and accumulated reliability assessment. Accumulated reliability assessments always choose the least reliable assessment for the relationship shown and the relationships of all their descendants, so that if a low reliability is found for any parental relationship, no relationship for any earlier ancestor can be more reliable.