GEDCOM - unsere Programme und das Ziel

Für alle, denen mein Name nicht sofort bekannt vorkommt (ich schreibe hier nicht oft): Ich bin Autor des Programms Ages!.

Nachdem ich einen Teil der Debatte (ich lese ab und an Gen-Programme mit) verfolgt habe, möchte ich einmal etwas eigenen "Senf" dazu loswerden.

Beispiel aus der Zeit der "guten alten Währung", der DM:
-------------------------------------------------------
Wenn man damals 100 DM der Reihe nach in englische Pfund,
dänische Kronen, östereichische Schilling u.s.w. umgetauscht
hätte und nach diesem Durchlauf über die 16 verschiedenen
Länder und Währungen Europas dann wieder in "gute" DM
eingetauscht hätte, dann wären vermutlich bei jedem Tausch
Einbußen zu verzeichnen gewesen - ob wohl noch 50 DM übrig wären?

Unser Ziel um die Kompatibilität der Programme bezüglich GEDCOM:
----------------------------------------------------------------
Wenn wir ein- und denselben Datenbestand der Reihe nach über
alle Genealogie-Programme exportieren, importiern, exportieren,
importieren, exportieren, usw.....,

dann MUSS gewährleistet sein, dass *nach* diesem Duchlauf
im *ersten* Programm alles wieder so dargestellt/abgebildet wird,
wie es urspünglich im ERST-Export dieses verlassen hat.

Der Vergleich mit dem Geldwechsel ist nicht so weit hergeholt wie er zunächst scheint. Problem dabei: Wenn in der Geldwechsel in fünfzehn der sechzehn Umtauschstellen kostenlos wäre, und nur ein einziges Mal Geld für den Umtausch verlangt wird, bleiben nur noch 95 DM nach. Wenn die Programmkompatibilität an einem solchen "Umlauf" getestet werden sollte, könnten nur entweder *alle* Programme diesen bestehen, oder per Definitionem keines. Als Testkriterium ist das nicht praktikabel.

Zudem ist die Komplexität des GEDCOM-Transfers nicht zu unterschätzen. Es gibt gleich eine ganze Reihe von Problembereichen, die dabei eine Rolle spielen. In vielen Bereichen liegt es an den Programmierern, die Barrieren auszuräumen, aber längst nicht in allen. Zumindest ein Bereich bleibt quasi unlösbar übrig, weshalb ich darauf hier näher eingehen möchte:

** Unterschiede der Datenmodelle in verschiedenen Programmen. **

Als relativ einfaches Beispiel hierfür können die Taufpaten dienen. Einige Programme verwalten diese gar nicht, andere haben ein Textfeld, wiederum andere verknüpfen die Taufpaten mit Personendatensätzen. Selbst mit optimalen Im- und Exportroutinen auf beiden Seiten entsteht foglendes Dilemma:

Programm A hat einen Datenbestand mit zwei Personen. Klaus Meier *1960 (Datensatz 1) und dessen Taufpaten Kurt Schmitt *1935 (Datensatz 2). Diese Informationen werden als GEDCOM exportiert.

Programm B liest diese Daten ein, hat aber ein Textfeld für den Taufpaten, statt eines Verweises. Idealerweise erkennt dies Programm den Paten in der Datei, und hat nun: Klaus Meier *1960 (Datensatz 1), und die Information "Kurt Schmitt" im Textfeld für Taufpaten. Wenn zu Kurt Schmitt sonst nichts bekannt ist, könnte das Programm dessen Datensatz verwerfen, in unserem Beispiel ist jedoch das Geburtsdatum vorhanden, weshalb der Datensatz erhalten bleiben muss: Kurt Schmitt *1935 (Datensatz 2)Import erfolgreich. Für den Anwender sieht alles Optimal aus - tatsächlich ist aber eine Information verloren gegangen. Wirklich bemerken wird der Anwender dies jedoch erst später. Jetzt werden diese Daten wiederum als GEDCOM exportiert.

