GEDCOM XML Darstellung  
     
  Was ist XML?

Inhaltsverzeichnis
Was ist GEDCOM?
Können GEDCOM-Daten in das XML-Format konvertiert werden?
Was ist Perl?
Gibt es noch weitere Formen der GEDCOM XML Darstellung?
Welche XML Darstellung ist besser oder schlechter geeignet?
Lassen sich GEDCOM V5.5 Daten in das GEDCOM XML V6.0 Format konvertieren?
Lassen sich die XML-Daten auch wieder in das GEDCOM V5.5 Standard-Format konvertieren?

 
     
  Was ist GEDCOM?
GEDCOM bedeutet "GEnealogical Data COMmunications" und ist ein Austauschformat zur Übertragung genealogischer Daten. Sehr viele Genealogie-Programme bieten die Übersetzung ihrer Daten in das und aus dem GEDCOM-Format an.

Die Entwicklung von GEDCOM begann ca. 1984, gefördert durch die Kirche Jesu Christi der Heiligen der Letzten Tage (Church of Jesus Christ of Latter-day Saints, "Mormonen").

GEDCOM organisiert Personen- und Familiendaten hierarchisch. Daten werden, ähnlich zu XML mit Feldbezeichnern (Schlüsselwörtern) gekennzeichnet, wobei zwischen Personendaten und Familiendaten Verweise bestehen.
Jedem Datenelement ist seine Ebenen-Nummer und seinen Feldbezeichner vorangestellt. Jedes Datenelement belegt eine eigene Zeile. Auf der obersten logischen Ebene (Ebene 0) beginnt jeweils ein neuer Satz (HEAD = Kopfsatz, INDI = Personensatz, FAMI = Familiensatz) und dahinter folgen auf den Ebenen 1 und 2 die Datenelemente dieses Satzes, bis der nächste Satz wieder mit Ebene 0 beginnt.

Dieses Beispiel zeigt einen GEDCOM Datensatz.

 
     
  Können GEDCOM-Daten in das XML-Format konvertiert werden?
Es ist möglich GEDCOM-Daten in das XML-Format zu konvertieren. Hierfür kann z.B. das Perl-Script gedcom2xml.pl (man lese "GEDCOM to XML", d.h.  GEDCOM  nach XML) verwendet werden. Dieses konvertiert die GEDCOM-Daten in die XML-Darstellung.

Dieser Link zeigt das Ergebnis zum oben genannten Perl-Script.

(Der Aufruf zum selbst probieren: perl gedcom2xml.pl gedcom55.ged > gedcom.xml hinterlegt das Ergebnis in gedcom.xml)

 

 
     
  Was ist Perl?
Perl ist eine Programmiersprache und steht für Pratical Extraction and Report Language. Die Sprache stammt aus der Unix-Welt und wurde 1987 in der ersten Version veröffentlicht. Einen wahren Boom erlebt die Sprache aber vor allem als Werkzeug der Programmierer im World Wide Web.
Die Verarbeitung von Textdateien ist eine Stärke von Perl. Deshalb ist Perl ideal für die Konvertierung individueller Formate in das XML-Format geeignet.
Zur Abarbeitung von Perl-Scripten ist ein Perl-Interpreter erforderlich, z.B. ActivePerl.
Mehr zu Perl kann man unter http://www.perl.com oder bei selfhtml erfahren.

 

 
     
  Gibt es noch weitere Formen der GEDCOM XML Darstellung?
