XML GEDCOM Transformation mit XSLT und Perl

Hallo!

meine Erfahrungen zum Thema Transformation von GEDCOM
Daten in XML sowie die Rücktransformation in das GEDCOM Format habe
ich unter http://www.riemerundco.de/xml/gedcom.htm hinterlegt.
Außerdem sind frei nutzbare Perl-Scripte für eine Daten-Transformation
zum Download zur Verfügung gestellt.
Bzgl. Anmerkungen und Rückmeldungen bin ich immer interessiert ...

Grüße
Thorsten Riemer

Durchaus interessant, ein paar neue Dinge habe ich erfahren können.

Was ich nicht erfahren habe, ist der Nutzen der XML-Darstellung.

MfG, Metti.

Was ich nicht erfahren habe, ist der Nutzen der XML-Darstellung.

Am interessantesten ist der Einsatz wohl in einem Webserivce bei dem
xml-Dokumente übertragen werden.

Mit xml-Dokumenten läßt sich außerdem viel einfach arbeiten als mit
Gedcom-Dateien, die nur eine Spezialität von uns Genealogen sind. Mit einem
XSLT-Skript ist z.B. schnell eine Namensübersicht für eine Datensammlung
erstellt.

Jesper

- --
Jesper Zedlitz eMail : jesper@zedlitz.de
                  Homepage : http://www.zedlitz.de
                  ICQ# : 23890711

Tut mir leid, ich sehe den Vorteil nicht. Möglicherweile, weil ich mich bisher noch nicht um XML gekümmert habe.

In beiden Fällen liegen mir die Daten als Text vor.
Ich kann die Gedcomdatei genau so schnell nach dem Tag NAME durchsuchen lassen.

Einzig die Art und Weise der Darstellung könnte bei XML einfacher strukturiert sein, was ich aber nicht überprüft habe.

Ich möchte Dir keinen Vorwurf machen oder gar unterstellen, das Deine Arbeit überflüssig war (das kann ich ohnehin nicht beurteilen). Ich wollte lediglich feststellen, daß ich den Vorteil noch nicht erkannt habe. Wenn sich einer die Mühe macht mir das näher bringen zu wollen, bin ich gewillt etwas zu lernen :slight_smile:

MfG, Metti.

> Mit xml-Dokumenten läßt sich außerdem viel einfach arbeiten als mit
> Gedcom-Dateien, die nur eine Spezialität von uns Genealogen sind. Mit
> einem XSLT-Skript ist z.B. schnell eine Namensübersicht für eine
> Datensammlung erstellt.

Tut mir leid, ich sehe den Vorteil nicht. Möglicherweile, weil ich
mich bisher noch nicht um XML gekümmert habe.

In beiden Fällen liegen mir die Daten als Text vor.

Beide Formate sind die aufgeschriebene Form einer Baumstruktur. Wenn man das
so macht wie Thorsten, dann sehen die beiden Bäume sogar gleich aus. Der
Vorteil bei xml ist nun, daß es sehr viele Programme gibt, um durch diese
Baumstruktur durchzugehen. Auch läßt sich leicht prüfen, ob die Baumstruktur
ein erwartetes Aussehen hat (mit einem xml-Schema).

Ich kann die Gedcomdatei genau so schnell nach dem Tag NAME durchsuchen
lassen.

Eine einfache Namensliste war vielleicht ein schlechtes Beispiel, die kann man
ja einfach mit
  grep NAME family.ged
(und awk und sort damit es hübsch aussieht) erstellen. :wink:

Ein schwierigeres Beispiels (und es lassen sich leicht noch viel
kompliziertere finden):
Die Namen aller Leute einer Datensammlung, die in München geboren sind. Mit
xpath (der gängigsten "Suchsprache" für xml) recht einfach:
  //INDI[contains(BIRT/PLAC, 'München']/NAME
(mal wieder mit Thorstens xml-Darstellung)

Jesper

- --
Jesper Zedlitz eMail : jesper@zedlitz.de
                  Homepage : http://www.zedlitz.de
                  ICQ# : 23890711

...

Ich merke schon, da steckt mehr hinter, als es auf den ersten Blick aussieht.

Da ich aber spezielle Software für die Darstellung nutze ud diese einfach zu bedienene Funktionen bietet, reicht mir Gedcom noch aus. Sollte ich irgendwann dahinter kommen, daß XML für mich nützlich ist, nehme ich mich dessen gern an.

MfG, Metti.

Hallo Thorsten,

danke für diesen Beitrag, das war sehr interessant! Ich
warte ja eigentlich schon lange darauf, daß endlich eine
standardisierte XML-GedCom-Variante verabschiedet wird.
Die letzet GedXML-Spezifikation ist vom Dezember 2002,
anscheinend fehlt noch ein bißchen der Mut, eine endgültige
Spezifikation zu verabschieden.