Programm A liest die Daten wieder ein. Es wird zwei Personen vorfinden: Klaus Meier *1960 und Kurt Schmitt *1935. Zudem erkennt es den Taufpateneintrag "Kurt Schmitt", und benötigt jetzt (da es Taufpaten als Verweise verwaltet) diesen wiederum als Datensatz. Damit wären es jetzt 3 Personen - denn woher soll Programm A jetzt wissen, dass dieser Kurt Schmitt identisch ist mit dem aus Datensatz 2? Alternativ kann die Information "Klaus Meier hat einen Taufpaten namens Kurt Schmitt" als "Notiz" weitergeführt werden.

Egal was Programm A hier tut, es kann den Verlust von Information beim Import in Programm B nicht wettmachen. Das gleiche kommt im Übrigen auch dabei heraus, wenn man bei diesem Szenario bei Programm B beginnt.

Ich bitte zu bemerken, dass dies als Beispiel dienen soll. Es ist keine Beteuerung, dass die Verwaltung von Paten als Personenverweis "richtiger" wäre, als die per Textfeld. Entscheidend ist, dass Programm A eine Information hat, die Programm B nicht verwalten kann: Dass "Kurt Schmitt", der Taufpate von Klaus Meier, und die Person "Kurt Schmitt" (Datensatz 2) ein und die selbe Person sind.

** Fazit **

Es ist richtig, dass viele Programme GEDCOM-Dateien produzieren, die nicht so dicht am Standard sind, wie sie sein könnten - Ages! ist hiervon nicht ausgennommen. Es wäre sinnvoll, deren Hersteller auf die Mängel hinzuweisen. Programmhersteller, die etwas auf sich halten werden ihr Produkt verbessern wollen.

Es ist ebenfalls richtig, dass viele Programme beim Import von GEDCOM-Dateien nicht so flexibel sind, wie sie sein könnten - auch hiervon ist Ages! nicht ausgennommen. Auch da ist es sinnvoll, die Programmhersteller auf Mängel hinzuweisen.

Hingegen ist es falsch, davon auszugehen, dass man Forschungsdaten nach dem "Stille-Post-Prinzip" zwischen den Anwendungen hin- und hertauschen könnte, ohne dabei Daten zu verlieren. Selbst bei idealen Bedingungen und optimaler Kooperation der Programmhersteller ist dies zum Scheitern verurteilt. Dies trotzdem zu von den Programmherstellern zu fordern führt zu: nichts.

Für viele Ahnenforscher hat sich folgende Lösung als gangbar erwiesen: Man wählt *ein* Programm, in dem man die Daten pflegt. Beliebig viele weitere Programme importieren dann den aktuellen Datenbestand, um diesen weiterzuverarbeiten - sei es in Form von Listen, Diagrammen, Webseiten, oder Statistik. Bei diesem Szenario gibt es natürlich nach wie vor Importverluste. Da der Import aber immer in der gleichen Richtung erfolgt (Export aus Hauptprogramm, Import im Zweitprogramm, aber *nicht* Re-export und Re-import) schreitet der Verlust nicht fort.

Mit freundlichem Gruß

Jörn Daub

P.S. Für die Mathematiker under den Lesern: Im- und Exportfunktionen von Programmen können als Abbildungen verstanden werden. Die dazugehörige Abbildungsmatrix ist nicht in jedem Falle invertierbar. q.e.d.

P.P.S. Für die Grafiker unter den Lesern: Wer eine JPG Datei öffnet, speichert, und wieder öffnet, und wieder speichert, und sich dann wundert, dass das Bild fürchterlich aussieht, hat nicht verstanden, was eine JPG Datei ist. Okay, der Vergleich hinkt.

support@daubnet.com wrote:

Als relativ einfaches Beispiel hierfür können die Taufpaten dienen.

