GFAhnen zu TNG

GFAhnen und TNG sind zwei großartige Genealogieprogramme, welche beide ihre stärken und schwächen haben. GFAhnen ist ein offline Programm, welches man lokal installiert. TNG hingegen liegt auf einem Webserver. Während Ersteres in Archiven sicherlich unschlagbar ist, kann Zweites bei der Arbeit an Forschungen von mehreren Personen schon Vorteile mit sich bringen.

Auch hat GFAhnen sehr schöne HTML-Auswertungen, welche aber aus statischen Dateien bestehen und somit aufwendig erstellt werden müssen. Allein bei meinen Forschungen reden wir hier (Stand April 2017) von mehr als 50.000 und über 200 MB. Also alles andere als handlich. Ich möchte hier aber nicht über Vor- und Nachteile der Programme reden. Den diese unterliegen oft auch persönlicher Vorlieben.

Hier geht es darum, dass die Daten mit GFAhnen erfasst und verwaltet werden und dann, z. B. für eine Präsentation mit TNG für das Internet, über eine GEDCOM-Datei ausgetauscht werden. Hierbei müssen einige Besonderheiten beachtet werden, auf die ich hier gezielt eingehe.

Den sicheren Umgang mit einem Texteditor sowie mit einem MySQL Verwaltungsprogramm (z. B.) phpMyAdmin setze ich hier voraus. Diese sind notwendig um die nötigen Änderungen an den Daten vornehmen zu können.

GECOM Export aus GFAhnen

GEDCOM Export

Der erste Schritt ist ein Export der Daten aus GFAhnen in eine GEDCOM Datei. Hierbei muss auch definiert werden, welchen Umfang diese Dateien haben sollen. Ich exportiere z. B. bei den Quellen keine Inhalte mit. Diese Einstellung ist bewusst so von mir getroffen worden.

Da wir die Ortsinformationen mit übernehmen möchten, wählen wir die zwei dafür relevanten Optionen aus:

  • OrtsErgänzungen (unter PLAC)
  • OrtsDatensätze (_LOC)

Und:

  • Memo-Texte zu Orten [rechts unter Memo-Text, nur sinnig wenn man diese gefüllt hat]

Zu diesen kommen wir später noch einmal.

Hat man in den Memofeldern Quellenhinweise hinterlegt, so sollte man auf jeden Fall die folgende Optionshierarchie anwählen:

  • Quellenhinweise
    • auch in Texten
      • als /S.../ im Text

Das hat zur Folge, dass eben die Quellenmarkierungen in den Memos als solche mit übernommen werden. Diese wandeln wir später in HTML-Links um.

Die Option "VSIG" "als REFN" ist eine Option, welche ich verwende, um die niedrigste Keklule Nummer zu transportieren. Dies macht natürlich nur Sinn, wenn man das entsprechende Feld gefüllt hat. Ansonsten kann man diese Option weglassen.

Zum Schluss wählt man noch einen entsprechenden Personenkreis (oder aber alle Personen) und startet den Export durch einen Klick auf die Schaltfläche "Starten".

Nachbearbeiten der GEDCOM Datei

Nachdem man die GEDCOM Datei erzeugt hat, muss man diese noch etwas nachbearbeiten. Dies ist notwendig, da nicht alle darin vorkommenden Informationen sonst direkt verarbeitet werden können.

Dazu wird die GEDCOM Datei in einem Texteditor geöffnet und bestimmte Elemente mit "Suchen und Ersetzen" durch neue ausgetauscht. Welche beschreib ich in den folgenden Unterabschnitten.

Quellensignaturen

Dieser Schritt ist seit TNG 11.1 nicht mehr notwendig und kann übersprungen werden! Seit Version 11.1 werden auch die REFN-Felder direkt ausgelesen und es muss hier keine Änderung mehr durchgeführt werden.

GFAhnen exportiert seit der Version 15 die Signatur der entsprechenden Quelle mit in die GEDCOM Datei. Das ist dann interessant, wenn man sprechende Signaturen verwendet (siehe z. B. mein Archivnummernsystem). Verwendet wird hier das entsprechende Quellenkürzel aus GFAhnen, welches in das sog. REFN Element (Reference Name) gespeichert wird.

TNG wertet jedoch als Quellenname nicht das REFN-Element sondern das CALN (Call Name) aus. Die Lösung ist hier einfach REFN mit CALN zu ersetzen.

Achtung! Das kollidiert unter Umständen mit der Ausgabe des VSIG Feldes. Verwendet man also eine TNG Version vor 11.1, so muss das VSIG-Feld wenn es benötigt wird als NOTE ausgegeben werden sollte man gleichzeitig die Signaturnummer einlesen wollen.

Ortsnamen

Notizen zu den Orten werden seit der Version 11.1.1 angezeigt. Bei früheren Versionen werden diese Informtionen nicht übernommen.

Orte werden in GFAhnen an verschiedenen Stellen genannt. Bei den Personen direkt, bei den Ehen oder bei Lebensphasen. Ortsnamen besehen aus den Namen selbst, ggf. einem Trennzeichen und einem Zusatz (z. B. Breitenbrunn b. Wunsiedel).

Hat man die Orte mit Notizen versehen und möchte diese ebenfalls mit veröffentlichen (siehe oben), so stehen diese Informationen im sog. _LOC Bereich. Hier wird der Ortsname auf zwei Bereiche aufgeteilt. Den NAME und den NAMC. Der NAMC beinhaltet den Zusatz, welcher leider anders aufgebaut ist, wie die Schreibweise in den o. g. Bereichen. Das hat zur Folge, wir müssen diese Schreibvarianten jetzt anpassen. Auch dies geschieht durch Suchen und Ersetzen.

