Der GEDCOM-Standard

Die Abkürzung GEDCOM steht für den englischen Begriff genealogical data communications und stellt die Definition eines Datenaustauschformats dar, welches zwischen verschiedene Genealogieprogrammen verwendet werden kann.

GEDCOM stellt eine der ersten Definitionen dar, die eine Vereinheitlichung zum Austausch von genealogischen Daten ermöglichen sollte. Über die Jahre hinweg erheben sich dessen Definitionen mittlerweile zum Quasi-Standard, so dass man davon ausgehen sollte, das ein Genealogieprogrammen GEDCOM exportieren und auch wieder importieren kann. Daher wird auch gerne vom »GEDCOM-Standard« gesprochen!

Die Definition selber wurde von der Kirche Jesu Christi (Mormonen) entworfen und bis zur Version 5.5.1 weiter entwickelt. Dies ist bis zum heutigen Tage auch die aktuelle Version, wobei es noch einen Entwurf zu GEDCOM 6.0 gibt, der aber nicht mit den bisherigen Versionen kompatibel ist.

GEDCOM 5.5.1 ist eine einfache Textdatei mit einer bestimmter Definition; GEDCOM 6.0 baut auf XML auf und ist eine strukturierte Textdatei!

Es gibt Bestrebungen, den GEDCOM-Standard noch weiter zu vereinheitlichen und um weitere Angaben zu erweitern, da auch der heutige Standard leider noch nicht alles abdeckt und es diesbezüglich immer mal wieder zu Problemen beim Austausch zwischen Programmen kommen kann. Hier finden Sie Begriff wie GEDCOM X oder GEDCOM 5.5EL wieder.

Nachfolgend wollen wir den immer noch gültigen Standard GEDCOM 5.5.1 etwas näher erläutern und dessen Aufbau beschreiben. Eine ausführliche Darstellung ist dabei natürlich nicht wirklich möglich und würde auch den Rahmen dieses Artikel sprengen, für einen Einstieg sollte es aber reichen – und für tiefergehende Informationen finden Sie am Ende des Artikels noch entsprechende Verweise auf andere Informationsquellen.

Der Aufbau von GEDCOM

Datensätze

Eine GEDCOM-Datei ist in erster Linie eine normale Textdatei. Diese beinhaltet verschiedene Datensätze, die sequentiell ausgegeben werden, aber auch miteinander verknüpft sein können. Dabei entspricht ein Datensatz genau einer Textzeile mit bestimmter Lauflänge. Wobei die Länge aber durchaus variabel sein kann, jedoch nicht 255 Zeichen überschreiten darf.

Zumeist haben GEDCOM-Dateien die Datei-Endung ».ged«!

Die Zeile wiederum besteht immer aus einer Nummer, einem Kennzeichen und einem optionalen Wert. Als Kennzeichner für das Zeilenende fungiert der Wagenrücklauf oder Zeilenvorschub, und zusätzlich kommt als Trennzeichen immer das Leerzeichen zum Einsatz.

Nachfolgend die allgemeine Definition eines Datensatzes, mit der man schon sehr gut die Datensätze interpretieren kann. Natürlich gibt es noch weitere, optionale Bestandteile. Diese wollen wir aber hier einmal ignorieren:

Nummer + Begrenzer +  Kennzeichen + Begrenzer + Wert + Zeilenende

Und hier ein einfaches Beispiel für solch einen Datensatz:

1 NAME Max /Mustermann/¶

Die »Nummer« repräsentiert einer Ebene und rückt quasi die Zeile virtuell ein. Die eingerückte Zeile entspricht dann einem Detail, welches hierarchisch zu der darüber liegenden Zeile zugeordnet wird – damit kann die Einrückung auch immer nur um max. 1 erhöht werden.

Die Zeile darf laut GEDCOM-Standard nicht wirklich eingerückt werden und muss immer am Anfang der Zeile starten!

Erweitern wir das bisherige Beispiel jetzt um ein paar weitere Datensätze:

0 INDI¶
1 NAME Max /Mustermann/¶
1 BIRT ¶
2 DATE 12 MAY 1940¶
1 DEAT¶
2 DATE 23 DEC 2008¶

Die  oberste Ebene fängt grundsätzlich bei 0 an. Je höher die Ebene, umso tiefer ist die Einrückung zu interpretieren. Mittels der Hierarchie ist es jetzt möglich, das wir einer Zeile eine oder mehrere Unterzeilen zuordnen können und somit über die Ebene einen Kontext zwischen Zeile und Unterzeile herstellen können, d. h., wir verbinden Informationen, die sich auf die gleiche Sache beziehen.

Hier einmal ein »falsches« Beispiel mit Einrückung – am besten kurz Anschauen und gleich wieder vergessen!

0 INDI¶
   1 NAME Max /Mustermann/¶
   1 BIRT ¶
      2 DATE 12 MAY 1940¶
   1 DEAT¶
      2 DATE 23 DEC 2008¶

Das Kennzeichen (engl. tag) klassifiziert den nachfolgenden Wert zu einer ganz bestimmten Information. Es gibt dabei eine sehr große Liste an vordefinierten Kennzeichen, die normalerweise von den Programmen zu verwenden sind. Sie sind alle aus dem Englischen abgeleitet und können so einigermaßen gut bestimmt werden.