Schönes Beispiel.
Wird GODP dafür benutzt?
Das wäre nach Gedcom 5.5 schon mal nicht zulässig, findet man aber recht häufig :slight_smile:

"The following tags are no longer used in the Lineage-Linked Form:
ARVL, BROT, BUYR, CEME, CNTC, CPLR, DEFM, DPRT, EDTR, FIDE, FILM, GODP, ..."

Ich habe jetzt nicht nachgesehen. Gibt es Ersatz?

Hingegen ist es falsch, davon auszugehen, dass man Forschungsdaten nach dem "Stille-Post-Prinzip" zwischen den Anwendungen hin- und hertauschen könnte, ohne dabei Daten zu verlieren. Selbst bei idealen Bedingungen und optimaler Kooperation der Programmhersteller ist dies zum Scheitern verurteilt. Dies trotzdem zu von den Programmherstellern zu fordern führt zu: nichts.

Dem kann ich nur zustimmen.

MfG, Metti.

Hallo,

k�nnten nur entweder *alle* Programme diesen bestehen, oder
per Definitionem keines. Als Testkriterium ist das nicht praktikabel.

Solche Feinheiten sind was f�r die Phase der Umsetzung. Wir
schreiben hier in einer Gruppe, wo nicht nur Fachleute sind, da
dr�cke ich schon mal gerne ein Auge zu, wenn denn die Idee
dahinter nicht g�nzlich verkehrt ist. :slight_smile:

** Unterschiede der Datenmodelle in verschiedenen Programmen. **
Als relativ einfaches Beispiel hierf�r k�nnen die Taufpaten dienen.

Oder aber, weil noch viel aktueller, die Darstellung von Objekten,
sprich Bilder und andere Multimediadateien. Da macht sogar PAF
schlapp. Zur Verdeutlichung:

Es ist m�glich, ein Objekt direkt als Bestandteil der Person zu
exportieren. Siehe hier:

0 @I1@ INDI
[...]
1 OBJE
2 FORM jpg
2 FILE 0.jpg
2 TITL Testbild
2 NOTE Beschreibung des Testbildes
[...]

Es ist aber genauso m�glich, eine Verlinkung auf so ein Objekt einzuf�gen,
siehe hier:

0 @I1@ INDI
[...]
1 OBJE @O1@
[...]
0 @O1@ OBJE
1 FORM jpg
1 TITL Testbild
1 NOTE Beschreibung des Testbildes
1 FILE 0.jpg
[...]

Das hei�t, alle Programm m�ssen mit der alternativen Schreibweise
zurechtkommen, sonst gehen Daten verloren bzw. werden falsch
angezeigt. Ein wahrlich unglaubliches Unterfangen, weil man kaum
alle F�lle ber�cksichtigen kann.

Als L�sung habe ich in meinem Programm alle Daten, die ich nicht
anzeigen bzw. zum �ndern bereitstellen kann, so vorgehalten, dass
diese bei einem Export zu 100% wieder hergestellt werden. Nur
so, f�r alle die hier behaupten, das ginge �berhaupt gar nicht. Es
geht n�mlich doch, zumindest wenn man die Daten nicht
verfremdet! :o)

Egal was Programm A hier tut, es kann den Verlust von Information
beim Import in Programm B nicht wettmachen. Das gleiche kommt
im �brigen auch dabei heraus, wenn man bei diesem Szenario bei
Programm B beginnt.

Ja, es ist ein Drama. Sobald man Informationen transformiert, kann
es sehr gut passieren, dass auch Informationen verloren gehen oder
verf�lscht werden. Wie z.B. bei PAF, das ja keine verlinkten Objekte
importieren kann.

** Fazit **
Es ist richtig, dass viele Programme GEDCOM-Dateien produzieren,
die nicht so dicht am Standard sind, wie sie sein k�nnten - Ages! ist
hiervon nicht ausgennommen.

