# KEHOME/knowledge/applications/Genealogy/greadme.htm
# 1999/7/16
# new syntax May/21/2003
#================#
# Family History #
#================#
# The files in the KEHOME/family directory support
# all the functions of a typical Genealogy application.
# To protect your family history data, I recommend that
# you copy all the files to your own private directory.
# Edit each .rel file, adding your own data.
# Searching for information is simple, e.g.,
do read from family.ku done;
name has child=?; # children of name
name has parent=?; # parents of name
name has phone=?; # phone number of name
? has phone; # all phone numbers
? do marry done; # all marriages
? has sex=female; # all females
? isa person; # all persons
do read from tree.ku done;
do ancestor od name done; # ancestors and spouses
do descendant od name done; # descendants and spouses
do read from group.ku done; # or lattice.ku using isa*,ise*
name isa* ?; # ancestor tree (up)
name isc* ?; # descendant tree (down)
name isa**1 ?; $Question isc**1 ?; # siblings (up 1, down 1)
name isa**2 ?; $Question isc**2 ?; # cousins (up 2, down 2)
name isa**2 ?; $Question isc**1 ?; # aunts & uncles (up 2, down 1)
# You can use "." (current concept) to simplify searches, e.g.,
set . = name; # change "." to name
do print od $child done; # children
do print od $parent done; # parents
do print od $phone done; # phone number
$. has ?; # all attributes
$. do ?; # all actions
#==============#
# unique names #
#==============#
# Each person must have a unique "name" for recording information.
# The easiest solution is to use unique names of the form "person/1",
# "person/2", etc. Many other choices are possible, e.g., using
# birthday as a suffix
# Richard McCullough 1936
# Richard McCullough 1940
# Richard McCullough 1966
# You can use the "*" wildcard to get a list of all names that
# match a pattern, e.g.,
do find od *Richard*McCullough* done;
# alias.rel records unique name, nickname, preferred name and
# other names. I recommend that you include
# birth name
# adoption name
# married name
# You can use check.htm to find MISSING unique names and other name CONFLICTs.
# You can use these commands to retrieve the different parts
# of a name
set $name = Dr. Richard H. McCullough 1936;
do title-name od $name done; # Dr.
do first-name od $name done; # Richard
do middle-name od $name done; # H.
do last-name od $name done; # McCullough
do suffix-name od $name done; # 1936