Und zum Nutzen der XML-Darstellung: XML ist eigentlich eine
Strukturbezeichnung und wohl das Datenaustauschformat der
Zukunft. Hat man Daten im XML-Format, so kann man über
Transformationen die Daten in andere Formate konvertieren,
man kann z.B. das XML-File direkt in die HTML-Seite einbinden und
die enthaltenen Daten formatiert ausgeben, nahezu alle modernen
Datenbanken können das XML-Format direkt einlesen, Zeichensätze
sind wohldefiniert (was z.B. in der Ahnenforschung interessant ist:
ich kann alle tschechischen, griechischen, kyrillischen, usw.
Zeichen direkt und in genormter Form einbinden), ich habe automatische
Validierungsmöglichkeiten um die Konsistenz der Daten zu garantieren,
usw. usw.
Auch GedCom hat eine wohldefinierte Struktur, aber "normale" Standard-
software kann damit nichts anfangen. Es ist nunmal ein Spezialformat.
Durch den Übergang auf XML stehen uns mit einem Schlag sehr viele
Programme zur Weiterverarbeitung unserer Daten zur Verfügung, und das
mit einer aus heutiger Sicht guten Zukunftsperspektive. Man wird XML-
Dateien wahrscheinlich auch noch in 20 Jahren verwenden können, wenn
unsere heutigen Ahnenforschungsprogramme auf den Betriebssystemen der
Zukunft vielleicht nicht mehr laufen.

Die Möglichkeiten sind sehr mächtig und werden weiterentwickelt, nicht
zuletzt setzen alle großen Softwarefirmen auf XML.
Die weiteren Möglichkeiten durch Webservices (.NET, Java, ...) wurden
für die Ahnenforschung wohl noch nicht näher untersucht, könnten aber
zumindest die Computergenealogie revolutionieren. Das alles wird sehr
spannend werden.

An XML wird in Zukunft kein Weg vorbeiführen, und das ist gut so.

Herzliche Grüße

Erich Schadner

nahezu alle modernen
Datenbanken können das XML-Format direkt einlesen,

Das kann man bei Gedcom auch. Die Informationen stehen schließlich als Klartext in der Datei.

ich habe automatische Validierungsmöglichkeiten um die Konsistenz der Daten zu garantieren

Wie willst Du denn feststellen ob die Daten korrekt sind? Ob alle Daten vorhanden sind erkennst Du bei Gedcom am Ende-Tag (TRLR).

Auch GedCom hat eine wohldefinierte Struktur, aber "normale" Standard-
software kann damit nichts anfangen. Es ist nunmal ein Spezialformat.

Ja.

Durch den Übergang auf XML stehen uns mit einem Schlag sehr viele
Programme zur Weiterverarbeitung unserer Daten zur Verfügung

Warum?
Mit einer Textverarbeitung kann ich ebenfalls die Gedcomdateien bearbeiten.

Man wird XML-
Dateien wahrscheinlich auch noch in 20 Jahren verwenden können, wenn
unsere heutigen Ahnenforschungsprogramme auf den Betriebssystemen der
Zukunft vielleicht nicht mehr laufen.

Das kann ich von Gedcom ebenfalls behaupten.Wesentlicher ist die Frage, werde ich dann noch die CDs lesen können :slight_smile:

An XML wird in Zukunft kein Weg vorbeiführen, und das ist gut so.

Nur das Warum und welche Vorteile XML gegenüber Gedcom haben soll ist mir nicht klarer geworden.

Gedcom ist ein Klarschriftformat. Jeder Editor kann die Datei anzeigen und ich sehe welche Daten enthalten sind. Meinem Kenntnisstand nach ist das bei XML nicht anders.
Möglicherweise lassen sich die Tags besser zuordnen, das liegt aber nicht an XML sondern an der Art, wie bei Gedcom die Hirarchien dargestellt werden.

MfG, Metti.

Hallo Metti,

Das kann man bei Gedcom auch. Die Informationen stehen
schließlich als Klartext in der Datei.

wenn ich schreibe, die Datenbanken können XML einlesen, dann meine ich,
daß sie z.B. direkt aus den XML-Daten Tabellen anlegen können, wo
Vorname, Nachname, etc. bereits in den richtigen Spalten vorhanden sind.
Das hat nichts mit dem Klartextformat zu tun (das ist XML ja ohnehin auch),
sondern mit der Zuordnung zu den entsprechenden Strukturinformationen.

Klar kann man auch GedCom-Files einlesen, allerdings nur als eine große
flache Textdatei, nicht in Tabellenform (ohne spezielle Importfilter).

Wie willst Du denn feststellen ob die Daten korrekt sind? Ob
alle Daten vorhanden sind erkennst Du bei Gedcom am Ende-Tag (TRLR).