Werter Herr Daub, bitte stellen Sie Ihr Licht nicht so sehr unter dem
Scheffel! Ihr Ouput ist einer der besten und ich freue mich immer,
wenn einer meiner Kunden mir eine Datei sendet, die mit Ihrem
Programm erstellt wurde. Der Import zu GHome klappt praktisch
immer! :O)

( Der Export zu Ages! aber auch. *l�chel )

Es w�re sinnvoll, deren Hersteller auf die M�ngel hinzuweisen.
Programmhersteller, die etwas auf sich halten werden ihr Produkt
verbessern wollen.

Meine Worte!

Hingegen ist es falsch, davon auszugehen, dass man Forschungsdaten
nach dem "Stille-Post-Prinzip" zwischen den Anwendungen hin- und
hertauschen k�nnte, ohne dabei Daten zu verlieren.

Es w�re m�glich, wenn alle Programme die gleiche Funktionalit�t
h�tten. Haben sie aber nicht, darum immer diese Probleme. Wie
eben mit den Taufpaten. Wenn *jedes* Programm die entweder
als Textfeld *oder* aber als Verlinkung realisiert h�tte, dann
g�be es auch keine Probleme. Nun gibt es welche, die es gar
nicht k�nnen (Der Fall, in dem auch keine Daten verloren gehen
m�ssen, weil man den Satz unver�ndert zur�ck schreiben k�nnte.),
die nur Textfelder haben und welche, die nur verlinkte Personen
haben. Das f�hrt - wie schon aufgef�hrt - zu unl�sbaren Problemen.

Dies trotzdem zu von den
Programmherstellern zu fordern f�hrt zu: nichts.

Es f�hrt schon zu etwas, n�mlich zu einem gewissen Unmut der
Entwickler. ;o)

F�r viele Ahnenforscher hat sich folgende L�sung als gangbar
erwiesen: Man w�hlt *ein* Programm, in dem man die Daten pflegt.
[...]
(Export aus Hauptprogramm, Import im Zweitprogramm, aber
*nicht* Re-export und Re-import) schreitet der Verlust nicht fort.

Genau so!

Sch�nen Gru�

Michael (Suhr)

Michael Suhr wrote:

0 @I1@ INDI
[...]
1 OBJE
2 FORM jpg
2 FILE 0.jpg
2 TITL Testbild
2 NOTE Beschreibung des Testbildes
[...]

Es ist aber genauso möglich, eine Verlinkung auf so ein Objekt einzufügen,
siehe hier:

0 @I1@ INDI
[...]
1 OBJE @O1@
[...]
0 @O1@ OBJE
1 FORM jpg
1 TITL Testbild
1 NOTE Beschreibung des Testbildes
1 FILE 0.jpg
[...]

Das heißt, alle Programm müssen mit der alternativen Schreibweise
zurechtkommen, sonst gehen Daten verloren bzw. werden falsch
angezeigt. Ein wahrlich unglaubliches Unterfangen, weil man kaum
alle Fälle berücksichtigen kann.

Du kannst die Bilder auch als BLOB (BLOB {BINARY_OBJECT}:= A grouping of data used as input to a multimedia system that processes binary data to represent images, sound, and video.) in die Gedcomdatei einbetten. Allerdings habe ich bisher nur eine Gedcomdatei mit BLOB erhalten und das war eine Testdatei, die alle Möglichkeiten von Gedcom nutzt.

Welches Programm kann den BLOB importieren? Oder Exportieren?
Ich persönlich fände das die beste Lösung, dann wären die Bilder immer dabei und der Anwender muss nicht noch Dateien kopieren.

Als Lösung habe ich in meinem Programm alle Daten, die ich nicht
anzeigen bzw. zum Ändern bereitstellen kann, so vorgehalten, dass
diese bei einem Export zu 100% wieder hergestellt werden. Nur
so, für alle die hier behaupten, das ginge überhaupt gar nicht. Es
geht nämlich doch, zumindest wenn man die Daten nicht
verfremdet! :o)

