verify.ll
/*
* @progname verify
* @version 9.0
* @author Eggert
* @category
* @output Text
* @description
verify - a LifeLines database verification report program
by Jim Eggert (eggertj@atc.ll.mit.edu)
Version 1, 3 November 1992 (unreleased, first simple try)
Version 2, 7 November 1992 (added lots of checks, verbose mode)
Version 3, 12 November 1992 (minor bugfix, parameter tuning,
added mrbbpm, unkgen, and hommar checks,
and more heuristics for birth and marriage years)
Version 4, 17 November 1992 (minor bugfix,
added femhus, malwif, cbspan, lngwdw, oldunm checks)
Version 5, 2 December 1992 (added mmnsnk check, improved morder)
Version 6, 26 March 1993 (improved paternity checks,
added hermaf check)
Version 7, 2 September 1993 (added noprnt check,
bug fix for parentless families)
Version 8, 2 December 1994 (added mulpar check)
Version 9, 28 April 1995 (added nofams check)
This LifeLines report program generates a text file which lists
exceptions to assertions or checks about the database. There are two
forms of the output report, terse or verbose, selectable at runtime.
In the terse report, the assertions tested are labeled with a
six-character label at the beginning of each line, followed by the
instance of the exception. The assertions tested, with the terse
syntax of the report output, are of four types, and are listed below.
The verbose report is more English-like, and requires less
explanation. It contains the same information in the same order as
the terse report, with words added to make it read easier. The lines
are often longer than 80 characters.
Before using this report, you may want to edit the first bunch of
set() calls in the main() procedure to adjust the various parameters.
Only one individual key is printed out per line, anyone else is
given by relation to this first person.
All age and date checks use only the year field of the date. Thus
they are a bit inaccurate. In particular, any use of ABT (about), BEF
(before), AFT (after), split dates, or similar devices will be lost on
this program. Sorry.
Normal and Irish twins are indistinguishable. For the cspace
assertion, intervening children with no known birthyear are treated
intelligently. Unknown birthyears and deathyears are assumed equal to
the baptism years and burial years, respectively, if those are
available. Unknown marriage years are estimated from the children's
birth or baptism years.
For a large database, this program will likely generate a lot of
output. I suggest that you go through this large output once to make
sure that everything is correct in the database. After correcting any
errors, run this program again, creating a reference report, which
will still contain a lot of messages. Then use diff to compare any
later reports to the reference report to catch any new errors.
You can sort the output report against the first field to sort against
the check type. This actually makes the report look nicer too. Then
you can sort subsets of the output against other fields to look for
the oldest person or the youngest father in the database, for example.
Parameters
Settable parameters are denoted by _parameter_ in this documentation.
These parameters are set in the first few lines of the procedure
main(), and can be changed by editing the program before running.
Assertions or checks
individual checks:
person's age at death is older than _oldage_
oldage key name birth death age
person is baptized before birth
bpbef key person birth baptism
person dies before birth
dbefb key person birth death
person is buried before birth
bubefb key person birth burial
person dies before baptism
dbefbp key person baptism death
person is buried before baptism
bubfbp key person baptism burial
person is buried before death
bubefd key person death burial
person is baptised after birth year
bpspac key person birth baptism
person is buried after death year
buspac key person death burial
person has unkown gender
unkgen key person
person has ambiguous gender
hermaf key person
person has multiple parentage
mulpar key person familynum familynum
person has no family pointers
nofams key person
marriage checks:
person marries before birth
unbmar key person birth marriage spouse
person marries after death
dedmar key person death marriage spouse
person has more than _wedder_ spouses
wedder key person nspouses
person marries someone more than _jundec_ years older
jundec key person birth family spouse spouse_birth
person marries younger than _yngmar_
yngmar key person age spouse
person marries older than _oldmar_
marriage out of order
morder key person spouse
marriage before birth from previous marriage
mrbbpm key person marriage spouse previous_birth
homosexual marriage
hommar key person marriage spouse
person is a female husband
femhus key person marriage
person is a male wife
malwif key person marriage
person was a widow(er) longer than _lngwdw_ years
lngwdw key person years
person lived more than _oldunm_ years and never married
oldunm key person years
person has multiple marriages, this one with no spouse and no children
mmnsnk key person family
person has same surname as spouse
samnam key person marriage spouse
parentage checks:
mother has more than _fecmom_ children
fecmom key person nkids nfamilies
mother is older than _oldmom_ at time of birth of child
oldmom key person age familynum childnum child
child is born before mother
unbmom key person birth familynum childnum child child_birth
mother is younger than _yngmom_
yngmom key person age familynum childnum child
mother is dead at birth of child
dedmom key person death familynum childnum child birth
same as above, but for father
[fecdad, olddad, unbdad, yngdad, deddad]
child doesn't inherit father's surname
nonpat key person familynum childnum child
children checks:
child is born out of order with respect to a previous child
corder key person familynum childnum child child_birth prev_child_birth
child is born in the same year as a previous child
ctwins key person familynum childnum child child_birth
child is born more than _cspace_ years after previous child
cspace key person familynum childnum child birthspace
children's births span more than _cbspan_ years
cbspan key person birthspan
family checks:
family has no parents
noprnt fkey firstchild nchildren
*/
tinytafel2.ll
/*
* @progname tinytafel2
* @version 2.0
* @author Wetmore, Eggert
* @category
* @output TinyTafel
* @description
tinytafel2
Based on tinytafel1 by Tom Wetmore, ttw@cbnewsl.att.com
This report works only with the LifeLines Genealogy program
Version 1, 1991, by Tom Wetmore.
Version 2, 11 Jan 1993, by Jim Eggert, eggertj@ll.mit.edu,
added header, trailer, sorting, date fixing,
and default moderate interest. Modified
empty surname recognition.
This report will produce a tinytafel report on a person.
Output is an ASCII file. It should be edited to translate any
non-ASCII characters, to shorten long place names (to 14-16
characters), and to indicate interest level after each year:
[space] No interest (level 0)
. Low interest (level 1)
: Moderate interest (level 2) (default)
* Highest interest (level 3)
You will want to modify the write_tafel_header() procedure to
include your name, address, etc.
Empty surnames or those starting with "_" or " " will not
be written to the report. This report doesn't do birthyear
estimation; it uses other events for the year if birthyear
is not available.
See the end of this report for an example of a tinytafel report.
*/
tinytafel1.ll
/*
* @progname tinytafel1
* @version 3.1
* @author Wetmore, Eggert, Chandler
* @category
* @output TinyTafel
* @description
tinytafel1
Based on tinytafel1 by Tom Wetmore, ttw@cbnewsl.att.com
Version 1, 1991, by Tom Wetmore.
Version 2, 11 Jan 1993, by Jim Eggert, eggertj@ll.mit.edu,
added header, trailer, sorting, date fixing,
and default moderate interest. Modified
empty surname recognition.
Version 3, Jan 1994, J. F. Chandler, fixed count, enhanced date/place guessing.
Version 3.1 Mark guessed places with "?"
This report will produce a tinytafel report on a person.
Output is an ASCII file. It should be edited to translate any
non-ASCII characters, to shorten long place names (to 14-16
characters), and to indicate interest level after each year:
[space] No interest (level 0)
. Low interest (level 1)
: Moderate interest (level 2) (default)
* Highest interest (level 3)
You will want to modify the write_tafel_header() procedure to
include your name, address, etc.
Empty surnames or those starting with "_" or " " will not
be written to the report.
See the end of this report for an example of a tinytafel report.
*/
timeline2.ll
/*
* @progname timeline2
* @version 2.0
* @author Jones
* @category
* @output Text, 80/132 cols
* @description
*
* timeline2 - create a timeline of select individuals
*
* version one: 4 Sept 1993
* version two: 9 Sept 1993
*
* Code by James P. Jones, jjones@nas.nasa.gov
*
* Contains code from:
* "famrep4" - By yours truly, jjones@nas.nasa.gov
* "tree1" - By yours truly, jjones@nas.nasa.gov
*
* This report works only with the LifeLines Genealogy program.
*
* This report creates one of the following timeline charts:
*
* 1. Ascii timeline graph showing birth, marriage, and death events of
* selected individuals; shows which individuals were contemporaies.
*
* 2. Ascii timeline chart data with the above information for use with
* the my timeline generation program or the today program.
*
* 3. IN PROGRESS (postscript version of #1 above)
*
* User selects individual to base the chart on; then selects from
* the following sets:
*
* parents,
* children,
* spouses,
* ancestors,
* descendents,
* everyone
*
* User selects start date (e.g. 1852) and end date for graph; graph size
* (80 or 132 col); and various options regarding who to display.
*
* Note: If an indi is "alive" for more than MAXAGE years, this is flagged as
* "uncertain" with a question mark in graph after MAXAGE years from birth.
* One should check these individuals to determine where they are really
* that old, or if one can determine an approxmate date of death, etc.
*
* Additional functionality will be added as soon as LL version 2.3.5
* is released. See comments below for details.
*
* Sample output (#1 above) follows (start=1800; end=2000; 80 col; sort by
* name; show people with dates only):
Name 1800 1820 1840 1860 1880 1900 1920 1940 1960 1980 2000
________________________|____|____|____|____|____|____|____|____|____|____|
AUSTIN, George W | B****M************D
AUSTIN, Velma Cleo | B***M*M**M**M***M*
BLAKE, Nancy Elizabeth | B****M***********D
HEFLIN, Wyatt |**************D
HUNTER, Rebecca A. | B****M************D
JONES, Arvel Fred Jr. | B******M******
JONES, Arvel Fred Sr. | B****M*************D
JONES, Charles Columbus | B*******************D
JONES, Sarah Frances | B*****D
JONES, Wesley | B************************?
JORDAN, Mary Cardine | B****D
PHIPPEN, Rose Marie | B****M***M**
WILDE, Charles | B************************?
____, Sarah A |********************?
Scale: 1 point = 4 years
Key: B=birthdate, M=marriage, D=deathdate, *=living, ?=uncertainity
*
* Output from #1 can be sorted using the sort(1) command, for example, the
* following command will sort the above output by birthdate:
*
* sort -t\| +1 filename
*
* where FILENAME is a file contain the above sample data, would produce:
PHIPPEN, Rose Marie | B****M***M**
JONES, Arvel Fred Jr. | B******M******
AUSTIN, Velma Cleo | B***M*M**M**M***M*
JONES, Arvel Fred Sr. | B****M*************D
AUSTIN, George W | B****M************D
JONES, Charles Columbus | B*******************D
JONES, Sarah Frances | B*****D
BLAKE, Nancy Elizabeth | B****M***********D
JORDAN, Mary Cardine | B****D
JONES, Wesley | B************************?
WILDE, Charles | B************************?
HUNTER, Rebecca A. | B****M************D
____, Sarah A |********************?
HEFLIN, Wyatt |**************D
*
*
*/
timeline1.ll
/*
* @progname timeline1
* @version 1.0
* @author Jones
* @category
* @output Text, 80/132 cols
* @description
*
*
* timeline1
*
* version one: 4 Sept 1993
*
* Code by James P. Jones, jjones@nas.nasa.gov
*
* Contains code from:
* "famrep4" - By yours truely, jjones@nas.nasa.gov
* "tree1" - By yours truely, jjones@nas.nasa.gov
*
* This report works only with the LifeLines Genealogy program
*
* This report creates one of the following timeline charts:
*
* 1. Ascii timeline showing birth, marriage, and death events of
* selected individuals; shows which individuals were contemporaies.
*
* 2. IN PROGRESS
*
* User selects individual to base the chart on; then selects from
* the following sets:
*
* parents,
* children,
* spouses,
* ancestors,
* descendents,
* everyone
*
* User selects start date (e.g. 1852) and end date for graph; as well as
* graph size (80 or 132 col).
*
* Note: If an indi is "alive" for more than 100 years, this is flagged as
* "uncertain", with a question mark in the graph after 100 years from birth.
* One should check these individuals to determine where they are really
* that old, or if one can determine an approxmate date of death, etc.
*
* Additional functionality will be added as soon as LL version 2.3.5
* is released.
*
* Sample output follows (start=1800; end=2000; 80 columns):
Name 1800 1820 1840 1860 1880 1900 1920 1940 1960 1980 2000
________________________|____|____|____|____|____|____|____|____|____|____|
AUSTIN, George W B****M************D
AUSTIN, Velma Cleo B***M*M**M**M***M*
BLAKE, Nancy Elizabeth B****M***********D
HEFLIN, Wyatt ***************D
HUNTER, Rebecca A. B****M************D
JONES, Arvel Fred Jr. B******M******
JONES, Arvel Fred Sr. B****M*************D
JONES, Charles Columbus B*******************D
JONES, George
JONES, Sarah Frances B*****D
JONES, Wesley B************************???????????
JORDAN, Mary Cardine B****D
PHIPPEN, Rose Marie B****M***M**
WILDE, Charles B************************?????????????????
____, Sarah A *********************????????????????????????????
Scale: 1 point = 4 years
Key: B=birthdate, M=marriage, D=deathdate, *=living, ?=uncertainity
*/
stats.ll
/*
* @progname stats
* @version 9.0
* @author
* @category
* @output Text
* @description
stats - a LifeLines database statistical extraction report program
by Jim Eggert (eggertj@atc.ll.mit.edu)
Version 1 (14 Dec 1992)
Version 2 (17 Dec 1992) added restrictions,
unity, general GEDCOM tag, e, and today
Version 3 (20 Dec 1992) added sorting
Version 4 (30 Jan 1993) bugfix, modified find_bin to use requeue()
Requires LifeLines v2.3.3 or later
Version 5 (30 Jun 1993) changed bubblesort to listsort
listsort code by John Chandler (JCHBN@CUVMB.CC.COLUMBIA.EDU)
Version 6 (2 July 1993) added firstname, changed user interface
Version 7 (16 Mar 1995) changed listsort to quicksort,
modernized, fixed kids bug, added fage and mage
Requires LifeLines v3.0.1 or later
Version 8 (4 Sep 1995) added min and max, no printing of bogus 0s
Version 9 (29 Sep 1995) fixed minor bugs, added indiset, substrings
This LifeLines report program computes mean statistics of various
quantities binned over other quantities. The quantities it knows
about are ages at and dates of birth, christening, first and last
marriage, first and last child's birth, death, burial, and today; the
number of children, siblings, and marriages; and sex, surname, first
name, soundex, and any simple GEDCOM tag. These can be combined
nearly arbitrarily and evaluated over the whole database, or
restricted to ancestors or descendants of a chosen individual or to
members of a predetermined set. Further restrictions on the
individuals included in the statistics can be based on any quantity
that the program knows about. The program will optionally print out
the names of all the individuals included in the statistics.
For example, you can produce statistics of
the age at death of as a function of birth year,
dage vs byear
the number of children of females named Smith as a
function of year of first marriage,
kids vs myear | sex = F & surname = Smith
the number of spouses for male vs female blacksmiths,
families vs sex | occu = blacksmith
the age at last childbirth as a function of place of marriage.
qage vs mplace
the names of all Joneses who lived to be greater than 80
unity vs unity | surname = Jones & dage > 80
All this without writing any programs of your own.
If a particular statistic for an individual is unavailable, and if the
global variable not_strict is nonzero (as it is in the distribution
version of this report, then certain guesses are allowed as to the
value of that statistic. So far, these guesses are few. Birth year
and month are guessed from baptismal date, and death year and month
are guessed from burial date.
The user is prompted for what quantity to plot vs what to bin over.
Each is to be given as a specification string of the form
e
soundex-isfm.ll
/*
* @progname soundex-isfm
* @version 1.0
* @author Wetmore, Manis, Eggert
* @category
* @output Text, 132 cols
* @description
*
* soundex-isfm
*
* Code by Tom Wetmore, ttw@cbnewsl.att.com, 1991
* Modifications by Cliff Manis, cmanis@csoftec.csf.com, 1992
* Modifications by Jim Eggert, atc.ll.mit.edu!eggertj Fri Feb 26 1993
*
* This report works only with the LifeLines Genealogy program
*
* It will produce a report of all the INDI's in the database,
* in the format as seen at end of report. May be sorted easily
* to see the Father or Mother column sorted report.
*
* This report can be used to output everyone in the database,
* or selected by a single soundex code. The soundex code
* can be entered either by knowing the code, or by selecting
* an individual and using his/her code.
*
* The report name come from: isfm (Indi Spouse Father Mother)
* It is designed for 16 pitch, HP laserjet III, 132 column, and
* also those who have X-Windows, 132 columns video.
*
* This report produces an ASCII output file.
*/
relation.ll
/*
* @progname relation
* @version 5.0
* @author Eggert
* @category
* @output Text
* @description
relation - a LifeLines relation computing program
by Jim Eggert (eggertj@atc.ll.mit.edu)
Version 1, 21 November 1992
Version 2, 23 November 1992 (completely revamped)
Version 3, (changed format slightly, modified code somewhat)
Version 4, 6 July 1993 (added English language)
Version 5, 6 September 1993 (generified language)
This program calculates the relationship between individuals in a
database. It does so in three modes. Mode 1 just does one pair of
individuals and then exits. Mode 2 does any number of pairs with a
common "from" person. Mode 3 does all pairs with a common "from"
person. In general, mode 1 is fastest for simple relationships, but
if you want one complicated relationship, you may as well do them all.
Each computed relation is composed of the minimal combination of
parent (fm), sibling (bsS), child (zdC), and spouse (hw) giving the
relational path from the "from" person to the "to" person. Each
incremental relationship (or hop) is coded as follows, with the
capital letters denoting a person of unknown gender:
father f
mother m
parent P (not used)
brother b
sister s
sibling S
son z (sorry)
daughtr d
child C
husband h
wife w
spouse O (sorry again, but usually not possible)
The report gives the steps required to go from the first person to
the second person. Thus the printout
I93 John JONES fmshwz I95 Fred SMITH
means that John Jones' father's mother's sister's husband's wife's son
is Fred Smith. Notice in this case, the sister's husband's wife is
not the same as the sister, and the husband's wife's son is not the
same as the husband's son. Thus in more understandable English, John
Jones' paternal grandmother's sister's husband's wife's son from
another marriage is Fred Smith.
The program will do a trivial parsing of the path string. You can
change the language_table to have it print in different languages, as
long as the word order is unchanged.
If there is no relation, the program says so. That at least should be
easy to explain. Mode 3 only prints out those individuals who are
related to the "from" individual.
*/
regvital1.ll
/*
* @progname regvital1
* @version 1.0
* @author Wetmore, Manis
* @category
* @output nroff
* @description
*
* regvital1
*
* This report does have a footer and header
*
* Code by Tom Wetmore, ttw@cbnewsl.att.com
* Modifications by Cliff Manis
*
* This report works only with the LifeLines Genealogy program
*
* version one of this report was written by Tom Wetmore, in 1990,
* and it has been modified many times since.
*
* It will produce a report of all descendents of a person,
* and is presently designed for 12 pitch, HP laserjet III,
* for printing a book about that in ancestor.
*
* It prints a sorts listing of names, at the end of the report
* of everyone in the report. All NOTE and CONT lines will
* be printed in the this report. This report will produced
* a paginated output.
*
* This report produces a nroff output, and to produce the
* output, use: nroff filename > filename.out
*
*/
regvital.ll
/*
* @progname regvital
* @version 3.0
* @author Wetmore, Manis, Chandler
* @category
* @output nroff
* @description
regvital
version 1 by Tom Wetmore
version 2 by Cliff Manis
version 3 by John Chandler, 1994
This program produces a report of all descendents of a given person,
and is presently designed for 12 pitch, HP laserjet III, for printing
a book about that person. All NOTE and CONT lines are included in the
report, along with the vital statistics, occupations, immigrations,
attributes, and wills.
At the end of the report is a sorted listing of names of everyone
mentioned, with reference numbers giving the first occurrences of all
the names.
This program has paginated output with a footer and header.
This report produces a nroff output, and to produce the
output, use: nroff filename > filename.out
or: troff -t filename | lpr -t
*/
register-tex.ll
/*
* @progname register-tex
* @version 2.0
* @author Wetmore, Olsen
* @category
* @output LaTeX
* @description
**
** register-tex
**
** Version 2 24 Feb 1993
** Version 1 Nov 1992
**
** Requires LifeLines version 2.3.3 or later
**
** David Olsen (dko@cs.wisc.edu)
** based on work originally done by Tom Wetmore (ttw@cbnews1.att.com).
**
** This report prints, in book format, information about all descendants of a
** person and all of their spouses. It tries to understand as many different
** GEDCOM tags as possible. All source iformation (SOUR lines) is in the
** footnotes.
**
** The output is in LaTeX format. Therefore, the name of the output file
** should end in ".tex". To print (assuming the name of the output file is
** "out.tex"):
** latex out
** dvips out
** lpr out.ps
**
** Indexing commands are placed within the LaTeX output. To include an index
** in the document do the following:
** latex out
** makeindex out
**
** latex out
** dvips out
** lpr out.ps
**
** I admit that this is lot of post-processing, but the results are worth it.
**
** LaTeX interprets $, &, %, #, _, {, }, ~, ^, and \ as special characters.
** If you have any of these characters in your database, you will need to
** convert them to \$, \&, \%, \#, \_, \{, \}, \verb|~|, \verb|^|, and
** $\backslash$ (or \verb|\|) respectively after the report is generated and
** before running through LaTeX. $, &, _, ~, and ^ are easy to find, since
** they are not used in the report. % and # are only used near the beginning.
** {, }, and \ will be more difficult to find since they are used as part of
** the LaTeX commands throughout the report.
*/
ps-anc8.ll
/*
* @progname ps-anc8
* @version 8.0
* @author Wheeler, Stringer
* @category
* @output PostScript
* @description
**
** ps-anc8, 18 Mar 1998, enhanced by Robert Simms and Allan Yates,
** rsimms@math.clemson.edu and ayates@nortel.ca
** ps-anc, 9 September 1994, by Fred Wheeler (wheeler@ipl.rpi.edu)
**
** GETTING THIS FILE
**
** The ps-anc versions are available via anonymous ftp (and www) from
** (1) ftp://ftp.cac.psu.edu/pub/genealogy/lines/reports/
** (2) ftp://cs6400.mcc.ac.uk/pub/genealogy/lines/reports/
** (3) http://math.clemson.edu/~rsimms/genealogy/ll/
**
** BRIEF DESCRIPTION
**
** This LifeLines report program generates Postscript ancestral and
** descendant charts. The ancestral charts can include the siblings
** of all direct ancestors (aunts, uncles, great-aunts, great-uncles,
** etc.). A multi-page poster chart can also be generated. The
** chart format is based on the program GedChart, by Tom Blumer.
**
** The Postscript file created can be sent to any size printer; it
** will automatically adapt the size of the chart. I send the same
** file to A-size (8.5 by 11) and B-size (11 by 17) printers.
**
** After you use this program a few times, you should edit the
** function interrogate_user(). This is the first function after
** these comments and the global variable declarations. This
** function is set up to make it easy for you to configure what
** questions this program should ask you each time and what default
** values it should use for questions not asked.
**
** Please contact me if you like this program, find any bugs, have
** any bug fixes, or want to suggest improvements. I am also always
** on the lookout for better ancestral/descendant chart generating
** programs. If you know of a program that generates charts which
** you like better than those generated by this program, please drop
** me a line.
**
** This report program works with the LifeLines Genealogical database
** program only. (see ftp://ftp.cac.psu.edu/pub/genealogy/lines/*)
**
** CHANGE LOG
**
** CHANGES since version 1:
** Completely new descendant chart in addition to ancestral chart
** Multi-page poster option
** Multi-page charts scaled correctly (thanks to broman@Np.nosc.mil)
** Maximum name length configurable by user (fixes long squashed names)
** Option to supress siblings of later generations in ancestral charts
** Checks that user selects a valid person (bug fix)
** Can make a guess at whether a title is a prefix of suffix type
** Use of titles is configurable (prefix, suffix, guess, none)
** Birth/death/marriage date styles are configurable (may include place)
** Corner message is slightly smaller, and chart will not overlap it
** Marriage date is printed before death date
**
** CREDITS
**
** Code improvements received from:
** Vincent Broman (broman@Np.nosc.mil)
**
** Helpful comments received from:
** Vincent Broman (broman@Np.nosc.mil)
** Frank H. Flaesland (phranx@imr.no)
** Linda Wilson (lwilson@mcc.com)
** Stacy Johnson (sjohnson@oucsace.cs.ohiou.edu)
** John F. Chandler (jchbn@cuvmb.cc.columbia.edu)
** Susan Radel
**
** CHANGES in version 3:
** Birth/death/marriage date style addition (full date with short place).
** Examples for including other fonts.
** Option for bold lines/text for direct line of ascent.
** Option to start on right or left of page.
** Option for landscape or portrait format.
** Small additional space between border and text to improve appearance.
** Now fills the page if max generations > actual generations.
** With multi-page output generations are multiple of x-pages to prevent
** text split over sheets.
** Option to show aunts/uncles from parents multiple marriages.
**
** CHANGES in version 4:
** Border enhanced at the corners.
** Chart title font changed.
** Lines now used to join families rather than being used as a framework.
** Names now adjacent to line or halfway between if in 2 families.
** Descendant chart has reduced lines and is more tree like
**
** CHANGES in version 5:
** Enhanced descendant chart
** Automatic choice of chart type if no children or no ancestors
** Multi page landscape bug fixed
** Enhancements to user option specification
** Character set enhanced to iso-8859-1
** Additional personal titles
**
** CHANGES in version 6:
** Corrected multi-page landscape printing
** Descriptive title at bottom of chart
** Smaller and faster PostScript code on multi-page output
** (previously n-pages had n * single page size of file)
** Automatic choice of ancestor/descendant chart if no descendants/ancestors
** Fixed bug on descendant charts of overprinting if it branched up, and
** there was a spouse with birth and death details, and no children in
** that family.
** Character set inadvertently lost iso-8859-1 support.
**
** CHANGES in version 7:
** Fixed bug on descendant charts of overlapping vertical lines if it
** branched up, and there was a spouse and no children in that family.
** iso-8859-1 support re-instated.
** More efficient print_all_persons code from Fred Wheeler
**
** CREDITS
**
** Code improvements received from:
** Phil Stringer (p.stringer@mcc.ac.uk)
**
** CHANGES in version 8 by Robert Simms and (+) Allan Yates:
**
** >proc do_anc:
** Closed up extra space between branches of the chart by changing
** min_pos to person_min_pos, to be used to keep person from being drawn
** too high on chart, but not to keep all ancestors of a person from being
** drawn above this point. Introduced abs_min_pos as the absolutely
** highest position for any older siblings or half-siblings of a person.
** Fixed the printing of half-siblings to be subject to the sibling depth
** limit obtained from the interrogate function.
** Fixed a mis-alignment in half-sib branch vertical line.
** >proc do_des:
** Fixed conditions for drawing vertical line to exclude case where there
** are children but no spouse and depth = max_depth. In this case the
** children heights are never computed so a vertical line can't be drawn.
** >general:
** +Added option for displaying surnames in uppercase
** +Added date option to display the first two items in a place list
** +Added option for not displaying large descriptive title, print small
** one instead with title text added
** +Do not print preceding comma if place exists and date does not exist
** Fixed positioning of names that caused some names to be too close
** to vertical lines, eliminating horizontal lines in come cases.
** Added support in postscript file for increasing the page margins together
** with a new question in the interrogate function. (This required
** calculation of a clip rectangle since the device clip rectangle would
** allow redundant display of parts of the chart at adjoining edges in
** multi-page charts.) This is useful for imposing a margin when a
** postscript file is converted to another format, such as Adobe PDF.
** Converters as devices may present a zero margin. If the postscript file
** has a margin built in then the converted file can be printed on more
** printers without worrying about losing the edges of the chart.
** Centered chart label and coordinated its placement with that of the title
** to avoid having the two overlap. This fix became more necessary with
** the addition of the ability to increase the margins.
** Added option for centering or left justifying chart label.
** Replaced tabs in LifeLines code with spaces to avoid irregular
** indentation.
** Experimented with putting chart drawing code into a procedure to reduce
** the size of multi-page files. Determined that doing so would
** require changing the MaxOpStack limit in PostScript to handle the
** potentially large number of items that would go into the procedure.
** This could still potentially place a limit on how many individuals
** could be shown in a chart for some devices. So, the idea was dropped.
**
** CREDITS:
** Phil Stringer, for initiating the min_pos fix in procedure do_anc.
*******************************************************************************
**
** ABOUT GEDCHART (a different program)
**
** This program includes postscript code written by Tom Blumer
** (blumer@ptltd.com). It is used here with his permission. This
** postscript code is from Tom Blumer's GedChart package. The report
** is very much like that generated by GedChart using the -Sa or -Sd
** option.
**
** GedChart is DOS program that generates ancestral and descendant
** charts like this report program, and also fan charts. GedChart
** works directly from a GEDCOM file and is completely independent of
** LifeLines. It is currently up to version 1.6, which is a beta
** version that may lead to a commercial product. You can find
** GedChart at ftp:oak.oakland.edu/pub/msdos/genealgy/gedcht16.zip
**
*/
ps-anc7.ll
/*
* @progname ps-anc7
* @version 7.0
* @author Wheeler, Stringer
* @category
* @output PostScript
* @description
**
** ps-anc7, 1 Feb 1997, enhanced by Phil Stringer (P.Stringer@mcc.ac.uk)
** ps-anc, 9 September 1994, by Fred Wheeler (wheeler@ipl.rpi.edu)
**
** GETTING THIS FILE
**
** This file is available via anonymous ftp from
** (1) ftp://ipl.rpi.edu/pub/wheeler/ps-anc1
** (2) ftp://hoth.stsci.edu/lines/reports/ps-anc1
** (3) ftp://ftp.cac.psu.edu/pub/genealogy/lines/reports/ps-anc1
** (4) ftp://cs6400.mcc.ac.uk/pub/genealogy/lines/reports/ps-anc3
** (5) ftp://cs6400.mcc.ac.uk/pub/genealogy/lines/reports/ps-anc5
** It was uploaded to (1) on the date above, and will appear at (2)
** and (3) soon after. If you cannot ftp it, I will e-mail it to you.
**
** BRIEF DESCRIPTION
**
** This LifeLines report program generates Postscript ancestral and
** descendant charts. The ancestral charts can include the siblings
** of all direct ancestors (aunts, uncles, great-aunts, great-uncles,
** etc.). A multi-page poster chart can also be generated. The
** chart format is based on the program GedChart, by Tom Blumer.
**
** The Postscript file created can be sent to any size printer; it
** will automatically adapt the size of the chart. I send the same
** file to A-size (8.5 by 11) and B-size (11 by 17) printers.
**
** After you use this program a few times, you should edit the
** function interrogate_user(). This is the first function after
** these comments and the global variable declarations. This
** function is set up to make it easy for you to configure what
** questions this program should ask you each time and what default
** values it should use for questions not asked.
**
** Please contact me if you like this program, find any bugs, have
** any bug fixes, or want to suggest improvements. I am also always
** on the lookout for better ancestral/descendant chart generating
** programs. If you know of a program that generates charts which
** you like better than those generated by this program, please drop
** me a line.
**
** This report program works with the LifeLines Genealogical database
** program only. (see ftp://ftp.cac.psu.edu/pub/genealogy/lines/*)
**
** CHANGE LOG
**
** Changes since version 1:
** Completely new descendant chart in addition to ancestral chart
** Multi-page poster option
** Multi-page charts scaled correctly (thanks to broman@Np.nosc.mil)
** Maximum name length configurable by user (fixes long squashed names)
** Option to supress siblings of later generations in ancestral charts
** Checks that user selects a valid person (bug fix)
** Can make a guess at whether a title is a prefix of suffix type
** Use of titles is configurable (prefix, suffix, guess, none)
** Birth/death/marriage date styles are configurable (may include place)
** Corner message is slightly smaller, and chart will not overlap it
** Marriage date is printed before death date
**
** CREDITS
**
** Code improvements received from:
** Vincent Broman (broman@Np.nosc.mil)
**
** Helpful comments received from:
** Vincent Broman (broman@Np.nosc.mil)
** Frank H. Flaesland (phranx@imr.no)
** Linda Wilson (lwilson@mcc.com)
** Stacy Johnson (sjohnson@oucsace.cs.ohiou.edu)
** John F. Chandler (jchbn@cuvmb.cc.columbia.edu)
** Susan Radel
**
** Changes in version 3:
** Birth/death/marriage date style addition (full date with short place).
** Examples for including other fonts.
** Option for bold lines/text for direct line of ascent.
** Option to start on right or left of page.
** Option for landscape or portrait format.
** Small additional space between border and text to improve appearance.
** Now fills the page if max generations > actual generations.
** With multi-page output generations are multiple of x-pages to prevent
** text split over sheets.
** Option to show aunts/uncles from parents multiple marriages.
**
** Changes in version 4:
** Border enhanced at the corners.
** Chart title font changed.
** Lines now used to join families rather than being used as a framework.
** Names now adjacent to line or halfway between if in 2 families.
** Descendant chart has reduced lines and is more tree like
**
** Changes in version 5:
** Enhanced descendant chart
** Automatic choice of chart type if no children or no ancestors
** Multi page landscape bug fixed
** Enhancements to user option specification
** Character set enhanced to iso-8859-1
** Additional personal titles
**
** Changes in version 6:
** Corrected multi-page landscape printing
** Descriptive title at bottom of chart
** Smaller and faster PostScript code on multi-page output (previously n-pages had
** n * single page size of file)
** Automatic choice of ancestor/descendant chart if no descendants/ancestors
** Fixed bug on descendant charts of overprinting if it branched up, and there was a
** spouse with birth and death details, and no children in that family.
** Character set inadvertently lost iso-8859-1 support.
**
** Changes in version 7:
** Fixed bug on descendant charts of overlapping vertical lines if it branched up, and
** there was a spouse and no children in that family.
** iso-8859-1 support re-instated.
** More efficient print_all_persons code from Fred Wheeler
**
** CREDITS
**
** Code improvements received from:
** Phil Stringer (p.stringer@mcc.ac.uk)
**
** ABOUT GEDCHART (a different program)
**
** This program includes postscript code written by Tom Blumer
** (blumer@ptltd.com). It is used here with his permission. This
** postscript code is from Tom Blumer's GedChart package. The report
** is very much like that generated by GedChart using the -Sa or -Sd
** option.
**
** GedChart is DOS program that generates ancestral and descendant
** charts like this report program, and also fan charts. GedChart
** works directly from a GEDCOM file and is completely independent of
** LifeLines. It is currently up to version 1.6, which is a beta
** version that may lead to a commercial product. You can find
** GedChart at ftp:oak.oakland.edu/pub/msdos/genealgy/gedcht16.zip
**
*/
ps-anc6.ll
/*
* @progname ps-anc6
* @version 6.0
* @author Wheeler, Stringer
* @category
* @output PostScript
* @description
**
** ps-anc6, 30 Jan 1997, enhanced by Phil Stringer (P.Stringer@mcc.ac.uk)
** ps-anc, 9 September 1994, by Fred Wheeler (wheeler@ipl.rpi.edu)
**
** GETTING THIS FILE
**
** This file is available via anonymous ftp from
** (1) ftp://ipl.rpi.edu/pub/wheeler/ps-anc1
** (2) ftp://hoth.stsci.edu/lines/reports/ps-anc1
** (3) ftp://ftp.cac.psu.edu/pub/genealogy/lines/reports/ps-anc1
** (4) ftp://cs6400.mcc.ac.uk/pub/genealogy/lines/reports/ps-anc3
** (5) ftp://cs6400.mcc.ac.uk/pub/genealogy/lines/reports/ps-anc5
** It was uploaded to (1) on the date above, and will appear at (2)
** and (3) soon after. If you cannot ftp it, I will e-mail it to you.
**
** BRIEF DESCRIPTION
**
** This LifeLines report program generates Postscript ancestral and
** descendant charts. The ancestral charts can include the siblings
** of all direct ancestors (aunts, uncles, great-aunts, great-uncles,
** etc.). A multi-page poster chart can also be generated. The
** chart format is based on the program GedChart, by Tom Blumer.
**
** The Postscript file created can be sent to any size printer; it
** will automatically adapt the size of the chart. I send the same
** file to A-size (8.5 by 11) and B-size (11 by 17) printers.
**
** After you use this program a few times, you should edit the
** function interrogate_user(). This is the first function after
** these comments and the global variable declarations. This
** function is set up to make it easy for you to configure what
** questions this program should ask you each time and what default
** values it should use for questions not asked.
**
** Please contact me if you like this program, find any bugs, have
** any bug fixes, or want to suggest improvements. I am also always
** on the lookout for better ancestral/descendant chart generating
** programs. If you know of a program that generates charts which
** you like better than those generated by this program, please drop
** me a line.
**
** This report program works with the LifeLines Genealogical database
** program only. (see ftp://ftp.cac.psu.edu/pub/genealogy/lines/*)
**
** CHANGE LOG
**
** Changes since version 1:
** Completely new descendant chart in addition to ancestral chart
** Multi-page poster option
** Multi-page charts scaled correctly (thanks to broman@Np.nosc.mil)
** Maximum name length configurable by user (fixes long squashed names)
** Option to supress siblings of later generations in ancestral charts
** Checks that user selects a valid person (bug fix)
** Can make a guess at whether a title is a prefix of suffix type
** Use of titles is configurable (prefix, suffix, guess, none)
** Birth/death/marriage date styles are configurable (may include place)
** Corner message is slightly smaller, and chart will not overlap it
** Marriage date is printed before death date
**
** CREDITS
**
** Code improvements received from:
** Vincent Broman (broman@Np.nosc.mil)
**
** Helpful comments received from:
** Vincent Broman (broman@Np.nosc.mil)
** Frank H. Flaesland (phranx@imr.no)
** Linda Wilson (lwilson@mcc.com)
** Stacy Johnson (sjohnson@oucsace.cs.ohiou.edu)
** John F. Chandler (jchbn@cuvmb.cc.columbia.edu)
** Susan Radel
**
** Changes since version 2:
** Birth/death/marriage date style addition (full date with short place).
** Examples for including other fonts.
** Option for bold lines/text for direct line of ascent.
** Option to start on right or left of page.
** Option for landscape or portrait format.
** Small additional space between border and text to improve appearance.
** Now fills the page if max generations > actual generations.
** With multi-page output generations are multiple of x-pages to prevent
** text split over sheets.
** Option to show aunts/uncles from parents multiple marriages.
**
** Changes since version 3:
** Border enhanced at the corners.
** Chart title font changed.
** Lines now used to join families rather than being used as a framework.
** Names now adjacent to line or halfway between if in 2 families.
** Descendant chart has reduced lines and is more tree like
**
** Changes since version 4:
** Corrected multi-page landscape printing
** Descriptive title at bottom of chart
** Smaller and faster PostScript code on multi-page output (previously n-pages had
** n * single page size of file)
** Automatic choice of ancestor/descendant chart if no descendants/ancestors
** Fixed bug on descendant charts of overprinting if it branched up, and there was a
** spouse with birth and death details, and no children in that family.
**
** CREDITS
**
** Code improvements received from:
** Phil Stringer (p.stringer@mcc.ac.uk)
**
** ABOUT GEDCHART (a different program)
**
** This program includes postscript code written by Tom Blumer
** (blumer@ptltd.com). It is used here with his permission. This
** postscript code is from Tom Blumer's GedChart package. The report
** is very much like that generated by GedChart using the -Sa or -Sd
** option.
**
** GedChart is DOS program that generates ancestral and descendant
** charts like this report program, and also fan charts. GedChart
** works directly from a GEDCOM file and is completely independent of
** LifeLines. It is currently up to version 1.6, which is a beta
** version that may lead to a commercial product. You can find
** GedChart at ftp:oak.oakland.edu/pub/msdos/genealgy/gedcht16.zip
**
*/
ps-anc5.ll
/*
* @progname ps-anc5
* @version 5.0
* @author Wheeler, Stringer
* @category
* @output PostScript
* @description
**
** ps-anc5, 19 Feb 1996, enhanced by Phil Stringer (P.Stringer@mcc.ac.uk)
** - all comments/bugs should now go to Phil Stringer
** ps-anc, 9 September 1994, by Fred Wheeler (wheeler@ipl.rpi.edu)
**
** BRIEF DESCRIPTION
**
** This LifeLines report program generates Postscript ancestral and
** descendant charts. The ancestral charts can include the siblings
** of all direct ancestors (aunts, uncles, great-aunts, great-uncles,
** etc.). A multi-page poster chart can also be generated. The
** chart format is based on the program GedChart, by Tom Blumer.
**
** The Postscript file created can be sent to any size printer; it
** will automatically adapt the size of the chart. I send the same
** file to A-size (8.5 by 11) and B-size (11 by 17) printers.
**
** After you use this program a few times, you should edit the
** function interrogate_user(). This is the first function after
** these comments and the global variable declarations. This
** function is set up to make it easy for you to configure what
** questions this program should ask you each time and what default
** values it should use for questions not asked.
**
** Please contact me if you like this program, find any bugs, have
** any bug fixes, or want to suggest improvements. I am also always
** on the lookout for better ancestral/descendant chart generating
** programs. If you know of a program that generates charts which
** you like better than those generated by this program, please drop
** me a line.
**
** This report program works with the LifeLines Genealogical database
** program only. (see ftp://ftp.cac.psu.edu/pub/genealogy/lines/*)
**
** CHANGE LOG
**
** Changes since version 1:
** Completely new descendant chart in addition to ancestral chart
** Multi-page poster option
** Multi-page charts scaled correctly (thanks to broman@Np.nosc.mil)
** Maximum name length configurable by user (fixes long squashed names)
** Option to supress siblings of later generations in ancestral charts
** Checks that user selects a valid person (bug fix)
** Can make a guess at whether a title is a prefix of suffix type
** Use of titles is configurable (prefix, suffix, guess, none)
** Birth/death/marriage date styles are configurable (may include place)
** Corner message is slightly smaller, and chart will not overlap it
** Marriage date is printed before death date
**
** CREDITS
**
** Code improvements received from:
** Vincent Broman (broman@Np.nosc.mil)
**
** Helpful comments received from:
** Vincent Broman (broman@Np.nosc.mil)
** Frank H. Flaesland (phranx@imr.no)
** Linda Wilson (lwilson@mcc.com)
** Stacy Johnson (sjohnson@oucsace.cs.ohiou.edu)
** John F. Chandler (jchbn@cuvmb.cc.columbia.edu)
** Susan Radel
**
** Changes since version 2:
** Birth/death/marriage date style addition (full date with short place).
** Examples for including other fonts.
** Option for bold lines/text for direct line of ascent.
** Option to start on right or left of page.
** Option for landscape or portrait format.
** Small additional space between border and text to improve appearance.
** Now fills the page if max generations > actual generations.
** With multi-page output generations are multiple of x-pages to prevent
** text split over sheets.
** Option to show aunts/uncles from parents multiple marriages.
**
** Changes since version 3:
** Border enhanced at the corners.
** Chart title font changed.
** Lines now used to join families rather than being used as a framework.
** Names now adjacent to line or halfway between if in 2 families.
** Descendant chart has reduced lines and is more tree like
**
** Changes since version 4:
** Enhanced descendant chart
** Automatic choice of chart type if no children or no ancestors
** Multi page landscape bug fixed
** Enhancements to user option specification
** Character set enhanced to iso-8859-1
** Additional titles
**
** CREDITS
**
** Code improvements received from:
** Phil Stringer (p.stringer@mcc.ac.uk)
**
** ABOUT GEDCHART (a different program)
**
** This program includes postscript code written by Tom Blumer
** (blumer@ptltd.com). It is used here with his permission. This
** postscript code is from Tom Blumer's GedChart package. The report
** is very much like that generated by GedChart using the -Sa or -Sd
** option.
**
** GedChart is DOS program that generates ancestral and descendant
** charts like this report program, and also fan charts. GedChart
** works directly from a GEDCOM file and is completely independent of
** LifeLines. It is currently up to version 1.6, which is a beta
** version that may lead to a commercial product. You can find
** GedChart at ftp:oak.oakland.edu/pub/msdos/genealgy/gedcht16.zip
**
*/
ps-anc2.ll
/*
* @progname ps-anc2
* @version 2.0
* @author Wheeler
* @category
* @output PostScript
* @description
**
** ps-anc2, 16 August 1994, by Fred Wheeler (wheeler@ipl.rpi.edu)
**
** GETTING THIS FILE
**
** This file is available via anonymous ftp from
** (1) ftp://ipl.rpi.edu/pub/wheeler/ps-anc1
** (2) ftp://hoth.stsci.edu/lines/reports/ps-anc1
** (3) ftp://ftp.cac.psu.edu/pub/genealogy/lines/reports/ps-anc1
** It was uploaded to (1) on the date above, and will appear at (2)
** and (3) soon after. If you cannot ftp it, I will e-mail it to you.
**
** BRIEF DESCRIPTION
**
** This LifeLines report program generates Postscript ancestral and
** descendant charts. The ancestral charts can include the siblings
** of all direct ancestors (aunts, uncles, great-aunts, great-uncles,
** etc.). A multi-page poster chart can also be generated. The
** chart format is based on the program GedChart, by Tom Blumer.
**
** The Postscript file created can be sent to any size printer; it
** will automatically adapt the size of the chart. I send the same
** file to A-size (8.5 by 11) and B-size (11 by 17) printers.
**
** After you use this program a few times, you should edit the
** function interrogate_user(). This is the first function after
** these comments and the global variable declarations. This
** function is set up to make it easy for you to configure what
** questions this program should ask you each time and what default
** values it should use for questions not asked.
**
** Please contact me if you like this program, find any bugs, have
** any bug fixes, or want to suggest improvements. I am also always
** on the lookout for better ancestral/descendant chart generating
** programs. If you know of a program that generates charts which
** you like better than those generated by this program, please drop
** me a line.
**
** This report program works with the LifeLines Genealogical database
** program only. (see ftp://ftp.cac.psu.edu/pub/genealogy/lines/*)
**
** CHANGE LOG
**
** Changes since version 1:
** Completely new descendant chart in addition to ancestral chart
** Multi-page poster option
** Multi-page charts scaled correctly (thanks to broman@Np.nosc.mil)
** Maximum name length configurable by user (fixes long squashed names)
** Option to supress siblings of later generations in ancestral charts
** Checks that user selects a valid person (bug fix)
** Can make a guess at whether a title is a prefix of suffix type
** Use of titles is configurable (prefix, suffix, guess, none)
** Birth/death/marriage date styles are configurable (may include place)
** Corner message is slightly smaller, and chart will not overlap it
** Marriage date is printed before death date
** Tabs converted to spaces and all lines made < 80 chars
**
** CREDITS
**
** Code improvements recieved from:
** Vincent Broman (broman@Np.nosc.mil)
**
** Helpful comments recieved from:
** Vincent Broman (broman@Np.nosc.mil)
** Frank H. Flaesland (phranx@imr.no)
** Linda Wilson (lwilson@mcc.com)
** Stacy Johnson (sjohnson@oucsace.cs.ohiou.edu)
** John F. Chandler (jchbn@cuvmb.cc.columbia.edu)
** Susan Radel
**
** ABOUT GEDCHART (a different program)
**
** This program includes postscript code written by Tom Blumer
** (blumer@ptltd.com). It is used here with his permission. This
** postscript code is from Tom Blumer's GedChart package. The report
** is very much like that generated by GedChart using the -Sa or -Sd
** option.
**
** GedChart is DOS program that generates ancestral and descendant
** charts like this report program, and also fan charts. GedChart
** works directly from a GEDCOM file and is completely independent of
** LifeLines. It is currently up to version 1.6, which is a beta
** version that may lead to a commercial product. You can find
** GedChart at ftp:oak.oakland.edu/pub/msdos/genealgy/gedcht16.zip
**
*/
places.ll
/*
* @progname places
* @version 5.0
* @author Olsen, Eggert
* @category
* @output Text
* @description
places
Version 1, 25 Nov 1992 by David Olsen (dko@cs.wisc.edu)
Version 2, 3 Dec 1992 by Jim Eggert (eggertj@atc.ll.mit.edu)
(Changed numbers to real key values.)
Version 3, 5 Feb 1993 by David Olsen (dko@cs.wisc.edu)
(Prints place names in reverse order. Runs faster.)
Version 4, 13 Feb 1993 by Jim Eggert (eggertj@atc.ll.mit.edu)
(Prints place names in regular or reverse order.)
Version 5, 1 Sep 1993 by Jim Eggert (eggertj@atc.ll.mit.edu)
(Fixes a bug involving families with no parents)
Report program for LifeLines v. 2.3.3.
Prints out the value of all the lines in your database with the PLAC
tag, along with enough information so you can find the line easily.
The places are printed either exactly as they appear in the database
(e.g. Madison, Dane, Wisconsin) or in reverse order (e.g. Wisconsin,
Dane, Madison). The purpose of this report is so you can find all the
places that seem wrong (mispelled, ambiguous, incomplete, etc.), and
double-check them or correct them.
The places are printed out in the order that they appear in the
database, so the report is not very useful in its native form. To
make it more useful, run the output file through the program 'sort',
making it much easier to spot incorrect names. For example, if you
have 100 entries within Middlesex County, Massachusetts, but in one of
them you mispelled Middlesex as Middlesx, it will be very easy to spot
this in the sorted output.
If the place name is part of an individual record, it is followed by
the key and name of the individual and by the hierarchy of tags
between the INDI tag and the PLAC tag (usually just a single tag, such
as BIRT or DEAT). If the place name is part of a family record, it is
followed by the family key, the key and name of the husband (or wife
if there is no husband, or first child if there is no parent), the
relationship in the family of that person, and the hierarchy of tags
between the FAM tag and the PLAC tag (usually just the single tag
MARR).
Some sample output (in reverse order) that has already been sorted:
California, Los Angeles, Long Beach | I130 Newel Knight YOUNG | DEAT
California, Los Angeles, Los Angeles | I6811 Gunella CHRISTIANSEN | DEAT
California, Los Angeles, Newhall | I836 Cena Elizabeth HAWKINS | DEAT
California, Los Angeles, San Fernando | I836 Cena Elizabeth HAWKINS | BURI
California, Napa, Napa | I1439 Cora Anna BEAL | DEAT
California, Riverside, Riverside | F328 (I1370 Benjamin BERRY, husb) | MARR
California, San Bernadino, | I6843 Emily LUDVIGSEN | BURI
California, San Bernadino, San Bernadino | I1364 Francis LYTLE | DEAT
California, San Bernadino, San Bernadino | I1365 Sophronia Jane MILLETT | DEAT
California, San Bernadino, San Bernadino | I1367 Nancy Ellen LYTLE | BIRT
California, San Bernadino, San Bernadino | I1369 Hulda Lorene LYTLE | BIRT
California, San Bernadino, San Bernadino | I694 Mary Ann HENRY | BIRT
California, Shasta, Redding | I1378 Eliza Lemira MILLETT | DEAT
California, Whittier, Rose Hills | I2318 Zetta Fern MORTENSEN | BURI
Canada, Nova Scotia, Cape Breton | F184 (I749 Ezra KING, husb) | MARR
Canada, Nova Scotia, Cape Breton | I749 Ezra KING | DEAT
*/
partition.ll
/*
* @progname partition
* @version 8.0
* @author Eggert
* @category
* @output GEDCOM
* @description
partition - a LifeLines database partitioning program
by Jim Eggert (eggertj@atc.ll.mit.edu)
Version 1, 19 November 1992 (unreleased)
Version 2, 20 November 1992 (completely revamped using queues)
Version 3, 23 November 1992 (added GEDCOM TRLR line,
changed to key-based queues)
Version 4, 1 December 1992 (slight code updates)
Version 5, 9 January 1993 (added birth and death dates to full)
Version 6, 30 January 1993 (now writes multiple GEDCOM output files)
This version requires LifeLines v2.3.3 or later.
Version 7, 21 September1994 (can partition about selected person)
Version 8, 31 March 1995 (allow non-traditional families)
Version 9, 23 February 1999 (changed to depth-first algorithm)
Version 10, 24 September2001 (use cumcount, not forindi loop variable)
This program partitions individuals in a database into disjoint
partitions. A partition is composed of people related by one or more
multiples of the following relations: parent, sibling, child, spouse.
There is no known relationship between people in different partitions.
You may select a particular person about whom to construct the largest
partition, or you may do the whole database. The partitions are
written to the report in overview form or full form with the
partitions delimited by a
------------------------------------------------------------
long line, or in GEDCOM form to separate partition files. The
overview form merely lists the number of people in each partition by
the number of hops from the first person found in the partition.
(They are found in order of the forindi iterator.) The full form
lists each person in each partition, giving the number of hops, key,
name, and birth and death dates (if known). The GEDCOM form writes
the partitions in GEDCOM format. You will be prompted for a root
filename for the GEDCOM files; individual GEDCOM filenames will be of
the form root_filename.p, where p is the partition number.
Each allowed relationship (parent, sibling, child, spouse) is called a
hop, and the degree of relationship is called the hop count. While
the program is processing, it displays to the screen the number of the
partition it is working on followed by a colon, then the cumulative
number of individuals in that partition for each hop increment.
*/
pafcompat.ll
/*
* @progname pafcompat
* @version 2.0
* @author Eggert
* @category
* @output Text
* @description
pafcompat - a LifeLines PAF compatibility checker
by Jim Eggert (eggertj@ll.mit.edu)
Version 1, 2 January 1993
Version 2, 7 January 1993 added 80 character max for all values
This LifeLines report program checks a LifeLines database for
compatibility with PAF. I used the Mac PAF manual for field length
specification, and Mac PAF v2.11 for a little testing.
This program checks:
1. Number (<=3) and length (<=16) of given names.
2. Length of surname. (<=16)
3. Whether something is after the surname.
4. Length of title (<=16) and reference number (<=10).
5. Whether sex is "M" or "F" or " " or not.
6. Number (<=4) and length (<=16) of place fields.
7. Length of date. (<=23)
8. Legal tags at each level, including legal heirarchical structure.
9. No more than one of each tag at each heirarchical level.
10. Values must be less than 80 characters.
Allowed tags are:
NAME, TITL, SEX, BIRT, CHR, DEAT, BURI, NOTE, FAMS, FAMC, REFN,
BAPL, ENDL, CONT, DATE, PLAC, TEMP, SLGC, HUSB, WIFE, CHIL,
MARR, DIV, SLGS
This version doesn't parse dates per se, it only checks the length of
the date string. Thus it doesn't know what PAF can understand in a
date string.
It also doesn't check for valid content of any of the LDS entries.
*/
igi-merge.ll
/*
* @progname igi-merge
* @version 4.0
* @author Eggert
* @category
* @output GEDCOM
* @description
igi-merge - a LifeLines IGI database merging program
by Jim Eggert (eggertj@atc.ll.mit.edu)
Version 1, 2 February 1993 Requires LifeLines 2.3.3 or later.
Version 2, 17 February 1993 bug fix, better suggestions
Version 3, 15 March 1993 more tunable suggestions,
added windup and restart
Version 4, 9 November 1994 Requires LifeLines 3.0.1 or later.
Minor windup bug fix.
This program helps you merge IGI data. IGI data consists of "families"
which are actually events. A real family may be documented by several
events in the IGI database, and thus be represented by several "families".
This program will help you to locate and merge those "families" back into
real families again.
The program locates candidate "families" to be merged by comparing the
soundex, double initials of husband to husband and wife to wife, and
event years. (Double initials are like "JO" for John. Any double
initials are allowed to match. Hence George Michael will match Mike,
and Betty Lou will match Lois Amelia.) If the comparison indicates a
possible match, the program prompts you for approval to merge. If you
answer with y or Yes or yazbotchit, the program will merge those two
families, otherwise it will not. The two husbands will be merged
together, as will the two wives.
The comparison is made following a strictness code entered at the
beginning of the program execution. The user is prompted for the
strictness level, which means more precisely:
1 soundexes and double initials must match
2 soundexes must match
3 soundexes and double initials must match, but empty soundexes match anything
4 soundexes must match, but empty soundexes match anything
5 double intitials must match
6 nothing needs match
I usually use the strictness in a multiple-pass method: First I run
igi-merge with strictness 1. I import the resulting GEDCOM file into
an empty LL database, and run igi-merge with strictness 2 or 3. And so
on until I am satisfied.
In any case, the event years are always used for declaring matches.
Two families match only if their event years are within forty years of
each other. If the events are marriage events, however, they must be
within five years of each other. If a family has more than one event
associated with it (for partially merged IGI data, for example), any
marriage event has precedence.
After families are merged, the program puts the children in birth order,
and attempts to locate children who are really the same. It prompts you
for approval to merge any two children born or christened in the same year.
Any merged individuals will retain one copy of each name variant and of
each variant sex. (There shouldn't be any of the latter!) Other data,
such as birth and marriage events etc, are simply copied; duplicate
information may therefore be retained after the merge. You are urged
to edit the resulting file to look for and possibly delete such
duplication.
The resulting data is written to a GEDCOM file. You may read this back
into a LifeLines database if you wish.
If you run out of time (because, for example, you are merging ten
thousand families), you can invoke windup. If you answer the family
merge question with w (or windup, or Whatever), the program will act as
if you answered all the remaining queries negatively.
If you want to be really fancy, before you issue the w command, write
down the families that you are being queried about. Then later you
can read the resulting GEDCOM file into a new LifeLines database, and
start up igi-merge again. When asked what comparison strictness to
use, answer with zero. You will be prompted for the two families to
restart the program at. Make sure that you enter the top family
first, otherwise it won't work. The program will then resume your
previous igi-merge session where you had left off.
With windup and restart, you don't really have to have a single block
of time to be able to merge a large dataset.
The program does some rudimentary checking to see if the source data
really is IGI-like. If not, it complains, but keeps on running
anyway. Because it only writes a GEDCOM file, this program can't
corrupt your database, so don't worry.
The user interface depends on the size of the LifeLines screen,
I have marked the sensitive lines with a /*#*/
gender_order.ll
/*
* @progname gender_order
* @version 3.0
* @author Eggert
* @category
* @output Text
* @description
gender_order - a LifeLines gender order statistics program
by Jim Eggert (eggertj@ll.mit.edu)
Version 1, 5 August 1993
listsort code by John Chandler (JCHBN@CUVMB.CC.COLUMBIA.EDU)
Version 2, 10 August 1993
added family examples, modified output format slightly
Version 3, 26 March 1995
changed listsort to quicksort
This program computes gender order statistics for children in all the
families in a database. Genders are considered to be ternary: male
(M), female (F), or unknown (U). Children in a family form a pattern
of genders by birth order, e.g. MFFM for a family consisting of a boy,
two girls, then a boy. The frequency of these patterns is calculated.
In addition to the complete gender pattern for a family, initial
gender patterns are computed. For the above example, the initial
patterns are . (no children), M, MF, MFF, and MFFM. The frequency of
these initial patterns can be used to answer questions such as how
many families with a boy then two girls go on to have another boy.
For example, suppose you want to know what fraction of families with a
child gender pattern P (e.g., P=MFFM) have no more children, have a
boy next (PM), have a girl next (PF), and have a child of unknown (to
the database!) gender next (PU). You can find these fractions as
#complete(P)/#initial(P), #initial(PM)/#initial(P),
#initial(PF)/#initial(P), and #initial(PU)/#initial(P), respectively.
Note that these fractions should add up to 1. Also note that the
pattern "." denotes no children at all. As a initial pattern it gives
the total number of families in the database, as a complete pattern the
number of childless families in the database.
You can use either of two compare functions to sort the results
differently. Rename the one you want to use as compare, the other one
something else (like compare1).
*/
famtree1.ll
/*
* @progname famtree1
* @version 1.0
* @author Jones
* @category
* @output PostScript
* @description
*
* famtree1
*
* version one: 9 May 1993
*
* Code by James P. Jones, jjones@nas.nasa.gov
*
* Contains code from:
* "famrep4" - By yours truely, jjones@nas.nasa.gov
* "pedigree" - By Tom Wetmore, ttw@cbnewsl.att.com
* - and Cliff Manis, cmanis@csoftec.csf.com
* "ancestor.ps" - orginial postscript program by Phil Lloyd,
* lloyd@prl.philips.co.uk (See disclaimer below).
*
*
* This report works only with the LifeLines Genealogy program
*
* This report builds a postscript ancestory chart, a "tree", containing
* data on five generations. It prompts for the individual to begin with
* and draws the tree including this person. The further from this person
* the less data is printed. Maximum data include:
*
* o date and place of birth
* o date and place of marriage
* o date and place of death
* o last place of residence
* o spouses of person #1 (up to five)
*
* as well as:
*
* o name, address, phone number and e-mail address of compiler
* o date of chart
*
* Note:
*
* o Change the "compiler" data below to reflect yourself.
* o In order to take advantage of the "residence" slots on the chart,
* use either ADDR (address) or ADDL (address living) tags in your
* database, e.g.:
*
* 1 ADDL
* 2 DATE 20 Jun 1992
* 2 PLAC 619 W Remington Drive, Sunnyvale, CA 94087
*
* Put the full address on one line, separated by commas (,) and this
* program will parse the street address from the city/state/zip for
* the report.
*/
fam16rn1.ll
/*
* @progname fam16rn1
* @version 1.0
* @author Wetmore, Manis
* @category
* @output Text
* @description
*
* fam16rn1
*
* Code by Tom Wetmore, ttw@cbnewsl.att.com
* Modifications by Cliff Manis
*
* This report works only with the LifeLines Genealogy program
*
* version one of this report was written by Tom Wetmore, in 1990,
* and it has been modified many times since.
*
* It will produce a family report of the person (husband), wife,
* their children, and some data about the children's marriages.
*
* It is presently designed for 16 pitch, HP laserjet III,
* printing a single page of information about that family.
*
* Output is an ASCII file.
*
*/
desc-henry.ll
/*
* @progname description
* @version 8.0
* @author Eggert
* @category
* @output Text
* @description
desc-henry - a LifeLines descendants listing program using Henry codes
by Jim Eggert (eggertj@atc.ll.mit.edu)
Versions 1-3 1992
Version 4, 7 Jan 1993 (added generation limit)
Version 5, 22 Dec 1993 (added header, trailer, and optional keys)
Version 6, ???????????
Version 7, 17 Mar 1995 (added grouped code option)
Version 8, 6 Jun 1995 (added numbering options)
This program prints out a descendants report, assigning a d'Aboville,
Henry, modified Henry, or modern Henry code to the individuals. The
chosen ancestor, and all of his/her spouses, descendants, and
descendants' spouses are included in the report.
Some sample codes are:
d'Aboville Henry modified Henry modern Henry
root 1 1 1 1
child 1 1.1 11 11 11
child 10 1.10 1X 1(10) 1A
child 11 1.11 1A 1(11) 1B
child 20 1.20 1J 1(20) 1K
g-child 1.20.1 1J1 1(20)1 1K1
gg-child 1.20.1.4 1J14 1(20)14 1K14
ggg-child 1.20.1.4.15 1J14E 1(20)14(15) 1K14F
gggg-child 1.20.1.4.15.3 1J14E3 1(20)14(15)3 1K14F3
Spouses codes, if requested, are indicated by appending .sn, where n
indicates which spouse is meant, and is omitted if there is only one
spouse. The root code is user selectable so that you can have
arbitrary code prefixes.
I use the latter feature when my database indicates that person X was
not a descendant of Y, but I want to rig up a report which indicates X
is to be included in Y's descendancy. I make two reports, one of Y's
real descendancy, and the second of X's giving X the number he would
have in Y's descendancy. Then I need merely edit the two files to
achieve the desired result.
The program can also generate grouped codes, where the generation
separator (if any) is replace by a comma every three generations. The
choice of arbitrary roots indicates that an additional parameter, the
initial comma location, be selectable. The grouped format is
sometimes used in published genealogies, using a single capital letter
for the root symbol.
The user can elect to include only male descendance lines. This is
useful for single-name studies. In this case, spouses are not printed
as separate entries, but are indicated with the descendant. For
female descendants, an indication of the number of children is also
printed.
The user can select whether no dates, simple dates (birth - death), or
dates and places (birth, baptism, death, burial, one per line) are to
be printed. Also top-level notes can be optionally printed. The
program only understands PAF-like events and notes. Printing simple
dates and no notes gives a useful one-line-per-person outline.
The user can also elect to limit the number of generations to be printed
out. Selecting 0 means all generations will be printed out.
The user can also elect to include keys for each individual in the report.
The user can also elect to exclude, with annotation, repeated individuals.
The report will include a header and a trailer. You may easily modify the
do_header() and do_trailer() procedures to alter or eliminate these if
you wish.
*/
dates.ll
/*
* @progname dates
* @version 4.0
* @author Eggert
* @category
* @output Text
* @description
dates - a LifeLines dates extraction program
by Jim Eggert (eggertj@atc.ll.mit.edu)
Version 1, 3 December 1992
Version 2, 8 December 1992 (minor bug fix, report in columns)
Version 3, 5 February 1993 (speedup of tag handling)
Version 4, 1 September 1993 (bug fix for families with no parents)
This code borrows heavily from the excellent program places, written
by David Olsen (dko@cs.wisc.edu), and contains improvements by Steve
Woodbridge (sew@pcbu.prime.com).
Prints out the value of all the lines in your database with the DATE
tag, along with enough information so you can find the line easily.
The purpose of this report is so you can sort all the dates in the
database, so you can look for illegal dates, make birthday lists, etc.
The dates are printed in the order that they appear in the database,
so the report is not very useful in its native form. To make it more
useful, run the output file through the program 'sort', and perhaps
'grep' if you want to get only birthdates etc. To make sorting
easier, each date is preceded by a eight-digit number of the form
yyyymmdd. Then a simple ASCII line-by-line sort puts the dates in the
right order. Days and months are checked for validity (thirty days
hath September and all that) and futurity. It asks you if you want to
use the Gregorian calendar or the Julian calendar. This only affects
the validity of Feb 29ths, so don't fret too much. Any invalid or
future date is marked with a * as the first character of the line.
These will appear first in the sorted output.
If the date is part of an individual record, it is followed by the key
and name of the individual and by the hierarchy of tags between it and
the INDI tag. (This is usually just a single tag, such as BIRT, CHR,
or DEAT.) If the date is part of a family record, it is followed by
the key and name of the husband (or the wife is there is no husband,
or first child if there is no parent), the relationship in the family
of that person, and by the hierarchy of tags between it and the FAM
tag. (This is usually just the single tag MARR.) Some sample output
(selected lines that have been sorted):
15800000 ABT 1580 | BIRT | I4403 Valentin BISMARCK
15810000 1581 | DEAT | I41 Catherina
15821221 21 DEC 1582 | BIRT | I4404 Berta ASSEBURG
15850000 ABT 1585 | BIRT | I2595 Henrich SPANUTH
15850529 29 MAY 1585 | DEAT | I4418 Brigitte BISMARCK
15860000 1586 | BIRT | I2596 Johan SPANUTH
15860301 1 MAR 1586 | BIRT | I2675 Catharine SPANUTH
15870000 1587/1589 | BIRT | I2597 Caspar SPANUTH
15880201 1 FEB 1588 | BIRT | I2676 Johan SPANUTH
15890226 26 FEB 1589 | BIRT | I2677 Johan SPANUTH
15960000 1596 | MARR | F883 I2679 Arend KOLLE, husb
16421009 9 OCT 1642 | BURI | I4404 Berta ASSEBURG
19800108 8 JAN 1980 | ENDL | I3635 Maria Catharina KINDLER
19800124 24 JAN 1980 | CHIL SLGC | F948 I2336 Anselm KINDLER, husb
*/
connect2.ll
/*
* @progname connect2
* @version 1.0
* @author Simms
* @category
* @output Text
* @description
Written by: Robert Simms, 19 Sep 1997
rsimms@math.clemson.edu, http://www.math.clemson.edu/~rsimms
Asks for a descendant and an ancestor then produces, for the line
connecting the two persons,
an indented report on an individual and all families associated
with that individual. Details on individuals include NOTE lines.
Linewrapping is done with indenting maintained.
This program does not check to make sure that the descendant given is really
a descendant of the ancestor. An error will result if not.
At the beginning of main() is provided the means to easily change page width,
tab size, left margin, and whether or not to include notes in output.
Revisions: 2. Robert Simms, 17 Feb 2000, made line-wrapping code more
consistent in its use of the parameters page_width,
and left_margin.
*/
book-latex.ll
/*
** @progname book-latex
** @author Nicklaus
** @version 3
** @category
** @output LaTeX
** @description
**
** $Id: book-latex.ll,v 1.8 2001/10/03 02:58:55 dabright Exp $
**
** SourceForge Versions:
**
** $Log: book-latex.ll,v $
** Revision 1.8 2001/10/03 02:58:55 dabright
** * reports/book-latex.ll: Restored some previous additions
** to this report. The update from Dennis Nicklaus on 12 Aug 2001
** had deleted them and he asked me to re-add them. So:
** Add CREM (cremated) tag processing;
** modified OCCU tag processing so that it can recognize date ranges
** (and so avoid saying "xx is a yy and a zz and a ..."); modified
** OCCU tag processing to recognize a subordinate AGNC tag indicating
** employer; modified onDate to recognize date ranges (FROM dd mmm
** yyyy TO dd mmm yyyy) - this still has some rough edges.
**
** Revision 1.7 2001/08/12 20:53:59 nozell
** Update by Dennis Nicklaus to his book-latex.ll
**
** Revision 1.5 2000/11/28 21:39:45 nozell
** Add keyword tags to all reports
** Extend the report script menu to display script output format
**
** Revision 1.4 2000/11/11 07:52:06 pere
** Use ISO 8859/1 charset in LaTeX. Add meta-information in header.
**
** Revision 1.3 2000/11/11 07:46:47 pere
** Include index even when there is no bibliography.
**
** Revision 1.2 2000/11/11 04:07:37 dabright
**
** reports/book-latex.ll: Added processing for BAPM tag, corrected
** error in referencing "spouse" rather than "s" in longvitals,
** added processing for the TYPE tag (modifier for EVENT), corrected
** setDayNumber so that it only uses text phrases (e.g., "on the same
** day") when both previous date and current date are fully
** specified, preserve line breaks represented by blank CONT/CONC
** tags, ensure "cn" variable in sourceIt is initialized before
** referenced, and miscellaneous typographical corrections.
**
**
** Revision 1.1 2000/11/10 dabright
** Initial revision - copy of Version 2.5 from Dennis Nicklaus
**
** Pre-SourceForge history:
**
## Dennis Nicklaus (dnicklaus at yahoo.com)
** Version 2.5 Feb. 2000
**
** Requires LifeLines version 2.3.3 or later
** Requires tree.tex (for formatting) (tex macros for tree drawing).
** (found in TUGboat, vol. 6 (1985) and online in various places,
** including with the desc-tex lifelines report)
**
** based on work by David Olsen (dko@cs.wisc.edu) which in turn was
** based on work originally done by Tom Wetmore (ttw@cbnews1.att.com).
** also work by Kurt Baudendistel (baud@research.att.com).
** A few others, such as Ed Sternin (edik@brocku.ca) made other suggestions.
** and corrections.
**
** This report prints, in register/book format, information about all
** descendants of a person (or persons) and all of their spouses.
** It tries to understand as many different
** GEDCOM tags as possible. All source information (SOUR lines) is in the
** bibliography and footnotes.
**
** An alternate usage (new in version 2) lets you print out sort of a combination
** ahnentafel and register report going through the ancestors of the
** persons chosen.
**
** The output is in LaTeX format. Therefore, the name of the output file
** should end in ".tex". To print (assuming the name of the output file is
** "out.tex"):
** latex out
** (repeat latex-ing to get cross-references resolved)
** dvips out
** lpr out.ps
**
** Indexing commands are placed within the LaTeX output. To include an index
** in the document do the following:
** latex out
** makeindex out
** latex out
** latex out
** dvips out
** lpr out.ps
**
** I admit that this is lot of post-processing, but the results are worth it.
**
** LaTeX interprets $, &, %, #, _, {, }, ~, ^, and \ as special characters.
** If you have any of these characters in your database, you will need to
** convert them to \$, \&, \%, \#, \_, \{, \}, \verb|~|, \verb|^|, and
** $\backslash$ (or \verb|\|) respectively after the report is generated and
** before running through LaTeX. $, &, _, ~, and ^ are easy to find, since
** they are not used in the report. % and # are only used near the beginning.
** {, }, and \ will be more difficult to find since they are used as part of
** the LaTeX commands throughout the report.
** A special note about indexing. If you have names with double quotes in
** them, e.g. Forrest "Foggy" Morrison, not the nice Latex quotes style:
** Forrest ``Foggy'' Morrison, then the " marks will screw up the index.
If you'ld like to credit me & this program in your
introduction if it's something you're really going to publish
that'd be nice (but not required).
Something like this could be used:
"This document was prepared using LifeLines v." version() " genealogical database program\n"
"by Thomas T.~Wetmore~IV, {\\tt ttw@beltway.att.com}. The script {\\tt book-latex}\n"
"by Dennis Nicklaus {\\tt dnicklaus at yahoo.com} was used to generate the \\LaTeX\\ code.\n"
*/
bias.ll
/*
* @progname bias
* @version 1.4
* @author Chandler
* @category
* @output Text
* @description
bias
Compute sex bias based on previous births
Version 1.3 - 1993 Aug 23 - John F. Chandler
Version 1.4 - 1994 Jul 19 (requires LL 3.0 or higher)
Ever notice that certain families seem to have all boys or all girls?
Sometimes five or six in a row of all the same sex? Is this a mere
statistical fluctuation, or is something special happening?
This program gives statistics for male vs female births. First, it
tabulates the number of males and females next born after each possible
proportion of previous births in the same family. In particular, it
gives the sex tally of first-borns (where the proportion of previous
births is 0 males and 0 females), then the tally for second-borns where
the first child was a female (0+1), and so on. Any combination that
doesn't actually occur in the database is skipped in the report (for
example, if no family is found with more than 3 sons, the tallies for
3+0, 3+1, and so on would all show a total of 0 males, and there would
be no tallies listed for 4+0, 4+1, and so on).
Children of unknown sex are not included in these statistics.
The program next prints out the relative excess of male births
(typically a positive value) over the nominally expected 50%. For many
files, there is a tendency to include incomplete families with only one
known child; for this reason, "only" children are excluded from these
statistics. Also, the male excess is computed for two different subsets
of the children: (A) the set of all children not born last, and (B) the
set of all children not born first. For both of these, there is also a
measure of the variability of the sex ratio to put the percentages in
perspective. In addition, the program prints out the correlation
between the sex ratio for children already born into a family and the
likelihood of getting a male (or female) as the *next* child. If the
sample is unbiased, and if the sex of each child is truly random, this
correlation should be 0.
It also tallies the fraction of births matching the sex of the previous
birth in the same family (again, excluding any children of unknown sex).
These results are printed out for a succession of increasingly restricted
cases: first, for all births of non-first-borns; then, for births preceded
by two-in-a-row of the same sex; then, for three-in-a-row; and so on.
Bug: combinations with more than 9 sons or more than 9 daughters are not
listed properly.
This program works only with LifeLines.
*/
alive.ll
/*
* @progname alive
* @version 5.0
* @author Eggert
* @category
* @output Text
* @description Finding people alive in a given year
alive - a LifeLines report program for finding live people
This finds who in the database, or among ancestors or descendants of
an individual, was likely alive in a certain year. Good for looking at
population snapshots like censuses, tax rolls, etc.
Version 1, 13 July 1994, by Jim Eggert, eggertj@ll.mit.edu
Version 2, 14 July 1994, by Jim Eggert, fixed bug in estimate_byear
Version 3, 22 July 1994, by Jim Eggert, fixed another bug in estimate_byear,
minor format improvement
Version 4, 15 March 1995, by Frank Flaesland, added support for listing places
Version 5, 17 March 1995, J.F.Chandler, modified to prune place list
** SourceForge Versions:
**
** $Log: alive.ll,v $
** Revision 1.4 2000/11/29 12:17:11 nozell
** Fix typo.
**
** Revision 1.3 2000/11/28 21:39:45 nozell
** Add keyword tags to all reports
** Extend the report script menu to display script output format
**
** Revision 1.2 2000/11/11 17:48:13 pere
** Get this report working. Fixed type problems and handle empty
** place tags without crashing. Add meta information.
**
**
*/