Zur Validierung:
Bei XML kann man eine sogenannte DTD (Document Type Definition) festlegen, wo
genau definiert ist, wie die Tags heißen, wie sie verschachtelt sind, welche
Werte sie annehmen dürfen (z.B. Geschlecht: nur "M" oder "F"), welche Felder
zwingend vorhanden sein müssen, usw. usw. Jeder XML-Parser kann nun sofort
feststellen, ob die XML-Datei formal korrekt ist, d.h. der DTD entspricht.
Das heißt natürlich nicht, daß der Inhalt korrekt ist (klar), das heißt nur,
daß die Form (d.h. die Struktur) korrekt ist.

Mit einer Textverarbeitung kann ich ebenfalls die
Gedcomdateien bearbeiten.

Ja, aber eben nur als "flache" Textdatei, nicht als Struktur.

Möglicherweise lassen sich die Tags besser zuordnen, das
liegt aber nicht an XML sondern an der Art, wie bei Gedcom
die Hirarchien dargestellt werden.

Ja, aber genau das ist der Punkt.

Nur das Warum und welche Vorteile XML gegenüber Gedcom haben
soll ist mir nicht klarer geworden.

Die Bedeutung von XML geht weit über die Frage GedCom vs. GedXML
hinaus, das hat mit Standardisierung, Internationalisierung, Konsistenz,
Interoperability usw. von Daten zu tun. Durch die Überführung in ein
XML-Format könnten wir uns ins gemachte Nest setzen und hätten
unzählige Vorteile zum Diskontpreis.
Mir ist klar, solange es keine Genealogieprogramme gibt, die (Ged)XML
importieren und exportieren können, hat der einzelne Ahnenforscher wenig
davon. Trotzdem sollten wir uns in diese Richtung bewegen.

MfG

Erich

wenn ich schreibe, die Datenbanken können XML einlesen, dann meine ich,
daß sie z.B. direkt aus den XML-Daten Tabellen anlegen können, wo
Vorname, Nachname, etc. bereits in den richtigen Spalten vorhanden sind.
Das hat nichts mit dem Klartextformat zu tun (das ist XML ja ohnehin auch),
sondern mit der Zuordnung zu den entsprechenden Strukturinformationen.

Aha, das ist ein Vorteil. Sehe ich ein.
Woran wird das erkannt?
Ich glaube, ich muß mir so eine XML-Datei mal näher ansehen.

Bei XML kann man eine sogenannte DTD (Document Type Definition) festlegen, wo
genau definiert ist, wie die Tags heißen, wie sie verschachtelt sind, welche
Werte sie annehmen dürfen (z.B. Geschlecht: nur "M" oder "F"), welche Felder
zwingend vorhanden sein müssen, usw. usw. Jeder XML-Parser kann nun sofort
feststellen, ob die XML-Datei formal korrekt ist, d.h. der DTD entspricht.

Da funktioniert dann der Import in eine Tabellenkalkulation noch?

Das heißt natürlich nicht, daß der Inhalt korrekt ist (klar), das heißt nur,
daß die Form (d.h. die Struktur) korrekt ist.

Anderes hätte ich nicht erwartet.

Möglicherweise lassen sich die Tags besser zuordnen, das liegt aber nicht an XML sondern an der Art, wie bei Gedcom die Hirarchien dargestellt werden.

Ja, aber genau das ist der Punkt.

Ja, das ist auch ein Grund, warum ich lieber XML als Gedcom nutzen würde (wobei ich bisher nur die Information hatte, daß das Format einfacher zu handhanben ist).

Die Bedeutung von XML geht weit über die Frage GedCom vs. GedXML
hinaus, das hat mit Standardisierung, Internationalisierung, Konsistenz,
Interoperability usw. von Daten zu tun. Durch die Überführung in ein
XML-Format könnten wir uns ins gemachte Nest setzen und hätten
unzählige Vorteile zum Diskontpreis.

Wobei man da sicher mehr von XML wissen müßte.

Mir ist klar, solange es keine Genealogieprogramme gibt, die (Ged)XML
importieren und exportieren können, hat der einzelne Ahnenforscher wenig
davon. Trotzdem sollten wir uns in diese Richtung bewegen.

Ich würde gern XML-Import unterstützen (die Gedcom 6.0 draft Definition liegt mir vor). Ich sehe aber die Notwendigkeit erst mal Gedcom 5.5 unterstützen zu müssen. Da führt derzeit noch kein Weg dran vorbei.

Wenn ich Gedcom-Import und -Export fertig habe, schaue ich mir sicher auch mal XML an.

Ich bedanke mich für Deine Geduld und die Mühe die Du Dir für mich gemacht hast.

MfG, Metti.