Wie gehst Du da mit den Verweisen um? Nimmst Du in Kauf, dass die dann möglicherweise ins Nirvana oder auf etwas völlig falsches verweisen?

Es wäre möglich, wenn alle Programme die gleiche Funktionalität
hätten. Haben sie aber nicht, darum immer diese Probleme.

Das müssen jetzt nur noch die Anwender verstehen.

Nun gibt es welche, die es gar
nicht können (Der Fall, in dem auch keine Daten verloren gehen
müssen, weil man den Satz unverändert zurück schreiben könnte.),

Außer sie produzieren dadurch fehlerhate Verweise...

MfG, Metti.

Michael Suhr schrieb, Am 29.11.2009 11:18:

Oder aber, weil noch viel aktueller, die Darstellung von Objekten,
sprich Bilder und andere Multimediadateien. Da macht sogar PAF
schlapp. Zur Verdeutlichung:

Es ist m�glich, ein Objekt direkt als Bestandteil der Person zu
exportieren. Siehe hier:

0 @I1@ INDI
[...]
1 OBJE
2 FORM jpg
2 FILE 0.jpg
2 TITL Testbild
2 NOTE Beschreibung des Testbildes
[...]

Es ist aber genauso m�glich, eine Verlinkung auf so ein Objekt einzuf�gen,
siehe hier:

0 @I1@ INDI
[...]
1 OBJE @O1@
[...]
0 @O1@ OBJE
1 FORM jpg
1 TITL Testbild
1 NOTE Beschreibung des Testbildes
1 FILE 0.jpg
[...]

Das hei�t, alle Programm m�ssen mit der alternativen Schreibweise
zurechtkommen, sonst gehen Daten verloren bzw. werden falsch
angezeigt. Ein wahrlich unglaubliches Unterfangen, weil man kaum
alle F�lle ber�cksichtigen kann.

Gleiches gilt u.a. auch f�r NOTE, SOUR und REPO (_LOC sollte auch nicht vergessen werden).
Wenn diese untereinander auch noch verlinkt werden, wird es besonders interessant.

herzliche Gr��e
Diedrich (Hesmer)

Stefan Mettenbrink schrieb:

Du kannst die Bilder auch als BLOB (BLOB {BINARY_OBJECT}:= A grouping of data used as input to a multimedia system that processes binary data to represent images, sound, and video.) in die Gedcomdatei einbetten. Allerdings habe ich bisher nur eine Gedcomdatei mit BLOB erhalten und das war eine Testdatei, die alle M�glichkeiten von Gedcom nutzt.

Welches Programm kann den BLOB importieren? Oder Exportieren?
Ich pers�nlich f�nde das die beste L�sung, dann w�ren die Bilder immer dabei und der Anwender muss nicht noch Dateien kopieren.

... und da haben wir wieder das Problem: BLOBs werden seit 5.5.1 nicht mehr unterst�tzt ... Hei�t: Ein Programm nach 5.5.1-Standard kann damit offiziell nichts mehr mit anfangen. Genau so, wie es fr�her mal erlaubte Paten (GODP) nicht mehr kennen darf. Und noch ein paar weitere.

Mit freundlichen Gr��en

Jan Escholt

Das stimmt nicht, wenn wir uns �ber 5.5.1 unterhalten. Im Abschnitt "Modifications in Version 5.5.1" Seite 6 findest Du:
! Removed the option for encoding embedded multimedia objects
...
! The following tag was removed:
BLOB

Viele Gr��e,
Veit

Jan Escholt wrote:

Welches Programm kann den BLOB importieren? Oder Exportieren?
Ich persönlich fände das die beste Lösung, dann wären die Bilder immer
dabei und der Anwender muss nicht noch Dateien kopieren.

... und da haben wir wieder das Problem: BLOBs werden seit 5.5.1 nicht mehr unterstützt ...

