GEDCOM: UIDs außerhalb der eigenen Datei

Hallo, GEDCOM 7.0 schreibt zum Feld g7:UID

This is metadata about the structure itself, not data about its subject. Multiple structures describing different aspects of the same subject would have different UID values.

Was ist hier mit „structure“ gemeint? Der INDI record? Anders gefragt: beschreibt die UID die Person oder den record in der GEDCOM-Datei? Wenn jemand anderes die selbe Person in seiner Datei hat, sollte ich dann seine UID übernehmen (weil es die gleiche Person ist) oder sollte ich eine neue erzeugen (weil der Eintrag in meiner Datei technisch ein anderer ist, als der zur gleichen Person in einer anderen Datei)?

Die Datei GEDCOM 5.5.1 GEDCOM-L Addendum spricht vom „mergen von records“:

At least for individual records _UID should be supported. Programs that support merging of
records should support multiple _UID per record and keep all _UID unchanged.

Das klingt etwas nach dem, was passieren kann, wenn ein record aus einer fremden Datei und ein eigener Eintrag die gleiche Person beschreiben. Wenn mein Eintrag auf einem fremden aufbaut, sollt ich dann nur die „fremde“ UID übernehmen und keine eigene erzeugen?

Eine UID beschreibt gar nichts, sondern kennzeichnet einen Datensatz eindeutig. Das geht für alle Typen von Datensätzen: Personen (INDI), Familien, Quellen, Notizen,…

Wenn ein Datensatz bereits eine oder mehrere UIDs hat, sollte man keine weitere UID erzeugen.

Wenn man sicher ist, dass zwei Personen (oder Familien oder Quellen oder…) identisch sind, sollte man also die vorhandene UID verwenden.

Wenn man zwei Datensätze verschmilzt, weil man sie als identisch betrachtet, kann das dazu führen, dass man im zusammengeführten Datensatz mehrere UID hat.

Die Reihenfolge der UID in einem Datensatz ist ohne Bedeutung. Die Zeichenfolge der UID ist ohne Bedeutung, wobei die UID normalerweise aus den Zeichen 0..9 und a..f besteht. Kleinbuchstaben und Großbuchstaben sind als identisch anzusehen. Eingestreute „-“ Zeichen zur strukturierten Darstellung können bei einem Vergleich auf Identität ignoriert werden.

Ob kennzeichnet oder beschreibt, geschenkt. Aber die Frage war: kennzeichnet sie (u.a.) einen INDI-Datensatz oder eine Person? Verschmelzen („merge“) im engeren Sinne, kann ich Datensätze ja nur, wenn sie beide bei mir liegen. Wenn jemand anders im Internet für eine Person eine UID verwendet, sollte ich sie bei mir übernehmen (weil die UID die Person kennzeichnet)? Oder sollte ich eine neue generieren (weil die UID meinen INDI-Datensatz kennzeichnet, der nicht identisch ist mit einem anderen Datensatz zur selben Person bei jemandem im Internet)?

Die UID kennzeichnet einen Datensatz. Dieser steht für ein Objekt, etwa eine Person. Im Falle also einer Person beschreibt ein INDI-Datensatz genau eine Person. Auch wenn zwei INDI-Datensätze leicht unterschiedlich aufgebaut sind: solange sie die gleiche Person beschreiben, bekommen sie die gleiche UID.

Wenn jemand bereits einen INDI Datensatz für eine Person angelegt hat und diesem eine oder mehrere UIDs zugeordnet hat, dann gehören diese UIDs zu dieser Person. Wenn man selbst die gleiche Person im eigenen Stammbaum hat, dann sollte man für diese Person keine neue UID erzeugen, sondern die vorhandenen UIDs verwenden, damit klar ist, dass es um die selbe Person geht und nicht um eine andere. Auch dann wenn man eventuell zu einem Ereignis oder einer Eigenschaft der Person widersprüchliche Informationen hat. Man sollte nur dann eine neue UID erzeugen, wenn man nicht sicher ist, ob die beiden fragliche Personen identisch sind.

Wenn man aber schon eine UID erzeugt hat und erst später die Identität feststellt, dann sollte man die UID nicht löschen, sondern zusammenführen.

1 „Gefällt mir“

Danke! Das wollte ich wissen.

Das meinte ich mit „kennzeichnet“ und nicht „beschreibt“. Wenn ich einer Person in meinem Stammbaum eine UID zugeordnet habe und ich ergänze etwa ein Taufereignis oder ändere den Ort der Beerdigung, dann ändert sich die UID nicht und ich erzeuge auch keine zusätzliche neue UID. Die UID ist keine „Quersumme“ der Personendaten.

Das ist klar.

Ich bin über die Formulierung „not … about its subject“ gestolpert und habe mich gefragt, ob damit UIDs in verschiedenen Dateien immer verschieden sein müssten. Aber ich denke inzwischen, dass in g7:UID der Gegensatz metadata/data gemeint ist.

Das ist reichlich nebulös formuliert.

Was daran ist nebulös?