Für unser Beispiel gelten folgende Kennzeichen:

INDI = Individual = Person (Individuum)
NAME = Name = Name = Vorname /Nachname/
BIRT = Birth = Geburt
DATE = Date = Datum
DEAT = Death = Tod

Es können aber auch eigene Tags definiert werden und kann damit eigene Definitionen ins GEDCOM auslagern, wenn man das möchte. Diese können dann meistens nur vom eigenen, individuell angepassten Genealogieprogrammen wieder ausgelesen werden. Andere Programme haben zumeist Schwierigkeiten damit – daher sollte man eigentlich auch keine eigene Kennzeichen definieren.

Für den Wert wird jetzt ein beliebiger Text angegeben, der insgesamt mit den anderen Bestandteilen nicht mehr als 255 Zeichen pro Zeile lang sein darf. Für längere Texte kennt GEDCOM aber Mechanismen, um diese Einschränkungen zu handhaben.

Einer der wichtigen optionalen Bestandteil eines Datensatzes wollen wir uns aber noch genauer ansehen: Referenzen oder Querverweise. Diese erlauben nämlich, die GEDCOM-Datei im Aufbau recht einfach vorzuhalten und doch komplexe Struktur und Verbindungen abzubilden.

Über die Referenzen kann man verschiedene einzelne Datensätze miteinander verknüpfen und zuordnen. Diese können natürlich auch mehrfach vorhanden sein, denn es kann sich ja z. B. eine Person sowohl als Kind, als Partner oder Elternteil darstellen und man möchte diese Beziehungen dann ja auch entsprechend definieren können.

Exemplarisch in unserem Beispiel könnte dies vielleicht so aussehen:

0 @1234@ INDI¶
1 NAME Max /Mustermann/¶
1 BIRT ¶
2 DATE 12 MAY 1940¶
1 DEAT¶
2 DATE 23 DEC 2008¶

1 CHIL @1234@

Hier wird unsere Person »Max Mustermann« als Kind von einer anderen Person referenziert. Die Referenz wird dabei über den Wert @1234@ zu der Person gelegt, die als Ziel ebenfalls die ID @1234@ besitzt. Die ID muss eindeutig sein und darf nur einmalig in der GEDCOM-Datei vorkommen!

Die Grundstruktur einer GEDCOM-Datei

Die Datensätze werden jetzt nicht einfach nur wild durcheinander ausgegeben und ein anderes  Programm muss diese wieder zusammenbringen. Vielmehr besitzt jede GEDCOM-Datei eine Grundstruktur, die die Datensätze in verschiedene Bereiche unterteilt.

Die grobe Grundstruktur unterteilt sich zwingend in einen Dateikopf und einen Dateifuß. Beide umschließen dann eine beliebige Anzahl an Datensätze.

Beispiel:

<Dateikopf>
<Datensatz 1>

<Datensatz n>
<Dateifuß>

Im Kopf werden generelle Informationen zur GEDCOM-Datei ausgegeben, wie z. B. über die verwendete Software, Ausspieldatum, Sprache, Dateinamen, GEDCOM-Version usw. Ein ganz wichtiger Punkt, der auch immer wieder gerne zu Anfragen in diversen Foren führt, ist die Definition für den zu verwendenden Zeichensatz. Hierüber wird eingestellt, wie spezielle Sonderzeichen im Text gehandhabt werden und wie diese zu interpretieren sind. Wird dies hier nicht korrekt definiert, werden beim Import dieser Sonderzeichen zumeist falsch umgesetzt und im Programm fehlerhaft angezeigt.

Die deutschen Umlautet ä,ö und ü sind auch schon spezielle Sonderzeichen!

Der Dateifuß besteht selber nur aus einer Zeile und kennzeichnet quasi das Ende der Datei.                


0 TRLR

Um eine bessere Übersicht der Datensätze zu bekommen, werden diese noch in verschiedene Blöcke organisiert und untergliedert. Die Reihenfolge der Blöcke ist dabei nicht vorgegeben.

Beispiel:

<Dateikopf>
<Blockstart 1>
<Datensatz 1>

<Datensatz n>
<Blockende 1>

<Blockstart n>
<Datensatz 1>

<Datensatz n>
<Blockende n>
<Dateifuß>

Um eine Klassifikation bei den Blöcken zu bekommen, werden diese im GEDCOM-Standard ebenfalls definiert und benannt. Folgende Definitionen sind zu finden:

<FAM_RECORD> = Familien-Datensätze
<INDIVIDUAL_RECORD> = Personen-Datensätze
<MULTIMEDIA_RECORD> = Multimedia-Datensatz (Bilder, Video, Sound)
<NOTE_RECORD> = Notiz-Datensätze
<REPOSITORY_RECORD> = Fundstellen-Datensätze (Archiv, usw.)
<SOURCE_RECORD> = Quellen-Datensätze (Dokumente)
<SUBMITTER_RECORD> = Verfasser-Datensätze

Innerhalb der Blöcke gelten dann wieder die Regeln für die Datensätze.

Weiter Verweise zum Thema

Nachfolgenden finden Sie eine Liste von Verweisen auf andere Webseiten, die ich zum Thema »GEDCOM« gefunden habe und die vielleicht weiterhelfen können: