Representing Anthropological Knowledge: Calculating Kinship
Michael D. Fischer
Analyzing and Understanding Cultural Codes

Kinship
Contents

Kinship&Genealogy
Kinship Introduction
Learning Kinship with
the Kinship Editor
Use the Kinship Editor
Kinship Editor Results

Kinship Contents

Kinship Contents

Kinship Contents

Kinship Contents

Kinship Contents

Kinship Contents

Kinship Terminology

So far we have been looking at genealogical relationships, defined by what anthropologists usually call kin types. Kin types are an abstraction of how people are related based on some defined criteria. Biological anthropologists often exclusively use biological parentage as the criteria for defining relationships (thus often a genealogy is called a pedigree). Social anthropologists tend to either use socially defined parentage (which almost certainly does not precisely correspond to biological parentage), or attempt to use some indigenous basis for establishing genealogical links.

Kinship terminologies are one way of reflecting indigenous opinion. Kinship terms are the set of terms actually used by a group to name relationships. It is possible to produce a genealogy using kinship terms alone, and some anthropologists do this. Most anthropologists collect both socially based kin types and the terms that describe the relationship relative to some ego. The main reason for this is that a term-based genealogy is fixed to a particular person, the putative ego. Every one in the diagram may have a different name if another person is ego (siblings will share many of the same names - most other will vary greatly). There is no easy way to reassign these names when ego is changed, other than simple memorisation. Even if you have social parentage data for each term (but not each person), you cannot easily make the transition between egos because terminologies tend to merge different kin types together, losing information necessary for the reassignment of terms. Thus in English Kinship Terminology the term 'uncle' can translate to kin types fb, mb, fzh and mzh.

For an extended discussion of kinship terminologies (and for that matter, kin types) see Brian Schwimmer's excellent internet tutorial on Kinship and Social Organization. We will look at just a few issues here, together with their prolog representations.

We can translate the kin type results of our 'relate' rule in the previous example to kin terms in different systems.

For a subset of English terminology we can write the following rules:

    eng("f","father").
    eng("m","mother").
    eng("b","brother").
    eng("z","sister").
    eng("s","son").
    eng("d","daughter").

    eng("mb","uncle").
    eng("mz","aunt").
    eng("fb","uncle").
    eng("fz","aunt").

    eng("fbs","cousin").
    eng("fbd","cousin").
    eng("mbs","cousin").
    eng("mbd","cousin").

    eng("fzs","cousin").
    eng("fzd","cousin").
    eng("mzs","cousin").
    eng("mzd","cousin").

    eng("zd","niece").
    eng("bd","niece").
    eng("zs","nephew").
    eng("bs","nephew").

These basically link kin type (first position) to kin term for English kinship terminology. We can then write a simple rule:

    engterms(X,Y,Z) :- relate(X,Y,Q), eng(Q,Z).

which takes the kin type from our relate rule, and uses eng to translate it to a kin term.

Similarly we can take a subset of the Dani kinship terminology, which is structured very differently from the English. Indeed, there is no good way to translate between English kinship terminology and Dani kinship terminology because they categorise kin types in such a way as to draw from more than one category of the other. Corresponding Dani rules include:

    dani("f","opaije").
    dani("m","akoja").
    dani("b","oe").
    dani("z","oe-etu").
    dani("s","abut").
    dani("d","abut").

    dani("mb","ami").
    dani("mz","akoja").
    dani("fb","opaije").
    dani("fz","he-opaije").

    dani("fbs","oe").
    dani("fbd","oe-etu").
    dani("mbs","ami").
    dani("mbd","akoja").

    dani("fzs","ejak").
    dani("fzd","ejak").
    dani("mzs","oe").
    dani("mzd","oe-etu").

    dani("zd","ejak").
    dani("bd","abut").
    dani("zs","ejak").
    dani("bs","abut").

Besides differentiating what in EKT are cousins, there are other distinctions not made in Dani, for example opaije is used for kin types f and fb. Our translation rule for Dani is:

    daniterms(X,Y,Z) :- relate(X,Y,Q), dani(Q,Z).

Following is a prolog example which incorporates the kin term translations above and a subset of the relate rules from the previous section. Try some of these out by typing in a query (to the right of the "Query" button) replacing the name mike in 'relate(X,mike,Rel),eng(Rel,Eng), dani(Rel,Dani).' (which gives both the english and dani kinship term) to some other name, and then clicking either on the 'All Solutions' button or the 'Query' button (this gives you one result for each time you click the button). Note that X and Z must be different variables in this query, for although we want the same person, X, the terms will be different.

As an exercise, try to identify the principles underlying the two terminologies. In particular, how do they differ, and how are they the same. Examine the kin types in relation to the terms to do this. You may find it easier to write a new rule to ease the comparison. Enter:

comp-terms(X,Y,Eng,Dani,Kintype) :- relate(X,Y,Kintype), eng(Kintype,Eng), dani(Kintype,Dani).

For each solution all the information will be reported.

Prolog Program for Extended Kin Relations

Work Area (Try entering the example rule comp-terms from the text)

Kinship Query:

Results

Note for writing rules:

When writing your rules pay attention to two things:

1) make sure where you intend a variable for prolog to 'fill-in' with a name, that you use an upper-case letter for the variable name (A-Z), and

2) end your rule with a full-stop ('.'). This is VERY important.

If you get things into too big a mess, you can reload the page by clicking on the reload button of the browser while holding down the option key on a Macintosh, or the ALT key under Windows or Unix.