Ab, nicht seit!
Gedcom 5.5.1 liegt derzeit nur als Entwurf vor. Es gilt weiterhin derzeit Gedcom 5.5 als aktueller Standard.

Heißt: Ein Programm nach 5.5.1-Standard kann damit offiziell nichts mehr mit anfangen. Genau so, wie es früher mal erlaubte Paten (GODP) nicht mehr kennen darf. Und noch ein paar weitere.

Hab' ich etwas verpasst? Seit wann ist Gedcom 5.5.2 verabschiedet?

MfG, Metti.

Stefan Mettenbrink schrieb:

Jan Escholt wrote:

... und da haben wir wieder das Problem: BLOBs werden seit 5.5.1 nicht mehr unterst�tzt ...

Ab, nicht seit!
Gedcom 5.5.1 liegt derzeit nur als Entwurf vor. Es gilt weiterhin derzeit Gedcom 5.5 als aktueller Standard.

Was machen wir denn dann mit all den Programmen, die in 5.5.1 neu hinzugekommene TAGs benutzen? Sind die dann ung�ltig? Au�erdem meinte ich "seit" in dem Sinne von "einschlie�lich". Das ist doch Wortklauberei, denn etwas sp�teres als 5.5.1 gibt es nicht. Au�er man geh�rt zu den wenigen Programmierern, die die Version 6 als XML umgesetzt haben.

Hei�t: Ein Programm nach 5.5.1-Standard kann damit offiziell nichts mehr mit anfangen. Genau so, wie es fr�her mal erlaubte Paten (GODP) nicht mehr kennen darf. Und noch ein paar weitere.

Hab' ich etwas verpasst? Seit wann ist Gedcom 5.5.2 verabschiedet?

Welche 5.5.2 denn? Ich hab da nichts von gesagt.

Mit freundlichen Gr��en

Jan Escholt

Veit Olschinski wrote:

Welches Programm kann den BLOB importieren? Oder Exportieren?
Ich persönlich fände das die beste Lösung, dann wären die Bilder immer
dabei und der Anwender muss nicht noch Dateien kopieren.

Das stimmt nicht, wenn wir uns über 5.5.1 unterhalten.

Welches ist denn der aktuell verabschiedete Standard von Gedcom?
Soweit mir bekannt, liegt Gedcom 5.5.1 bisher nur als Entwurf vor. Bitte korrigiert mich, wenn ich irre (dann bitte mit Link auf die Definition, sie liegt mir nicht vor)

MfG, Metti.

Jan Escholt wrote:

Ab, nicht seit!
Gedcom 5.5.1 liegt derzeit nur als Entwurf vor. Es gilt weiterhin
derzeit Gedcom 5.5 als aktueller Standard.

Was machen wir denn dann mit all den Programmen, die in 5.5.1 neu hinzugekommene TAGs benutzen? Sind die dann ungültig? Außerdem meinte ich "seit" in dem Sinne von "einschließlich". Das ist doch Wortklauberei, denn etwas späteres als 5.5.1 gibt es nicht. Außer man gehört zu den wenigen Programmierern, die die Version 6 als XML umgesetzt haben.

Genau das ist doch aber unser Problem. Alle reden von Gedcom und keiner von der Version. Aus meiner Sicht kann die Basis kein Entwurf sein. Sonst müssen wir uns auch noch darauf einigen, welchen Entwurf wir nehmen. Was ist mit Gedcom EL?

Wenn ich von Gedcom rede, meine ich den aktuell verabschiedeten Standard 5.5, wenn ich etwas anderes meine, schreibe ich es explizit dazu.

Hab' ich etwas verpasst? Seit wann ist Gedcom 5.5.2 verabschiedet?

Welche 5.5.2 denn? Ich hab da nichts von gesagt.

Sorry, vertippt. Sollte 5.5.1. heißen.

MfG, Metti.