Fragen zum Upload einer GEDCOM-Datei in GEDBAS

Hallo, ich habe mich hier angemeldet und habe vor, meine Daten demnächst zu GEDBAS hochzuladen. Dazu habe ich ein paar Fragen, bevor ich den Upload starte. (Ich kann sehr flexibel die richtigen Felder füllen, da ich den GEDCOM-Export selbst schreibe.)

  1. Hat die INDI-Kennung in der GEDCOM-Datei eine Bedeutung für GEDBAS?
    a. Wenn ich an der Datei arbeite und eine neue Version hochlade, sollte die Kennung die gleiche bleiben?
    b. Ist diese Zahl diejenige, die dann in der URL einer Person erscheint (https://gedbas.genealogy.net/person/show/<Zahl>)?
  2. Gibt es ein empfohlenes Format für Quellenangaben? Ich sehe selten Einträge, die überhaupt welche enthalten.
  3. Kann ich eine Person mit Personen aus anderen Datenbanken verknüpfen, die keine UID haben? Ich nehme an, dass eine Verknüpfung unter „Eindeutige(r) Identifikator(en)“ erscheint, wenn ich UIDs im Datensatz habe. Aber wenn ich weiß dass Person 123456 (ohne UID) aus einer anderen Datenbank die gleiche ist, wie eine Person bei mir, kann ich das irgendwie in GEDCOM eintragen?
  4. Kann man von GEDBAS informiert werden, wenn sich bestimmte Einträge ändern, z.B. Angaben zu Personen mit der gleichen UID wie bei mir?

Vielen Dank für die Fragen, das sind genau die richtigen!

Eine direkte Bedeutung hat die INDI-Kennung nicht. Sie sollte unbedingt die gleiche bleiben, da darüber der Abgleich mit den vorherigen Daten erfolgt. Kennung und ein Hashwert der Originaldaten werden in der Datenbank gespeichert. So kann bei einem Update schnell geprüft werden, ob es Änderungen gab. Das beschleunigt die Aktualisierung enorm, wenn es z.B. bei 10.000 Personen nur an fünf Personen Änderungen gab.

Ich werde die Kennung (zusammen mit Angaben über ersten Import und letzte) direkt auf dem Datenblatt sichtbar machen, das erleichtert auch die Identifikation der Daten.

Gibt es ein empfohlenes Format für Quellenangaben? Ich sehe selten Einträge, die überhaupt welche enthalten.

Dazu werde ich ein paar gute Beispiele heraussuchen, wie der GEDCOM-Code und das Ergebnis bei GEDBAS aussieht.

Kann ich eine Person mit Personen aus anderen Datenbanken verknüpfen, die keine UID haben?

Derzeit nicht. Ich hatte mal die Idee, für Personen ohne UID eine zu generieren, damit man sie dann referenzieren kann. Das funktioniert aber nur bei Daten, die sich nicht mehr ändern. Sonst sind beim nächsten Hochladen die Kennungen futsch.

Möglicherweise gibt es in GEDCOM ein passendes Feld, in das man einen Link zu einer Webseite mit Daten der Person eintragen kann. Dann könnte ich erkenne, wenn dort auf GEDBAS verwiesen wird und daraus einen internen Verweis erzeugen. Ist aber nicht ganz so einfach, wenn das in beide Richtungen funktionieren soll.

Kann man von GEDBAS informiert werden, wenn sich bestimmte Einträge ändern, z.B. Angaben zu Personen mit der gleichen UID wie bei mir?

Bisher nicht. Das ist aber eine sehr gut Idee. Gerade über die UID sollte das effizient möglich sein.

1 „Gefällt mir“

Vielen Dank für die Antworten!

  1. Das habe ich befürchtet. Dann muss ich mir das Mapping zwischen meiner Kennung und der GEDCOM-Kennung speichern und wiederverwenden. Bis jetzt nummeriere ich für GEDCOM einfach alle Personen durch. Aber es darf Kollisionen mit Nummern in anderen Datenbanken geben? Ich kann also mit 1 anfangen?
  2. ok
  3. Ich habe schon länger nachgedacht und keine perfekte Lösung gefunden. Aber meine UID bestimmt sich aus dem Namen, Geburtsjahr und der Datei, falls sie nicht explizit angegeben ist. Das heißt, wenn ich z.B. aus einer Marie eine Maria mache, ändert sich die automatische UID.
    Andere GEDBAS-Nummern habe ich bisher als Quelle geführt.
  4. Das wäre super.

@jzedlitz Zur zweiten Frage: Zur Zeit habe ich vor, die Zitate so zu exportieren:

2 SOUR @S1@
3 PAGE 1880 Nr. 5
3 EVEN BIRT
3 DATA
4 TEXT Abschrift
3 QUAY 2

Und als Quelle:

0 @S1@
1 DATA
2 AGNC Evang. Kirche Magdeburg
1 AUTH Autor (?)
1 TITL Geburtsregister 1855 - 1889
1 PUBL Magdeburg

Könnte GEDBAS damit etwas anfangen?

Das widerspricht dem Konzept der UID. Die UID darf nicht vom Inhalt der Daten abhängig sein. Der GEDCOM -Standard sagt dazu: It is recommended that new globally unique identifiers be created and formatted using the UUID production specified in RFC 9562 Section 4.

Das hängt nur indirekt mit dem Inhalt zusammen. Der Name ist der Schlüssel (key) für die Person. Wenn sich der Name ändert, kann ich eine vergebene UID nicht mehr (oder nur sehr manuell) zuordnen. Und warum eine UUID5 schlechter geeignet sein sollte als eine UUID4, erschließt sich mir nicht.

Namen sind dafür nicht geeignet. Namen sind nicht weltweit eindeutig und eine Person kann mehrere Namen tragen. Eine UID bleibt immer beim Datensatz, egal ob sich an den Daten selbst etwas ändert. Ich bitte Dich dringend bei solchen Dingen den GEDCOM-Stsndard zu beachten und nichts Neues zu erfinden.

1 „Gefällt mir“

Hallo Joe2,

[Joe2]
21. Februar

Das hängt nur indirekt mit dem Inhalt zusammen. Der Name ist der
Schlüssel (key) für die Person. Wenn sich der Name ändert, kann ich eine
vergebene UID nicht mehr (oder nur sehr manuell) zuordnen. Und warum
eine UUID5 schlechter geeignet sein sollte als eine UUID4, erschließt
sich mir nicht.

eine UUID wird genau einmal im Leben eines Datensatzes vergeben/erzeugt,
nämlich bei seiner Entstehung. Diese UUID klebt für den Rest seines
Lebens am Datensatz und wird NIE mehr verändert. Ob du dich für die
Erst-Erzeugung für eine UUID v1, v4, v5 oder v7 entscheidest, liegt bei
dir. V4 ist die derzeitige Empfehlung.

Du scheinst die UUID aber bei jedem Export neu zu vergeben, und das
widerspricht dem eigentlichen Sinn der UUID.

Grüße
Martina (Klein)

1 „Gefällt mir“

Nein, jede Person behält ihre UID solange der Datensatz besteht. Nur wenn der Datensatz seinen eindeutigen Key ändert, ist es de facto ein neuer Datensatz. Dann muss der Nutzer selbst dafür sorgen, dass die UID mit umgezogen wird. Aber das Programm kann nicht wissen, dass ein neuer Datensatz einem anderen entspricht.

Aber noch eine Anschlussfrage zu UIDs: GEDCOM verwendet den Begriff so, dass er sehr nach UUID (RFC 9562) klingt. Die meisten UIDs, die mir begegnet sind, haben nicht die übliche UUID-Darstellung und sind länger mit Prüfziffern. (Ich vermute PAF hat das eingeführt?)

Sind UIDs als string oder als UUID (Hexadezimaldarstellung einer Zahl) zu vergleichen? Anders gefragt, sind die folgenden UIDs die gleichen oder unterschiedliche?

7e1a5fe6-ed29-4d3c-a1db-7230c9413c20
7E1A5FE6-ED29-4D3C-A1DB-7230C9413C20
7E1A5FE6ED294D3CA1DB7230C9413C20
7E1A5FE6ED294D3CA1DB7230C9413C200063

Bearbeitet: Mein Verständnis (basierend auf GEDCOM v7 UID) ist, dass alle gleichbedeutend sind. (Ohne Prüfziffern wird bevorzugt, aber die Schreibweise sollte erhalten bleiben.)

[Joe2]
21. Februar

Aber noch eine Anschlussfrage zu UIDs: GEDCOM verwendet den Begriff so,

GEDCOM551 GEDCOM-L Addendum-R2.pdf 2020-12-01
(GEDCOM 5.5.1 Specification - GEDCOM-L Addendum)
auch zu finden über Dein Browser wird geprüft!

GEDCOM 5.5.1 Specification GEDCOM-L Addendum Page 39

7.5 _UID Line
Tag _UID {Unique ID for Records}
Universal identification numbers (UUID) can be used to retrieve records
even after further processing or export/import. A UUID claims to assign
an unique value worldwide and for all times , so that no collisions take
place (= no multiple assignment of the same value). The allocation of
the UUID is decentralized and not coordinated by a superior system. The
generation of UUID is described in RFC4122. UUID can only fulfill their
function as long as they remain unchanged in export and import of GEDCOM
files.
Due to the requirement of decentralized generation and free of collision
UUID are complex and not suitable by the user for a directly
identification feature. They are intended for a check by programs,
whether two records have the same origin.
GEDCOM-L Addendum
This description contains information about the use of the user-defined
tag _UID. An explicit representation is not included in the GEDCOM 5.5.1
standard.
PAF had at first introduced a user-defined identifier _UID, which has
now been adopted by a number of programs.
• For recognizing and tracking of records in GEDCOM files unique
identifiers are used worldwide and unlimited in time. The value of the
tag _UID is a string that contains the identifier of the record.
• The tag _UID may be used as often as {0:M} in each record, it is
directly associated with the record on level 1. The first 36 characters
of a _UID describe the identifier. If applicable, more existing
characters are not significant.
• Record identification is usually generated on the basis of 16-byte bit
sequences that are generated in accordance with certain regulations
(UUID). For export to GEDCOM files, these bit sequences must be
converted into a text value (string), for which different
representations are possible. In order to achieve the highest possible
compatibility of the representation, the following form is recommended
for newly created _UID: The value of the _UID consists of 16 bytes (32
hexadecimal digits) and is represented by the characters 0-9 and A-F
(capital letters!). A checksum of 2 bytes in hexadecimal format is
appended to these 16 bytes B1 to B16, which is calculated according to
the following regulation:
o Check byte 1: [ TOTAL OF (Bn) ] MODULO 256 , (for n=1 to 16)
o Check byte 2: [ TOTAL OF ((17-n) * Bn) ] MODULO 256 (for n=1 to 16)
• During generation of the 16-byte bit string (UUID) it is recommended
to create them according to version 1 or preferably version 4 of the
standard protocol RFC 4122. Windows systems have access to CoCreateGuid().
• 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.
• If a program supports _UIDs, the first 36 characters of imported _UIDs
may not be modified in the export.

HTH

[Joe2]
21. Februar

Nein, jede Person behält ihre UID solange der Datensatz besteht. Nur
wenn der Datensatz seinen eindeutigen Key ändert, ist es de facto ein
neuer Datensatz.

Als Anwender erwarte ich eigentlich von einem Programm, dass wenn ich
eine Großtante „Mariechen“ eingebe, dass sie immer die Person bleibt als
die ich sie eingegeben habe, unabhängig davon wie oft ich ihren Namen
oder ihre Daten ändern/korrigieren muss. Wie das Programm seine
Datensatz-Referenzen intern organisiert ist mir an der Stelle egal.
Allerdings kenne ich bisher kein Programm, das bei Namensänderungen
ständig neue „Personen“ (Datensätze) kreiert. Und da eine UID lediglich
beim allerersten Anlegen eines Datensatzes erstellt wird, kann ich
dieses Verhalten nicht nachvollziehen.

Dann muss der Nutzer selbst dafür sorgen, dass die UID
mit umgezogen wird. Aber das Programm kann nicht wissen, dass ein neuer
Datensatz einem anderen entspricht.

Aber als Anwender erwarte ich von einem Genealogieprogramm doch genau
das, nämlich dass es mir diese Arbeit abnimmt. Ich kann als Anwender
doch nicht wissen, wie das Programm intern seine Datensatzstrukturen
organisiert.

Das Thema, ebenso wie die Frage zu UID, hat jetzt allerdings nichts mehr
mit GEDBAS im speziellen zu tun und würde eher in die Kategorie
„genealogie-programme“ passen. Da lesen u.a. auch diverse
Programmautoren mit.

Ich sage: ja. Oberste Devise ist: nichts ändern beim Import/Export. Ob die Prüfziffern wirklich welche sind, ist irrelevant.

1 „Gefällt mir“

Danke für die Antworten. Durch die Formatierung (Großbuchstaben, ohne Bindestriche und 32 Zeichen) sind sie wohl gleich.

PS: Die Fragen kamen hier zusammen, weil ich zum einen eine Datei hochladen möchte und zum anderen Autor des Programms bin.