Der erste Satz sagt klar, dass die UID keine Eigenschaft des Subjekts ist, das von einem Datensatz bzw. einer Struktur in der GEDCOM Datei beschrieben wird. Sondern dass es eine Kennzeichnung der Struktur ist. Dabei ist eine Struktur nicht auf einen Datensatz eingeschränkt worden, es kann auch ein Teil davon sein. Z.B. ein Ereignis innerhalb einer Person.

Der zweite Satz führt weiter aus, dass - wenn das Subjekt in mehreren Strukturen abgebildet ist - jede dieser Strukturen eigene UIDs hat. Damit wird klargestellt, dass ich, wenn ich für eine Person einen weiteren Datensatz anlege, auch neue UIDs zu nehmen habe.

Da stimme ich Hermann nicht zu, der meinte, ich könne für einen weiteren Datensatz dieselbe UID nehmen: Das wäre im Widerspruch zum Standard. Mein Programm GEN_DO! würde auch darauf drängen, beide Datensätze zu verschmelzen, weil es sich nach Definition um identische Datensätze handelt. Wenn ich - aus welchen Gründen auch immer - für dieselbe Person einen weiteren Datensatz anlege, muss der eine eigene UID bekommen. Denn es ist ja gerade NICHT eine Eigenschaft der Person, sondern des Datensatzes!

Wenn die Daten in mehrere GEDCOM Dateien exportiert werden, dann bleiben die UID der Datensätze erhalten. Genau damit kann ihr weiterer Werdegang verfolgt werden. Also hat der Datensatz in verschiedenen GEDCOM Dateien immer dieselbe UID. Wenn dann die Daten mal wieder zur mir zurückkommen, kann ich die Datensätze anhand der UID prüfen, ob ich sie schon habe.

An Joe:

Wenn ein Datensatz übernommen wird und dann mt weiteren Daten ergänzt wird, behält er seine UID. Beispiel: Der ursprüngliche Datensatz einer Person enthält die Geburt, aber nicht den Sterbefall.

Wenn ich nun in diesem Datensatz den Sterbefall ergänze, bleibt die UID unverändert, es wird auch keine neue UID angelegt.

Wenn ich aber zunächst einen neuen Datensatz anlege, der den Sterbefall enthält, bekommt der neue Datensatz eine eigene UID. Wenn ich dann in einem zweiten Schritt zu der Erkenntnis komme, dass beide Datensätze dieselbe Person beschreiben, dann kann ich die Datensätze verschmelzen. Dabei sollen beide UID erhalten bleiben. Somit bleibt die Herkunft der Daten nachvollziehbar.

Wenn ich weiß, dass eine Person woanders bereits mit einer UID versehen dokumentiert ist, ich aber nicht diesen Datensatz importiere, sondern für die Person neu aufsetze, sollte nicht die bereits woanders verwendete UID eingesetzt werden. Da gehört eine neue UID rein.

Auch dem muss ich leider widersprechen. Lauf GEDCOM Standard hat die Reihenfolge, in der das gleiche GEDCOM Kennzeichen auf gleicher Ebene vorkommt, eine Bedeutung. Es ist also nicht egal, in welcher Reihenfolge die UIDs da stehen. Das erste Vorkommen ist laut Standard dasjenige, dem die höchste Bedeutung zukommt.

Das hat ganz praktische Konsequenzen: In den Online-OFB des Vereins für Computergenealogie kann man zu einer Person sich den Permalink erzeugen lassen. Mit diesem Link soll man die Person auch dann wiederfinden können, wenn sich in der GEDCOM Datei bei einem Update des OFBs die Zeiger auf die Personendatensätze verändert haben. Diese Zeiger (meist in der Form @I123@) haben laut Standard nur innerhalb einer Datei überhaupt eine Bedeutung und sind daher ungeeignet, daraus Links aufzubauen. Daher bauen die Online-OFB den Perma-Link mit der ersten UID des Personendatensatzes.

Damit diese Permalinks nach einem Update also funktionieren, muss man darauf achten, dass man die UID an erster Stelle läßt. Hat man also eine Person bereits in einem OFB veröffentlicht, und verschmilzt deren Datensatz für einen Update mit anderen Datensätzen, dann muss man dafür sorgen, dass die erste UID auch an erster Stelle bleibt!

Vielen Dank @AEmmerich für die weiteren Antworten. Ich fasse mein Verständnis daraus mal zusammen. Ich vermute wir sind uns hier einig über:

  • UIDs können verschiedenes kennzeichnen, ich beziehe mich nur auf den INDI record.
  • UIDs sollen sich nicht ändern, nur weil Daten sich ändern.
  • Bei verschiedenen Exporten bleibt die UID dieselbe (die INDI-Kennung nicht unbedingt, das ist ein Vorteil der UID).
  • Falls ich zur Erkenntnis komme, dass zwei records in meiner Datei die gleiche Person beschreiben, würde ich die verschmelzen und die UIDs alle übernehmen.

Für einen weiteren Datensatz in der gleichen Datei zur gleichen Person kenne ich noch keinen sinnvollen Use Case. Mir scheint @AEmmerich kennt solche. Wird in OFBs dieselbe Person in mehreren records erfasst?

