ROOTS-L Archives

Archiver > ROOTS > 1990-10 > 0655397150


From: nr swart <>
Subject: Exploring Blood Relationships - Part A.
Date: Mon, 8 Oct 90 14:45:50 GMT


Exploring Blood Relationshps: Part A

The appended article and associated QuickBasic program has been
published in:

Computers in Genealogy, Vol.3(No.9), 368-372 (September,1990)

Permission to make this electronic copy has been given by Eric
Probert (the editor of Computers in Genealogy) on behalf of the Society
of Genealogists. Copyright (c) is vested in the Society of
Genealogists, U.K. and the author (E.R. Swart) and the article should
not be copied without due acknowledgement.

The compiled binary code for the Basic program is stored in Part B.

For a related article see also:

E.R. Swart, 'An improved Relationship Table', National Genealogical
Society - Computer Interest Group Digest, Vol.8(No.2),15-17,
(March\April, 1989).

* * * *
ACTUAL ARTICLE STARTS HERE
* * * *

Exploring Blood Relationships

by Edward R. Swart
276 Beechlawn Drive, Waterloo, Ontario N2L 5W7, Canada

In a recent article [1], I put forward a suggestion for an improved
relationship table based on a more traditional table in a previous
article by Wesley Johnston [2]. Since writing my article, my attention
was drawn to a much earlier and interesting approach by Cecil Humphery-
Smith [3] and it seemed appropriate to try and combine all these ideas
in a further article and to actually supply a computer program for
determining relationships.

We first of all need a few definitions:

A progenitor is an ancestor (male or female) from whom a given
subject is lineally descended. In other words a progenitor is a
parent, grand parent or xth great grandparent for some specific x.

A pair of progenitors is a married couple (not necessarily legally
married) from whom the subject is lineally descended.

A common pair of progenitors is a married couple from whom a given
subject and some other individual are both lineally descended.

Two individuals are blood relatives whenever they have a common
pair of progenitors. (For the purposes of this article we will not
concern ourselves with half-relationships, in which two individuals
share a single progenitor but not a pair of progenitors).

The nature of the relationship between a given blood relative and
a chosen subject is decided by three things:

(1) The sex of the relative.
(2) The number of generations from the common pair of progenitors
to the relative.
(3) The number of generations from the common pair of progenitors
to the subject.

In deciding on the number of generations from the pair of
progenitors to the subject and the relative it is essential to
stipulate, in addition, that there must be no lineal descendant of the
common progenitors who himself/herself belongs to a common pair of
progenitors for both the subject and the relative. In other words, for
a given line of descent, parameters (2) and (3) must be chosen so as to
be as small as possible. This does not mean that two blood relatives
cannot be related in more than one way by virtue of some other shared
line or lines of descent arising from intermarriage.

Armed with these definitions, we can illustrate the relationship
between a blood relative and a chosen subject in tabular form. The
table below combines the ideas of Wesley Johnston and Cecil Humphery-
Smith and allows relationships, which are not too distant, to be read
off directly.

Relationship abbreviations:

I = identity A = aunt/uncle GG = great grand
P = parent - mother/father CN = cousin xGG = xth great grand
S = sibling - brother/sister N = niece/nephew xCN = xth cousin
C = child - son/daughter G = grand xCNyR = xth cousin y
times removed
+-----+-----+-----+-----+-----+-----+-----+-----+
| 5 | 4 | 1CN | 2CN | 3CN | 4CN | 5CN | |
7 | GGP | GGA | 5R | 4R | 3R | 2R | 1R | 6CN |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 4 | 3 | 1CN | 2CN | 3CN | 4CN | | 5CN |
6 | GGP | GGA | 4R | 3R | 2R | 1R | 5CN | 1R |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 3 | 2 | 1CN | 2CN | 3CN | | 4CN | 4CN |
5 | GGP | GGA | 3R | 2R | 1R | 4CN | 1R | 2R |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 2 | | 1CN | 2CN | | 3CN | 3CN | 3CN |
4 | GGP | GGA | 2R | 1R | 3CN | 1R | 2R | 4R |
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | 1CN | | 2CN | 2CN | 2CN | 2CN |
3 | GGP | GA | 1R | 2CN | 1R | 2R | 3R | 4R |
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | | 1CN | 1CN | 1CN | 1CN | 1CN |
2 | GP | A | CN | 1R | 2R | 3R | 4R | 5R |
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | | | | 2 | 3 | 4 |
1 | P | S | N | GN | GGN | GGN | GGN | GGN |
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | | | 2 | 3 | 4 | 5 |
0 | I | C | GC | GGC | GGC | GGC | GGC | GGC |
+-----+-----+-----+-----+-----+-----+-----+-----+
0 1 2 3 4 5 6 7

