Ich habe in einer alten GEDCOM-Datei zu einem INDI eine 36-stellige _UID,
Diese besteht aus Ziffern und Buchstaben A-F, also vermutlich 16-Bit/Stelle.
Möglicherweise wurde diese in PhpGedView erstellt? (das ich früher verwendet habe)
Oder irgendwo anders bei einem Zwischenschritt beim Bearbeiten oder Kopieren.
Wie funktioniert das genau? Welcher Algorithmus steht dahinter?
Eine_UID soll ja nicht doppelt vergeben werden, also eine Universa-UID sein oder eine Global-UID…
Ist die _UID lebenslänglich fix? Einmal vergeben immer mit dem Datensatz verknüpft? auch beim Hin- und Herkopieren und Bearbeiten zwischen unterschiedlichen Programmen?
Oder ist die _UID nur innerhalb einer Datei „eineindeutig“?
Und wenn ein Datensatz gelöscht wird, wird dann die _UID in irgend einem zentralen Server als „verbraucht“ markiert, damit sie nicht ein zweites Mal verwendet werden kann?
Ist die _UID ein Hash-Wert des Datensatzes?
Dann müsste sie sich ja ändern, wenn der Dateninhalt ergänzt oder geändert wird?
Oder ist sie unabhängig vom Inhalt? inkrementell? oder ein Hash von Hardware-Daten plus DatZeit?
und kann auch einem anderen Inhalt zugeordnet weden?
Dann wäre sie vermutlich wenig sinnvoll?
die Arbeitsgruppe „GEDCOM-L“ (vom Compgen initialisiert, stimmberechtigt sind Autoren von Genealogieprogrammen) hat sich ausführlich mit den UUID beschäftig und dazu den GEDCOM Standard 5.5.1 ergänzende Vereinbarungen getroffen. Mehr dazu findet Ihr im GenWiki: https://wiki.genealogy.net/GEDCOM/UID-Tag
Wir haben dazu als Kennzeichen _UID gewählt. Der Unterstrich war in 5.5.1 zwingend, da es sich um ein „Nutzerdefiniertes“ Kennzeichen - welches also nicht im Standard selbst definiert ist - handelt.
Inzwischen hat der GEDCOM Standard 7.0 die Version 5.5.1 als neueste Version abgelöst. Hier sind nun eine Reihe von Vorarbeiten unserer deutschen Arbeitsgruppe eingeflossen. Die Kennzeichnung von Datensätzen mit UID ist jetzt offizieller Teil des GEDCOM Standards, dazu wurde passenderweise das Kennzeichen UID gewählt. Der Standard ist hier zu finden: https://gedcom.io/specifications/FamilySearchGEDCOMv7.pdf . Das Kennzeichen UID ist dort auf der Seite 95 definiert.
Beide Dokumente erklären, wie es zu den 36 Zeichen der UID und damit zu 4 Stellen mehr als bei einer UUID mit ihren 32 Zeichen kam: Die ersten Programme, die solche Kennzeichen einsetzten, haben eine Prüfsumme in der Länge von 4 Zeichen angehängt, um gegen mutwillige Änderungen der UID besser geschützt zu sein. Das ist heute nicht mehr empfohlen, da auch die Prüfsumme nach einem bekannten Algorithmus ermittelt wird.
Wichtig ist die Grundregel, dass UID durch Programme nicht verändert werden sollen - denn dann verlieren sie ihre Hauptfunktion: Nämlich die spätere Wiedererkennung, dass ein Datensatz den gleichen Ursprung hat wie ein anderer Datensatz mit der gleichen UID.
Albert (Emmerich)
Admin in der GEDCOM-L Gruppe und Mitarbeiter im Steuerungsteam bei FamilySearch für die Weiterentwicklung des GEDCOM Standards
Herzlichen Dank für Deine ausführliche Erklärung und die ebensolchen Links
(Dank auch an Peter und Flo)
Ich gehe mal davon aus, dass Deine Hinweise „international“ nicht nur wertgeschätzt, sondern anerkannt sind (also nicht mehr im Stadium „na ja die Deutschen mit ihren Ideen“ stark umstritten sind).
Dann wäre es hilfreich, im Wiki überall prominent folgende Hinweise zu finden:
Seit <datum> gilt GEDCOM Standard 7.0 <link zu einen deutschsprachigen Version> (mein Englisch reicht da nicht)
Diese Genealogieprogramme beherrschen den neuen Standard <link zu einer kommentierten Liste>
Aus gegebenem Anlass:
(ich muss alte Dateien aus PhpGedView transformieren für Webtrees)
Ich vermute, Webtrees arbeitet mit GEDCOM-7 ?
Wie transformiere ich die alten GEDCOM-5.5.1 Dateien in GEDCOM-7 ?
Nicht ganz verstanden habe in der Doku zu _UID, ob nun die „alte“ (vermutlich aus PGV und 5.5.1) mit 36 Stellen (also incl. Prüfsumme) genau so übernommen werden soll? oder ob man die Prüfsumme weglassen soll? oder ob man die _UID für GEDCOM-7 neu berechnet werden soll und falls ja. wie?
(die Doku spricht von „2. Abstimmrunde (2019)“ - aber nicht, was in den letzten vier Jahren beschlossen wurde)
Vorschlag: erst einmal die alten GEDCOM Dateien auf ein möglichst sauberes 5.5.1 bringen und dann ggf. später auf 7.0. Es gibt da bereits mindestens ein Konvertierprogramm.
Damit die UID funktioniert, sollte man sie überhaupt nicht ändern, also den Wert lassen wie er ist. Ändern kann man beim Wechsel zu 7.0 das Kennzeichen: von _UID zu UID.
Gibt es das auch irgendwo in deutsch? (damit nicht jeder „Deepl“ nutzen muss und dann doch nicht sicher ist, ob das Ergebnis mit demjenigen von den deutschen Autoren beabsichtigten übereinstimmt?
der Entwickler von Familienbande einen auch kostenlosen Validator namens ShowMeGedcom geschrieben. Den verlinke ich hier mal nicht, sonst meckert wieder einer wegen unerlaubter Werbung …
Tja, wie man es macht ist es grundsätzlich falsch hier in den Mailinglisten. Postet man solche Sachen machen einen manche Mitleser nieder (wie grade in einer anderen Mailingliste ausführlich geschehen). Postet man es nicht wird man auch mit Ausrufezeichen zurecht gewiesen. Manchmal macht es keinen Spaß mehr hier mitzumachen.
Um wieder auf die Validierungsfrage zurück zu kommen:
Das Validierungs-Tool von Metti findet man auf Familienbande unter Tools:,
incl. ausführilichem deutschsprachigen Handbuch, incl. HowTo zu „RegEx“.
Damit kann man Dateien gut auf Fehler prüfen und gefundene Fehler systematisch korrigieren.
Was mache ich aber wenn ich mehrer Dateien habe mit weitgehend ähnlichem Inhalt? Beispielsweise a) mit 1600 INDI ond 510 FAM und b) mit 1620 INDI und 508 FAM?
Da wäre ein Prog hilfreich, das zum Vergleichen zwei Dateien nebeneinande anzeigt und fehlende und zusätzliche und verschiedene Zeilen farblich markiert. Dann könnte man herausfinden, welche Personen bzw Familien fehlen und wo zu einem Objekt unterschiedliche Daten vorliegen.
Kann das nicht Gedtool?
Laut Beschreibung (GedTool – GenWiki):
Vergleichen / Abgleichen / Zusammenführen
In GedTool können parallel zwei unterschiedliche GEDCOM-Dateien
eingelesen werden. Mit entsprechenden Funktionen lassen sich diese
inhaltlich vergleichen, abgleichen (Übernahme ergänzender Daten) oder
zusammenführen. Darüber hinaus lassen sich durch eine globale Suchen-
und Ersetzen-Funktion beliebige Daten ersetzen. Ein mögliches
Anwendungsfeld wäre zum Beispiel die Datensatz übergreifende
Harmonisierung aller Ortsangaben (PLAC) in einer GEDCOM-Datei.