Ich stelle das Problem nochmal konkreter (mit Abkürzungen nur um die Idee zu transportieren):

  • Familienforscher Thomas hat eine Datei, die enthält Johann Georg Meyer, geboren am 1.2.1800, als @I12@ mit der UID 10AB. Diese lädt er auf GEDBAS hoch und sie erscheint dort als Datenbank 77. Evtl. hat Thomas die Familienforschung aufgegeben und wird seine Daten nicht mehr ändern.
  • Familienforscher Joe hat einen Ururopa Johann Georg Meyer, geboren am 1.2.1800 und aus weiteren Angaben und Verwandtschaftsbeziehungen ist es klar, dass es sich um die selbe Person handelt. Durch spätere Ergänzungen mag es inhaltlich kleine Unterschiede zur Person von Thomas geben (z.B. andere Schreibweise des Ortes, eine Notiz oder eine zusätzliche Quelle). Diese Person wird jetzt @I30@ bei Joe. Auch diese Daten sollen mal auf GEDBAS erscheinen.

Jetzt die Frage:

  1. Soll Joe die UID 10AB verwenden, da es sich um die gleiche Person handelt? Man kann ja Thomas nicht zwingen, seinen Eintrag anzupassen. Auf GEDBAS würden beide erscheinen und hätten beide die gleiche UID und es wäre erkennbar, dass die gleiche Person Johann Georg gemeint ist.
  2. Oder soll Joe eine neue UID verwenden? Es gibt also Johann Georg in der Forschung von Thomas und Johann Georg in der Forschung von Joe. Da beide Datensätze bestehen, müssen sie unterschiedliche UIDs haben. Es bleibt verborgen, dass es historisch die gleiche Person war.
  3. Oder soll Joe eine neue UID erzeugen und die UID 10AB als weitere UID übernehmen?

In der Datei von Joe gibt es den record nur einmal, aber auf GEDBAS evtl. mehrfach die gleiche Person.

1 „Gefällt mir“

Aus meiner Sicht ganz klar: 1! Es sei denn, dass Joe bereits eine UID vergeben und publiziert hatte, bevor er die Übereinstimmung bemerkt hat; dann führt er beide UID zusammen.

Ist das so, @Juling? Ich hätte erwartet, dass ich den Datensatz mit allen UIDs erreiche und nicht nur mit der ersten UID.

Wenn ich zwei Datensätze mit je einer UID verschmelze, dann habe ich zwei erste UID. Welche danach an erster Stelle steht, ist undefiniert. Wenn die beiden verschmolzen Personen in zwei verschiedenen OFB vorkommen, dann ist mir nicht klar, welches OFB den Vorrang bekommen und die Reihenfolge der UIDs bestimmen sollte. Die Logik in den OFB darf nicht von der Reihenfolge der UIDs in einem Datensatz abhängen.

Der erste Satz ist wirklich klar. Aber nicht deine Aussage dazu, Albert. Die UID ist nur auf Ebene 1 definiert, nicht auf der Ebene 2, für Ereignisse innerhalb eines INDI-Datensatzes.

Der zweite Satz im Standard ist mir nicht klar:

Dort ist nach meinem Verständnis nicht die Rede davon, dass zwei INDI Datensätze dieselbe Person beschreiben, sondern davon, dass verschiedene Strukturen verschiedene Aspekte des selben Subjekts beschreiben. Aber was soll das sein? Wenn das Subjekt eine Person ist, was sind dann die verschiedenen Aspekte? Ich finde das nebulös und zu abstrakt formuliert.

Genau! Das ist der Sinn der UID. Wenn ich eine Person in verschiedenen Weltbäumen und bei Geneanet und bei MyHeritage und… anlege, dann lege ich eben nicht jedesmal eine neue UID an, so wie Du, Albert, es vorschlägst, sondern ich nehme immer die selbe UID, damit klar ist, dass das im Kern immer der selbe Datensatz zur selben Person ist.

Ja, das ist so. Ich orientiere mich da an der von der GEDCOM-L (allerdings noch nicht verabschiedeten) empfohlenen Vereinbarung

Das sieht der Standard aber so vor, die erste Eintragung ist die vorrangige/wichtigste, auch bei allen anderen Kennzeichen, die mehrfach vorkommen können.

Was spricht dagegen, dass in den OFB mehrere UIDs pro Datensatz unterstützt werden? Ich denke, dass das notwendig ist. Angenommen ich habe eine Person Günter Mustermann, der in zwei verschiedenen OFB vorkommt, da er in Ort A geboren ist und in Ort B geheiratet hat. Er ist von zwei Forschern angelegt worden und hat von jedem Forscher eine UID bekommen. Einmal die UID 1a und einmal die UID 2b. Beide Forscher erkennen die Übereinstimmung und der erste Forscher legt in seinem OFB an:
1 UID 1a
1 UID 2b

Der andere Forscher legt in seiner Logik in seinem OFB an:
1 UID 2b
1 UID 1a

Wenn die OFB-Logik nur die jeweils erste UID betrachtet, dann kommt nie heraus, dass die beiden Personen identisch sind.