Das GEDCOM XML-Format ist bisher nicht standardisiert. Die von mir oben gezeigt Konvertierung basiert auf dem GEDCOM Datenformat Version 5.5 (ich nenne sie deshalb GEDCOM XML V5.5).
The Church of Jesus Christ of Latter-day Saints hat im Dezember 2002 eine Beta-Spezifikation zu GEDCOM XML V6.0 herausgebracht. Dieses Dokument beschreibt, wie GEDCOM-Daten mit XML in einer Version 6.0 abgelegt werden könnten. Dieses XML-Schema ist aber nicht kompatibel zur GEDCOM Version 5.5. Zitat aus dem Dokument: "...
Traditional GEDCOM has evolved over 15 years. Technology, use, and understanding of genealogical data have changed in that time. The specification in this document is based on newer concepts. It is not upward compatible with traditional GEDCOM. It conveys largely the same content as traditional GEDCOM, but in a cleaner, less ambiguous, and more robust structure. Some of the content of traditional GEDCOM, which was marginal and seldom used, has been dropped. ..."

Ein weiteres Format, ist das von mir verwendete Format "@hne". Ein Perl-Script zur Konvertierung in das Format @hne zeigt dieser Link. Und hier das Ergebnis zur Umwandlung in das Format @hne. (Der Aufruf zum selbst probieren:
perl gedcom2ahne.pl gedcom55.ged > ahne.xml hinterlegt das Ergebnis in ahne.xml).

Und wer im Internet unter XML und GEDCOM sucht wird sicher noch weitere Formate finden. Eine weitere Perl-Umsetzung ist z.B. Gedcom 1.14 mit sehr ähnlicher XML-Darstellung zu dem von mir verwendeten Format GEDCOM XML V5.5.  Bei Gedcom 1.14 wird im Vergleich  zu meinem Beispiel Objektorientierte Perl-Programmierung angewendet.

 

 
     
  Welche XML Darstellung ist besser oder schlechter geeignet?
Jede XML-Darstellung hat ihre Berechtigung. Bei @hne wurde eine möglichst "flache" Struktur verwendet, d.h. @hne verwendet nur eine Ebene und enthält in den Daten keine Steuerzeichen. Dieses hat den Vorteil, dass die Daten leicht verarbeitet werden und z.B. auch in einer Tabelle dargestellt werden können (die XML-Tagnamen sind dann die Überschriften der Spalten). Dieses geht mit den GEDCOM-Daten nicht so einfach.
Bis auf die Verweise bei Vater und Mutter und bei Bildern konnte bei @hne auf Referenzen verzichtet werden. Dieses macht das XML-Dokument leichter lesbar.  Der Vorteil des GEDCOM-Formates ist sicherlich seine große Verbreitung.

 

 
     
  Lassen sich GEDCOM V5.5 Daten in das GEDCOM XML V6.0 Format konvertieren?
Nicht ohne Datenverluste und nur mit größerem Aufwand. Wie oben im englischen Text zu lesen, wurden die Daten neu strukturiert und teilweise sind Feldbezeichner weggefallen oder es sind neue hinzugekommen. Appendix A der Spezifikation GEDCOM XML V6.0 beschreibt wie man grob GEDCOM V5.5 Feldbezeichner auf GEDCOM XML V6.0 Feldbezeichner abbilden könnte.
Da die Spezifikation GEDCOM XML V6.0 eine Beta-Spezifikation ist, d.h. nicht endgültig freigegeben wurde und aus meiner Sichtweise das V6.0 Format keine Vorteile zum oben mittels Perl-Script erzeugten GEDCOM XML V5.5 Format bietet, bzw. bisher kaum Applikation auf der Version 6.0 aufsetzen, habe ich eine Konvertierung in GEDCOM XML V6.0 nicht weiter verfolgt.

 

 
     
  Lassen sich die XML-Daten auch wieder in das GEDCOM V5.5 Standard-Format konvertieren?
Hierzu steht ebenfalls ein Perl-Script zur Verfügung: ahne2gedcom.pl, dass XML-Daten aus dem Format @hne wieder in das GEDCOM V5.5 Format konvertiert.

(Der Aufruf zum selbst probieren: perl ahne2gedcom.pl ahne.xml > gedcom.ged hinterlegt das Ergebnis in gedcom.ged)

 

 
     
 
 
  Copyright © T. Riemer 2003-2004