
(Photo by Frankphotos)
Is your old genealogy program tired, run down, and listless? Does it poop out at parties? Is it unpopular? Well folks the answer to all your problems is …
Whichever genealogy program you decide to switch to, you will need to transfer your database from your old program to your new one. In most cases, this requires exporting a GEDCOM file from the first and importing it into the second. Changing genealogy programs can be a challenge for several reasons. GEDCOM importing and exporting capabilities can vary widely among products so there is a tendency for data to become corrupted or lost. Another problem you might run into is that any vendor specific records that were used by your first program will usually not be supported by the second. Clunk was written to help get around this.
In Tamura Jones’ recent article “Also Known As“, he discusses the vendor specific _AKA record that is used by Personal Ancestral File (PAF) to hold alternate names. He was in a quandary on how to convert these to GEDCOM NAME records so that they could be imported into RootsMagic correctly, without doing it manually.
In response to his article I asked:
“Couldn’t you write a small program or script to process your GEDCOM file to replace the _AKAs with delimited copies?”
And he responded:
“How is that script going to be better at deciding where to split names than RootsMagic is?
I took that as a dare!
Clunk will not solve all your problems, but was written to make relatively easy conversions to help preserve some of the data that might otherwise have been lost.
Clunk currently supports converting _AKA records by extracting the surname from the NAME record, and then replacing that surname, if found, in all of its associated _AKA records with delimited copies of the surname, when not already delimited. It also renames the 2 _AKA to 1 NAME. For instance it will convert
1 NAME John /Smith/
2 _AKA John Smith, Jr.
2 _AKA John /Smith, Sr./
to
1 NAME John /Smith/
1 NAME John /Smith/, Jr.
1 NAME John /Smith, Sr./
The renaming can only occur if there are no other subname records following _AKA records that are not also _AKA records. Any single occurrence in the file will prevent all renaming. So
1 NAME John /Smith/
2 _AKA John Smith, Jr.
2 SURN Smith
will convert to
1 NAME John /Smith/
2 _AKA John /Smith/, Jr.
2 SURN Smith
Note that _AKA was not renamed.
Clunk is being made available as free software and distributed without any warranty, explicit or implied. Clunk is a WIN32 console app that takes a GEDCOM filename as an input parameter, converts it and saves the converted file to the output file clunk.ged located in the same folder where the program was executed. It is the responsibility of the user to examine the differences between it and their input file to validate the results of the conversion. This can generally be done using a special utility like KDiff3. Users should always backup their GEDCOM file before running the Clunk. Even though Clunk does not write to this file, it does open and read from the file and under rare file I/O failure conditions, it could leave the file in a corrupted state. So once again, ALWAYS backup your GEDCOM file FIRST.
Clunk may be downloaded from the Downloads page. Its syntax for use is:
clunk filename.ged
If you have ideas for other vendor specific records that need converting, post them in the comments section, and I’ll see what I can do. This program is NOT a GEDCOM parser, it is designed to do moderately complex search and replace operations, much like regular expressions. It is not setup to rearrange GEDCOM record structures. That is a whole other project entirely, and significantly more difficult, though not beyond the realm of “should I, or shouldn’t I”.
Note: This is just a first pass to test viability and usefulness. I may, at a future date, add logging, allowing the output file to be configured, and add an option to treat the _AKA record as a delimited list so that multiple names can be converted.
Ver 0.02 – added support for renaming
"2 _AKA"records to"1 NAME"records.Note: this only can occur if there are no
"2 _AKA"records followed by records at level 2 or greater (that are not also _AKA records). For instance if an _AKA record is followed by"2 SURN", then we cannot rename the _AKA record without corrupting the"1 NAME"record because if we did, the"2 SURN"would then become a subrecord of the one we renamed, and not of the original record where it belongs. I think/hope that in most cases, the _AKA records are the last subrecords of the NAME record, so renaming should be fine.