X Axis - Generations from common
progenitor pair to relative

Y Axis - Generations from subject
to common progenitor pair

Traditional relationship scheme
Table 1.

As an example of the use of this table consider a subject/relative
pair for which the relative is a female; the number of generations from
the common pair of progenitors to the relative is 4; and the number of
generations from the common progenitor pair to the subject is 1. We can
then read off from the square (4,1) that the relative is a great grand
niece of the subject. If the relative and the subject are both 0
generations from the common progenitor pair then the relationship is
given by the square (0,0) and is one of identity. If the relative is 0
generations away from the common pair of progenitors and the subject is
2 generations away then the relationship is given by square (0,2) and
the relative is the grandparent of the subject and so on.

The trouble with this traditional scheme of relationships is that
the concept of an 'xth cousin y times removed' is not a natural
extension of those relationships with which we are all familiar. It is,
moreover, a scheme which is ambiguous. We do not know whether a 2nd
cousin 1 time removed is the great grand child of our 2nd great grand
parents or a 2nd great grand child of our great grand parents. The
situation is particularly ambiguous in those case when the relative is
many generations removed from the subject. We have no idea whether a
2nd cousin 6 times removed is many generations older or many generations
younger than the subject. One other shortcoming of this nomenclature is
that it does not, of itself, give any information on the sex of the
relative.

A modified relationship scheme

We are all familiar with the relationships aunt, uncle, niece,
nephew and cousin (usually meaning first cousin). We are equally
familiar with the use of the adjective grand to take us back or forward
one generation and the use of the adjective great to take us backward
and forward even further in time. It would seem only sensible to extend
these familiar notions to all blood relationships.

We tend to think of nieces and nephews as being one generation
younger than ourselves, cousins as being the same generation as
ourselves and aunts and uncles as being one generation older than
ourselves. It is thus entirely appropriate to refer to all our distant
relatives who are one generation older than us as aunts and uncles and
all those who are one generation younger than us as nieces and nephews.
Moreover, just as we speak of 2nd cousins, 3rd cousins etc we can speak
of 2nd aunts, 3rd nephews and so on. The resulting relationship scheme
with suitable extensions is set out, in detail, in the second table.

Once again, the relationship between a relative x generations and
a subject y generations from a common progenitor pair, is given by
square (x,y). But, for this modified scheme, all ambiguity is removed.
The great grandchildren of our 2nd great grand parents are 3rd aunts or
uncles whereas the 2nd great grand children of our great grand parents
are 3rd nieces and nephews.

We may note that if the relationship between a relative and a
subject is given by square (x,y) then the inverse relationship between
the subject and the relative is given by square (y,x). For example, if
I have a 2nd great grand aunt she would fall in square (1,5), which
means that for the inverse relationship I would fall in square (5,1) and
I am her 2nd great grand nephew. Note also, that if a relationship
falls in square (x,y) then the relationship between the common
progenitor pair and the subject falls in square (0,y).

We can think of the zeroth column in the table as giving us a
synoptic view of the subject's ancestor chart with those ancestors y
generations into the past being located at square (0,y). In addition,
we can think of the rows 0 through to y as giving us a synoptic view of
the descendants of an ancestor pair, in the square (0,y), with respect
to the subject. When actually using the table it is convenient to think
aloud and say something like: the grand daughter (x=2) of our 2nd great
grandparents (y=4) is located in square (2,4) and is, therefore, our
grand 2nd aunt -- assuming always that she is not more closely related
to us and isn't a grand aunt or grandmother.

Relationship abbreviations:
As for table 1 with the following additions

xA = xth aunt/uncle xN = xth niece/nephew

