Lifelines Scripts Emulation in GEDitCOM II and GEDitCOM
Introduction
Lifelines was written by Tom Wetmore in the early 1990's and is currently available under an MIT-style license. The important features of Lifelines are that it is based on the GEDCOM standard and it is scriptable. These are also two things Lifelines has in common with . Lifelines is a Unix-based command-line tool. Wouldn't it be nice to have Lifelines scripts available in a more modern user interface? This extension answers that question by providing translations of selected Lifelines scripts to versions that can run in
This extension uses Internal Scripting options for to provide a platform for emulating the Lifelines scripting language. The core of the emunlation is a Lifelines.gcscpt module (included in this extension) that allows many Lifelines commands to work the same way in converted Internal Scripts, Because of syntax differences between Internal Scripting and Lifelines scripting, it was not possible to provide 100% emulation. Nevertheless, with a few changes in syntax and commands, it is relatively easy to convert existing Lifelines scripts to Internal Scripts for .
Lifelines users have created a number of useful scripts. This extension includes translations of some of those scripts to now run in . Even if you have no interest in Lifelines or in its scripting language, you can use these translated scripts as new features for . The translated scripts are described in the section below.
If you are a programmer and willing to learn Internal Scripting methods, this extension includes copies of many more original Lifelines scripts potentially to be translated for . See the help on Lifelines emulation to learn how to convert more Lifelines scripts into Internal Scripts and to learn about the Lifelines scripting language.
Translated Lifelines Scripts
This section describes selected scripts from Lifelines that have been translated to Internal Scripts for . To run any already-translated script in , choose the "Lifelines (Internal Scripting)" menu command from the Extensions→Lifelines submenu. You will get a list of the scripts decribed below. Pick one and click "OK" to run it. The list below has the script name used in this extension (in alphabetical order) along with the original Lifelines file name followed by and a brief desciption.
- Ahnentafel ancestors report (
ahnentafel.ll)
- A report of ancestors using the Ahentafel numbering system. The script uses a clever and efficient method to iterate through all ancestors. has an "Ancestors (Ahnentafel)..." option in the Reports menu as wells as an "Ahnentafel Report" extension. Both options give a more elaborate report and use styled text.
- Ancestor coverage report (
coverage.ll)
- Displays "ancestor coverage," or the percentage of
ancestors that have been discovered for each generation back in time.
- Ancestral lines of an individual (
showlines1.ll)
- Shows paternal ancestors of an individual and then for each mother in the maternal line, shows their paternal lines. Blocks of ancestral lines are separated by report lines.
- Ancestors list sorted (
ancestors2.ll)
- A report of all ancestors of an individual including birth and death dates. The output is sorted by name.
- Chart of surnames and soundex codes (
soundex.ll)
- A table of all unique surnames in the file along with their soundex codes.
- Count number of unique ancestors (
count_ans.ll)
- Count all unique ancestors of selected individuals. The output lists number in each generation and total for all generations.
- Count number of unique descendants (
count_desc.ll)
- Count all unique descendants of selected individuals. The output lists number in each generation and total for all generations.
- Count paternal descendants (
count_paternal_desc.ll)
- Counts paternal descendants of a person by generation. Only unique individuals in each generation are counted. A person counts in all the generations he/she is in, but only counts once in the grand total. Male paternal descendants are also counted separately.
- Descendants of an individual (
bkdes16-1.ll)
- A compact report of all descendants of an individual. Each descendant is on a single line with indents using "." and "*" to indicate generation numbers. The script is hard-coded to a maximum of 15 generations. has two extensions for fancier reports on descendants. They also have options to export the report to an MS Word or a Pages document with styled text.
- Descendants of an individual with children under spouses (
pdesc1.ll)
- Descendant report for a selected individual. Children of each spouse are printed below that spouse. has two extensions for fancier reports on descendants. They also have options to export the report to an MS Word or a Pages document with styled text.
- Family group chart (
fam10c.ll)
- Family group report suitable for printing on a single page.
- Family group chart with more details (
fam16rn1.ll)
- Produces a family report of the person (husband), wife, their children, and some data about the children's marriages. It is designed for printing on a single page.
- Find nonpatronymic inheritances in the database (
nonpatronymics.ll)
- Find all cases of nonpatronymic inheritances in the database. If the child's surname is not identical to the father's surname, print both out. If the two surnames have different soundex codes, undent the printout. Print statistics at the end.
- Formatted GEDCOM for individuals and families (
formatted_gedcom.ll)
- GEDCOM data for all individuals and families formatted with delimiters and indents (it is not a GEDCOM file because it only has individual and family records and delimiters between records are not allowed in GEDCOM files). has built options for exporting valid and complete GEDCOM files.
- Four generation chart (
4gen1.ll)
- A four-generation chart for a selected individual that is suitable for printing on a single page. The "Basic Charts and Reports" extention for has two versions of this report. One uses graphical method to connect the generations with lines.
- Given name frequency report (
namefreq.ll)
- A list of all first names in the database sorted by number of individuals with that name. The "Basic Charts and Reports" extention for has another version of this report.
- Index of all persons in the database (
index1.ll)
- A table of all individuals in the file with birth and death dates sorted by last name.
- Index of all persons including maiden and married names (
index_mm.ll)
- Index of everyone in a database, with women listed by both maiden name and married name. It assumes that all women take the surname of their husbands, which is not always correct.
- Marriages sorted by husband's name (
marriages1.ll)
- List all marriages that have two spouses and marriage date (if known). The list is sorted by husband's name. Husbands with more than one wife will show them on extra lines,
- Pedigree chart with all generations (
pedigreel.ll)
- Generates a pedigree chart showing all ancestor generations of a selected individual. If there are many generations, indents will cause the report to need many columns for display (the window will wrap line with long text).
- Places in the file along with an event (
places.ll)
- Prints lines for places in your database along with enough information so you can find the line easily. The purpose of this report is so you can find all the places that seem wrong (misspelled, ambiguous, incomplete, left out the county name, etc.) and double-check them or correct them. Note that has a "Places and Events" report that gives more detail on events for each place, runs much faster, and has formatted display in a table.
- Report with two individuals per page (
2ppage.ll)
- Produce a report of all individuals in the documents organized into two individuals for each page. This report is also available in the "Basic Charts and Reports" extension for .
- Sample Lifelines script in quickref.pdf documentation
- A translation of the example script in the quickref.pdf documentation file into an Internal Script for .
- Six generation chart (
6gen1.ll)
- A six-generation chart for a selected individual that is suitable for printing on a single page and has blank lines for missing ancestors. To fit six generations, the chart only has names of ancestors. The "Basic Charts and Reports" extensino for has an improved version of this report with more lines connecting generations.
- Spouses with known common ancestors (
related_spouse.ll)
- For all families with two spouses, this script searches their ancestors. The final report lists spouse pairs that have known common ancestors. It reports on all families in the file. Because full ancestor searches of all individuals takes time, this script displays percent completed in the sripting panel (and will be slow in large files).
- Timeline showing birth, marriage, and death events (
timeline1.ll)
- A chart of selected individuals showing birth date, marriage date, and death date through their life span. This emulation is slow for a large number of individuals (such as many ascestors, descendants, or all individuals in the file). has a "TimeLine Reports" extension that generates the same information much faster and a graphical option uses html to allow horizontal scolling and nicer appearance.
- Tiny Tafel report on an individual (tinytafel2.ll
)
- Each line in a Tiny Tafel represents one surname being researched (with soundex code), along with the time period and geographic location where lines of individuals with that surname lived. Researchers could exchange these compact summaries rather than entire GEDCOM files to quickly identify whether two databases might share common ancestors.