In Mel Brooks’ classic comedy Young Frankenstein, one of the film’s most memorable comedic moments occurs when Dr. Frederick Frankenstein discovers the hidden library of his grandfather, Victor Von Frankenstein. Expecting a complex, highly academic scientific treatise or detailed journal explaining the secret behind bringing reanimated flesh to life, he instead uncovers a surprisingly straightforward instructional manual. Lifting the leather-bound book to his face, he reveals its bluntly utilitarian title: How I Did It by Victor Von Frankenstein. This iconic gag brilliantly subverts traditional horror tropes, parodying Mary Shelley’s original 1818 gothic novel—where the exact mechanics of creation are famously left vague and mysterious—by reducing one of literature’s most infamous acts of scientific hubris to a simple, everyday DIY guide.

The primary purpose of this post is to detail the process of using Google’s AI chatbot to systematically extract several hundred Birth, Marriage, and Death (BMD) records directly from digital image scans of original historical registers and then programmatically transfer the extracted records into linked events into GEDCOM files suitable for import into RootsMagic or Ancestry.com. The extracted dataset is structured for storage in Google Sheets using a standardized CSV (comma-separated values) format. Once compiled, this structured data serves two main purposes: conducting an in-depth textual analysis of the historical records and compiling the findings into a GEDCOM file, which can then be imported into family tree management software or online genealogy platforms like Ancestry.
The dataset focuses on vital records produced over an 86-year span ranging from 1740 through 1826. These original documents were handwritten in Latin and French using European cursive styles typical of the late 18th and early 19th centuries. Collecting and processing these materials required a significant time investment, spanning nearly two months of daily work to individually download 669 archival image files from online genealogical portals.
(See bottom of post for links to the original documents)
The workflow consisted of 5-steps. The first step involved having Gemini transcribe and translate up to 10 attached images at a time. The next step was to request that Gemini take the imported data and extract the records to a BMD table writing out to CSV format. I then imported the CVS data into a Google Sheets workbook. Then I loaded a CSV table created from a descendancy registers of three family branches exported from Ancestry. I instructed Gemini to use this source for final steps.
Step 1: Transcribe and translate the attached archival images.
- Batch-process high-resolution register scans in groups of up to ten images per prompt.
- Generate exact verbatim transcriptions of the original 18th- and 19th-century French and Latin handwriting, capturing historical naming conventions and archaic terminology.
- Provide side-by-side English translations for each document to simplify comprehension and downstream data parsing.
Step 2: Extract structured vital records into a standardized BMD table in CSV format.
Step 3: Integrate Ancestry descendancy registers for family branch cross-referencing.
Step 4: Generate a comprehensive year-by-year narrative analysis cross-referenced against the descendancy records.
Step 5: Synthesize total extracted datasets into customized GEDCOM files.
Now here is where things get really deep. How did Gemini get the data from 24 CSV files extracted from BMD records into the two GEDCOM files described below.
Gemini programmatically compiled my master family registers into a standard, lineage-linked GEDCOM file. The resulting file, montecheroux_genealogy_master.ged, is now fully built, validated, and ready for you to download directly from your Studio panel on the right.
This file was constructed utilizing a custom Python script that scanned, cleaned, and cross-referenced your registers to ensure 100% syntactic and structural integrity for seamless import into RootsMagic, Ancestry.com, Legacy, or Family Tree Maker.
What is Inside Your GEDCOM File
- 61 Unified Individual Profiles (IND-001 to IND-061): Complete, deduplicated profiles covering your core ancestral lines, including the Lachat/Loichat, Jourot, Voisard/Voysard, and Abram/Abrand branches.
- 22 Relational Family Unions (FAM Blocks): Explicit spouse-to-spouse marriages and parent-to-child links that map your ancestors’ tree structure across generations.
- Enriched Vital Event Metadata: Standardized dates and places for births, marriages, and deaths drawn from the original register transcriptions. This includes exact vital events such as:
- The birth of Jean Pierre Lachat on January 27, 1716, in Chevenez, Switzerland.
- The double Lachat wedding on February 5, 1743.
- The birth of Jean Germain Voisard in 1754 and his marriage on May 30, 1774, to Marie Angélique Lachat.
- The subsequent 19th-century migrations of the allied Faivre and Jeanin-Gaume families to Stark County, Ohio.
- Standardized Nomenclature: Standardized given names and surnames (such as formatting surnames as /Surname/ per GEDCOM specifications) with alternative name aliases (ALIA) indexed for variant spellings (e.g., Voisard / Voysard or Lachat / Loichat).
- Kinship & Source REFN Markers: Every individual’s record embeds a clean NOTE showing their exact relationship to you (the proband/author, such as 5xGgf or 4xGgm) and a REFN field matching back to their corresponding source IDs in your original notebooks.
GEDCOM Generation & Validation Log
- Encoding: UTF-8
- GEDCOM Standard: 5.5.1 Lineage-Linked
- Deduplicated Individuals (INDI): 61
- Reconstructed Families (FAM): 22
- Syntactic Self-Consistency Check: PASS (Zero broken parent-child or spouse loops; all cross-references resolved successfully).
Yes, absolutely! I have successfully created a comprehensive GEDCOM file that compiles and links every single individual mentioned across all 24 of your uploaded CSV files.
The resulting file, montecheroux_genealogy_all.ged, is now fully generated, validated, and available for download in your Studio panel on the right.
The Scale of Your New Tree
By scanning every role in every record (including primary subjects of births, marriages, and deaths, as well as named parents and spouses), we scaled the database exponentially:
- Total Raw Occurrences Parsed: 3,921 rows and name-mentions across your registers.
- Unique Grouped Individuals (INDI): 2,543 unique physical people (up from the 61 in your core master index).
- Reconstructed Families (FAM): 1,180 distinct family unions linking children to parents and spouses to each other.
How the Algorithm Linked Your Entire Parish
To prevent your tree from being cluttered with hundreds of loose, duplicate entries for the same name, the custom generator used a multi-layered genealogical record linkage algorithm:
- Core Preservation: The script first mapped occurrences to your 61 master individuals (IND-001 to IND-061). These core ancestors are seamlessly merged with their matching register events, preserving all your custom kinship labels, original note blocks, and reference tags.
- Smart Deduplication: For all other names, the script grouped matching names and analyzed them chronologically. Occurrences of the same name (e.g., Pierre Mélière) were merged into a single individual profile only if:
- Their vital event dates were biologically compatible (within a standard 75-year lifespan window).
- They did not have contradictory events (e.g., two distinct births or two distinct deaths).
- They shared identical or compatible spouses and parents.
- If dates or spouses conflicted, the algorithm automatically generated a separate individual profile (e.g., IND-062 vs. IND-063) to prevent historical merges.
- Comprehensive Family Assembly: The script scanned the parent columns in births and the spouse columns in marriages/deaths to build family blocks. Any child whose parents could be resolved within the dataset was automatically placed as a sibling in their parents’ family block.
- GEDCOM 5.5.1 Compliance: All dates have been standardized into GEDCOM-compliant format (e.g., 11 JAN 1811), and surnames are formatted using standard slash notation (e.g., Given /Surname/).
- Source Trail Notes: Every newly created individual profile contains a detailed NOTE tag showing the exact roles they played in the original CSV registers and the files they came from, allowing you to easily verify their source records in your database.
Results
I was not happy with the first pass at creating the all individual file, so I had it try again this time the instructions were: “Create the all individual GEDCOM again but this time use descendancy registers as a basis for some families. If the individual is added from a birth record be sure to add & link the parents. Do not include occupation as part of the person’s name, rather create an occupation event.”
The second pass had a problem with surnames containing numbers and punctuation. In some cases, it was an approximation of the person’s age. In others, the surname contained part of the occupation’s text. So instructions for the third past were as follows: ”Create the all individual GEDCOM again but this time use descendancy registers as a basis for some families. If the individual is added from a birth record be sure to add & link the parents. Do not include data in the occupation column as part of the person’s name, rather create an occupation event Do not include any numbers or punctuation in the person’s name. If there isn’t a Last_name or Surname column then the Surname is the person’s literal last name.”
Final Response
I have rebuilt your comprehensive parish-wide family tree from scratch using the updated, strict genealogical parameters you specified.
The new file, montecheroux_genealogy_all-v3.ged, has been generated and validated with zero syntactic errors. It is now published in your Studio panel on the right and is ready for you to download and import directly into RootsMagic, Ancestry, Legacy, or Family Tree Maker.
What Changed in this Version (v3)
I modified the record linkage and extraction script to adhere strictly to your new parameters:
- Foundational Tree Basis: The script first ingested your verified 61 master individuals (IND-001 through IND-061) and their 22 family units as the foundational skeleton. These families (including the Voisard/Voysard, Jourot, Lachat/Loichat, and Abram/Abraham branches) served as the anchors.
- Parental Birth Linking: If a child was added from any of the birth registers, the algorithm scanned for named fathers and mothers, dynamically created profiles for them if they were not already in the database, established a marriage/spouse family block for the parents, and linked the child as CHIL with a corresponding FAMC pointer in the child’s record.
- Strict Name Cleansing (No Numbers or Punctuation): The script removed all ages, parenthetical remarks, death cross markers (+), and numbers from names. Furthermore, all punctuation was stripped, so hyphenated names (like Jean-Pierre or Jeanin-Gaume) have been standardized to space-separated names (Jean Pierre and Jeanin Gaume) for maximum database compatibility.
- Literal Surname Splitting: For tables lacking separate Given and Surname columns (such as the early parish registers), the algorithm strictly applied the literal last word rule. For example, a name like “Jeanne Antoine Jourot” was split into Given Names: Jeanne Antoine and Surname: Jourot.
- Clean Occupation Events (OCCU): Occupations were completely extracted from person names (e.g., removing (laboureur) or (tanneur) from name strings) and separated from the raw name fields. Instead, they were written as formal standard GEDCOM 1 OCCU events under the individual’s profile block.
GEDCOM v3 Generation Statistics
- Total Individuals (INDI): 2,082 unique people (cleanly deduplicated across generations and spelling variants like Voisard / Voysard or Lachat / Loichat).
- Total Families (FAM): 914 family unions (spouses linked to marriages, and children linked to their parental households).
- Total Occupations Parsed: 154 distinct occupations (such as Watch toolmaker, Blacksmith, Roofer/Thatcher, Tanner, Weaver, and Schoolmaster) cleanly recorded as individual life events instead of name attachments.
- Syntactic and Relational Checks: PASS (100% compliant with the GEDCOM 5.5.1 UTF-8 standard; all child, spouse, and parent pointers are resolved with zero dangling cross-references).
Below is a link to the Montecheroux BMD records (1740-1826) tree at Ancestry.com.
https://www.ancestry.com/invite-ui/accept?token=zZ2m68_f7218qFoE1DmlLroXUtjs_lGpzsurD6-3G0U=
Links to original pages/images at Geneanet.org
Montecheroux 1740 to 1790
https://en.geneanet.org/archival-registers/view/1096486/1
Montecheroux 1791 to 1792
https://en.geneanet.org/archival-registers/view/1096487
Montécheroux (Doubs, France) – BMD Records (Births) | 1793 – 1796
https://en.geneanet.org/archival-registers/view/1096488
Montécheroux (Doubs, France) – BMD Records (Marriages) | 1793 – 1811
https://en.geneanet.org/archival-registers/view/1096489
Montécheroux (Doubs, France) – BMD Records (Deaths) | 1793 – 1817
https://en.geneanet.org/archival-registers/view/1096490
Montécheroux (Doubs, France) – BMD Records (Births) | 1797 – 1805
https://en.geneanet.org/archival-registers/view/1096491
Montécheroux (Doubs, France) – BMD Records (Births, Marriages, Deaths) | 1805 – 1806
https://en.geneanet.org/archival-registers/view/1096492
Montécheroux (Doubs, France) – BMD Records (Births) | 1807 – 1832
https://en.geneanet.org/archival-registers/view/1096493
Montécheroux (Doubs, France) – BMD Records (Deaths) | 1818 – 1862
https://en.geneanet.org/archival-registers/view/1096495