Ursprung Ersetzen mit Kommentar
2 NAMC b. 2 NAMC  b. zwei Leerzeichen vor dem b., eines danach!
2 NAMC , 2 NAMC , ein Leerzeichen nach dem Komma
2 NAMC a.d. 2 NAMC  a.d. zwei Leerzeichen vor dem a.d., eines danach!
2 NAMC /   keine Änderung!

Das NAMC ist das Erkennungsfeld im GEDCOM. Danach folgt ein Leerzeichen und dann der Text. Bei "b." und "a.d." folgen absichtlich zwei Leerzeichen da wir zwischen dem Ortsnamen (also den NAME) und den Zusatz (also den NAMC) dann in der Ausgabe ein Leerzeichen einfügen möchten.

Würden wir dies nicht tun, so würde aus den oben genannten Beispiel folgendes entstehen: Breitenbrunnb. Wunsiedel

Daten importieren

Sind unsere Daten in der GEDCOM Datei modifziert, können wir diese ganz einfach über die TNG Verwaltungsoberfläche importieren.

Nacharbeiten

Die folgenden Nacharbeiten erfolgen direkt per SQL. Es ist also jetzt notwendig, sich mit der Datenbank zu verbinden. Je nach Installation kann dies z. B. per phpMyAdmin erfolgen.

Datenschutz

Datenschutz ist wichtig! Aus diesen Grund zeigen wir Personen erst 10 Jahre nach dem Tod an. Personen, welche kein Todesdatum haben, werden erst 90 Jahre nach der Geburts angezeigt. Heiraten (also Familien) werden nach 50 Jahren angezeigt. Das Ganze geht recht einfach mit ein paar Updates:

UPDATE tng_people SET private = 0;
UPDATE tng_people SET private = 4 WHERE deathdatetr > SUBDATE(CURDATE(), INTERVAL 10 YEAR) AND deathdatetr <> '0000-00-00';
UPDATE tng_families SET private = 3 WHERE marrdatetr > SUBDATE(CURDATE(), INTERVAL 50 YEAR);
UPDATE tng_people SET private = 2 WHERE deathdatetr = '0000-00-00' AND birthdatetr > SUBDATE(CURDATE(), INTERVAL 90 YEAR);

Bilder entfernen

Ich habe in meinen Notizen Bilder. Da ich keine Bilder veröffentliche, möchte ich diese natürlich auch entfernen. Auch dies geht sehr einfach mit zwei UPDATES, welche das Bild und dann noch die Bildunterschrift entfernt:

UPDATE tng_xnotes SET note = REGEXP_REPLACE(note, '~~[A-Za-z0-9\-_]+\.[a-zA-Z]+', '');
UPDATE tng_xnotes SET note = REGEXP_REPLACE(note, '/°.*°/+', '');

Verborgene Kommentare entfernen

Hat man doch aus Versehen verborgene Kommentare mit hochgeladen, so kann man diese nun ebenfalls entfernen:

UPDATE tng_xnotes SET note = REGEXP_REPLACE(note, '{\\\\v .*}', '');

Formartierungen durchführen

In Notizen befinden sich unter Umständen Formatierungen wie Kursiv oder Fett. Diese sollen natürlich nicht verloren gehen, sondern auch entsprechend in HTML hervorgehoben werden. Auch dies geschieht durch HTML und wird durch ein paar UPDATES erledigt:

UPDATE tng_xnotes SET note = REGEXP_REPLACE(note, '{\\\\i (.+)}', '<i>\\1</i>');
UPDATE tng_xnotes SET note = REGEXP_REPLACE(note, '{\\\\ul (.+)}', '<u>\\1</u>');
UPDATE tng_xnotes SET note = REGEXP_REPLACE(note, '{\\\\b (.+)}', '<b>\\1</b>');

Quellen in Notizen

Hat man, wie oben beschrieben, in den Notizen Quellen und diese auch mit exportiert, so sollen diese natürlich auch durch sinnige Links ersetzt werden. In diesem Fall wird ein Link auf die entsprechende Quelle gesetzt.

Achtung! Hier muss jetzt natürlich die richtige Adresse eingetragen werden! Anderfalls funktionieren die erzeugten Links natürlich nicht!

UPDATE tng_xnotes SET note = REGEXP_REPLACE(REGEXP_REPLACE(note, '/S([0-9]+)/([A-Za-z0-9.,]+)/', '<a href="https://URL.ZUR.WEBSEITE/showsource.php?sourceID=S\\1">Quellenbeleg (\\2)</a>'), '/S([0-9]+)/', '<a href="https://URL.ZUR.WEBSEITE/showsource.php?sourceID=S\\1">Quellenbeleg</a>') WHERE note LIKE '%/S%/%';

Leere Notizen entfernen

Durch obige Aktionen haben wir jetzt unter Umständen leere Notizen erzeugt. Diese sind unschön, weshalb wir diese jetzt löschen und somit unseren Datenbestand bereinigen. Vor allem, wenn man sehr viele Notizen hat aus denen durch die obigen Änderungen sehr viele Daten entfernt werden, sollte man diese Befehle ggf. mehrmals laufen lassen. Nur so ist sichergestellt, dass alle leeren Notizen wirklich gelöscht sind.

UPDATE tng_xnotes SET note = TRIM(TRAILING '\n' FROM note);
UPDATE tng_xnotes SET note = TRIM(note);
DELETE FROM tng_notelinks WHERE xnoteID IN (SELECT id FROM tng_xnotes WHERE TRIM(note) = "");
DELETE FROM tng_xnotes WHERE TRIM(note) = "";

Fertig

Die Datenübernahme in TNG inkl. einer Bereinigung und der Konvertierung ist abgeschlossen. Wie so etwas aussehen kann, kann man am Beispiel meiner Forschungsergebnisse sehen.