GEDCOM 1 Lives! - Sat, 14 Jan 2017
I found out about this On December 29, when Martin Geldmacher of Germany requested a trial key for Behold on the Behold Download page. He wrote in the “Please let me know how you found out about Behold” box the following:
I am trying to find a way to read/convert an old Gedcom 1.0 file (created by FHS). A few hours of googling brought me to your blog posts about "prehistoric" gedcom files. While no support for 1.0 is promised, I still want to try it out if it can help me.
Well, that was definitely interesting to me. I’ve done my part in the past to resurrect ancient GEDCOMs. In August 2014, I found what I thought was the The World’s Oldest GEDCOM File? Tamura Jones confirmed for me that this was just a GEDCOM 2.0 file, and that there was still GEDCOM 1 before it. Tamura wrote an article about GEDCOM 1.0 and told that the he had a GEDCOM 1 file in his collection. It was a sample file that Phillip Brown created. Phillip Brown is the author of Family History System. He is the only programmer to have implemented the very first GEDCOM specs and an earlier version of his program, Family History System, is the only program known to have export GEDCOM 1. Later versions of FHS exported GEDCOM 2.0 and later.
I was a user of Family History System many years ago, first purchasing it in 1993. Like most genealogists, I never throw anything out, and I still had a hardcopy of the FHS user manual which had the GEDCOM 1 specs in it. I then wrote my article: From Ancient GEDCOM to Prehistoric GEDCOM, where I said:
Will I support GEDCOM 1.0 in Behold? Well I could. But I doubt if anyone has any files of that format lying around that they really need to extract the data from. Let me know if you do.
So I was very surprised by Martin’s claim of having a GEDCOM 1 file. I emailed Martin back and I said to him:
If you really have some GEDCOM 1.0 files, I’d love to see them. They are a rarity.
And if Behold doesn’t do work right for them, then I can get it to.
Martin wrote back and told me the unbelievable. He said the file was created by his father Joachim in the 1990’s. It contains about 10,000 people that included not only his family, but the whole small German town where they were from. That data was eventually compiled into a book that contains town history and genealogy information, and Martin’s ancestors go back to the year 1658. The GEDCOM file was dated 2015, which Martin believes was when it was copied from his father’s old DOS computer. Martin attached a copy of the file for me.
It took me about 10 days to implement GEDCOM 1 reading in Behold. On January 10, I quietly released version 1.2.2 of Behold. I went back to the stable version of 1.2.1 (rather than using the 1.3 development version I’m nearing completion on) and added GEDCOM 1 support to it.
GEDCOM 1 uses 2 letter tags that are not separated from their level number, e.g. “0HH” is the header record whereas “1 HEAD” is what that was changed to in GEDCOM. Handling this was relatively simple. I originally mapped the two letter tags to their 3 or 4 letter equivalent, but there were too many that didn’t match, so I changed that so Behold would recognize the tags directly, as I do for the GEDCOM 2.0 tags.
I was hoping the family structure would be similar to GEDCOM 2.0 which connected siblings youngest to oldest together rather than listing children of families as later GEDCOM does. Yes it did connect the siblings, but of course it had to be oldest to youngest. And it did so via each parent, so for any person, you have the father’s next child and the mother’s next child. You also have the children pointing to their father and mother. So I had to custom build the conversion of this to the CHIL/FAMC connections in use today. That will allow this information to be exported to GEDCOM 5.5.1 once I add GEDCOM export to Behold (coming next, after version 1.3 is released).
What actually caused me the most problem was that there were no BIRT, MARR, DIV or DEAT level 1 events. Instead there were BD (Birthdate), BP (Birthplace), MD, MP, etc. tags at level 1. They needed to be mapped to level 2 tags under their level 1 tag that I had to create. This was tricky as you have to wait to encounter the following tags before you create the earlier one. It is tough to do that efficiently in what is a sequential parser. But I found a solution that worked well enough.
So I was able to read this GEDCOM 1 input:
And display it in Behold like this:
The only new thing in Behold Version 1.2.2 is the ability to read GEDCOM 1 files. Unless your last name is Geldmacher, I doubt you’ll need to upgrade to this version.
I am amazed that the first non-example GEDCOM 1 file produced from a real genealogical research study is one so detailed and comprehensive. My congrats go to Martin’s father for such an effort. And I thank Martin for searching me out and allowing me to use his father’s file.
GEDCOM 1 Lives!
—
Note: Martin has given me permission to include his and his father’s name in this article. However, his GEDCOM 1 file has information about living people in it and I’ve promised him I wouldn’t share it.