+-----+-----+-----+-----+-----+-----+-----+-----+
| 5 | 4 | 3GG | 2GG | GG | | | |
7 | GGP | GGA | 2A | 3A | 4A | G5A | 6A | 6CN |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 4 | 3 | 2GG | GG | | | | |
6 | GGP | GGA | 2A | 3A | G4A | 5A | 5CN | 6N |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 3 | 2 | GG | | | | | |
5 | GGP | GGA | 2A | G3A | 4A | 4CN | 5N | G5N |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 2 | | | | | | | GG |
4 | GGP | GGA | G2A | 3A | 3CN | 4N | G4N | 4N |
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | | | | | GG | 2GG |
3 | GGP | GA | 2A | 2CN | 3N | G3N | 3N | 3N |
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | | | | GG | 2GG | 3GG |
2 | GP | A | CN | 2N | G2N | 2N | 2N | 2N |
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | | | | 2 | 3 | 4 |
1 | P | S | N | GN | GGN | GGN | GGN | GGN |
+-----+-----+-----+-----+-----+-----+-----+-----+
| | | | | 2 | 3 | 4 | 5 |
0 | I | C | GC | GGC | GGC | GGC | GGC | GGC |
+-----+-----+-----+-----+-----+-----+-----+-----+
0 1 2 3 4 5 6 7

X Axis - Generations from common
progenitor pair to relative

Y Axis - Generations from subject
to common progenitor pair

Modified relationship scheme
Table 2.

Note finally, that all those blood relatives who belong to the same
generation fall on the appropriate diagonal sloping up from left to
right. For example, the complete set of 3rd great grandchildren of our
great grandparents are located on the diagonal running from square (2,0)
to (5,3). The big difference between table 2 and table 1, in this
regard, is that for table 2 these descendants in the same generation
follow exactly the same naming pattern, running -- in the above example
-- from grand children, through grand nieces/nephews and grand 2nd
nieces/nephews to grand 3rd nieces/nephews. In general, the complete
set of descendants of an ancestor pair, in square (0,y), x generations
into the future are located on the diagonal (0,y-x) to (x,y) for x<y and
from (x-y,0) to (x,y) for xry.

One further observation is worth making. It is quite easy to
calculate the actual degree of relatedness of two blood relatives. If
x or y = 0 it is given by 100/(2^(x+y)) %. In all other cases it is
given by 100/(2^(x+y-1)) %. This presupposes, of course, that there is
no intermarriage,

In summary, the advantages of the modified relationship scheme in
table 2 are as follows:

* It represents a natural extension of the relationships with which
we are all familiar.
* It eliminates all ambiguity
* Apart from those cousins in the same generation as the subject,
it invariably indicates the sex of the relative.
* It follows a consistent and easy to understand naming pattern for
all relatives in the same generation. We always know that xth
great grand nieces/nephews are x+2 generations into the future,
great grand nieces/ nephews are 3 generations into the future,
grand nieces and nephews are 2 generations into the future,
nieces/nephews are one generation into the future, cousins are in
the same generation, aunts/uncles are one generation into the past
and so on. In addition, for any relative (x,y) with x~y and x,y r
1; if x<y, then the relative is an xth aunt/uncle and if x
y, then
the relative is a yth niece/nephew.

The appended QuickBASIC computer program ascertains the relationship
between any pair of blood relatives in accordance with this modified
relationship scheme and calculates the degree of relatedness. When
entering the sex of the relative or subject the user may enter either a
lower case m or an upper case M for a male and either a lower case f or
an upper case F for a female. An output such as '5 X great grand 3 -
niece' is to be interpreted as a '5th great grand 3rd niece'.

References:

1. E.R. Swart, "An improved relationship table", Computer Interest Group
Digest of the (American) National Genealogical Society, 8(No 2), pp 35-
37 (1989).
2. W. Johnston, "Relationship Searches on Family Databases: Theory and
practise", Genealogical Computing, 3(6),pp 15-17 (1984).
3. See, for example: The annual Family Histroy Diary of the Institute of
Heraldic and Genealogical Studies.

* * * * * * * * * * * * *

