Kinship
Contents
Kinship Contents
Kinship Contents
Kinship Contents
Kinship Contents |
Active Media: Prolog
Following is a transformation of the information produced by the Kinship Editor to a collated textual form that can be further processed by other tools to assist analysis. In this case the Sample Output is translated into Prolog, a computer programming language useful for symbolic processing.
This example was done using a program we developed to transform XML documents into other formats. This program used the rather forbidding looking script to transform the Sample Output document into the prolog document further down this page. We will use this prolog document in the next section.
The next section is Culture &Classification
The transformation script:
% <prolog generated="XSLSim copyright 1999 Michael D Fischer">
% data for each person relating to sex, siblings and spouses
male(john).
spouseset(john,"2").
%
male(george).
sibset(george,"1").
spouseset(george,"3").
%
male(mike).
sibset(mike,"3").
spouseset(mike,"5").
%
male(earl).
spouseset(earl,"1").
%
female(noddie).
spouseset(noddie,"12").
%
female(jean).
sibset(jean,"8").
spouseset(jean,"3").
%
female(jimmi).
sibset(jimmi,"3").
spouseset(jimmi,"10").
%
female(nancy).
sibset(nancy,"3").
%
male(jim).
sibset(jim,"1").
spouseset(jim,"4").
%
female(elizibeth).
spouseset(elizibeth,"4").
%
female(vikki).
sibset(vikki,"4").
spouseset(vikki,"6").
%
male(richard).
sibset(richard,"4").
%
female(wenonah).
spouseset(wenonah,"5").
%
male(stephen).
sibset(stephen,"5").
spouseset(stephen,"9").
%
female(demeter).
sibset(demeter,"5").
spouseset(demeter,"7").
%
male(paul).
spouseset(paul,"6").
%
male(albert).
sibset(albert,"6").
spouseset(albert,"7").
%
male(carl).
sibset(carl,"7").
%
female(effie).
spouseset(effie,"8").
%
male(bill).
spouseset(bill,"8").
%
female(jo).
sibset(jo,"8").
%
male(wayne).
sibset(wayne,"8").
%
male(arthur).
sibset(arthur,"8").
%
female(sonia).
spouseset(sonia,"9").
%
male(ron).
spouseset(ron,"10").
%
female(marie).
sibset(marie,"10").
%
% the child, spouse and sibling predicates following translate the
% person-union model used by the kinship editor into more
% conventional genealological concepts.
% sibset id of person is id of parents spouseset
child(Child,Ego) :- sibset(Child,ID), spouseset(Ego,ID).
% spouses share a spouseset id
spouse(Spouse,Ego) :- spouseset(Spouse,ID), spouseset(Ego,ID), neq(Spouse,Ego).
% siblings share a sibset id
sibling(Sibling,Ego) :- sibset(Sibling,ID), sibset(Ego,ID), neq(Sibling,Ego).
% </prolog>
Next section: Culture &Classification |