GEDCOM/XREF ID: Unterschied zwischen den Versionen
(Inhalt des Standards eingebracht) |
(→Verwendung der querverweis_id als Personen- oder Familien-Identnummer: Verweis auf REFN eingefügt) |
||
Zeile 43: | Zeile 43: | ||
=== Verwendung der querverweis_id als Personen- oder Familien-Identnummer === | === Verwendung der querverweis_id als Personen- oder Familien-Identnummer === | ||
In vielen Fällen verwenden Anwender (in verschiedenen Formen durch Programme unterstützt) die querverweis_id von Personen ( | In vielen Fällen verwenden Anwender (in verschiedenen Formen durch Programme unterstützt) die querverweis_id von Personen (meist als @Innn@ geschrieben) und Familien (meist als @Fnnn@ geschrieben) als Ident-Nummer der Person oder der Familie. Diese Art der Verwendung widerspricht der expliziten Aussage des Standards, dass querverweis_id im empfangenden System nicht gespeichert werden. Damit ist der Erhalt dieser "Information" bei einem Datentransfer nicht gesichert, und diese Verwendung nicht zu empfehlen. | ||
Insbesondere widerspricht eine Forderung, eine querverweis_id für Personendatensätze oder Familiendatensätze im importierenden Programm nicht zu verändern, der expliziten Aussage des Standards. Jedes exportierende Programm muss nach Standard damit rechnen, dass ein importierendes Programm die querverweis_id neu vergibt. | Insbesondere widerspricht eine Forderung, eine querverweis_id für Personendatensätze oder Familiendatensätze im importierenden Programm nicht zu verändern, der expliziten Aussage des Standards. Jedes exportierende Programm muss nach Standard damit rechnen, dass ein importierendes Programm die querverweis_id neu vergibt. | ||
Die vom Anwender vorgesehene Indentifizierung der Personen / Familien kann Standard-konform mit REFN (ggfs mit unterstelltem TYPE) dargestellt werden. Problem hierbei ist die nicht flächendeckende Unterstützung in den Programmen, so dass wegen dieses Unterschiedes im Funktionsumfang die entsprechende Information nicht immer im Zielprogramm ankommt. | |||
Version vom 18. Januar 2010, 16:40 Uhr
Name und Bedeutung
Querverweis
Dieser Artikel beschreibt das Thema der Querverweise (englisch: XREF_ID) und Zeiger (englisch: pointer) in GEDCOM Dateien. Basis ist der GEDCOM Standard Draft 5.5.1 in der deutsche Übersetzung von Jörn Daub.
Formelle Bezeichnung
XREF_ID
Deutsche Bezeichnung
querverweis_id
Verwendung
zeiger (englisch: pointer) und querverweis_id (englisch: XREF_ID) erlauben aus einem Datensatz heraus Querverweise auf einen anderen, durch die querverweis_id eindeutig definierten Datensatz herzustellen.
Formale Beschreibung zulässiger Werte
Aussagen des GEDCOM Standards 5.5.1
querverweis_id := (siehe auch zeiger) Die Querverweis-ID besteht aus einer beliebigen Kombination von zeiger_zeichen. Das erste Zeichen muss ein alpha oder ziffer sein. Die querverweis_id wird im empfangenden System nicht gespeichert und darf daher auf eine Art geformt werden, die für das sendende System praktisch ist. Der Empfänger wird der querverweis_id keinerlei Bedeutung zumessen, außer diese dem damit verbundenen Datensatz eindeutig zuzuordnen. Die Benutzung eines Doppelpunktes (:) ist für die Zukunft reserviert.
zeiger := (englisch: pointer) Ein zeiger steht als Platzhalter für einen Datensatz oder Kontext, der durch die passende querverweis_id identifiziert wird. Theoretisch sollte ein empfangendes System darauf vorbereitet sein, einem zeiger zu beliebigen Werten so zu folgen, dass dies transparent für das Subsystem ist, das nach spezifischen kennzeichen sucht. Diese hochgradig flexible Einrichtung wird wahrscheinlich in Zukunft mehr genutzt werden. Für den jetzigen Zeitpunkt wird jedoch die Nutzung von zeigern explizit in der GEDCOM-Form in Kapitel 2 beschrieben. Der zeiger repräsentiert eine Assoziation zwischen zwei Objekten, die normalerweise in unterschiedlichen Datensätzen gespeichert sind. Objekte innerhalb eines logischen Datensatzes können assoziiert werden. Wenn dies benötigt wird, enthält der zeiger ein Ausrufezeichen (!), welches den Verweis auf den Datensatz vom Verweis auf dessen untergeordnetes Element trennt. Die querverweis_id auf eine Unterstruktur eines Datensatzes der Ebene 0 wird immer durch die Datensatz-ID und die Unterstruktur-ID gebildet, wie z. B. @I132!1@. Die Einbeziehung der Datensatz-ID in diesem zeiger erlaubt es, ausschließlich einen Index der Datensätze zu führen, und diese sequenziell nach der Unterstruktur abzusuchen. Wenn der zeiger mit einem Ausrufezeichen (!) beginnt, wird angenommen, dass er auf eine Unterstruktur des aktuellen Datensatzes verweist.
Beispiel aus dem Standard
Beispiele: Die folgenden Zeilen sind voneinander unabhängige Beispiele gültiger GEDCOM-Zeilen.
- 0 @1234@ INDI
- …
- 1 AGE 13y
- …
- 1 CHIL @1234@
- …
- 1 NOTE Dies ist ein Notizfeld, das
- 2 CONT auf der nächsten Zeile fortgesetzt wird
Die erste Zeile hat die ebene 0, die querverweis_id @1234@, ein INDI-kennzeichen und keinen zeilen_wert.
Die zweite Zeile hat die ebene 1, keine querverweis_id, ein AGE-kennzeichen und einen zeilen_wert von 13y.
Die dritte Zeile hat die ebene 1, keine querverweis_id, ein CHIL-kennzeichen, und einen zeilen_wert, bestehend aus einem zeiger auf die querverweis_id @1234@.
Behandlung/Darstellung schwieriger Situationen
Verwendung der querverweis_id als Personen- oder Familien-Identnummer
In vielen Fällen verwenden Anwender (in verschiedenen Formen durch Programme unterstützt) die querverweis_id von Personen (meist als @Innn@ geschrieben) und Familien (meist als @Fnnn@ geschrieben) als Ident-Nummer der Person oder der Familie. Diese Art der Verwendung widerspricht der expliziten Aussage des Standards, dass querverweis_id im empfangenden System nicht gespeichert werden. Damit ist der Erhalt dieser "Information" bei einem Datentransfer nicht gesichert, und diese Verwendung nicht zu empfehlen.
Insbesondere widerspricht eine Forderung, eine querverweis_id für Personendatensätze oder Familiendatensätze im importierenden Programm nicht zu verändern, der expliziten Aussage des Standards. Jedes exportierende Programm muss nach Standard damit rechnen, dass ein importierendes Programm die querverweis_id neu vergibt.
Die vom Anwender vorgesehene Indentifizierung der Personen / Familien kann Standard-konform mit REFN (ggfs mit unterstelltem TYPE) dargestellt werden. Problem hierbei ist die nicht flächendeckende Unterstützung in den Programmen, so dass wegen dieses Unterschiedes im Funktionsumfang die entsprechende Information nicht immer im Zielprogramm ankommt.
Status:
in Diskussion
Namensgebung für querverweis_id und zeiger
Der Standard sagt zur Namensgebung von Zeigern (pointer) und Querverweis_id (XREF_ID) folgendes aus:
zeiger := [(0x40) + alphanum + zeiger_zeichenkette + (0x40) ] wobei: (0x40)=@
In zeiger_zeichenkette ist das Zeichen @ nicht zulässig, und die Zeichen : sowie ! haben Sonderbedeutungen.
Eine Kennzeichnung des Typs des Datensatzes, auf den der Zeiger zeigt, ist bei der Namensgebung nicht vorgeschrieben. Der Typ des Datensatzes ergibt sich eindeutig aus dem Kontext des Zeigers bzw der querverweis_id.
Daher sind die Verwendung von
- @Innn@ für Personen
- @Fnnn@ für Familien
- @Snnn@ für Quellen
- @Nnnn@ für Notizen
sowie weitere ähnliche Namensgebungen zwar weit verbreitet und auch Standard-konform, aber durch den Standard nicht in dieser Form vorgeschrieben. Ein Import muss daher unabhängig von diesen weit verbreiteten Namensgebungen funktionieren. Beim Export darf diese Namensgebung verwendet werden, muss es aber nicht ( "darf daher auf eine Art geformt werden, die für das sendende System praktisch ist" ).
Status:
in Diskussion