'* * * PROGRAM FOR EXPLORING BLOOD RELATIONSHIPS * * *'
DECLARE SUB Relationship (x, y, rchild$, rniece$, rsibling$, rcousin$,
rparent$, raunt$, prefix$)
KEY OFF
strt: CLS : PRINT
PRINT "* * * PROGRAM FOR EXPLORING BLOOD RELATIONSHIPS * * *"
PRINT
INPUT " Enter sex of relative m/F ? ", r$
PRINT "Enter number of generations from "
INPUT "common progenitor pair to relative ", x
INPUT " Enter sex of subject m/F ? ", s$
PRINT "Enter number of generations from "
INPUT "subject to common progenitor pair ", y
PRINT
IF x = 0 AND y = 0 THEN
PRINT "The relationship is one of identity since"
PRINT "the relative and the subject are the same person"
GOTO check
END IF
IF r$ = "m" OR r$ = "M" THEN
rchild$ = "son": rniece$ = " nephew": rsibling$ = "brother"
rcousin$ = "(male)": rparent$ = "father": raunt$ = " uncle"
END IF
IF r$ = "f" OR r$ = "F" THEN
rchild$ = "daughter": rniece$ = " niece": rsibling$ = "sister"
rcousin$ = "(female)": rparent$ = "mother": raunt$ = " aunt"
END IF
IF s$ = "m" OR s$ = "M" THEN
schild$ = "son": sniece$ = " nephew": ssibling$ = "brother"
scousin$ = "(male)": sparent$ = "father": saunt$ = " uncle"
spronoun$ = "his"
END IF
IF s$ = "f" OR s$ = "F" THEN
schild$ = "daughter": sniece$ = " niece": ssibling$ = "sister"
scousin$ = "(female)": sparent$ = "mother": saunt$ = " aunt"
spronoun$ = "her"
END IF
IF (x - y) = 2 OR (y - x) = 2 THEN prefix$ = "grand"
IF (x - y) = 3 OR (y - x) = 3 THEN prefix$ = "great grand"
IF (x - y) > 3 OR (y - x) > 3 THEN prefix$ = "X great grand"
IF x = 2 THEN rprefix$ = "grand"
IF x = 3 THEN rprefix$ = "great grand"
IF x > 3 THEN rprefix$ = "X great grand"
IF y = 2 THEN sprefix$ = "grand"
IF y = 3 THEN sprefix$ = "great grand"
IF y > 3 THEN sprefix$ = "X great grand"
IF x = 0 OR y = 0 THEN
PRINT "The given relative is the chosen subject's"
ELSE
PRINT "The given relative is the": PRINT , ;
IF x > 3 THEN PRINT x - 2;
IF x > 1 THEN PRINT rprefix$;
PRINT rchild$
PRINT "of the chosen subject's": PRINT , ;
IF y > 3 THEN PRINT y - 2;
IF y > 1 THEN PRINT sprefix$;
PRINT "parents"
PRINT "and is "; spronoun$
END IF
PRINT : PRINT , ;
CALL Relationship(x, y, rchild$, rniece$, rsibling$, rcousin$, rparent$,
raunt$, prefix$)
PRINT : PRINT "The subject is the relative's"
PRINT : PRINT , ;
CALL Relationship(y, x, schild$, sniece$, ssibling$, scousin$, sparent$,
saunt$, prefix$)
check: PRINT
IF x = 0 OR y = 0 THEN
rltdness = 100 / (2 ^ (x + y))
ELSE
rltdness = 100 / (2 ^ (x + y -1))
END IF
PRINT "The degree of relatedness is:"; rltdness; "%": PRINT
PRINT "Do you wish to start again Y/N ? ";
in: inpt$ = INKEY$: IF inpt$ = "" THEN GOTO in
PRINT inpt$
IF (inpt$ = "y") OR (inpt$ = "Y") THEN GOTO strt:
END

SUB Relationship (x, y, rchild$, rniece$, rsibling$, rcousin$, rparent$,
raunt$, prefix$)
IF x > y THEN
IF (x - y) > 3 THEN PRINT x - y - 2;
IF (x - y) > 1 THEN PRINT prefix$;
IF y = 0 THEN PRINT rchild$
IF y = 1 THEN PRINT rniece$
IF y > 1 THEN PRINT y; "-"; rniece$
END IF
IF x = y THEN
IF x = 1 THEN PRINT rsibling$
IF x = 2 THEN PRINT rcousin$; " cousin"
IF x > 2 THEN PRINT rcousin$; x - 1; "-"; " cousin"
END IF
IF x < y THEN
IF (y - x) > 3 THEN PRINT y - x - 2;
IF (y - x) > 1 THEN PRINT prefix$;
IF x = 0 THEN PRINT rparent$
IF x = 1 THEN PRINT raunt$
IF x > 1 THEN PRINT x; "-"; raunt$
END IF
END SUB

This thread: