Creating a GEDCOM file from your own application is fairly straightforward, reading a random ostensible GEDCOM file created by another application considerably less so.
If you're looking for information on GEDCOM parsers, you're perchance considering creating some genealogy application or utility, and that's probably a bad idea. You are more than likely wildly underestimating the feature set of a good genealogy application in general, and the complexity of quality GEDCOM parser in particular, as well as the limitations and outright sloppiness of the FamilySearch GEDCOM specification. Creating a GEDCOM file from your own application is fairly straightforward, reading a random ostensible GEDCOM file created by another application considerably less so.
The structure of GEDCOM files isn't particularly complex, but there are quite a few issues a GEDCOM reader must deal with. A good GEDCOM parser must support multiple character sets and encodings, and multiple calendars. A GEDCOM reader must support multiple ways of encoding the same citation, and multiple ways of dealing with FamilySearch GEDCOM limitations. It has to deal in a sensible way with a wide variety of GEDCOM dialects that feature anything from vendor-specific extensions, and vendor mistakes to complete and utter disregard for the GEDCOM specification, and from those real-world consideration follows the need to create an import log to inform users of any issues found during import.
Before creating your own application, consider some alternative approaches to fulfilling your need. There are literally hundreds of genealogy applications and utilities. Consider the reporting capabilities of existing applications; the application may not come with the report you want, but allow you to create that report.
Instead of starting from scratch, consider open source genealogy projects. There are plenty of open source genealogy projects to choose from, in a variety of programming languages. These projects already feature GEDCOM support. You can join one of these projects to either improve their GEDCOM reader or add the specific feature you want. You can also fork an existing project, to start with a complete working application that already features GEDCOM support, and then add and remove features as you see fit to create something new. Some of the best known and most popular open source genealogy applications are forks of older open source projects.
There not only are multiple open source genealogy applications, there also are multiple open source GEDCOM parsers.
These enable you to get started on your genealogy project, without immediately having to deal with the details of GEDCOM support.
Building applications using ready-made libraries and components is an accepted software development paradigm,
but however you develop your application, you remain responsible for the resulting product.
You can use third-party code, but you have to make sure it is up to snuff.
You have to evaluate the suitability of whatever you.
The GEDCOM projects listed below are open source projects. The development stage and quality of open source projects varies wildly, and anyone can improve any open source project at any time. In some cases I know about and point to projects using the code, but it is up to you to evaluate how well any of these projects currently serve your need. To help you get started, I present a starter list of evaluation criteria, to which you'll probably want to add several of your own.
This list following list of open source GEDCOM parsers gives an impression of what's out there.
I do not claim completeness. Open source genealogy applications, GEDCOM utilities and converters to and from GEDCOM have not been included.
The projects are presented alphabetically by programming language.
import and export filtersfor GEDCOM and GEDCOM XML. Multiple programming languages: C, Java, PHP, Perl, Python. BSD License.
Some of this code has been made possible through the generous contribution of Progeny Software Inc., so presumably based on Progeny's GEDCOM parser. No known public use. FamilySearch's own GEDCOM X project uses Dallan Quass' GEDCOM parser instead.
AS IS.
Louis Kessler provided another half dozen links. These have been added to the overview.
FamilySearch seems to have removed all GEDCOM materials from their site, see FamilySearch removes GEDCOM specifications.
The Java GEDCOM Parser has been removed too.
FamilySearch's Java GEDCOM Parser is not available on github,
and the original license clearly states that the license granted to use their sample code is nonexclusive, nontransferable, nonsublicenseable
.
Copyright © Tamura Jones. All Rights reserved.