Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer...

90
Visualisierung und interaktive Manipulation genealogischer Daten Diplomarbeit vorgelegt von Marijan Gjoreski Institut für Informatik III Rheinische Friedrich-Wilhelms-Universität Bonn Professor Dr. Rainer Manthey April 2004

Transcript of Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer...

Page 1: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

Visualisierung und interaktive Manipulation

genealogischer Daten

Diplomarbeit

vorgelegt von

Marijan Gjoreski

Institut für Informatik III Rheinische Friedrich-Wilhelms-Universität Bonn

Professor Dr. Rainer Manthey April 2004

Page 2: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut
Page 3: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

Danksagung

Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut durchführen zu können. Außerdem danke ich ihm für die intensive und freundliche Betreuung.

Ein großes Dankeschön möchte ich den fleißigen Korrekturleserinnen Ma. Isabel Conejo y Dahm, Manuela Gjoreski und Kathrin Obrusnik aussprechen.

Mein besonderer Dank geht an meine Familie, die mir diese Ausbildung ermöglicht und mich während des gesamten Studiums uneingeschränkt unterstützt hat.

Page 4: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut
Page 5: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

Inhaltsverzeichnis

1. Einleitung 1 2. Genealogie 3

2.1 Begriffsbildung und Fachterminologie 5 2.2 Formate für genealogische Daten 10

2.2.1 Klassische Formate 10 2.2.2 Computergenealogische Formate 13

2.3 Datenbanken mit genealogischem Hintergrund 16 2.4 Visualisierungsmöglichkeiten 20

3. Datenbank und Java Grundlagen 24 3.1 Grundlagen von Datenbanken 24

3.1.1 Das relationale Modell und SQL 25 3.2 Access 30 3.3 JDBC/ODBC 30 3.4 Java AWT und Swing 32

4. Graphisch Visualisierung genealogischer Daten 36 4.1 Klassifizierung 36 4.2 Rechnergestützte Methoden zur Stammbaumausgabe 37

4.2.1 GFAhnen Version 5.0 37 4.2.2 Ursprung 40 4.2.3 Famtree Version 2.3 41 4.2.4 Fzip Family Tree S1.7d 42 4.2.5 WinAhnen V6.02 43 4.2.6 DYNASS-TREE V300 45 4.2.7 GEN-Master V3.1.4 47 4.2.8 GeneWeb 4.09 48 4.2.9 StaBa Der Stammbaumgenerator 49

5. Konzepte zur Stammbaumvisualisierung 50 5.1 Diskussionen von Alternativen und Kritik 50 5.2 Vorstellungen der eigenen Methoden 55

6. Implementierung des Systems ViMaGe 60 6.1 Architektur und Komponenten 61 6.2 Vorstellung des Datenbankschemas 63 6.3 Ausgewählte Aspekte der Implementierung 64

6.3.1 Datenbank-Kopplung 64 6.3.2 Einlesen von Personendaten 66 6.3.3 Layoutberechnung 68

6.3.3.1 Vertikale Anordnung 69 6.3.3.2 Plazierung der Kinder 70 6.3.3.3 Auflösung von Überschneidungen 72 6.3.3.4 Linienberechnung 75

7. Zusammenfassung und Ausblick 76 7.1 Zusammenfassung und Bewertung 76 7.2 Ausblick 77

Literaturverzeichnis 81

Page 6: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut
Page 7: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

3

2 Genealogie

Begibt man sich auf die Suche nach den Ursprüngen der Genealogie, wird man bereits in frü-hen hebräischen Schriften fündig. So sind unter anderem in den Büchern Mose auffallend ausführliche Abstammungslinien festgehalten worden. Beispielsweise läßt sich die Stammfol-ge von Adam und Eva über Noah, Abraham und König David bis zu Jesus aus verschiedenen Teilen des Alten und des Neuen Testaments wie folgt lückenlos zusammenstellen:

Adam und Eva zeugten einen Sohn Set; Set zeugte Enosch; Enosch zeugte Kenan; Kenan zeugte Mahalalel; Mahalalel zeugte Jered; Jered zeugte Henoch; Henoch zeugte Metusche-lach; Metuschelach zeugte Lamech; Lamech zeugte Noah; Noah zeugte drei Söhne: Sem, Ham und Jafet; Sem zeugte Arpachschad; Arpachschad zeugte Schelach; Schelach zeugte Eber; Eber zeugte Peleg; Peleg zeugte Regu; Regu zeugte Sergug; Sergug zeugte Nahor; Na-hor zeugte Terach; Terach zeugte Abraham; Abraham zeugte Isaak; Isaak zeugte Jakob; Jakob zeugte Juda; Juda zeugte mit Tamar Perez und Serach; Perez zeugte Hezron; Hezron zeugte Aram; Aram zeugte Amminadab; Amminadab zeugte Nachschon; Nachschon zeugte Salo-mon; Salomon zeugte mit Rahab Boas; Boas zeugte mit Rut Obed; Obed zeugte Isai; Isai zeugte König David; König David zeugte mit Urijas Frau Salomo; Salomo zeugte Rehabeam; Rehabeam zeugte Abija; Abija zeugte Asa; Asa zeugte Joschafat; Joschafat zeugte Joram; Joram zeugte Usija; Usija zeugte Jotam; Jotam zeugte Ahas; Ahas zeugte Hiskaija; Hiskaija zeugte Manasse; Manasse zeugte Amos; Amos zeugte Joschija; Joschija zeugte Jojachin; Jo-jachin zeugte Schealtiël; Schealtiël zeugte Serubbabel; Serubbabel zeugte Abihud; Abihud zeugte Eljakim; Eljakim zeugte Azor; Azor zeugte Zadok; Zadok zeugte Achim; Achim zeug-te Eliud; Eliud zeugte Eleasar; Eleasar zeugte Mattan; Mattan zeugte Jakob; Jakob zeugte Josef, der schließlich Maria, deren Sohn Jesus Christus der Messias genannt wird, ehelichte. [Rau]

Es lassen sich aber durchaus noch wesentlich ältere Aufzeichnungen von Abstammungslinien finden, und zwar in Form von bildlichen Darstellungen, die zum Teil bis in die Epoche des altägyptischen Reiches zurückdatiert werden können. Gleichsam werden in vielen helleni-schen Lobgesängen auf berühmte Helden typischerweise die jeweiligen Stammväter erwähnt. Die außerordentliche Bedeutung, die der Abstammung wiederum im antiken Rom zukam, läßt sich anhand der bewußten und ausgeklügelten Fälschungen erahnen, die von den vornehmsten und mächtigsten Familien begangen wurden in dem Bestreben, ihre Vorfahrenreihe bis zu Romulus und Remus, den Stadtgründern, zurückzuführen. [GHGRBe]

Im Mittelalter wuchs die Bedeutung der Genealogie weiter an. Verschiedene Stände und Ge-sellschaftsschichten bemühten sich, ihre Abstammung als Mittel einzusetzen, um sich immer schärfer voneinander abgrenzen zu können. Als Voraussetzung für den Antritt bestimmter geistlicher oder weltlicher Ämter oder auch für die Teilnahme an Turnieren mußte oft die sogenannte Ahnenprobe erbracht werden, bei welcher eine adelige oder zumindest freie Ab-stammung zum Teil bis zur sechsten Vorfahrengeneration nachgewiesen werden mußte. [Wik_6], [GHGRBe]

Im späten Mittelalter erstellte der Gelehrte Ladislaus Suntheim (ca. 1440

1530) im Auftrag Kaiser Maximilians eine Chronik der Häuser Habsburg und Bamberg. Suntheim ist somit ei-nen der ersten eigentlichen Berufsgenealogen; man kann ihn daher sogar als den Begründer der Genealogie als Wissenschaft ansehen. [GHGRBe]

Page 8: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

4

In der römisch-katholischen Kirche wurde durch das Konzil von Trient im 16. Jahrhundert die Einführung von Kirchenbüchern angeordnet. Diese bildeten damals wie auch heute noch für die Genealogie die wichtigste Quelle ihrer Forschung. Ihre Bedeutung wurde im 19. Jahrhun-dert durch die Einführung der Personenstandsregister (auch Standesregister oder, in der Schweiz, Zivilstandsregister genannt) ergänzt und auch abgelöst. [Liw], [GHGRBe] Mit der Jahrhundertwende zum 19. Jahrhundert entstanden schwere gesellschaftliche Umbrü-che und es traten Krisen in ganz Europa auf. Mit der französischen Revolution und der Herr-schaft Napoleons wurde eine staatlich-standesamtliche Registrierung der Bürger und ihrer Personenstandsangelegenheiten eingeführt. Die bis dahin für den Adel zum Nachweis ihres Adelsgeschlechtes genutzte Genealogie erlitt einen enormen Bedeutungsverlust, trotz der neu eingeführten Personenstandsangelegenheiten. Eine neue Bedeutung erhielt die Genealogie erst wieder gegen Mitte der zweiten Hälfte des 19. Jahrhunderts durch eine eng verwandte Nach-barwissenschaft, der Heraldik oder Wappenkunde, mit der Gründung der heraldischen Gesell-schaften Herold (Berlin 1869) und Adler (Wien 1870). Im folgenden begannen sich zwei unterschiedliche theoretische Richtlinien in der Genealogie herauszubilden. Als Vertreter der soziologisch und historisch orientierten Genealogie, in der es mehr um eine umfassende Fami-lienkunde und dabei auftretende praktische Probleme ging, sind Stephan Kekulé von Strado-nitz sowie Eduard Heydenreich, der Verfasser des Handbuchs der praktischen Genealogie", zu nennen. Stephan Kekulé von Stradonitz entwickelte ein Ahnennummerierungsystem, das heute weltweit eingesetzt wird. Unter dem Einfluß der Entwicklungslehre Darwins und Hae-ckels sowie der Vererbungtheorien Mendels entstand daneben eine mehr naturwissenschaft-lich orientierte genealogische Richtung, die auch später im Dritten Reich ähnlich wie im Mit-telalter und der Antike zur Abgrenzung verwendet wurde, nur mit anderen Zielen. Als ein weiterer Vertreter der stark auf die Humangenetik fixierten Richtung ist Ottokar Lorenz zu nennen. [Web03], [GHGRBe]

Die Machtergreifung der Nationalsozialisten in Deutschland führte dazu, daß die Genealogie entgegen ihrer vorherigen Bedeutung als Werkzeug der Rassenpolitik mißbraucht wurde. Bei-spielsweise wurde sie dazu benutzt, Gebietsansprüche im Osten zu rechtfertigen, die sich aus der Abstammungsfolge des deutschen Volkes ergaben, und zur Feststellung einer arischen oder jüdischen Abstammung. So wurde von der NSDAP als Aufnahmebedingung eine reine arische Abstammung

ab dem Jahre 1800 erwartet, die auch für den Ehepartner gelten mußte. Die SS verlangte sogar einen Nachweis bis zum Jahre 1750, der anhand einer Ahnenliste vor-zulegen war. Zur Vereinfachung des Abstammungsnachweises wurde schließlich der Ahnen-paß eingeführt, in dem Eltern und Großeltern nachgewiesen werden mußten. [Wik_1], [Wi-k_3], [Web03]

Heutzutage existieren weltweit enorm viele genealogische Vereine, deren Mitglieder sich be-ruflich mit der Abstammungskunde beschäftigen. Genealogie ist allerdings nicht nur rein wis-senschaftlich anwendbar, sondern sie ist mittlerweile auch ein verbreitetes Hobby von Privat-personen. Letztere können dabei entweder selbständig versuchen, genealogische Daten zu sammeln

wie eben durch Einsicht von Kirchenbüchern, Standesregistern u. ä.

oder ent-sprechend orientierte Dienstleistungsunternehmen in Anspruch nehmen. In jedem Falle spielt das Internet heutzutage eine sehr wichtige Rolle für Genealogen, was folgendes Beispiel ver-deutlicht: Gibt man in der Internet-Suchmaschine Google Genealogie als Suchbegriff ein, werden ungefähr 1.170.000 Treffer als Ergebnis bei einer Suchdauer von 0,16 Sekunden ge-liefert. Gibt man wiederum Stammbaum in Google ein, werden innerhalb von 0,11 Sekun-den ca. 651.000 Treffer gefunden.

Page 9: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

5

In den vergangenen Jahrhunderten standen einem Genealogen als Handwerkszeug lediglich Papier, Bleistift, Federhalter, Karteikarten, Aktenordner, Bücher und Zeitschriften zur Verfü-gung. Vor ungefähr achtzig Jahren kamen die Schreibmaschine so wie der Fotoapparat (zur Dokumentation von Schriftstücken etc.) dazu, und seit etwa dreißig Jahren finden Fotokopier-apparate intensive Verwendung. Diese Hilfsmittel werden mittlerweile schon seit rund zwan-zig Jahren durch Computer, Drucker und Disketten ergänzt. Heute wird diese Palette an Hilfsmitteln abgerundet durch Scanner, CD und Internet, wobei letzteres sehr schnell eine hervorragende Stellung bei der Genealogie

sowie natürlich auch anderen Wissenschaften

erobert hat. [Liw], [Rud]

2.1 Begriffsbildungen und Fachterminologie

An dieser Stelle sollen zunächst im Kontext dieser Arbeit wichtige Begriffe aus dem Bereich der Genealogie definiert werden. Desweiteren werden einige genealogische Hilfsmittel vorge-stellt.

Ahnenliste:

Bei einer Ahnenliste handelt es sich um eine strukturierte Liste aller Ahnen eines Probanden, die mit diesem beginnt. Es folgen dessen Eltern, diesen wiederum die vier Großeltern usw. Der Proband erhält dabei die Nummer 1, seine Eltern die Nummern 2 und 3 usw., so daß jeder Vorfahr durch eine Nummer gekennzeichnet ist, wobei gerade Zahlen für männliche, ungera-de für weibliche Ahnen stehen. Die Generationen werden, beginnend mit den Eltern des Pro-banden, durch römische Ziffern kenntlich gemacht. [See_a], [Rau]

Ahnentafel:

Eine Ahnentafel stellt die Vorfahren eines Probanden schematisch in graphischer oder tabella-rischer Form dar, wobei sie mit dem Probanden und seinen Eltern als der untersten genealogi-schen Einheit beginnt. Es folgen dann die weiteren Generationen, die, wie bei einer Ahnenli-ste, beginnend mit den Eltern des Probanden durch römische Ziffern gekennzeichnet werden. So läßt die Ahnentafel auf einen Blick die Vorfahren des Probanden über mehrere Generatio-nen erkennen, wobei sie

im Gegensatz zum Stammbaum

von der Gegenwart bis in die Vergangenheit weist. [Ber91a], [Wik_2], [Reu01a]

Ahnennummerierung:

Stephan Kekulé von Stradonitz (deutscher Mathematiker, 1863 - 1933) führte im vergangenen Jahrhundert ein System zur Nummerierung der Vorfahren ein, das einem einfachen Prinzip folgt: dem Probanden wird die Nummer 1, seinen Eltern die Nummern 2 und 3, den Großel-tern die Nummern 4

7 zugeteilt etc. Gerade Zahlen werden dabei für männliche Vorfahren, ungerade Zahlen für weibliche Vorfahren verwendet. Die Nummer des Vaters einer Person ist somit immer das Doppelte der Nummer dieser Person; die Nummer jeder Mutter ist immer das Doppelte der Nummer ihres Kindes plus eins. [See_a], [Rau], [Mag]

Die Ahnennummerierung nach Kekulé erlaubt nur die Nummerierung direkter Vorfahren, ist also nur für Ahnentafeln verwendbar. Dabei werden auch keine Zweitehen berücksichtigt. Sollen auch Geschwister und Kinder aus weiteren Ehen mit erfaßt werden, ist die Ahnen-

Page 10: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

6

nummerierung nach Kekulé zu erweitern. Für eine solche Erweiterung gibt es keine eindeuti-ge Vorschrift; beispielsweise kann jeder Geschwisterteil mit einem Buchstaben markiert wer-den.

In der folgenden Tabelle werden die Bezeichnungen für die Generationen und deren Ahnen-Nummerierung nach Kekulé demonstriert. [Sch], [Rau]

Bezeichnung Generation Personennummer Proband 1 Eltern I. Generation 2 - 3 Großeltern II. Generation 4 - 7 Urgroßeltern III. Generation 8 - 15 Alteltern (Ur-Urgroßeltern) IV. Generation 16 - 31 Altgroßeltern V. Generation 32 - 63 Alturgroßeltern VI. Generation 64 - 127 Obereltern VII. Generation 128 - 255 Obergroßeltern VIII. Generation 256 - 511 Oberurgroßeltern IX. Generation 512 -1023 Stammeltern X. Generation 1024 -2.047 Stammgroßeltern XI. Generation 2.048 - 4.095 Stammurgroßeltern XII. Generation 4.096 - 8.191 Ahneneltern (Stammalteltern) XIII. Generation 8.192 - 16.383 Ahnengroßeltern XIV. Generation 16.384 - 32.767 Ahnenurgroßeltern XV. Generation 32.768 - 65.535 Urahneneltern XVI. Generation 65.536 - 131.071 Urahnen-Großeltern XVII. Generation 131.072 - 262.143 Urahnen-Urgroßeltern XVIII. Generation 262.144 - 524.287 Erzeltern XIX. Generation 524.288 - 1.048.575 Erzgroßeltern XX. Generation 1.048.576 - 2.097.151 Erzurgroßeltern XXI. Generation 2.097.152 - 4.194.303 Erzahneltern XXII. Generation 4.194.304 - 8.388.607 Erzahnen-Großeltern XXIII. Generation 8.388.608 - 16.777.215 Erzahnen-Urgroßeltern XXIV. Generation 16.777.216 - 33.554.431

Die Personennummern sind nur theoretischer Natur: Nimmt man einen Generationsabstand von durchschnittlich ca. dreißig Jahren an und errechnet ein Proband mit dem Geburtsjahr 2000 die Anzahl seiner Vorfahren bis zur fünfundzwanzigsten Generation, die bei einer ange-nommenen Generationsdauer von ca. 30 Jahren also etwa im Jahre 1220 n. Chr. gelebt haben, ergibt sich, daß zu diesem Zeitpunkt mehr als 67 Millionen Vorfahren des Probanden gelebt haben müßten. Allerdings war zu dieser Zeit nicht einmal die gesamte Bevölkerung von ganz Deutschland derart zahlreich. Diese Divergenz ist mit dem Ahnenschwund zu erklären: Einige Ahnen eines Probanden können selbst miteinander verwandt sein, wenn auch nur entfernt. Heiratet z.B. ein Mann seine Cousine, so haben beide dieselben Großeltern, Urgroßeltern usw., und für die Kinder aus dieser Ehe bedeutet dies, daß die Urgroßeltern mütterlicherseits und väterlicherseits identisch sind. Somit wird die theoretische Anzahl von Ahnen nie er-reicht, da in der Regel früher oder später eine Heirat zwischen Verwandten vorkommt. [GHGRBa], [GHGRBc], [Rau], [Enz]

Page 11: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

7

Genealogie:

Der Begriff Genealogie leitet sich aus dem Lateinischen und dem Altgriechischen ab: Das Wort genus bedeutet soviel wie Geschlecht oder Abstammung , während sich logos mit Kunde oder Lehre übersetzen läßt. Das griechische genealogein bedeutet: die Abstam-

mung angeben oder einen Stammbaum aufstellen . Die Genealogie ist also die Geschlech-ter- oder Abstammungskunde und beschäftigt sich mit der Erforschung von Ursprung und Schicksal von Familien, ihren Vorfahren und ihren Nachkommen, oder

mit anderen Worten

mit der Erforschung der Abstammungsverhältnisse und Verwandtschaftsbeziehungen zwi-schen Menschen. Man unterscheidet die darstellende Genealogie und, darauf aufbauend, die theoretische Genealogie. Die darstellende Genealogie behandelt die Abstammung und die verwandtschaftliche Beziehung einzelner Personen oder Personengruppen; die theoretische Genealogie befaßt sich mit den allgemeinen Regeln und Gesetzen der Genealogie.

Heutzutage beschäftigt sich die Genealogie als geschichtliche Hilfswissenschaft mit der Er-forschung der Abstammungsverhältnisse einzelner Geschlechter und der Beantwortung der sich daraus ergebenden historischen Fragestellungen. So wird die Genealogie etwa zur Be-stimmung von Besitz- und Herrschaftsverhältnissen in einzelnen Familien und damit auch zur Bestimmung ihrer gesellschaftlichen und politischen Rolle herangezogen. [Ber91b], [Lex90] [Lec93], [Bün96], [Wik_6], [Web03]

Nachfahrentafel:

Als Nachfahren- oder Enkeltafel bezeichnet man die schematische Aufzeichnung der Nach-kommenschaft eines Ehepaares, der Stammeltern. Werden nur die Nachkommen, die densel-ben Familiennamen tragen, ermittelt, spricht man von einer Stammtafel. [Wik_9], [Ber91c]

Nachkommennummerierung:

Zur Nummerierung von Nachfahren werden verschiedene Methoden genutzt. Die Nummerie-rung nach Aboville und die Nummerierung nach Saragossa zählen dabei zu den meistgenutz-ten. [Rud],

Bei der Nummerierung nach Aboville wird immer mit einem Buchstaben begonnen; dieser bestimmt die Generation. Somit ist es möglich, Personen bis zur 26. Generation durchzu-nummerieren; dabei trägt der Proband die Nummer A1, seine Kinder erhalten demnach die Nummern B1.1 für das erste Kind bis B1.n für das n-te Kind usw. [GHGRBc], [Rud]

Nachfahrennummerierung nach Aboville:

A1 Maxim Goreski (1912

1990) B1.1 Lenka Goreska (1952 ) B1.2 Kirko Goreski (20.02.1953 ) C1.2.1 Marijan Gjoreski (16.10.1975 ) C1.2.2 Manuela Gjoreski (13.09.1978 ) D1.2.2.1 Alexander Smirnoff (14.07.2003 ) C1.2.3 Gregor Gjoreski (14.07.1982 ) B1.3 Senka Grozdanovska (14.01.1954 ) C1.3.1 Maximilian Grozdanovski (02.1.1979 )

Page 12: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

8

Das Nummerierungssystem nach Saragossa ist ähnlich; der einzige Unterschied zu Aboville liegt darin, daß hier ausschließlich Zahlen verwendet werden und die Generationen somit nicht mit angegeben werden. [GHGRBc]

Nachfahrennummerierung nach Saragossa:

1 Maxim Goreski (1912

1990)

1.1 Menka Goreska (1952 ) 1.2 Kirko Goreski (20.02.1953 ) 1.2.1 Marijan Gjoreski (16.10.1975 ) 1.2.2 Manuela Gjoreski (13.09.1978 ) 1.2.2.1 Alexander Smirnoff (14.07.2003 ) 1.2.3 Gregor Gjoreski (14.07.1982 ) 1.3 Senka Grozdanovska (14.01.1954 ) 1.3.1 Maximilian Grozdanovski (02.1.1979 )

Eine weitere bekannte Nummerierung ist die von Reginal Buchanan Henry 1935 eingeführte. Dabei wird beim Stammvater die Nummerierung mit einer 1

begonnen. Die Kinder des Stammvaters werden in der Geburtsreihenfolge mit 1x durchnummeriert, wobei der Erstge-borene die Nummer 11 , der an vierter Stelle Geborene die Nummer 14

erhält. Diese Nummerierung wird für die Nachkommen ebenso weitergeführt, wobei also z.B. der Erstge-borene des zweiten Kindes des Stammvaters die Nummer 121 besitzt. Um mehr als neun Kin-der nummerieren zu können, wird ab dem zehnten Kind ein X eingesetzt und von diesem an mit Buchstaben aus dem Alphabet weiter beziffert (A = 11, B = 12, C = 13 ). [Mag], [Rud]

Das Nummerierungssystem nach Henry erlaubt es, Kinder aus verschiedenen Ehen zu kenn-zeichnen. Dazu wird hinter dem Kind ein kleingeschriebener Buchstabe (a für ein Kind aus erster Ehe, b für ein Kind aus zweiter Ehe usw.) angefügt, der somit beschreibt, aus welcher Ehe das Kind stammt. Diese Nummerierung existiert auch in einer leicht abgeänderten Form, bei der die Kinder ab dem zehnten Kind nicht mit Buchstaben, sondern mit einer zweistelligen Ziffer, die in Klammer steht, gekennzeichnet werden. Die Kennzeichnung 12X1A

würde nach diesem modifizierten Verfahren also 12(10)1(11) entsprechen. [Mag], [Rud]

Nachfahrennummerierung nach Henry:

1 Maxim Goreski (1912

1990) 11 Lenka Goreska (1952 ) 12 Kirko Goreski (20.02.1953 ) 121 Marijan Gjoreski (16.10.1975 ) 122 Manuela Gjoreski (13.09.1978 ) 1221 Alexander Smirnoff (14.07.2003 ) 123 Gregor Gjoreski (14.07.1982 ) 13 Senka Grozdanovska (14.01.1954 ) 131 Maximilian Grozdanovski (02.1.1979 )

In Südafrika entwickelten Ch. De Villiers und Dr. Cor Pama im neunzehnten Jahrhundert eine weitere Art der Nummerierung von Nachkommen. Sie ähnelt der Nummerierung nach Abo-ville: Der Stammvater wird mit einem a

markiert und die jeweils nächste Generation durch Anhängen des nächsten Buchstabes des Alphabets gekennzeichnet, wobei zusätzlich eine Zahl angefügt wird, die kennzeichnet, um das wievielte Kind es sich handelt. Die Generationen werden durch einen Punkt voneinander getrennt. Folgendes Beispiel dient zu Verdeutlichung: a.b1.c2 steht für das zweite Kind des ersten Kindes des Stammvaters. [Mag], [Rud]

Page 13: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

9

Stammbaum:

Ein Stammbaum zeigt die Nachkommen eines Stammvaters, d.h. des ältesten, direkten männ-lichen Vorfahrs, der nachgewiesen werden kann. Die Darstellung der Verwandtschaftsbezie-hungen erfolgt dabei in Baumform, wobei der Stammvater die Wurzel und die folgenden Ge-nerationen die Äste und Zweige bilden. Der Stammbaum eines Probanden besteht dabei

im

Gegensatz zur Ahnentafel

aus allen lebenden und verstorbenen Familienmitgliedern, die

seinen Familiennamen tragen. Somit zeigt also ein Stammbaum von der Vergangenheit in die Gegenwart. [Wik_4], [Wik_10], [Lex90b]

Stammliste:

Die Stammliste stellt die Nachkommenschaft einer Person in Listenform dar. Dabei existieren zwei mögliche Anordnungen: die fortlaufende und die unterbrechende Liste. Bei ersterer folgt jeder Person sofort ihre gesamte Deszendenz, wobei jede Generation um das gleiche Stück nach rechts eingerückt wird. Auf den Stammvater folgt also z.B. dessen ältester Sohn, diesem wiederum dessen Nachkommenschaft und erst dann das zweite Kind des Stammvaters, das wieder entsprechend seines Bruders nur wenig eingerückt wird.

Bei der unterbrechenden Liste dagegen werden die einzelnen Kleinfamilien, d.h. Eltern und Kinder aufgelistet. Die Kinder, deren Deszendenz dargestellt werden soll, werden dabei nur kurz mit Hinweis auf die folgenden Kleinfamilien erwähnt und dort ausführlich mit ihren ei-genen Kindern genannt, während die nächsten Generationen in weiteren Kleinfamilien er-scheinen. [See_a], [Lex90b]

Stammtafel:

Entsprechend einer Ahnentafel werden hier die Nachkommen eines Stammvaters in graphi-scher oder tabellarischer Form dargestellt. Wie bei einem Stammbaum werden lediglich Fa-milienmitglieder mit dem gleichen Familiennamen berücksichtigt. [Lex90b]

Symbole in der Genealogie:

Für genealogische Zwecke existieren spezielle Abkürzungen und Symbole. Im folgendem wird die Bedeutung einiger wichtiger Symbole aufgezeigt. [Her00]

Symbol

Bedeutung Symbol

Bedeutung

* geboren o/o geschieden (alternativ auch o|o) (*) außereheliche Geburt o-o freie Verbindung ~ getauft X gefallen o verlobt +X an im Kampf erlittenen Wunden gestorben

oo verheiratet [] beerdigt I oo erste Ehe ++ ausgestorbene Linie II oo zweite Ehe

+ gestorben

Page 14: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

10

Verwandtschaft:

Die Verwandtschaft gibt die Beziehung zwischen zwei Personen, von denen die eine von der anderen abstammt oder beide von einer dritten Person abstammen, an. Man unterscheidet da-bei zwischen Konsanguität (Blutsverwandtschaft) und der Affinialverwandtschaft, die auch angeheiratete Personen umfaßt. [See_a], [Lex90a]

Unter Aszendenz versteht man die leiblichen Eltern, Großeltern und weitere blutsverwandte Vorfahren eines Probanden. Die Deszendenz bezeichnet dagegen die gesamte Nachkommen-schaft eines Probanden oder der Stammeltern. [See_a], [Lex90a]

Verwandtschaftsbezeichnungen:

Verwandte eines Probanden lassen sich folgendermaßen definieren: Die Mutter bzw. der Vater ist der weibliche bzw. männliche Elternteil. Der Großvater ist wiederum der Vater eines Elternteils, die Großmutter die Mutter eines Elternteils. Als Onkel bezeichnet man den Bruder eines Elternteils oder den Ehemann der Schwester eines Eltern-teils. Die Tante ist eine Schwester der Mutter oder des Vaters, oder die Ehefrau eines Bruders der Mutter oder des Vaters. Ein Bruder ist ein von denselben Eltern abstammendes männli-ches Kind, die Schwester eine weibliche Person, die von denselben Eltern abstammt. Ein Cousin (Synonym: Vetter) ist der Sohn eines Onkels oder einer Tante, eine Cousine (veralte-tes Synonym: Base) dementsprechend die Tochter eines Onkels oder einer Tante. Ein Sohn ist ein männliches Kind des Probanden, eine Tochter demgemäß ein weibliches Kind. Als Neffe bzw. Nichte bezeichnet man das männliche bzw. weibliche Kind eines Bruders oder einer Schwester. Als Enkel (Enkelsohn) bzw. Enkelin (Enkeltochter) bezeichnet man ein männliches bzw. weibliches Kind einer Tochter oder eines Sohnes. [Lex90_1], [Lex90_2], [GHGRBa]

Die Eltern des Probanden sind für dessen Ehepartner die Schwiegereltern, also Schwieger-vater bzw. Schwiegermutter. Der Bruder bzw. die Schwester des Ehepartners oder der Ehe-partner von Bruder oder Schwester wird Schwager bzw. Schwägerin genannt. [Lex90_2]

2.2 Formate für genealogische Daten

Genealogische Daten werden bzw. wurden meist schriftlich oder graphisch in verschiedenen Formen festgehalten. Seit Beginn des Computerzeitalters wurden spezielle computerbezogene Formate zur digitalen Speicherung von genealogischen Daten entwickelt.

2.2.1 Klassische Formate

Genealogische Daten sind nur selten in einer für ihre Sammlung idealen komprimierten Form zu finden, sondern müssen teilweise aus Schriftstücken, deren Umfang von kurzen Texten bis zu längeren Büchern reichen kann, herausgefiltert werden. Als Beispiel sei auf die eingangs zu diesem Kapitel erwähnte der Bibel entnehmbare Abstammungsfolge von Jesus verwiesen. Quellen, denen genealogische Daten entnommen werden können, sind dabei recht vielgestal-tig: So verwaltet das Standesamt genealogische Daten, die in Form von Standesregistern wie Geburtsurkunden, Heiratsurkunden und verschiedenen weiteren Dokumenten zugänglich sind. Eine Vielzahl genealogischer Daten sind auch in Krankenhäusern und Privatarchiven vorhan-den. Ungefähr seit Anfang des dreizehnten Jahrhunderts wurden Grundbücher angelegt, in

Page 15: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

11

denen ebenfalls genealogisch relevante Daten verzeichnet sind. Weitere Quellen sind auch Testamente (seit ca. 1250) sowie Bürgerbücher (seit ca. 1490). Im sechzehnten Jahrhundert wurde der Einsatz verschiedener Schriftstücke zur Datensammlung gebräuchlich: Etwa um 1550 wurden Hausbücher, Volkszählungslisten, Leichenpredigten und Kirchenbücher einge-führt. Das älteste bekannte deutsche Kirchenbuch wurde jedoch schon im fünfzehnten Jahr-hundert in Basel von der Pfarrei St. Theodor angelegt; dort wurde 1481 die Führung von Taufbüchern angeordnet. Mit dem neunzehnten Jahrhundert kamen um 1840

1870 ferner

auch Einwohnermeldelisten, Auswandererlisten, Adreßbücher, Passagierlisten, und die Sammlungen in Standesämtern dazu. In Privatarchiven finden sich Auszüge aus den oben erwähnten Schriftstücken ebenso wie in selbst angelegten Familienchroniken oder Wappen. [Rud]

Interessant ist vor allem die Sammlung genealogischer Daten einer bestimmten Familie. So-bald alle verfügbaren Daten für alle Personen dieser Familie zusammengetragen wurden, werden sie in einer bestimmten Weise zusammengefaßt und dargestellt. Das geschieht fast immer in Textform, durch per Hand gezeichneten Stammbäume oder Ahnentafeln, je nach dem Anliegen des Benutzers. Die verschiedenen Darstellungsmöglichkeiten werden in Kapi-tel 2.5 ausführlich beschrieben.

Klassische genealogische Daten werden meist ortsabhängig archiviert, wie am folgenden Bei-spiel des Verzeichnisses der Standesregister aus französischer Zeit erläutert: Dieses spezielle Verzeichnis für die ehemals fürstbischöflichen Gemeinden des Birsecks und des Laufentals für die Jahre 1792

1815 kennzeichnet den jeweiligen Standort der Daten von Geburten, Eheverkündungen, Hochzeiten und Todesfällen. Es werden jeweils nur die ersten zwei Zeilen der Tabelle dargestellt. [KBLa], [KBLb]

Bezirk Arlesheim: 9 ehemals fürstbischöfliche Gemeinden

Standort: Staatsarchiv des Kantons Basel-Landschaft, Liestal

Gemeinde Grenzjahre Archiv Signatur

Aesch 1800 1813 StA BL ST 4201 Statthalteramt Arlesheim, 01.08.01

Allschwil 1792 1814 StA BL ST 4201 Statthalteramt Arlesheim, 01.08.02

Bezirk Laufen: 12 ehemals fürstbischöfliche Gemeinden

Standort: Archives de l'ancien Evêché de Bâle (AAEB), 10 rue des Annonciades, 2900 Por-rentruy, Tel/Fax 032 466 32 43.

Gemeinde Grenzjahre Archiv Signatur

Blauen 1792 1794 1798 1814

AAEB Microfilm, NC 45

Burg 1792 1814 AAEB Microfilm, NC 45

Diese Verzeichnisse geben Auskunft darüber, an welchen Orten die Daten zu finden und folg-lich zur Einsicht verfügbar sind. Wie auch beim Standesregister gibt es auch Verzeichnisse der Kirchenbücher, die wie das folgende Beispiel online abrufbar sind, wobei jeder Ort meh-rere Kirchenregister besitzt, abhängig von der Zahl der Kirchen des Ortes oder der Gemeinde. [KBL_1]

Page 16: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

12

Kirchenbücher: Übersicht und Ortsregister

E 9.1.01.

Aesch (ev.-ref.)

E 9.2.01.

Aesch (röm.-kath.) Römisch-katholische Kirchgemeinde

Aesch bis 1803 siehe E 9.2.60 Pfeffingen E 9.1.02.

Allschwil (ev.-ref.)

E 9.2.02.

Allschwil (röm.-kath.)

E 9.3.02.

Allschwil (christ.-kath.)

E 9.1.03. Anwil (ev.-ref.) siehe E 9.1.58 Oltingen E 9.2.03. Anwil (röm.-kath.) siehe E 9.2.29 Gelterkinden E 9.1.04. Arboldswil (ev.-ref.) bis 1881: siehe E 9.1.17 Bubendorf

ab 1811: siehe E 9.1.85 Ziefen

Auch bei den Kirchenregistern muß zur Einsicht in die Daten vor Ort recherchiert werden. Zu den Archiven kann es je nach Gemeinde einen Verweis auf ein anderes Archiv geben, da es vorkommt, daß eine Gemeinde einer anderen Kirchengemeinde zugeordnet wird und ab die-sen Zeitpunkt die Daten in einem anderen Archiv weitergeführt werden. Unter der Archiv-nummer ist ein Verweis zu finden, der angibt, wo die Daten zu finden sind. [KBL_2]

Unter E 9.1.01 ist folgender Standort abgelegt:

E 9.1.01. Aesch Evangelisch-reformierte Kirchgemeinde Aesch, Pfeffingen Die Kirchenbücher befinden sich bei der Kirchgemeinde

Die Archive sind vor Ort wieder in Unterarchive unterteilt; somit sind die Taufen, Ehen, To-desdaten usw. in jeweils eigenen Archiven vermerkt, so daß nicht alle Daten zu einer Person an einer Stelle zusammengetragen sind. Als Beispiel ein Taufeintrag aus dem Jahre 1632: [GHGRBd]

Der linke Text in Druckschrift :

1632 7 Octob. 241. Margret Rothen sunt genant Sandfluhgredi ihra ein unehelich kind gtoufft, hats geben dem Daniel Zandt dem jüngeren, das kind heisst Hans, Zügen Hans Zahndt Stadt- Halters Sohn, Willi Zbinden, und Anna Kündiger.

Abb. 2.3.1.1. Taufeintrag [GHGRBd]

Page 17: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

13

2.2.2 Computergenealogische Formate

Speziell für den Bereich der sogenannten Computergenealogie wurden eigene Formate zur Datenspeicherung entwickelt: FOKO und GEDCOM. Dieses sind programmunabhängige Formate. Der Vollständigkeit halber sollte erwähnt werden, daß jedes genealogische Pro-gramm sein eigenes internes Format besitzt, welches meist nicht einzusehen ist. Einige Pro-gramme verwenden Textdateien, die dann eingesehen werden können. Programme, die GED-COM unterstützen, verfügen immer über ein weiteres programmspezifisches Datenformat für die genealogischen Daten.

FOKO ist ein Projekt für Familienforscher mit deutschem Hintergrund, GEDCOM ein For-mat, welches in den USA von den Mormonen entwickelt wurde. Diese Formate sind zum Austausch genealogischer Daten gedacht und nicht für ihre Darstellung. Außerdem ist die Darstellung der Daten auch nicht direkt aus diesen Formaten möglich; daher müssen sie zu diesem Zweck selbst für Programme, die FOKO oder GEDCOM unterstützen, zunächst in ein internes Datenformat umgewandelt werden, oder, im Falle von GEDCOM, mit einem HTML-GEDCOM-Konverter in HTML-Dokumente. Aus diesen sind die Daten dann zu lesen - je-doch nur in Textform und nicht graphisch. [Fok01], [Kei_c]

FOKO (FOrscher KOntakte) ist ein Projekt der DAGV (Deutsche Arbeitsgemeinschaft Ge-nealogischer Verbände). Es startete Ende der 80er Jahre. Bei der DAGV handelt es sich um eine Gesellschaft von über fünfzig auf Deutschland bezogene genealogischen Vereinen, Ver-bänden und Einrichtungen. Heute wird FOKO nicht mehr aktualisiert, die Datensätze sind aber noch online abrufbar. [Fok01], [Kei_c]

FOKO soll den Datenaustausch zwischen Familienforschern mit deutschem Hintergrund er-leichtern. Um dies zu gewährleisten, wurde ein Standard für Personendaten festgelegt und eine Organisation aufgebaut, die für den Austausch und die Integration von derartigen FOKO-Daten zuständig ist. Zum ersten Schritt gehörte die Festlegung des FOKO-Daten-Standards für Personendaten. Im folgenden wurden von der DAGV die Ahnendaten ihrer Mitglieder und anderen interessierten Personen gesammelt. Durch die Verwandtschaft einiger Familienfor-scher gab es viele redundante Aufzählungen einzelner Personendaten und die gesamten Daten mußten bereinigt werden. Seit Oktober 1999 ist der Verein für Computergenealogie für die FOKO-Datensätze zuständig, die damals zwischen 0,5

1 Million Datensätzen lagen. Seit Anfang des Jahres 2000 stehen Informationen zu allen FOKO-Datensätzen kostenlos unter der Internetadresse http://foko.genealogy.net/

zur Verfügung. Die Datensätze können nicht selbst abgerufen werden, sondern müssen unter den Kontaktadressen der Verwalter angefordert wer-den. [Kei_c], [Fok01]

Eine FOKO-Datei besteht aus FOKO-Sätzen von jeweils gleicher Länge und Struktur. Ein FOKO-Satz enthält die wichtigsten Daten zu einer Person, wobei es zu jeder Person nur einen FOKO-Datensatz gibt (bis auf einige Ausnahmen). Ein Satz für eine Person enthält keinerlei Beziehung zu Sätzen anderer Personen, selbst dann nicht, wenn diese in der gleichen FOKO-Datei gespeichert sind. Es ist somit aus dem FOKO-Satz einer Person keine Information zu Eltern, Ehepartnern oder Kindern verfügbar. [Fok01], [Kei_c]

Page 18: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

14

Der FOKO-Datensatz enthält u.a. folgende Informationen zu einer Person: [Foko01]

Familienname

Vorname (Bei mehreren Vornamen kann der Rufname groß geschrieben werden.)

Matrikeltyp (Gibt die Genauigkeit der folgenden Daten an, d.h. ob sie sicher oder un-sicher sind.)

Jahreszahl der ältesten Erwähnung

Jahreszahl der jüngsten Erwähnung

Bekenntnis

Territorium

Staat

Postleitzahl (bzw. Kennziffer bei ehemaligen dt. Ostgebieten)

Ort (Hierauf bezieht sich der Matrikeltyp und die beiden Jahreszahlen. Bei mehreren Orten sind auch mehrere Sätze pro Person nötig.)

Kennzeichen (Gibt den genealogischen Verein sowie die Mitgliedsnummer der Person an, die die Daten einreicht. Nichtmitglieder erhalten eine eindeutige Gastnummer.)

Dabei gilt: Jeder Eintrag ist ein Zeile lang. Im folgenden Beispiel sind zur Anschaulichkeit anstelle der nichtdruckbaren Zeichen Doppelpunkte eingefügt. Um eine FOKO-Datei zu bear-beiten, wird ein FOKO-Programm benötigt; ein ASCII-Editor reicht dazu nicht aus. [Kei_c]

GEDCOM (Genealogical Data Communication) ist ein Format zur Speicherung und zur Er-möglichung des Austausches von Familiendaten zwischen verschiedenen Genealogie-Programmen und Computersystemen. [GHGRBb]

Entwickelt wurde GEDCOM interessanterweise von der Religionsgemeinschaft Kirche Jesus Christus der Heiligen Letzten Tage (besser bekannt als Mormonen), bei denen auch das Copy-right liegt: Für Mormonen ist die Ahnenforschung eine religiöse Verpflichtung, da sie daran glauben, daß Familienbande ewig, auch über den Tod hinaus, bestehen. Als Vorbereitung auf das Leben nach dem Tode versuchen sie daher, möglichst viele ihrer Ahnen mit Namen und, wenn möglich, mit Lebensgeschichte zu kennen. Daraus erklärt sich ihre Motivation zur Sammlung genealogischer Daten. [See_a], [GHGRBb], [Kei_a], [Kei_b], [Reu01b]

Mit der Entwicklung von GEDCOM wurde etwa 1984 begonnen. Ursprünglich zum Aus-tausch von Daten innerhalb der Gemeinschaft der Mormonen gedacht, wurde es als gemein-

:Bayer Johan ANDREAS ::::::::::::1743:1743:rk:::::SUD:CS::w62247:Landek::::::::::::::::::: :Braun Katharina:::::::::::::::::1822:1880:rk:::::SUD:CS::w62239:Gießhübel P Sollmus:::::: :Benedikt Anna MARIA:::::::::::::1765:1791:rk:::::SUD:CS::w62246:Rössin P Tschelief::::::: :Brautfelder Franz:::::::::::::::1853:1925:rk:::::SUD:CS::w62234:Lauterbach (Stadt):::::::

Abb. 2.3.2.1 Beispiel für einen FOKO-Datensatz mit vier Einträgen

Vorname / Rufname

Familienname

Bekenntnis

Postleitzahl (bzw. Kennziffer)

Territorium

Jahreszahl der ältesten / jüngsten Erwähnung

Staat

Ort

Page 19: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

15

samer Datensatz von fast jedem Programm übernommen und von einigen auch modifiziert. Daher erzeugen in manchen Fällen verschiedene Programme auch verschiedene GEDCOM-Datensätze, die nicht immer untereinander kompatibel sind. Mittlerweile sind unter www.FamiliySearch.com, in einer Datenbank, die von den Mormonen verwaltet wird, über 650 Millionen Namen online abrufbar. [NL_2], [Kei_a], [Kei_b], [Reu01b]

GEDCOM entspricht einer Zwischensprache und ist als solche, wie schon erwähnt, zum Austausch von genealogischen Daten zwischen verschiedenen Programmen gedacht: Diese Programme haben jeweils eine eigene Datenstruktur, können aber das GEDCOM-Format im-portieren und/oder exportieren. GEDCOM selbst bietet also keine Organisation zum Aus-tausch der Daten, sondern ist ein Standard, der beschreibt, in welcher Form komplexe genea-logische Daten gespeichert werden können. [Kei_a], [Kei_b]

Während die erste Version von GEDCOM nur Export und Import der wichtigsten Elemente einer Genealogiedatenbank, wie Name, Geburtsdatum und ort, Heiratsdatum und ort etc. erlaubte, führte die Weiterentwicklung dieses Standards parallel zu der der Genealogiepro-gramme dazu, daß in der aktuellen Version 5.5 auch Elemente wie Bilder, Töne und Video berücksichtigt werden. Somit können in einer GEDCOM-Datei einzelner Individuen Verwei-se auf die genannten multimedialen Elemente eingefügt werden, die in Bezug zu den Perso-nen stehen. Mit GEDCOM 5.5 wird seit 1996 gearbeitet; der Standard wurde im Januar 1996 verabschiedet. Zur Zeit steht GEDCOM-Version 6.0 in Entwicklung; eine Beta-Spezifikation wurde bereits vorgestellt. [GHGRBb], [Kei_a], [Kei_b]

Eine GEDCOM-Datei ist eine reine Textdatei, die in Datensätze unterteilt ist. Dabei zeigt jeder Datensatz einen hierarchischen Aufbau. Man unterscheidet drei Datensatz-Typen:

1. HEAD Jede GEDCOM-Datei beginnt mit einem HEAD-Datensatz, der allgemeine Informationen über die Datei liefert.

2. INDI Es folgen INDI-Datensätze, in denen die Informationen zu den Personen gespeichert werden.

3. FAM In den FAM-Datensätzen werden die Verwandschaftsverhältnisse zu den einzelnen Personen angegeben.

Jede Zeile eines Datensatzes beginnt mit einer Zahl und einem Tag. Die erste Zeile beginnt mit einer 0 und dem HEAD-Tag. Durch die 0 wird dabei der Anfang eines neuen Datensatzes gekennzeichnet. Bei FAMI- und INDI-Datensätzen steht vor dem Tag der ersten Zeile eine ID, anhand der alle Datensätze unterscheidbar sind. [Kei_a], [Kei_b], [GHGRBb]

Die Informationen in den Datensätzen beginnen mit einer 1; sobald weitere Informationen zu einer Zeile folgen, wird eine weitere hierarchische Stufe eingefügt. Die jeweilige Art der ge-speicherten Information ist dabei anhand des Tags zu erkennen. Z.B. verweist der Tag OCCU (von engl. occupation) im INDI-Datensatz auf die Angabe des Berufs der betreffenden Per-son. [Kei_a], [Kei_b], [Reu01b], [GHGRBb], [Kei_a], [Kei_b]

Page 20: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

16

2.3 Datenbanken mit genealogischem Hintergrund

Datenbanken mit genealogischem Hintergrund sind im Internet international vertreten. Darun-ter befinden sich die unmittelbar mit der Genealogie in Verbindung stehenden Datenbanken, aber auch die von Genealogen als Hilfsmittel benutzten Namens- und Ortsdatenbanken.

Genealogische Datenbanken werden von verschiedenen Vereinen angeboten. Als Beispiel seien die Mitgliederdatenbanken genannt. In diesen sind die Forschungsgebiete der jeweiligen Mitglieder erfaßt, wodurch die genealogische Forschung in bestimmten Territorien unter ver-schiedenen Vereinen, die zusammenarbeiten, aufgeteilt ist. In den Datenbanken kann zwar nach Orten und Familiennamen gesucht werden, jedoch werden für den allgemeinen Zugriff nur die Datensätze angezeigt, die von den jeweiligen Forschern zur Veröffentlichung freige-geben wurden. Folgende Vereine z.B. verwalten eine Mitgliederdatenbank, die online abruf-bar ist: AGoFF

Arbeitsgemeinschaft ostdeutscher Familienforscher e.V., AMF - Arbeitsge-meinschaft für mitteldeutsche Familienforschung e.V., DVG

Dresdner Verein für Genealo-gie e. V., und viele weitere. Sämtliche dieser Datenbanken sind über Links auf der Seite http://www.genealogienez.de/bookmarks /Genealogie.htm

zu erreichen. Dort sind auch Links zu weiteren Mitgliederdatenbanken vorhanden. Desweiteren existiert die FOKO-Datenbank des Vereins für Computergenealogie, die über http://foko.genealogy.net/

zu erreichen ist, so-wie weltweit eine Vielzahl von GEDCOM-Datenbanken verschiedener Organisationen. Als

0 HEAD Beginn des HEAD-Datensatzes 1 FILE gjoreski.ged Name der GEDCOM-Datei 1 GEDC Beginn der GEDCOM-Informationen 2 VERS 5.5 Version 1 CHAR ANSI benutzter Zeichensatz 1 LANG German verwendete Sprache 0 @0@INDI Beginn des INDI-Datensatzes mit Code 0 1 NAME Kathrin/Obrusnik/ Name des Individuums

1 FAMS @F1@ Person 0 gehört zu Familiensatz F1 0 @1@INDI Beginn des INDI-Datensatzes mit Code 0 1 NAME Marijan/Gjoreski/ Name 1 SEX M Geschlecht 1 BIRT Beginn der Geburtsdaten 2 DATE 19751016 Geburtsdatum 2 PLAC Bedburg Geburtsort 1 OCCU Student Beruf 1 FAMS @F1@ Person 1 gehört zu Familiensatz F1 0 @F1@ FAM Beginn des FAMI-Datensatzes mit Code F1 1 HUSB @I1@ Mann Person mit Code 1 1 WIFE @I0@ Frau Person mit Code 2 1 CHIL @I3@ Kind Person mit Code 3 1 CHIL @I4@ Kind Person mit Code 4 1 MARR Beginn Heiratsdaten 2 DATE 08.12.2002 Heiratsdatum 2 PLAC Bonn Ort der Heirat

Abb. 2.3.2.1. Beispiel einer Gedcom-Datei

Page 21: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

17

erstes ist hier die unter www.FamiliySearch.com zugängliche Datenbank mit über 650 Millio-nen Namenseinträgen zu nennen, die unter Verwaltung der Mormonen steht, welche, wie be-reits erläutert, den GEDCOM-Standard entwickelt haben. Weitere Beispiele sind die Daten-bank der Organisation WorldConnect unter http://worldconnect.-genealogy.rootsweb.com/

mit über 321 Millionen Namenseinträgen, und speziell für den deutschsprachigen Raum GEDBAS (die genealogische Datenbasis), eine deutschsprachige GEDCOM-Datenbank, unter http://gedbas.genealogy.net/index.jsp. In GEDBAS sind wie in den anderen Datenbanken die GEDCOM-Datensätze enthalten, nicht die Datensätze selbst abrufbar, sondern es ist nur die Suche in diesen Datensätzen möglich. Zu diesem Zweck gibt es ein Suchfenster, in dem es möglich ist, unter bestimmten Suchkriterien nach Personen zu suchen. In GEDBAS sind dies Vor- und Zuname der Person, ihrer Eltern und des Partners; außerdem kann der Ort und ein Datum eingegeben werden. [GHGRBb],

Historische Adreßbücher sind anerkanntermaßen eine weitere wichtige Sekundärquelle für den Familienforscher. Die aus der systematischen Erfassung von historischen Adreßbüchern gewonnenen Datenbestände werden für viele deutsche Orte und ehemals zu Deutschland ge-hörende Gebiete in einer Datenbank online zur Verfügung gestellt.

Weitere für Genealogen wichtige Datenbanken sind Namensdatenbanken; unter diese fallen neben den Personen-Suchportalen auch Online-Telefonbücher verschiedener Anbieter, eMail-Verzeichnisse oder Suchmaschinen wie Google oder Yahoo, die ebenfalls wichtige Informa-tionen bei der Suche nach Ahnen oder Verwandten liefern können. Bei einer Ortsdatenbank wie GOV

Das genealogische Ortsverzeichnis

erhält man als Antwort auf eine Anfrage nach einem Ort den offiziellen Namen des Ortes, die Postleitzahl (die aktuelle sowie die alte, vor der Wiedervereinigung Deutschlands gültige), die staatliche Zugehörigkeit und einen Lo- cator Code.

Abb. 2.3.2.2. Suchfenster für eine GEDCOM-Datenbank

Page 22: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

18

Wenn zu den eingegebenen Daten Einträge in der Datenbank existieren, werden alle Sucher-gebnisse in Kurzform aufgelistet und einer der Datensätze kann zur Darstellung mit allen be-kannten Informationen als Datenblatt geöffnet werden. Beides ist in Abb. 2.4.2 und 2.4.3 zu sehen. In ähnlicher Art und Weise ist die Suche auch in anderen Datenbanken geregelt; es unterscheidet sich nur die Optik. Selbst die internationalen Suchmasken für die jeweiligen Datenbanken sind ähnlich aufgebaut; es existieren nur je nach Organisation zusätzliche Such-optionen, die eingetragen werden können. Zu nennen sind hier beispielsweise der Todesort oder das Todesdatum, welche in der speziellen GEDBAS-Suchmaske nicht berücksichtigt werden.

Abb. 2.4.2 GEDBAS-Suchergebnisse

Page 23: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

19

Als Beispiel für eine genealogische Hilfsdatenbank sei das genealogische Ortsverzeichnis genannt, bei dem zu dem Namen einer Stadt oder eines Dorfes weitere für Genealogen wich-tige Daten ausgegeben werden. Diese Hilfsmittel sind nötig, um Daten aus sehr frühen Zeit-epochen, in denen Ortsnamen offiziell bzw. von Einwohnern anders geschrieben wurden, mit heutigen Orten identifizieren zu können. In Abb. 2.4.4. ist die Eingabemaske zur Suche eines Ortes in Deutschland gezeigt, dabei ist auch die phonetische Suche (d.h. nach Orten, die so klingen wie der gesuchte) möglich. Als Ergebnis wird der in dem Beispiel gesuchte Ort mit seiner aktuellen Zugehörigkeit, der Postleitzahl (dabei wird die aktuelle ebenso wie die ehe-malige westdeutsche Postleitzahl angegeben) und einem Code (Locator) ausgegeben, wie er beispielsweise in FOKO zur Kennzeichnung von Orten benutzt wird.

Abb. 2.4.4 Suchmaske im Ortsverzeichnis

Abb. 2.4.3 GEDBAS-Datenblatt

Page 24: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

20

2.4 Visualisierungsmöglichkeiten für genealogische Daten

Genealogische Daten sind verschiedentlich darstellbar. Es sind dabei die Darstellung in Text-form und die graphische Darstellung zu unterscheiden. Am weitesten verbreitet ist die erstere, da auf diese Weise jedermann seinen Datensatz aufzeigen kann, ohne sich mit graphischen Problemen zu belasten. Dies ist vor allem darauf zurückzuführen, daß sehr viele Personen ohne umfangreiche Computerkenntnisse in der graphischen Visualisierung ihre Daten im In-ternet darstellen möchten, aber nur die einfachsten Möglichkeiten, die zur Darstellung in Textform nötig sind, beherrschen.

Als einfachste Darstellungsform, die auch im Internet sehr weit verbreitet ist, ist die Stammli-ste zu nennen. Dazu wird bei dem ältesten bekannten Ehepaar begonnen, und jeder Nach-komme einer Person wird um einen bestimmten Abstand nach rechts eingerückt. Das folgende Beispiel ist zur Übersichtlichkeit verkürzt.

Abb. 2.4.5. Suchergebnis im Ortsverzeichnis

Georg Ludwig, Elector of Hannover , succeeded his cousin Queen Anne as GEORGE I, King of Great Britain and Ireland 1 Aug 1714; he was b.Osnabrück 28 May 1660 and d.nr Osnabrück 11 Jun 1727; he m.Celle 21 Nov 1682 (separated 1694) Sophia Dorothea Dss of Braunschweig-Lüneburg (Celle 5 Sep 1666-Ahlden 2 Nov 1726)

1a) GEORGE II Augustus, King of Great Britain and Ireland (Hannover 30 Oct 1683- 25 Oct 1760); m. 22 Aug 1705 Karoline Margravine of Brandenburg-Ansbach (1 Mar 1683-St.James's Palace 20 Nov 1737)

1b) Frederick Lewis, Pr of Wales (Hannover 20 Jan 1707-Leicester House 20 Mar 1751); m.St.James's Palace 8 May 1736 Auguste Pss of Saxe-Gotha (Gotha 30 Nov 1719-Carlton House 8 Feb 1772)

1c) Augusta, Pss Royal (St.James's Palace 31 Jul 1737-London 23 Mar 1813); m 16 Jan 1764 Karl II, Duke of Braunschweig (9 Oct 1735- 10 Nov 1806)

2c) GEORGE III William Frederick, King of Great Britain (4 Jun 1738-Windsor Castle 29 Jan 1820); m. 8 Sep 1761 Charlotte Dss of Mecklenburg-Strelitz (19 May 1744- 17 Nov 1818)

8b) Louisa (Leicester House 7 Dec 1724- 8 Dec 1751); m. Altona 11 Dec 1743 King Frederik V of Den-mark and Norway (Copenhagen 31 Mar 1723- 14 Jan 1766)

2a) Sophia Dorothea (Hannover 16 Mar 1687-Monbijou, nr Berlin 28 Jun 1757); m.Berlin 17 Nov 1706 King Frie-drich Wilhelm I of Prussia (Berlin 15 Aug 1688-Berlin 31 May 1740)

Abb. 2.4.1 Stammliste

Page 25: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

21

Zu dieser Darstellung als Stammliste gibt es weitere ähnliche Varianten. Abweichend von dem ersten Beispiel können auch Linien in die Darstellung einbezogen werden, die die Zuge-hörigkeit der Daten als optisches Hilfsmittel unterstreichen. In den meisten Fällen sind der Liste nicht so viele Informationen zu entnehmen wie in dem obigen Beispiel der englischen Königsfamile, sondern nur Name, Vorname, das Geburts- und das Sterbedatum. Je nach Vor-liebe wird ein Heiratsdatum, Geburts-, Sterbeort oder eine andere gewünschte Information mit angegeben. [Rud], [VC], [GHGRBa], [GHGRBc]

Bei einer anderen Möglichkeit der Visualisierung wird mit einem Ehepaar begonnen, und jede weitere Generation wird durch eine Markierung abgetrennt. In der zweiten Generation stehen somit die Kinder dieses Ehepaars, in der dritten Generation die Enkel, wobei diese jeweils nach ihren Eltern geordnet sind und bei jedem Enkel aufgeführt ist, wer die Eltern sind.

Stammvater:

1 (1) Kirko Goreski, * 20.02.1949 in Bazernik oo 1973 (2) Olgica Neistorovska, *13.09.1953

I. Generation:

2 Kinder des (1) Kirko Goreski I 1-2

I1 (3) Marijan Gjoreski, * 16.10.1975 in Bedburg oo 02.01.2002 (5) Kathrin Obrusnik, *31.12.1978 in Köln

I 2 (4) Manuela Gjoreski * 16.09.1978 in Bedburg oo 02.01.2003 (6) Tom Smirnoff, *11.02.78

II. Generation:

2 Kinder des (3) Marijan Gjoreski II 1-2; 2 Kinder der (4) Manuela Gjoreski II 3-4

II 1 (7) Alexander Gjoreski, * 14.06.2003

II 2 (8) Maya Gjoreski, * 14.06.2003

II 3 (9) Alexandra Smirnoff * 06.01.2004

II 4 (10) Natascha Smirnoff, * 06.01.2004

Person 1 Partner 1 von Person 1

Kind 1 von Person 1 und Partner 1 Kind 2 von Person 1 und Partner 1

Kind x von Person 1 und Partner 1 Partner von Kind x

Partner m von Person 1 Kind von Person 1 und Partner m

Abb. 2.4.2 Darstellung einer Stammliste mit Linien

Page 26: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

22

Dieser Darstellung ähnelt der Familienbogen oder auch Familiengruppenbogen. Der Unter-schied zur oben beschriebenen Darstellung besteht darin, daß nur ein Ehepaar mit seinen Kin-dern eingetragen wird. Bei einigen Familienbögen werden auch die Eltern des Ehepaars, je-doch nur namentlich und eventuell mit Geburts- und Sterbedatum, erwähnt. [GHGRBa], [GHGRBc], [VC]

Der Familienbogen beginnt mit den Informationen des Ehemannes und den Informationen der Ehefrau. Meistens sind dies Name, Vorname, Geburts- und gegebenenfalls Sterbedatum und einige benutzerabhängige Eintragungen wie Beruf oder Religion. Diesen Daten folgen die Informationen zu den einzelnen Kindern. Familienbögen müssen nicht so ausführlich wie der hier als Beispiel dargestellte sein; es ist auch möglich, daß die Kinder nur namentlich ohne ihre jeweiligen Ehepartner und nur mit Geburts- und gegebenenfalls Sterbedatum erwähnt werden. [VC]

Zu den graphischen Visualisierungsmöglichkeiten gehören weiterhin auch die Ahnentafel und der Stammbaum. Es gibt eine Vielzahl von Möglichkeiten bei der Darstellung eines Stamm-baums. Eine ausführliche Diskussion findet im Kapitel 4 statt, in dem die Alternativen vorge-stellt werden. Die Ahnentafel wird manchmal in Anlehnung an einen Stammbaum in den Hin-tergrund eines Baumes integriert, so daß der Proband die Wurzel bildet und alle seine Vorfah-ren folgen; dabei werden nur die direkten Eltern berücksichtigt, wie es bei einer Ahnentafel üblich ist. [GHGRBa], [GHGRBc]

Abb. 2.4.3. Familienbogen [VC]

Page 27: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

23

Abb. 2.4.5 Stammbaum

Franziska Moll

Alfred Müller

Katherina Obermann

Adelheit Frenzen

Hubert Josef Rüttgers

Daniel Josef Rüttgers

Hubert Josef Rüttgers

Helga Müller

Daniel Josef Rüttgers

Abb. 2.4.4. Ahnentafel mit vier Generationen

Anne, Pss. Royal

Willem IV

Frederick Lewis

Pss. Auguste

Caroline Elizabeth George William WilliamAugustus

Mary Louisa

Frederik VFriedrich II

Amelia SophiaEleanor

GEORGE II Augustus

Karoline Margravine

Sophia Dorothea

Friedrich Wilhelm I

Sophia Dorothea

Georg Ludwig

Page 28: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

24

3 Datenbanken und Java Grundlagen

3.1 Grundlagen von Datenbanken

Ein DBMS (Daten Bank Management System) besteht aus einer Sammlung von Programmen, das Datenbanken eines bestimmten Typs (relational, objektorientiert, ) verwalten kann. Dabei ist eine Datenbank (DB) eine Menge von Daten, die in Beziehung zueinander stehen. Zusammen kann man sie als DBS (Datenbanksystem) bezeichnen. Ein Datenmodell wird durch die Menge von Skizzen zur Modellierung beschrieben. Mit ihm werden die in der Da-tenbank enthaltenen Daten formal beschrieben und ihre Beziehungen zueinander aufgezeigt. Das Modell dient zur Modellierung von beliebigen Anwendungen, darunter beispielsweise Tabellen, Funktionen, Typen und Klassen. Es existiert eine Vielzahl von Datenmodellen; in dieser Arbeit wird allerdings nur das am weitesten verbreitete relationale Modell betrachtet. Weitere bekannte Modelle sind unter anderem das Entity-Relationship-Modell, welches ein rein konzeptionelles Modell ist; eher historische Beispiele und kaum noch verwendet sind das Netzwerkmodell und das hierarchisches Modell. Neben dem relationalen Modell existieren unter anderem das objektrelationale und das objektorientierte Modell. [KE97], [Man98]

Nachdem die Auswahl eines bestimmten Modells getroffen wurde, ist desweiteren noch ein Datenbankschema nötig. Ein Datenbankschema ist anwendungsabhängig und stellt eine Struktur des Datenmodells, die eine bestimmte spezielle Anwendung beschreibt, dar. Mit Hil-fe des anwendungsunabhängigen Datenbankmodells wird also ein anwendungsabhängiges Datenbankschema entwickelt. Eine derartige Entwicklung des Datenbankschemas ist sinnvoll, damit im laufenden Betrieb in der Regel keine Änderungen am Schema notwendig werden, bzw. damit, falls sie doch nötig sein sollten, das Schema sich nur in sehr großen Zeitspannen ändert. Eine solche auch als Schema-Evolution bezeichnete Änderung könnte durch Integri-tätsbedingungen erschwert werden, so daß manche Änderungen anhand der schon in der Da-tenbank existierend Daten und der dazugehörigen Integritätsbedingungen erst gar nicht zuge-lassen werden. [KeEi97],[Man98], [Voss99]

Existiert für eine bestimmte Anwendung ein Datenbankschema, so werden reale Daten in die zugehörige Datenbank geladen. Diese auch als Populieren der Datenbank bezeichnete Aktion führt zum Datenbankzustand. Ein Datenbankzustand oder auch eine Datenbankausprägung ist wiederum die Gesamtheit aller realen Daten (d.h. Daten aus der realen Welt), die in der Datenbank gespeichert sind. Eine Datenbank enthält Daten, die möglicherweise vertraulich oder überflüssig sind und für bestimmte Benutzergruppen ausgeblendet werden sollen. Für solche Fälle gibt es externe Schemata, die auf der logischen Ebene der Datenbank die Daten in Subschemata anzeigen, ohne das Schema des Datenmodells zu verändern. Sie werden auch als Views (Sichten) bezeichnet. Das Ausblenden von vertraulichen und irrelevanten Informa-tionen ebenso wie der Schutz des Benutzers vor möglichen Schema-Evolutionen, die ein View nicht betreffen, bezeichnet man als logische Datenunabhängigkeit. Es existiert in einer Datenbank ferner eine physische Datenunabhängigkeit, was bedeutet, daß der Benutzer von der Datenspeicherung und des Datenzugriffs abgeschirmt wird; er kennt das logische Schema der Datenbank und muß sich mit der physischen Speicherverwaltung nicht befassen. [KeEi97], [Man98], [Voss99]

Die Daten einer Datenbank werden im 3-Schema-Konzept (oder auch 3-Schichten-Modell) beschrieben. Das 3-Schichten-Modell dient dazu, die Unabhängigkeit der Daten für die An-wendungspogramme zu gewährleisten, die in drei Ebenen aufgeteilt werden: Es existiert eine konzeptuelle Ebene, in der die logische Gesamtstruktur aller Daten mitsamt ihrer Beziehun-gen dargestellt werden. In der internen Ebene werden die spezielle Speicherstruktur sowie

Page 29: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

25

die Speicherverwaltung und Zugriffsmechanismen einer Datenbank beschrieben. Die dritte und letzte, die sogenannte externe Ebene ist die Benutzersicht. Dort werden die Daten unab-hängig von Struktur und Schema in einem speziell auf den Benutzer zugeschnittenen externen Schema dargestellt. Zwischen diesem externen Schema und dem konzeptionellen Schema existiert somit die logische Datenunabhängigkeit; zwischen dem konzeptionellen Schema und der internen Ebene wiederum gilt die physische Datenunabhängigkeit. [KeEi97],[Man98]

Eine Datenbanksprache umfaßt die Datenbeschreibungssprache (oder auch Data Definiti-on Language, DDL), die zur Darstellung eines Schemas dient, und die Datenmanipulations-sprache (DML, Data Manipulating Language) zur Formulierung von Anfragen, Änderungen und Eingaben. [KeEi97]

3.1.1 Das relationale Modell und SQL

Relationale Datenbanksysteme sind heutzutage marktbeherrschend. Im relationalen Daten-modell werden Informationen in Tabellen (Relationen) abgelegt. Eine Tabelle besitzt einen Tabellennamen (kursiv) sowie mehrere Feldnamen (Spalten). Letztere werden als Attribute (Fettdruck) bezeichnet. Durch den Wertebereich eines Attributes wird festgelegt, welcher Art die mögliche Eintragung ist. Ein Datensatz, d.h. eine Zeile in einer Tabelle, wird als Tupel (umrandet) bezeichnet. Eine Spalte eines Tupels bezeichnet man als Wert. [KeEi97], [Man98], [Voss99]

externe Ebene

Logische Datenunabhängigkeit

physische Datenunabhängigkeit

Konzeptionelle Ebene

Interne Ebene

Abb. 3.1 drei Schichten Modell

Page 30: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

26

Im folgenden soll eine kurze Einführung in SQL (Structured Query Language ) gegeben wer-den, die allerdings aus Zeit- und Platzgründen nicht vollständig sein kann. Die Einführung erfolgt anhand von SQL2, wobei die Anfragemöglichkeit mit SQL als Schwerpunkt behandelt wird.

SQL ist eine strukturierte Anfragesprache für relationale Datenbanken. Der erste SQL-Standard wurde 1986 von der ANSI verabschiedet, 1989 revidiert, und wurde als SQL1 bzw. SQL89 bekannt. Trotz dieses Standards existierten auch noch weiterhin verschiedene SQL-Implementierungen. Erst mit SQL2, auch als SQL92 bekannt, wurde eine Norm standardi-siert, an die sich die meisten Hersteller halten konnten. SQL3 schließlich wurde 1999 verab-schiedet und ist deshalb auch unter SQL: 1999 bekannt. Dieser letzte Standard wurde mit Konzepten wie Rekursion und objektorientierten Ansätzen erweitert. [Man98], [NL_5]

SQL kann als stand alone -Sprache benutzt werden oder auch eingebettet in eine allgemeine Programmiersprache. SQL ist eine vollständige DB-Sprache, die als DDL-Teilsprache oder auch als DML-Teilsprache mit Anfrage- und Änderungsmöglichkeiten verwendet werden kann. [Man98]

Grundlagen der SQL-DDL

Die CREATE TABLE-Anweisung dient zur Definition eines neuen Relationsschemas inklu-sive Attribute, Wertebereiche und Integritätsbedingungen (Anlegen einer Tabelle). In Abb. 3.2.1 wurde die Tabelle Professoren

mit den drei Attributen: PersNr, Name und Rang gene-riert, wobei hinter jedem Attribut der Wertebereich angegeben wird. Als Integritätsbedingung wird bei den ersten beiden Attributen not null festgelegt. Die DROP TABLE-Anweisung entfernt eine Tabelle aus dem Schema. Die ALTER TABLE-Anweisung dient zum Ändern der Attribute, Wertebereiche oder Integritätsbedingungen. [Man98]

Abb. 3.1 Tabelle einer relationalen Datenbank

Vögel Gruppe Art Größe Status Greifvögel

Habicht ~Mäusebussard Teilzieher

Greifvögel

Steinadler >Mäusebussard Jahresvogel

Greifvögel

Turmfalke <Rabenkrähe Teilzieher

Singvögel

Wiesenpieper

< Haussperling Teilzieher Singvögel Zaunkönig < Haussperling Jahresvogel Singvögel Nachtigall >Haussperling Sommervogel

Page 31: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

27

Es existieren noch einige weitere DDL-Operationen zur Wertebereichs-, Index- und Sichtde-finition, auf die hier nicht weiter eingegangen wird. [Man98]

Grundlagen der SQL-DML

Mit der INSERT-Anweisung werden einzelne Tupel oder eine Tupelmenge in eine Tabelle eingefügt. Fehlende Attributwerte werden mit Nullwerten aufgefüllt. Da keine Attribute an-gegeben werden, fügt man sie in der gleichen Reihenfolge wie in der Schemadefinition ein. Der DELETE-Operator löscht eine Tupelmenge oder einzelne Tupel, die im WHERE-Teil spezifiziert werden; falls der WHERE-Teil nicht angegeben ist, werden sämtliche Inhalte der Relation gelöscht. Die UPDATE-Anweisung ist nichts anderes als eine nacheinander ausge-führte DELETE- und INSERT-Anweisung. Sie kann also als syntaktischer Zucker

angese-hen werden. Die UPDATE-Anweisung kann bedingungslos ausgeführt werden; in diesem Fall werden alle Tupel der Tabelle geändert. Um nur bestimmte Tupel einer Tabelle zu ändern, wird dieses im Bedingungssteil separat angegeben. Beispiele für die Operationen sind in Abb. 3.2.2 angegeben. [Man98], [KeEi97]

DELETE FROM Professoren WHERE Gehalt >5000

UPDATE Professoren SET Gehalt = Gehalt + 400

Alle Professoren bekommen eine Gehaltserhöhung.

UPDATE Professoren SET Gehalt = Gehalt + 400 WHERE Rang = C4

(Nur Rang C4-Professoren bekommen eine Gehaltser-höhung.)

INSERT INTO Professoren VALUES (1250, Manthey , C4 , 4000);

INSERT INTO ProfessorenC4 SELECT * FROM Professoren WHERE Rang = C4

* Bedeutet, alle Attribute sind gewählt.

Abb. 3.2.2 UPDATE, INSERT und DELETE Beispiele

CREATE TABLE Professoren (PersNr integer not null, Name varchar (20) not null Rang character (2));

DROP TABLE Professoren;

ALTER TABLE Professoren ADD COLUMN Gehalt INTEGER;

ALTER TABLE Professoren ALTER COLUMN Name VARCHAR(30);

Abb. 3.2.1

Page 32: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

28

Anfragen mit SQL

Anfragen werden in SQL mit SELECT-FROM-WHERE-Blöcken gestellt. Der WHERE-Teil ist optional und kann daher entfallen. [Man98]

In den SELECT-Teil kommen die auszugebenden Attribute mit expliziter Relationszugehö-rigkeit, falls es nicht eindeutig ersichtlich ist, zu welcher Relation sie gehören. Der FROM-Teil beschreibt, welche Relationen an der Anfrage beteiligt sind und teilt ihnen für die Anfra-ge einen Namen zu, falls z.B. eine Relation mehrfach auftritt. [Man98]

Es ist zu beachten, daß Ergebnisse von Anfragen in SQL keine Relationen sind, sondern Mul-ti-Mengen. Sie können Duplikate enthalten. Um Duplikate zu vermeiden, muß dies explizit mit dem Schlüsselwort DISTINCT gefordert werden. [Man98]

SELECT-Blöcke sind auch mit den folgenden drei algebraischen Operatoren kombinierbar: 1.

(Schnitt in SQL2 INTERSECT ) 2.

(Vereinigung IN SQL2 UNION ) 3.

(Minus in SQL2 EXCEPT)

Auf diese Weise können mehrere Anfragen durchgeführt und die Ergebnisse schließlich ent-weder vereinigt, nur die gleichen betrachtet, oder bestimmte abgezogen werden.

SELECT-Blöcke können auf drei Arten mit Operatoren im WHERE-Teil geschachtelt wer-den:

1. Schachtelung mit dem IN-Operator in WHERE-Teil, um zu prüfen, ob Attribute in dem geschachtelten SELECT-Block enthalten sind.

2. Schachtelung mit Vergleichsoperatoren mit Quantoren; folgende sechs Quantoren exi-stieren, gefolgt von ALL oder SOME :

SELECT Geburtsort FROM Person

SELECT DISTINCT Geburtsort FROM Person

GEBURTSORT Bonn Bonn Bonn

Bornheim Köln Köln Köln

GEBURTSORT Bonn

Bornheim Köln

Links eine Multimenge und oben eine Menge.

4. < 5. = 6. >

1.

2.

3. < >

SELECT xi1.A1, , Xim.Am

FROM R1 x1, , Rn xn

WHERE Bedingung

Page 33: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

29

3. Schachtelung mit dem Existenzquantor EXISTS; analog dazu wird NOT EXISTS

angewendet. SQL kennt keinen Allquantor; deshalb müssen alle Anfragen mit Hilfe des aus der Prädikatenlogik bekannten Zusammenhangs x(P) = x( P) umgewan-delt werden.

Desweiteren existieren noch andere Operatoren in SQL, die hier nicht genauer beschrieben werden. Dazu gehört die Aggregatfunktionen COUNT zur Erfassung der Anzahl auftretender Werte für ein Attribut. Im Spezialfall COUNT (*) werden die Anzahl der Tupel gezählt und mit DISTINCT mehrfach vertretene Werte ignoriert. Für numerische Werte berechnet SUM die Summe aller Werte eines Attributes; AVG ermittelt den arithmetischen Mittelwert eines Attributes und MAX bzw. MIN gibt den größten bzw. kleinsten Wert eines numerischen At-tributes aus. Nullwerte werden bei den Aggregatfunktionen nicht berücksichtigt. [KeEi97], [Man98]

Joins lassen sich seit SQL2 auch direkt formulieren und müssen nicht wie in früheren SQL-Versionen durch den Anwender selbst simuliert werden. [Man98]

1. CROSS JOIN 2. NATURAL JOIN 3. JOIN 4. LEFT OUTER JOIN 5. RIGHT OUTER JOIN 6. FULL OUTER JOIN

Bei den letzten vier Joins wird im ON-Teil die Join-Bedingung angegeben.

Mit GROUP BY ist es möglich, sich Ergebnisse von Anfragen gruppiert ausgeben zu lassen. Zusätzlich kann HAVING als Bedingung für die Gruppierungsanweisung angegeben werden. SQL bietet die Möglichkeit, die Attribute in der Antwortmenge aufsteigend (ASC) oder ab-steigend (DESC) zu sortieren. [KeEi97], [Man98]

SELECT Name FROM Person WHERE ID IN (SELECT ID

FROM Professoren WHERE Name= Manthey )

.

SELECT Name FROM Professor WHERE EXISTS (SELECT * FROM Professor

WHERE PersNr

= 15466)

SELECT Name FROM Professor WHERE PersNr<= ALL

(SELECT PersNr FROM Professor);

Namen der Professoren mit der kleinsten Personalnummer

Page 34: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

30

3.2 Access

Access ist ein DBMS und seit 1992 ein Teil von Microsoft Office. Die neueste Version ist Access 2003 aus dem Office 2003 -Paket. Access ist für kleinere Netzwerke oder Einzel-platz Desktops geeignet. Die Spezifikation von Access gibt die Anzahl der Benutzer, die gleichzeitig auf die verwaltete Datenbank zugreifen können, mit zweihundertfünfundfünfzig an, jedoch ergibt sich durch die Mehrbenutzersynchronisation eine in der Praxis erheblich geringere Zahl. Durch die Verwaltung der Sperren bei Datenänderungen wird Access bei mehr als zehn Benutzern zu langsam. Sollte die Datenbank mehr als 100.000 Einträge besit-zen oder regelmäßig mehr als zehn Benutzer auf die Datenbank zugreifen, sollte Access mit einem SQL-Server gekoppelt werden. Für Anwendungen im Internet bietet Access einen gro-ßen Vorteil, da die meisten Internet Service Provider einen MS Access-ODBC-Treiber instal-liert haben, wohingegen ODBC-Treiber für SQL-Server nicht immer angeboten werden bzw. teuer gekauft werden müssen. [NL_2],

Der Aufbau von Microsoft Access gestaltet sich so, daß die Benutzeroberfläche als Interface von der Jet-Engine, die alle elementaren Datenbankfunktionen enthält, getrennt ist. Diese Jet-Engine wird von allen Microsoft-Office-Programmen und Visual-Basic unterstützt und darf im Gegensatz zum restlichen Microsoft-Access-Paket frei weitergegeben werden. Der Jet-Engine ist es möglich, auch auf andere Datenbank-Formate wie dBase, Paradox und weitere zuzugreifen. Dazu werden ISAM-Treiber (Index-Sequential-Access-Method) benötigt. Da-tenbanken, die nicht mit der ISAM-Technik ansprechbar sind, werden über ODBC angespro-chen. [Wik_8],

3.3 JDBC/ODBC

ODBC (Open DataBase Connectivity) steht für offene Datenbankanbindung. Hierbei han-delt es sich um eine standardisierte Methode, die den Zugriff auf Datenbanken erlaubt, ohne zu berücksichtigen, mit welchem Programm oder mit welchem Betriebssystem der Zugriff erfolgt. ODBC beruht auf einer Spezifikation, die durch die SAG (SQL-ACCESS-Group) unter Aufsicht von Microsoft erstellt wurde. JDBC (Java DataBase Connectivity) stellt ei-nen Satz von Klassen und Methoden zur Nutzung relationaler Datenbanksysteme dar. Im Ge-gensatz zu ODBC ist JDBC plattformunabhängig. JDBC erlaubt nur Kommunikation mit Da-tenbanksystemen, die ebenfalls JDBC unterstützen. [Ull03], [Wit_a], [Wit_a], [ODBCa] [Job02], [Hag96]

Das ODBC-Interface bietet Funktionen, um einer Anwendung zu erlauben, sich mit einer Da-tenbank zu verbinden. Diese Verbindung dient zur Übertragung von SQL-Befehlen an die Datenbank und zum Empfang der Ergebnisse. ODBC benutzt eine Syntax, die auf X/OPEN und SAG basiert. Die ODBC-Verbindung besitzt eine Menge von Fehlercodes, um dem An-wender das Suchen nach Fehlern zu ermöglichen. Die Architektur von ODBC wird in vier Schichten gegliedert: [MSH02], [Ull03], [Job02], [Hag96], [ODBCa]

1 Die ODBC-Applikation; sie ist für die SQL-Ausdrücke und den Empfang der Er-gebnisse zuständig.

2 Der ODBC-Treiber-Manager; er ist zum aktivieren des erforderlichen Treibers für die Applikation zuständig, wobei eine Applikation auf verschiedene DBMS gleichzeitig zugreifen kann. Der Treiber-Manager verarbeitet ODBC-Anfragen und überprüft ihre Parameter.

Page 35: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

31

3 Der ODBC-Treiber; er stellt die Verbindung zum DBMS her und sendet die An-

fragen an das System. Desweiteren liefert er die Ergebnisse der Anfragen zurück. Sollte ein Fehler auftreten, gibt er die Fehlermeldung an den Benutzer zurück.

4 Die Datenquelle; diese besteht aus den Daten mit den zugehörigen Informationen für den Zugriff auf diese Daten aus anderen Programmen und Datenbanken, die ODBC unterstützen.

Die API von ODBC kann in drei Ebenen gegliedert werden

1. Core-API 2. Level 1-API 3. Level 2-API

In dem Core-API sind die Funktionen enthalten die jeder ODBC-Treiber unterstützt. Darin sind die Aufgaben zur Datenbankanbindung, zum Ausführen von SQL-Ausdrücken und zum Bearbeiten der Informationen eines Ergebnisses sowie die Standardfehlermeldungen enthal-ten. Es kann davon ausgegangen werden, daß jeder ODBC-Treiber diese Funktionen bietet. [MSH02], [Ull03], [Wit_a], [Wit_a], [Job02]

Das Level 1-API stellt Funktionen zur Verfügung, die es erlauben, mehr Informationen über die in der SQL-Anweisung angesprochene Tabellen des Datenbankschemas und die Ergebnis-se zu erhalten, dazu gehört die Genauigkeit von Datentypen und um welche Datentypen es sich handelt. Weiterhin kann die Datenverbindung konfiguriert werden, es können z.B. die unterstützten Treiberfunktionen abgefragt werden. Das Level 2-API dient hauptsächlich der Erhöhung der Performance, worunter auch die Optimierung der Anfragen fällt. [MSH02], [Ull03], [Wit_a], [Wit_a], [Job02]

Von den verschiedenen Treiberherstellern wird nicht jede der drei Ebenen unterstützt bzw. vollständig unterstützt. Dem Anwender bleibt oft nichts anderes übrig, als verschiedene Trei-ber auszuprobieren. [MSH02], [Ull03], [Wit_a], [Wit_a], [Job02]

Java kommuniziert über das JDBC mit dem DBMS. Falls JDBC nicht unterstützt wird, kann einfach eine ODBC-Bridge dazwischen gesetzt werden. Das JDBC Projekt wurde 1996 ge-startet und auch 1996 spezifiziert. Seit dem JDK 1.1 ist JDBC Bestandteil des Java-Core-Paketes. Mit JAVA 1.1x wird auch ODBC in das Java Core-Paket aufgenommen, da nur we-nige Datenbanksysteme JDBC direkt, jedoch fast alle Datenbanksysteme ODBC unterstützen. Eine JDBC-ODBC-Bridge gewährleistet, daß mit Java auf alle ODBC-Systeme zugegriffen werden kann. [MSH02], [Ull03], [Wit_a], [Wit_a], [Job02]

JDBC definiert aus Anwendersicht:

Klassen zum Absetzen der SQL-Befehle,

Klassen mit Metadaten,

Klassen zur Auswertung der Fehlermeldungen,

Klassen zur Bearbeitung der Ergebnisse der Abfragen,

allgemeine Zuordnungen von Java-Datentypen zu denen der DB und

den Ablauf zum Zugriff auf die Datenbank.

Page 36: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

32

3.4 Java AWT und Swing

Graphische Benutzerschnittstellen, auch GUI (Graphical User Interface) genannt, können in Java mit AWT (Abstract Window Toolkit) und Swing programmiert werden. Swing wurde ab Java 2 in dem Paket javax.swing als Teil des Java-Pakets implementiert; vorher war Swing eine optionale Komponente, die in Java 1.1 eingeführt wurde. Swing ist eine Erweiterung des AWTs; die Klassen, Methoden und Techniken wurden unter Swing verbessert und ausgebaut. Diese Verbesserung bringt jedoch einen Nachteil mit sich, nämlich in Bezug auf die Perfor-mance und den Ressourcenverbrauch. Swing-Anwendungen sind in der Regel langsamer, da sie mehr Speicher- und Prozessorressourcen benötigen als nur auf AWT basierende Anwen-dungen. Viele der Swing-Komponenten sind direkt vom AWT abgeleitet und besitzen densel-

Driver Manager

Connection

Statement

Result Set

DBMS

DB

while (next ()){ getXXX()

}

executeQuery

getConnection

createStatement

Darstellung der grundlegenden Abläufe von JDBC

Abb. 3.4.1 JDBC-Anbindung

Page 37: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

33

ben Namen, dem ein J vorangestellt wird. Somit entsprechen die AWT-Klassen Window, Frame, Applet und Dialog den Swing-Klassen JFrame, JWindow, JApplet und JDialog. Alle Oberflächenkomponenten sind in Swing von JCopmonent abgeleitet, dadurch sind sie gleich-zeitig Komponenten und Container. Sie sind alle, bis auf die vier oben erwähnten Komponen-ten, Lightweight-Komponenten, im Gegensatz zu den AWT-Komponenten, die Heavyweight-Komponenten sind. Heavyweight-Komponenten liegen auf der z-Achse über den Light-weight-Komponenten, sind immer rechteckig und werden immer deckend (engl. opaque) ohne transparente Bereiche gezeichnet. [MSH02], [Ull03]

Nun werden einige Komponenten vorgestellt, die auch im Rahmen dieser Diplomarbeit ver-wendet wurden. Zu Beginn wird das Erstellen eines Fensters beschrieben. [MSH02], [Ull03]

Die nun folgenden Beispiele werden nur noch in Swing vorgestellt. An ein Frame kann in wenigen Schritten ein Menü angefügt werden. Ein Fenster kann aber auch noch nicht ge-schlossen werden. Um dies zu ermöglichen, ist noch eine Erweiterung einzufügen. Unter Swing wird dieses mit der Zeile setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ermöglicht. [MSH02], [Ull03]

import.java.awt.*;

public class MakeFrame extends Frame {

public MakeFrame (String Title) { super(Title); setSize(200,100); setVisible(true);

}

public static void (String [] args) { new MakeFrame( Java Frame mit AWT );

} }

import.javax.swing.*;

public class MakeFrame extends JFrame {

public MakeFrame (String Title) { super(Title); setSize(200,100); setVisible(true);

}

public static void (String [] args) { new MakeFrame( Java Frame mit Swing );

} }

Abb. 3.4.1 Ein Frame mit AWT und Swing

Page 38: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

34

Mit new JMenuBar() wird eine Menüleiste erstellt. An dieser können dann einzelne Menü-punkte angehangen werden; wie im Beispiel wird mit new JMenu( Datei ) ein neuer Menü-punkt erzeugt. An diesen Menüpunkt können dann weitere Menüpunkte oder Submenüs an-gehangen werden. Mit new JMenuItem( Menüname ) wird ein Menüpunkt und mit new JMe-nu( Menüname) wird ein Untermenü erzeugt, an dem weitere Menüpunkte angehangen wer-den können. Diese müssen, nachdem sie erzeugt wurden, mit add an die Menüleiste oder das Menü angehangen werden. Als weitere Menü-Komponenten exstieren JChekBoxMenuItem, um den Status als selektiert oder nicht selektiert anzuzeigen, und JRadioButtonMenuItem. Mit dieser kann eine Gruppe von Optionen zusammengefaßt werden, von denen immer nur eine selektiert werden kann. Es ist mit JToolBar auch möglich, Buttons in die Menüleiste einzufü-gen. [MSH02], [Ull03]

Zur Darstellung der Größe gibt es verschiedene Möglichkeiten. Die im Beispiel verwendete ist setSize(), mit der die Größe explizit angegeben wird. Die Größe ermittelt sich aus dem Inhalt und den plattformabhängigen Umrahmungen, so daß bei einer größeren Umrahmung wie in Windows XP (im Vergleich zu älteren Windows-Versionen) die Titelleiste größer und somit der Inhalt kleiner ist. Die zweite Möglichkeit pack() stellt ein Fenster in der minimalen Größe dar, so daß alle enthaltenen Komponenten ausreichend Platz haben. Nach Festlegung der Größe eines Fenster muß es noch mit setVisible(true)sichtbar gemacht werden. [MSH02], [Ull03]

Um Komponenten, die zu groß für die Oberfläche sind, anzuzeigen, wird JScrollPane benutzt. Ein JScrollPane besteht aus dem JViewport, d.h. dem Bereich innerhalb des Fensters, und einem horizontalen und einem vertikalen Rollbalken. Diese beiden Rollbalken erscheinen, sobald die Komponente aufgrund ihrer Größe nicht mehr angezeigt werden kann. Um zwei Komponenten zu trennen, kann eine JSplitPane genutzt werden. Die Leiste (Divider) zwi-schen den getrennten Komponenten kann verschoben werden, wobei dann der sichtbare Be-

import javax.swing.*;

public class Fenster extends JFrame { public Fenster (String Title) { super(Title); initializeMenu(); setSize(250,100); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

} public void initializeMenu() { JMenu mJMenu; JMenuBar menuBar= new JMenuBar(); menuBar.add(mJMenu = new JMenu("Datei")); mJMenu.add(new JMenuItem("Beenden")); setJMenuBar(menuBar); } public static void main (String[] args) { new Fenster("Java Frame mit Swing"); } }

Abb. 3.4.2 JFrame mit Menü und Close Operation

Page 39: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

35

reich der einen Komponente proportional zum Wachstum der anderen abnimmt. Es ist ein horizontales und vertikales Teilen möglich. [MSH02], [Ull03]

Zum Bestätigen oder Treffen einer Auswahl existieren Buttons. Mit JButton wird ein Button erzeugt, der nach Bestätigung wieder in seine Ausgangsposition zurückkehrt. JToggleButton bleibt bis zur nächsten Auswahl gedrückt. Desweiteren verhält sich JCheckBox wie ein JTog-gleButton, nur ist die graphische Darstellung die eines leeren Kästchens, das bei Bestätigung mit einem Häkchen versehen wird. JRadioButton entspricht in etwa einer JCheckBox, wobei immer nur ein Punkt aus einer Gruppe ausgewählt werden kann. [MSH02], [Ull03]

Die einfachste Textkomponente in Swing ist ein JTextField. Sie erzeugt ein einzelliges Text-feld, dessen Inhalt beispielsweise für Eingaben abgefragt werden kann. JTextArea erstellt im Gegensatz dazu ein Textfeld mit mehreren Zeilen. [MSH02], [Ull03]

Es existiert ein Vielzahl von weiteren Komponenten, allerdings wird hier nur noch auf den Layout-Manager eingegangen. Mit dem Layout-Manager wird bestimmt, wie verschiedene Komponenten angeordnet werden, beispielsweise die Buttons in einem Fenster. Zu den Stan-dard-Layouts gehören FlowLayout, BorderLayout, CardLayout, GridLayout, GridBagLayout, BoxLayout und das SpringLayout. Neben diesen Layouts gibt es die Möglichkeit eines selbst-definierten Layouts. Hier werden die ersten beiden Layouts vorgestellt. Das FlowLayout ist bei JPanel voreingestellt. Es ordnet alle Komponenten in der Reihenfolge, in der sie eingefügt werden, nebeneinander an. Sobald der Container zu schmal ist, wird in der nächsten Zeile fortgefahren. Die Ausrichtung kann linksbündig, rechtsbündig oder zentriert erfolgen. Bei einer Änderung der Größe des Containers wird das Layout angepaßt. Das BorderLayout ist der voreingestellte Layout-Manager von JWindow, JFrame und JDialog. Hiermit ist es mög-lich, Komponenten gezielt nebeneinander oder untereinander anzuordnen. Der Container wird in fünf Bereiche aufgeteilt, und zwar in eine Komponente in der Mitte, um die die anderen vier Bereiche angeordnet werden. Sie werden mit den vier Himmelsrichtungen angesprochen. Soll ein JLabel mit einem Text beispielsweise rechts vom Zentrum angeordnet werden muß, geschieht dies mit folgendem Befehl: add(BorderLayout.NORTH, new JLabel( Text )). [MSH02], [Ull03]

Page 40: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

36

4 Graphische Visualisierung genealogischer Daten

Zur Darstellung von Stammbäumen kann aus einer großen Zahl von Alternativen gewählt werden, die sich jeweils in der graphischen Anordnung der Personen unterscheiden. Begon-nen wird bei jeder Variante mit dem Stammvater, d.h. der ältesten bekannten Person und ih-rem/ihren Ehepartner(n). Diese Stammeltern stellen die Wurzel dar, von der ausgehend die Kinder und alle weiteren Nachkommen aufgeführt werden. Die Wurzel des Stammbaumes wird in der Regel an das obere Ende der Darstellung gesetzt, so daß der Stammbaum nach unten hin wächst.

Die Wahl der Darstellung ist oft davon abhängig, wo der Stammbaum seinen Platz finden soll. Ist er dazu bestimmt, gewissermaßen als Wohnungsaccessoire oder Bild ein Zimmer zu schmücken, wird meistens auf einen von Hand gezeichneten Stammbaum oder Vordrucke, die vervollständigt werden, zurückgegriffen. Bei einer Online-Darstellung im Internet auf einer eigenen Homepage oder einer allgemeinen Seite werden Stammbäume in den meisten Fällen als Stammliste dargestellt. Sollten sie als Graph zur Verfügung gestellt werden, sind diese Versionen sehr oft als Bilddatei gespeichert, was mit einem von Hand gezeichneten Stamm-baum gleichgesetzt werden kann; nur wurden hierbei als Handwerkszeug keine Pinsel und Farben benutzt, sondern ein computergestütztes Graphikprogramm.

Als Stammliste dargestellte Stammbäume sind wegen der einfachen Generierung beliebt. Da viele Internetseiten mit genealogischem Hintergrund und Homepages vor der Einführung von DSL erstellt wurden, haben sich viele Genealogen bzw. Hobbygenealogen dazu ent-schlossen, ihren Stammbaum in reiner Textform darzustellen.

4.1 Klassifizierung

Darstellungsformen für genealogische Daten können in vier Arten eingeteilt werden.

1. Mündliche Darstellung 2. Bildliche Darstellung 3. Schriftliche Darstellung 4. Graphische Darstellung

In einer mündlichen Darstellung werden die Daten von Generation zur Generation in Form von Geschichten oder Liedern weitergegeben. Z.B. gehört es in einigen Staaten Afrikas zur Tradition, sich den eigenen Stammbaum, von dem mehr als zwanzig Generationen bekannt sein können, einzuprägen; dabei werden aber ausschließlich die männlichen Ahnen berück-sichtigt. Bei diesem Brauch ist es aufgrund der immer größer werdenden Anzahl der Vorfah-ren mittlerweile üblich geworden, viele Generationen namentlich zu überspringen und dabei lediglich die Anzahl der jeweils ausgelassenen Generationen festzuhalten. Welche Generatio-nen jeweils übersprungen werden, ist davon abhängig, welchen Status die betreffenden Vor-fahren innehatten. [Wik_5]

Prominente Beispiele für eine bildliche Darstellung sind unter anderem Höhlenmalereien oder Portraits von Ahnen in Form von Gemälden oder Skulpturen. Die bildliche Darstellungsweise wurde durch die schriftliche und graphische Darstellung erweitert, durch welche mehr

oder überhaupt erst Informationen in die Darstellung mit einflossen.

Page 41: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

37

Die graphische Darstellung ist noch weiter unterteilbar. Es sind Stammbäume, die der Defini-tion eines Stammbaums im eigentlichen Sinne entsprechen, von stammbaumähnlichen Dar-stellungen zu unterscheiden, welche nur die Form eines Stammbaums besitzen. Auf den er-sten Blick fällt diese Differenzierung nicht leicht, sondern wird erst durch Betrachtung der Daten deutlich: Bei einem Stammbaum stellt eine Tochter immer ein Blatt des Baumes dar. Auch wenn sie selbst schon Nachkommen besitzt, sind diese hier nicht dargestellt, sondern werden in dem Stammbaum der Familie, in die sie einheiratet, weiter aufgeführt. In einer stammbaumähnlichen Darstellung dagegen kann ausgehend von der Tochter die Familie wei-ter aufgeführt werden. [Wik_5]

Bei Stammbäumen kann man desweiteren verschiedene Varianten der graphischen Darstel-lung unterscheiden. Häufig verwendet werden Stammbäume, die üblicherweise von oben nach unten wachsen. Eine Alternative dazu sind Stammbäume, die einer Ahnenliste ähnlich von links nach rechts wachsen. Letztere stellen sich in ihrer Ausdehnung oft sehr breit und flach dar. Nachdem die Ausrichtung eines Stammbaums zur Klassifizierung berücksichtigt wird, sind sie desweiteren noch anhand der Darstellung der Personen in dem Baum zu unter-scheiden. Hierbei gibt es zwei Möglichkeiten: Entweder können die Individuen durch Objekte wie Rechtecke, Kreise oder Ovale, die mit den Informationen der Personen gefüllt werden, symbolisiert werden, oder es kann einfach ein mehr oder weniger ausführlicher bzw. informativer Text über die Person ans Ende einer Linie plaziert werden, und vom Ende dieses Textes ausgehend weiter verzweigt werden. Bei eingerahmten Personen existiert die Mög-lichkeit, einen Partner mit eigenem Platzhalter darunter oder daneben zu setzen, oder alterna-tiv den Partner mit in die eigene Box zu schreiben.

4.2 Rechnergestützte Methoden zur Stammbaumausgabe

Es existiert bereits eine Vielzahl von Programmen zur Speicherung und Darstellung von ge-nealogischen Daten. Einige dieser Programme werden im folgenden vorgestellt und an diesen Beispielen Vorzüge und Nachteile der schon existierenden Anwendungen erläutert. Ferner werden anhand der Auswahl dieser Programme die verschiedenen möglichen Arten der Dar-stellung genealogischer Daten aufgezeigt. Jedes der im folgenden beschriebenen Software-produkte kann über die Seite http://www.genealogie-software.de

per Download erworben werden. Dort findet sich auch eine Linksammlung von weiteren Programmen, wobei einige kommerzielle Anbieter jedoch keine Testversion vor dem Kauf zur Verfügung stellen.

4.2.1 GFAhnen Version 5.0

GFAhnen 5.0 ist eine kommerzielle Software, die zum Preis von 75 erworben werden kann. Sie wird von der Gesellschaft für Familienforschung in Franken vertrieben und ist in der neu-sten Version 5.0 lieferbar. Die Gesellschaft ist unter http://www.gf-franken.de/

im WWW zu erreichen.

In GFAhnen 5.0 sind die wichtigsten Daten einer Person auf dem Hauptbildschirm präsentiert (Abb. 4.2.1.1). Die Personendaten der jeweils aktiven Person sind durch eine rote Umrandung markiert. Von der aktiven Person kann über verschiedene Buttons zu ihrem Vater (V), der Mutter (M), ihrem Partner (P) oder einem Kind (K) dieser Personen gewechselt werden. Die Eltern und Ehepartner werden rechts angezeigt (grüne Umrandung). In dem blau umrandeten Bereich können alle ehelichen und unehelichen Kinder, Paten und andere Daten angezeigt

Page 42: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

38

werden. Die Personeneingabe sowie die Zuordnung von Beziehungen wie Pate, Kind usw. geschieht im braun umrandeten Feld.

Visualisierungsmöglichkeiten werden immer von der aktiven Person ausgewählt, die somit den Probanden darstellt. Es stehen vier verschiedene Visualisierungsarten der Daten zur Aus-wahl:

1. Ahnentafel (mit AT) 2. Stammbaum (mit SB) 3. Familienanalyse (mit FA) 4. Familienblatt (mit FB)

In jedem Fall können allerdings maximal fünf Generationen in die Darstellung aufgenommen werden.

Abbildung 4.2.1.3 zeigt die Ahnentafel der aktiven Person, Abbildung 4.2.1.2 den in Form eines Filesystems

dargestellten Stammbaum. In der in Abb. 4.2.1.4 dargestellten Familien-analyse sind die Daten der für eine Familie, das heißt Ehepartner und deren Kinder, wichtig-sten Ereignisse als Symbole in einer Zeitlinie markiert. Hierzu gehören unter anderem Gebur-ten, Heiraten und Sterbedaten. Das Familienblatt ist nicht abgebildet; dort sind die Informa-tionen zu Eltern, Ehepartnern und Kindern in Textform festgehalten.

Abb. 4.2.1.1 Hauptbildschirm

Page 43: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

39

Abb. 4.2.1.2 Stammbaum

Abb. 4.2.1.3 Ahnentafel

Page 44: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

40

4.2.2 Ursprung

Die Software Ursprung ist als Freeware für private, nichtkommerzielle Zwecke unter der Adresse http://www.prog.de

als Download zu beziehen. Der Autor Heiko Pruess beschreibt sie als Programm zur Verwaltung eines Familienstammbaums; eigentlich wird mit dieser Software aber kein Stammbaum sondern, eine Ahnentafel verwaltet. Somit dient Ursprung der Speicherung der Ahnen eines Probanden bis zur siebten Generation, wobei der Proband die erste Generation bildet. Es können daher 27-1 = 127 Personen gespeichert werden.

In Ursprung existiert nur eine Bildschirmdarstellung, die in Abb. 4.2.2.1 zu sehen ist. Auf der rechten Seite ist ein kleiner Baum abgebildet, innerhalb dessen man mit Hilfe der vier Pfeilta-sten umherwandern und so zu den verschiedenen Personen gelangen kann. Die Informationen und eigene Anmerkungen werden in Textfeldern angezeigt, in denen Eintragungen direkt vorgenommen werden können. Der Proband besitzt innerhalb des Baumes die Nummer 1-1 (Ebene eins, Person eins). Der Baum wird folglich bis zur siebten Generation von 7-1 bis 7-64 weitergeführt. Es können Name, Vorname, Geburtsname, Geburtsdaten, Taufdaten, Konfir-mationsdaten, Hochzeitsdaten, Sterbedaten und Beruf eingetragen werden. Zusätzlich existiert ein Feld für Notizen sowie die Möglichkeit zur Einbindung eines GIF-Bildes, welches unter-halb des Baums angezeigt wird.

Die Speicherung erfolgt in Textdokumenten. Für jede Person, die in der Ahnentafel eingetra-gen wird, legt das Programm ein Textdokument an, so daß sich bei vollständig ausgefüllter Ahnenliste demnach 127 Textdateien ergäben. Allgemein werden die Textdateien mit Uxxx-yyy.txt bezeichnet, wobei xxx die Generation und yyy die Nummer der Person 1-64 auf Ebe-ne 7, 1-32 auf Ebene 6 etc. bezeichnet. Für den Probanden wird daher das Dokument U001-001.txt angelegt usw. In der Textdatei steht in jeder Zeile nur eine Information, angefangen mit Zeile 1 für den Vornamen, Zeile 2 für den Nachnamen, Zeile 3 für das Geschlecht etc. Dabei können immer nur die Ahnen für einen Probanden dargestellt werden. Sobald ein ande-rer Datensatz angelegt werden soll, werden automatisch die vorher angelegten Textdokumente überschrieben.

Abb. 4.2.1.4 Familienanalyse

Page 45: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

41

4.2.3 Famtree Version 2.3

Famtree wird kommerziell zu einem Preis von 20 angeboten. Der Entwickler Dr. Bruno Stöckle vertreibt es unter der zur Zeit neuesten Version 2.3. Eine Demoversion ist unter http://bst-soft.de

erhältlich.

Famtree ist ebenso wie Ursprung ein Programm, mit dem nur die Ahnentafel dargestellt wer-den kann. Der Name Famtree des Programms ist also insofern irreführend, als daß er auf ei-nen Stammbaum schließen läßt. Abweichend von einer eigentlichen Ahnentafel jedoch gibt es hier die Möglichkeit, auch Ehepartner und Geschwister einzutragen. Diese werden allerdings nicht in der Ahnentafel selbst, sondern in separaten Textboxen angezeigt.

Das Programm zeigt eine Ahnentafel bis zur fünften Generation an. Falls jedoch mehr Ahnen existieren bzw. bekannt sind, besteht die Option, eine Person aus der Ahnentafel auszuwählen (durch Klick auf die entsprechende Stelle der Ahnentafel) und diese als neuen Probanden zu markieren. Dabei werden nur zum aktuell gewählten Probanden Vorname, Nachname, Ge-burtsname, Beruf, Ort, Lebensdaten, ein Kommentar und

falls vorhanden

ein Bild ange-zeigt. Wird ein Ahne angeklickt, werden dessen Daten in einem zusätzlichen Textfeld darge-stellt.

Desweiteren gibt es die Möglichkeit, sich die Ahnentafel ausdrucken zu lassen. Dabei wird eine der Definition entsprechende Ahnentafel (gegebenenfalls mit Bildern) gedruckt. Alterna-tiv kann die Familie eines Probanden in zwei verschiedenen Versionen ausgedruckt werden. Dabei werden jeweils Proband, Partner und Kinder dieser Ehe mit ausgegeben. In der ersten möglichen Version sind die Eltern über die ganze Breite einer Seite in einer Box inklusive Heiratsdaten aufgeführt und ihre Kinder in Boxen, die jeweils nur ein Drittel dieser Größe

Abb. 4.2.2.1 Ursprung Hauptfenster

Page 46: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

42

haben. Die zweite Version gibt den Probanden mit Name, Nachname, Geburtsname, Ort, Le-bensdaten, Beruf der Eltern und zusätzlichen Bemerkungen aus, den Partner mit dessen ent-sprechenden Daten und zusätzlich den Heiratsdaten und schließlich alle Kinder ohne eventu-elle Partner. Die Daten werden in einer Datei gespeichert, wodurch mehrere Datensätze ange-legt werden können. Es besteht keine Möglichkeit, Daten zu importieren, doch die eingetra-genen Daten können als Textdokument exportiert werden. Sie sind dann aber nur zur Ansicht zu verwenden und haben keine weitere Funktion; ein erneuter Import ist ebenfalls nicht mög-lich.

4.2.4 Fzip Family Tree S1.7d

Fzip ist ein kommerzielles Programm, das gegen eine Gebühr von 20 erworben werden kann. Es wird von Andrew Croft vertrieben und ist unter http://members.ozemail.com.au/ ~acroft/ zu beziehen.

Abbildung 4.2.4.1 zeigt eine von zwei unterschiedlichen Ansichten des Hauptfensters mit Daten zu den Personen. Unter dem Menüpunkt Ausdrucke

kann eine Fülle von Informatio-nen angefordert werden. Die Darstellungen sind dann allerdings nur in der Druckvorschau (wie der Menüpunkt Ausdrucke

andeutet) zu sehen und müssen daher teilweise erst ausge-druckt werden, um einige Visualisierungen komplett anzuzeigen.

Abb. 4.2.3.1 Fammtree Hauptbildschirm

Page 47: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

43

In Abb. 4.2.4.1 unten ist eine Ahnentafel dargestellt. Eine ähnliche Form besitzen auch die anderen hier nicht vorgestellten Ausgaben, wie Daten zur Person

oder Partnerliste . Abb. 4.2.4.1 oben zeigt den Nachkommen-Baum, dessen Aussehen dem des Vorfahren-Baums äquivalent ist. Der Stammbaum (in Fzip so genannt, stellt jedoch eine Ahnentafel dar) ist ähnlich der Ahnentafel aus Abb. 4.2.1.3 aus GFAhnen. Der eigentliche Stammbaum, hier Nachkommen-Box-Chart genannt, ist hier nicht abgebildet da der Stammbaum erst voll-

ständig ausgedruckt und zusammengeklebt werden muß, um als Ganzes betrachtet werden zu können. Fzip bietet ebenfalls einige Statistiken, die als Text ausgegeben werden können.

4.2.5 WinAhnen V6.02

Das Programm WinAhnen ist derzeit in der aktuellen Version 6.02 für 45 von dem Herstel-lerteam Robert Mund und Olaf Schilling zu beziehen. Unter http://www.winahnen.de

ist eine Testversion erhältlich.

WinAhnen bietet die Möglichkeit, die Personendaten als Stammbaum, Ahnentafel, Tabelle oder als Formular auszugeben. Dabei sind die Ausgaben als Tabelle und Formular sehr ähn-lich in Tabellenform aufgebaut, mit nur leichten Abweichungen im Aufbau der Tabellen. Im großen und ganzen aber werden bei beiden die gleichen Informationen aufgezeigt. Die Ah-nentafel entspricht hier nicht einer Ahnentafel im engeren Sinne (bei der nämlich nur ein Pro-band mit seinen direkten Eltern und von diesen jeweils auch nur die direkten Eltern usw. dar-gestellt werden), sondern bezieht auch die Geschwister der Vorfahren mit ein, die direkt ne-beneinander dargestellt werden. Die Entscheidung für die Verwirklichung der Ahnentafel in

Abb. 4.2.4.1

Page 48: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

44

dieser Form hat zur Folge, daß die Symmetrie einer Ahnentafel nicht mehr gegeben ist. Des-weiteren wächst der Baum durch die Darstellung der Geschwister unvorteilhaft in die Breite, was dazu führt, daß die Ahnentafel unübersichtlich wird.

Der Stammbaum beginnt beim Stammvater, wobei als dieser auch eine Frau gewählt werden kann. Allerdings können im Stammbaum nur Ahnen und deren Partner eingefügt werden; somit ist es hier nicht möglich, Kinder direkt einzutragen. Zur Übersicht läßt sich der Stamm-baum bzw. die Ahnentafel verkleinern, wodurch aber die Personendaten nicht mehr zu lesen sind. Es besteht zwar die Möglichkeit, die Personendaten zu bearbeiten, allerdings sind sämt-liche Informationen auf insgesamt elf Formularblättern verteilt (Allgemein, Geburt, Taufe, Partner, etc.).

Die in Bezug zu dieser Arbeit interessante Form der Stammbaudarstellung wird im folgenden ausführlicher diskutiert: Frauen werden in der Darstellung durch rote, Männer durch blaue und unbekannte Personen durch weiße Boxen symbolisiert. Die Platzhalter für einzelne Per-sonen werden alle in der gleichen Größe aufgezeichnet, was bei diesem Programm im Kon-trast zu anderen vorgestellten sehr zur Übersichtlichkeit beiträgt. Partner werden einer Person zugeordnet und direkt oberhalb in einer eigenen Box angehangen. Bei Mehrfachehen wird die Ansicht so generiert, daß alle Ehepartner einer Person nebeneinander über dieser Person an-geordnet werden. Diese Entscheidung führt dazu, daß die Breite des Baums sich bei vielen Mehrfachehen deutlich vergrößert, wobei er aufgrund des Layouts ohnehin schon mehr in die Breite als in die Höhe wächst. Die Kästen haben eine solche Form, daß maximal fünf Perso-nen einer Generation mitsamt ihren Ehepartnern

falls alle Personen nur einmal verheiratet waren - nebeneinander angezeigt werden können. Außerdem wird durch die Wahl der Platzie-rung der Ehepartner der Baum flach gehalten, da zwischen jeder Generation der gleiche Ab-stand besteht.

Es können vier Generationsebenen auf einer Bildschirmseite dargestellt werden. Die Kinder einer Ehe werden dem Ehepartner angefügt; dadurch ist ersichtlich, wer die Mutter und wer der Vater eines Kindes ist. Falls aber ein Elternteil mehrere Ehen eingegangen ist, aus denen Kinder hervorgingen, führen von einem direkten Nachkommen mehrere Linien zu verschie-denen Kindern. Dadurch ist an bestimmten Stellen des Stammbaumes nicht immer ersichtlich, ob eine Person Geschwister hat. Zu diesem Zweck muß mindestens zu den Eltern gescrollt und hier geschaut werden, ob ein Elternteil eventuell Kinder aus einer weiteren Ehe hat.

Nach eigenem Empfinden betrachtet, könnte diese Darstellung durch die Entscheidung für einen Stammbaum, der von oben nach unten wächst, verschönert werden; möglicherweise wurde hier die entgegengesetzte Variante gewählt, da die Ahnentafel optisch das gleiche For-mat wie der Stammbaum hat. Dadurch sollte wohl der Stammbaum auf den ersten Blick von der Ahnentafel unterscheidbar gemacht werden. In Abb. 4.2.5.1 ist ein Stammbaumausschnitt zu sehen. Die Ahnentafel weist eine äquivalente Darstellung auf, mit dem Unterschied, daß sie am oberen Rand beginnt und nach unten fortgesetzt wird. Desweiteren werden in der Ahnentafel Geschwister nebeneinandergesetzt, wie in dem Stammbaum bei der Mehrfachehe zu sehen ist.

Page 49: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

45

4.2.6 DYNASS-TREE V300

Dynass-Tree wird von Gerhard Bauch Software vertrieben. Die Vollversion ist für 49 unter der Internetadresse http://www.dynas-tree.de

zu beziehen. Das Programm bietet neben der Darstellung genealogischer Daten viele erweiterte Funktionen. Mit Dynass-Tree können Ged-com-Dateien importiert und exportiert werden. Es ist möglich, sich eine Statistik in Balken-graphik über verschiedenste Daten ausgeben zu lassen; als Beispiel seien Geburtsmonat, Al-ter, Todesjahr, Kinder in der ersten Ehe unter vielen anderen Möglichkeiten genannt. Deswei-teren hat man die Möglichkeit, sich Berichte auszudrucken, d.h. Listen, in denen zu einer ge-wählten Person alle Blutsverwandten, Nachkommen, Vorfahren oder andere ausgewählte In-formationen aufgeführt werden.

Bei der Auswahl der visuellen Ausgabe hat man die Wahl zwischen einem Stammbaum, einer Ahnenliste, oder dem Stammbaum einer Person, zu der auch noch die bekannten Vorfahren ausgegeben werden. Positiv zu bewerten ist, daß einem die Möglichkeit gegeben wird, in ele-mentare Formatierungen der visuellen Ausgabe einzugreifen. Der Benutzer wählt aus, ob der Baum von oben nach unten, von links nach rechts oder jeweils umgekehrt ausgegeben werden soll. Dabei kann ausgesucht werden, ob auch angeheiratete Partner mit angezeigt werden oder nur die Blutsverwandten. Der Benutzer kann auch entscheiden, wie viele Generationen der Baum maximal umfassen darf, und kann auf der Visualisierung verschiedene Änderungen vornehmen. Die Visualisierung ist in einer der möglichen Formen in den Abb. 4.2.6.1 und Abb. 4.2.6.1 gezeigt. Als nachteilig anzusehen ist wiederum die Unproportionalität zwischen den einzelnen Personen: Je mehr Informationen es zu einer Person gibt, desto größer ist die Box, in der sie dargestellt wird. Übersichtlicher und auch ästhetischer wäre die Darstellung

Abb. 4.2.5.1 Stammbaumdarstellung in WinAhnen

Page 50: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

46

jeder Person mit den wichtigsten Informationen in einheitlich großen Boxen. Falls mehr In-formationen angezeigt werden sollen, sollten diese in einem Menüpunkt auswählbar sein.

Abb. 4.2.6.1 Stammbaum in zwei Ausrichtungen

Page 51: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

47

4.2.7 GEN-Master V3.1.4

GEN-Master ist in der Version 3.0 für 15 zu erwerben; der Hersteller des Programms ist Ralph Hedke. Eine Demoversion steht unter http://www.genmaster.de zum Download bereit.

GEN-Master bietet graphische Balkendarstellungen über die Verteilung der Geschlechter, des Alters, der Jahrgänge und der Konfessionen. Neben GEN-Master-Dateien können auch GEDCOM-Datensätze importiert und exportiert werden. Als weiteres Exportformat existiert ein Format speziell für die Seite www.vorfahrensuche.de; dazu werden zwei Textdateien er-zeugt, die speziell von dieser Seite zur Aufnahme in ihre Datenbank genutzt werden. In der Datei psxxxxxxxx.txt werden alle Personendaten gespeichert und in der Datei ehxxxxxxxx.txt alle Daten zu Hochzeiten von Personen, wobei xxxxxxxx jeweils für eine achtstellige Num-mer steht. Ein eindeutiger Nachteil bei der graphischen Darstellung der Daten in Form eines Stammbaums ist die Tatsache, daß der Baum sich nicht auf dem Bildschirm, sondern nur in ausgedruckter Form betrachten läßt. In Abb. 4.2.7.1 ist der Stammbaum abgebildet. Ein Scrol-len ist hier allerdings nicht möglich, so daß in der Ansicht einige Personen verdeckt bleiben. Desweiteren existiert die Option, eine Darstellung in Textform, z.B. als Ahnenblatt, aus-zugeben. Bei der Stammbaum-Darstellung werden jeweils nur die Namen angezeigt. Durch das Anklicken einer Person werden zwar mehr Informationen sichtbar, jedoch sind eben nicht alle Personen sichtbar und es kann unzweckmäßigerweise nicht zu den verdeckten Personen gewechselt werden. Dadurch stehen die weiteren nicht dargestellten Informationen in der aus-gedruckten Version nicht zur Verfügung.

Abb. 4.2.7.1

Page 52: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

48

4.2.8 GeneWeb 4.09

Bei GeneWeb handelt es sich um Freeware, die vom Hersteller INRIA unter der Internet-adresse http://www.genealogie-software.de kostenlos bezogen werden kann.

GeneWeb ist ein attraktives Programm zur Darstellung von Stammlisten. Der Vorteil von GeneWeb besteht darin, daß aus den Daten eine Stammliste erzeugt wird, die nicht nur zur Ansicht dient, sondern auch weitere Funktionen bietet. GeneWeb verwendet als Oberfläche den installierten Webbrowser. Die Daten können aus einer GEDCOM-Datei importiert und auch wieder exportiert werden. Ist ein Datensatz geöffnet, besteht die Möglichkeit, ihn sich als Stammliste ausgeben zu lassen; wird dabei eine Person aus einer Stammliste weiter selek-tiert, so wird ihr Familienblatt angezeigt. Im Familienblatt hat man die Möglichkeit, sich wei-tere Informationen bezüglich der Person angeben zu lassen, wie z. B. ihre Cousinen, Cousins, Onkel, Tanten und weitere Beziehungen. Zusätzlich existieren einige statistische Auswertun-gen der Daten, wie etwa die ältesten lebenden Personen, die letzten Heiraten, die letzten Ster-bedaten und andere, wobei diese sich jeweils auf maximal zwanzig Personen beziehen. Als Hilfsmittel für Genealogen ist ein Datumsrechner integriert, der die Daten zwischen dem gre-gorianischen, julianischen, französischen und hebräischen Kalender konvertiert. In Abb. 4.2.8.1 ist die Stammliste aufgeführt.

4.2.9 StaBa Der Stammbaumgenerator

Abb. 4.2.8.1 Stammliste

Page 53: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

49

Auch StaBa ist eine kommerzielle Software zur Darstellung von Stammbäumen. Die Lizenz zum Download des Programms ist für den Preis von 22 unter http://www.codev.de/nunz

zu

beziehen. Lizenz und Programm zusammen auf CD sind für 32 erhältlich. Der Entwickler ist Jochen Herz.

Im Stammbaumgenerator wird das Familienblatt übersichtlich dargestellt, wobei ein komfor-tabler Wechsel zu den direkt in Beziehung stehenden Personen ermöglicht ist. Die graphische Darstellung als Stammbaum jedoch erweist sich als sehr unübersichtlich: Der Stammbaumge-nerator erstellt die Beziehungen zu Personen, ordnet sie aber nicht korrekt an, so daß die Dar-stellung, wie in Abb. 4.2.9.1 unten zu sehen

recht konfus wirkt

ohne dabei einen Bezug zwischen den Daten erkennen zu lassen. Die Darstellung des Stammbaums als Stammliste ist jedoch ohne Probleme möglich, wie in Abb. 4.2.9.1 oben gezeigt.

Abb. 4.2.9.1 Stammliste und Stammbaum

Page 54: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

50

5 Konzepte zur Stammbaumvisualisierung

5.1 Diskussion von Alternativen und eigener Ansatz

Bei einer Stammbaumvisualisierung muß vieles berücksichtigt werden. Besonders wichtig sind hierbei die Art der Informationen, die angezeigt werden sollen, sowie die Auswahl der Darstellungsweise der einzelnen Personen. In Bezug auf die Informationen besteht eine Mög-lichkeit darin, sämtliche für eine Person existente Daten mit in den Stammbaum aufzuneh-men. Alternativ könnten aber auch nur wenige, relevante Angaben in komprimierter Form direkt in die Visualisierung mit aufgenommen werden, während gleichzeitig auf Verlangen zusätzliche Informationen zu einer bestimmten Person gesondert angezeigt werden könnten. Die Ausgabe könnte dabei in einem eigenen Fenster erfolgen, welches sich auf eine Anfrage hin öffnet, oder aber auch an einer bestimmten Stelle im Hauptfenster.

Wurde nun eine bestimmte Art der Informationsdarstellung festgelegt, ist weiterhin zu ent-scheiden, wie die Individuen optisch im Stammbaum dargestellt werden. Sollen die Daten einfach als Text ohne eine Umrandung dargestellt werden, oder soll ein Platzhalter in Form eines Rechtecks oder eines anderen Gebildes in den Stammbaum die Personendaten aufneh-men. Mit dem Begriff Platzhalter ist dabei im folgenden die Darstellung der Personendaten in dem Stammbaum gemeint. Männliche und weibliche Personen könnten entweder unterschied-liche Rahmen erhalten, die ihre jeweiligen Daten einfassen, oder es wird für alle Geschlechter dieselbe Umrahmung verwendet. Bei geschlechtsspezifischer Umrandung ergibt sich dabei ein Problem für unbekannte Personen, deren Existenz zwar erwiesen ist, deren Name und Ge-schlecht jedoch nicht bekannt sind. In diesem speziellen Fall müßte daher noch eine dritte Form zur Kennzeichnung existieren. Werden dagegen alle Personen in gleicher Art und Weise dargestellt, könnte das jeweilige Geschlecht auch einfach durch ein Zeichen kenntlich ge-macht werden. Oft ist natürlich die jeweilige Geschlechtszugehörigkeit schon anhand des Vornamens zu erkennen; bei unklarer Namensgebung könnte daher das Geschlecht auch ein-fach nur aus der erweiterten Anzeige der Person ersichtlich gemacht werden. Diese Probleme ergeben sich bei gleichartigen Rahmen aber selbstverständlich gar nicht erst, wenn sämtliche Personendaten ausgegeben werden.

ID Marijan Gjoreski *16.10.1975

ID Kirko Goreski *20.02.1949

ID Manuela Gjoreski

16.09.1978

ID Kirko Goreski *20.02.1949 oo 1973 ID Olgica Goreska *13.09.1953

ID Manuela Gjoreski *16.09.1978

ID Olgica Goreska *13.09.1953

Abb. 5.1.1 Personplatzhalter

ID Marijan Gjoreski *16.10.1975

Page 55: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

51

Bei der Wahl eines Platzhalters für eine Person im Stammbaum kann entweder für jede Per-son unabhängig von der Anzahl der zugehörigen Daten derselbe Platzhalter einer einheitli-chen Größe verwendet werden, oder es kann dessen Größe individuell an die Menge der dar-gestellten Daten angepaßt werden. In Abb. 5.1.2 sind zum Vergleich dieser beiden Alternati-ven jeweils zwei Personen abgebildet. Bei einer individuell angepaßten Größe werden häufig wechselnde Darstellungen, wie das Beispiel von Abb. 5.1.3 zeigt, schnell unübersichtlich. Anhand dieser aus dem Programm DYNASS-TREE übernommenen Art der Abbildung wer-den im folgenden zwei weitere Designmöglichkeiten diskutiert.

ID Gajus Julius Caesar 100 v.Chr 44 v.Chr.

ID Gajus Julius Caesar 100 v.Chr 44 v.Chr. Geburtsort Todesort Titel: römischer Staatsmann und Feldherr

ID Kaiser Augustus

ID Kaiser Augustus Titel: römischer Kaiser 60-53 v.Chr.

Abb. 5.1.2 Größe von Personenplatzhaltern

ID 1 Huber, Heinrich Blasius Willibald

* 01.02.1850 * Hirschberg am Neckar

ID 2 Nothburga Niethammer * 03.04.1851 * Nauheim oo 01.04.1874 oo Hirschberg am Neckar

ID 6 Tochter *01.02.1850 *Bretzenheim

ID 3 Walburga Weber * 04.05.1852 * Wiesbaden oo 01.08.1881 oo Wiesbaden + 01.06.1886 + Wiesbaden

ID 4 Huber, Horst *13.12.1875 * Hirschberg am Neckar

ID 21 Josef Jäger oo 01.06.1938 oo Waging Trauzeuge Jäger, Jockel

ID 17 Leonard Lachmann oo 12.06.1826 Trauzeuge Huber, Hans

ID 15 Huber, Hans * 13.04.1904

ID 16 Huber, Gerti * 08.12.1907

Abb. 5.1.3 Stammbaum mit verschieden großen Personenplatzhaltern

ID 5 Huber, Robert * 06.02.1884 * Wiesbaden

ID 14 Franziska Freitag

Page 56: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

52

Für die Darstellung der Partner einer Bezugsperson bieten sich mehrere Möglichkeiten an. Der trivialste Fall ist eine Auflistung aller Daten eines Partners unter der jeweiligen Bezugs-person, wobei deren Platzhalter größer gewählt werden muß. Dadurch entstehen allerdings weitere Probleme, die zu berücksichtigen sind, z.B. die Frage, ob alle Personen eine äquiva-lente Größe in der Darstellung erhalten sollen, oder ob die Größe von der Anzahl der Partner bzw. davon, ob überhaupt Partner vorhanden sind, abhängen soll.

Bei der Entscheidung für individuell anzupassende, also veränderliche Größen leidet die Symmetrie der Darstellung; wird dagegen eine Einheitsgröße gewählt, ergeben sich wiederum verschiedene andere Probleme. Zunächst stellt sich die Frage, welche Größe als Standard festgelegt werden soll. Ist diese Vorgabe relativ großzügig, resultiert ein zu großer Freiraum bei Personen ohne Partner. Wählt man dagegen einen zu kleinen Platzhalter, etwa einen für ein bis zwei Partner ausreichenden, entstehen an allen Positionen des Stammbaums Engpässe, an denen eine Person mit überzähligen Partnern eingetragen werden soll.

Eine denkbare Lösung dieses Problems läge darin, lediglich den ersten oder letzten Partner aufzuführen und darüber hinaus durch Verwendung einer bestimmten Farbe oder eines Sym-bols auf die Existenz weiterer Partner zu verweisen. Damit diese weiteren Partner eingesehen werden können, wäre ferner ein Menüpunkt oder eine Funktion einzubringen, der bzw. die eine erweiterte Sicht oder Zusatzinformationen in einer anderen Art ermöglicht. Allerdings wäre dann nicht direkt anhand des Stammbaumes zu erkennen, ob jemand mehrfach verheira-tet war und somit seine Kinder aus unterschiedlichen Ehen stammen könnten, sondern dies müßte an jeder Stelle der Darstellung gesondert überprüft werden.

Für den Fall, daß die Partner in eigenen Platzhaltern dargestellt werden, ergeben sich je nach-dem, ob die Partner rechts oder unter den zugehörigen Personen angeordnet werden, einige Alternativen für diese Anordnung: Die Ehepartner könnten bündig oder um ein wenig nach rechts bzw. links versetzt an die zugehörige Person angefügt werden. Dabei muß diese Ver-schiebung erst beim zweiten Partner beginnen und ist nur nötig, falls die Kinder anhand der Linien ihren Eltern zugeordnet werden sollen, da die Verbindungen zu den Kindern jeweils von dem Partner x-ter Ehe aus hergestellt werden; siehe hierzu beide Alternativen in Abb. 5.1.4. Diese Möglichkeit der Zuordnung von Nachkommen führt jedoch beim Auftreten meh-rerer Partnerschaften mit jeweiligen Kindesvorkommen zu vielen zusätzlichen Verbindungen, die die Zuordnung unübersichtlich machen. In Abb. 5.1.5 sind diese beiden Darstellungsvari-anten bei einem nach rechts expandierendem Stammbaum aufgezeigt.

Nachfahre Partner 1. Ehe

OO II

OO I

Kind 1. Ehe

Partner 2. Ehe

Kind 2. Ehe

Nachfahre Partner 1. Ehe

OO

OO

Kind 1. Ehe

Partner 2. Ehe

Kind 2. Ehe

I II

Abb. 5.1.4 Anordnung der Ehepartner

Page 57: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

53

Bei dem in Abb. 5.1.3 dargestellten Beispiel ist auf den ersten Blick nicht sofort erkennbar, daß die Personen Huber Horst, Huber Robert und die namenlose Tochter Geschwister sind. Wäre die vorige Generation und somit ihre Eltern nicht gleichzeitig dargestellt, weil der Be-nutzer gerade eine jüngere Generation betrachtet, so wäre überhaupt kein Zusammenhang erkennbar. Um solche Unklarheiten bei nicht vollständiger Darstellung des Stammbaums aus-zuschließen, wäre die in Abb. 5.1.4 auf der rechten Seite sichtbare Linienführung vorzuzie-hen.

Ein Stammbaum kann entweder von oben nach unten expandieren oder von links nach rechts. Ahnentafeln sind in der Regel von links nach rechts angeordnet, so daß man den Stammbaum auf den ersten Blick für eine Ahnentafel halten könnte. Weiß der Benutzer aber um den Un-terschied zwischen beiden, so ist der Stammbaum leicht anhand der eingetragenen Daten zu erkennen. Werden die Personendaten in einem Quadrat dargestellt, ist es irrelevant, in welcher Richtung sich der Baum ausdehnt; es kommt in diesem Fall dann lediglich auf den Ge-schmack des Nutzers oder des Entwicklers an. Jedoch ist es effektiver, rechteckige Platzhalter für die Personendaten zu verwenden (ausgenommen ist der Fall, in dem sämtliche verfügbare Personendaten im Stammbaum eingetragen werden sollen). Dies ergibt sich aus der Schrift-form. Für die chinesische Schriftform wäre ein um 90 grad gekipptes Rechteck besser geig-net.

Ein von links nach rechts wachsender Baum wird in der Regel eine flachere und breitere Aus-dehnung erreichen als ein von oben nach unten expandierender Baum. In Abb. 5.1.5 ist ein nach rechts wachsender Stammbaum abgebildet. Bei der zweiten Alternative in Abb. 5.1.6, bei der auf dem ersten Blick die Partnerzuordnung übersichtlicher erscheint, ist der entstehen-de Baum sogar noch flacher, da dort die Abstände zwischen den Partnern kleiner sind und keine Platzhalter für das Heiratssymbol verwendet werden.

George Ludwig

Sophia Dorothea

Friedrich Wilhelm

Sophia Dorothea

GEORGE II Augustus

Caroline Elizabeth

Wilhelm IV

Karoline Margravine

OO

OO

OO

Frederick Lewis

Pss. Auguste

Anne, Pss. RoyalOO

OO

Amelia SophiaEleanor

George William

Abb. 5.1.5 Nach rechts expandierender Stammbaum

Page 58: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

54

Ein Symmetrieproblem bleibt bei Kindern aus mehreren Ehen bestehen, in denen die Kinder jeweils durch eine Verbindung vom Partner markiert werden, um einer Ehe zugewiesen zu werden (Abb. 5.2.1 links). Dort verzweigt sich die die Linienführung sehr stark, insbesondere bei einem nach rechts wachsenden Stammbaum.

Es ist ferner noch die Entscheidung über Anordnungsregeln in dem Stammbaum zu treffen, d.h. darüber, wie die Kinder den Eltern zugeordnet im Stammbaum plaziert werden sollen. Eine sich anbietende Möglichkeit besteht darin, alle Kinder eines direkten Nachkommens im Stammbaum mittig unter diesem zu plazieren, und zwischen allen Geschwistern den gleichen Abstand zu wählen. Das hat zur Folge, daß an gewissen Stellen, wie in Abb. 5.2.2 oben zu erkennen ist, unnötiger Freiraum entsteht, der dazu führt, daß der Stammbaum bei gleicher Personenzahl größer ist und daher weniger Informationen auf einem Bildschirm bei der Dar-stellung angezeigt werden können. Der Vorteil dieser Anordnung besteht aber darin, daß trotz des größeren Freiraums zwischen den Personen weniger ungenutzte Flächen in der Darstel-lung zu sehen sind, da eine große Verteilung der Personen auf der gesamten Zeichenfläche erreicht wird. Dies kann aber auch zu einer größeren Gesamtfläche führen.

Für die Darstellung der Informationen einer Person, die nicht im Stammbaum angezeigt wer-den, bieten sich zwei alternative Möglichkeiten an. Zum einen könnte ein permanenter Anzei-gebereich für die Daten an einer fest verankerten Stelle des Hauptfensters vorgesehen werden. Alternativ dazu könnte für jede Person ein neues Fenster erzeugt werden, welches vom Be-nutzer frei plaziert werden kann und so lange Zeit zu sehen ist, wie es benötigt wird. Mit die-ser zweiten Variante ist es möglich, sich die gesamten Daten von mehreren Personen gleich-zeitig anzeigen zu lassen. Dies ist ein bedeutender Vorteil bei einem Vergleich von mehreren Datensätzen, wohingegen bei einer zur Datenanzeige fest vorgegebenen Plazierung jeweils nur ein einzelner Datensatz betrachtet werden kann.

George Ludwig

Sophia Dorothea

Friedrich Wilhelm

Sophia Dorothea

GEORGE II Augustus

Caroline Elizabeth

Wilhelm IVKaroline Margravine

Frederick Lewis

Pss. Auguste

Anne, Pss. Royal

Amelia SophiaEleanor

George William

Abb. 5.1.6 Nach rechts expandierender Stammbaum mit alternativer Partnerzuordnung

Page 59: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

55

5.2 Vorstellungen der eigenen Methoden

Um eine gewisse Symmetrie zu erreichen, fiel die Wahl auf die Darstellung des Platzhalters jeder Person als ein Rechteck einheitlicher Größe. In diesem werden die wichtigsten Daten zur jeweiligen Person angegeben. Mit Platzhalter ist hierbei ein Knoten im Stammbaum ge-meint, der für eine Person steht. Im Falle einer Ehe sind an einem Knoten mehrere Platzhalter vorhanden, d.h. für jeden Ehepartner einer. Als wichtige Informationen, die im Stammbaum angezeigt werden, wurden ID, Name sowie die Lebensdaten der jeweiligen Person ausge-wählt. Zusätzlich werden verstorbene Personen durch ein Zeichen, nämlich ein Kreuz ( ), kenntlich gemacht. Da die Lebensdaten und somit gegebenenfalls auch das Sterbedatum zu jeder Person angegeben werden, ist dies zwar eigentlich nicht nötig, allerdings sind Daten von Personen, die vor längerer Zeit gelebt haben, oft unvollständig. Somit ist auch bei bekannter-maßen verstorbenen Personen das Sterbedatum nicht zwingend bekannt und kann in diesem Fall also auch nicht angezeigt werden. Dieser Sachverhalt ist im Stammbaum in Abb. 5.1.3, der aus einem existierenden Datensatz erstellt wurde, zu erkennen.

Die ID identifiziert eine Person eindeutig aus dem Datensatz der Datenbank und wird zum Vergleich mit einer Übersicht benötigt. Name und Lebensdaten dagegen sind direkte Informa-tionen zu einer Person, die dargestellt werden sollen. Wie bereits verdeutlicht, können auf-grund der statische Größe der Personenplatzhalter nicht sämtliche Daten, die zu einer Person existieren, im Stammbaum dargestellt werden. Ist man aber an zusätzlichen, nicht dargestell-ten Daten interessiert, wird auf Anfrage hin ein separates Fenster geöffnet. In diesem werden neben den schon im Stammbaum integrierten alle weiteren vorhandenen Daten, wie Geburts- und Sterbeort, Titel, Geschlecht, Geburtsname und Heiratsdatum, angezeigt.

Aus der Auswahl der anzuzeigenden Informationen leitet sich für den Personenplatzhalter eine Größe von 100 mal 50 Pixeln ab. Die Höhe von 50 Pixeln ergibt sich daraus, daß jeweils vier Zeilen an Informationen ausgegeben werden und der Text bei voller Ausnutzung dieser Höhe in einer angenehm lesbaren Größe erscheint. In der ersten Zeile wird die ID der Person und, falls sie verstorben ist, ein Kreuz dargestellt. Der Name einer Person wird in der zweiten Zeile eingetragen. Zeile 3 enthält das Geburtsdatum und die vierte und letzte Zeile das Ster-bedatum. Die Breite von 100 Pixeln ergibt sich aus mehreren Faktoren. Der Platzhalter sollte mindestens diese Länge aufweisen, um die Daten darstellen zu können und die meisten Na-men komplett aufzunehmen. Bei 100 Pixeln Breite können Namen mit bis zu sechzehn Buch-staben eingetragen werden. Längere Namen werden ab der dreizehnten Stelle mit drei Punk-ten abgekürzt. Da ein Stammbaum ausschließlich Personen mit gleichem Nachnamen enthält, werden nur die Vornamen ausgegeben; der Nachname ist nur in der erweiterten Ansicht mit

ID 11 Michael Müller Gebtag 17.20.76

ID 11 Michael Müller Gebtag 17.20.76

ID 21 Michael üller Schmitz Gebtag 17.20.7%

Abb. 5.1.6 Verschieden Arten eines Infofensters

Page 60: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

56

dargestellt. Ein Wert von genau 100 Pixeln wurde gewählt, da diese Länge der doppelten Breite entspricht und die Proportion von 1:2 die Symmetrie und somit das Aussehen der Platzhalter ansprechender erscheinen läßt.

Männliche und weibliche Personen werden mit einem Platzhalter derselben Art dargestellt. Es wurde darauf verzichtet, männliche Personen mit einem Rechteck und weibliche Personen mit einem Kreis oder einem anderen Symbol darzustellen, da es möglich ist, daß vom ersten be-kannten Nachfahren eben nur dessen Existenz, aber keine weiteren Daten bekannt ist. Somit ist auch das Geschlecht unbekannt, und folglich ist ungewiß, wie der Platzhalter zu wählen ist. Als Beispiel wäre hier ein uneheliches Kind zu nennen, von dem der Vater erst spät unterrich-tet wurde, aber über dessen Existenz hinaus er nie mehr über dieses Kind in Erfahrung brin-gen konnte. Desweiteren wirkt die Darstellung von weiblichen Personen in Form von Kreisen nicht attraktiv, was ein ästhetisches Argument gegen diese Form wäre. Wird aber für die weiblichen Personen eine nur leicht geänderte Form wie etwa ein Rechteck mit abgerundeten Ecken gewählt, ist der Unterschied zwischen den Geschlechtern wiederum kaum zu erkennen. Aus den Alternativen der Zuordnung von Partner wurde eine direkte Plazierung aller Partner einer Person unmittelbar unter dieser gewählt. Auf diese Weise wird die partnerschaftliche Beziehung zu einer Person ohne weitere Symbole oder Linien direkt aufgezeigt. Die Kinder einer Ehe werden jeweils einem Block von Partnerschaften zugeordnet, wobei der direkte Nachkomme, in der Regel immer der Vater ist. Die Kinder eines weiblichen direkten Nach-kommen werden üblicherweise in dem Stammbaum der Familie aufgezeigt, in die die Frau eingeheiratet hat. Existiert ein Kind, das eine angeheiratete Person mit in die Familie bringt, wird es nicht aufgeführt, es sei denn es wird vom Partner seines leiblichen Elternteils adop-tiert und nimmt somit auch den neuen Nachnamen an. Alle Kinder des direkten Nachkom-mens werden im Stammbaum zusammengefaßt, auch wenn sie aus verschiedenen Partner-schaften stammen, und bei allen wird eine Verbindung zu den Elternteilen hergestellt. Kon-kret bedeutet dies, daß die Verbindung bei dem letzten Partner des direkten Nachkommens beginnt und zu allen Kindern aus einer der Partnerschaften führt. Es wurde darauf verzichtet, die Verbindung der Kinder zu den jeweiligen Partnerschaften einer Ehe anzuzeigen, da diese zusätzlichen Linien hauptsächlich verwirren.

Für die Darstellung wurde ein von oben nach unten expandierender Stammbaum gewählt. Ein Argument für diese Entscheidung ist dabei die subjektiv als ansprechender empfundene Ge-stalt eines solchen Baumes. Desweiteren wird auf diese Weise optisch eine deutliche Abgren-zung zu einer Ahnentafel erreicht, die, wie schon erwähnt, im allgemeinen seitlich wachsend von links nach rechts dargestellt wird. Außerdem spricht für diese Darstellungsvariante auch die Verwendung von rechteckigen Personenplatzhaltern, deren Breite größer ist als ihre Höhe, da sich in diesem Fall ein seitlich expandierender Stammbaum flacher und breiter entwickeln würde als ein von oben expandierender. Außerdem ermöglicht diese sich seitlich ausdehnende Stammbaum-Variante bei eventuell auftretenden Mehrfachehen eine direkte Zuordnung der Kinder zum betreffenden Partner des direkten Nachkommens. Jedoch tritt, falls eine Person mit mehreren aufeinanderfolgenden Partnern jeweils mehrere Kinder hat, neben den schon weiter oben diskutierten Problemen ein zusätzliches auf, nämlich das der Linienführung. So-mit fällt die Entscheidung für ein bestimmtes Layout schwer, da jedes eigene Vor- und Nachteile mit sich bringt.

Page 61: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

57

Alle Kinder werden dazu an den Stellen, die es erlauben, mittig unter den Platzhaltern des Elternpaares plaziert, wie in Abb. 5.2.2 zu sehen. Dabei existiert also eine Verbindung zu al-len Kindern des direkten Nachkommens, unabhängig davon, ob sie alle von dem gleichen zweiten Elternteil abstammen.

An einigen Stellen ist es, abhängig von den weiteren Nachkommen, nicht möglich, die Kinder wie beschrieben anzuordnen. Dieses Problem wurde gelöst, indem das erste Kind, das auch am weitesten links im Stammbaum zu finden ist, den Platz beibehält, der ihm zugewiesen wurde. Sollte eine Verschiebung eines Kindes nötig sein, werden alle Nachkommen begin-nend mit den Eltern des Kindes nach rechts verschoben. Die Anordnung an der betreffenden Stelle ist nach dieser Layoutentscheidung zwar nicht mehr symmetrisch, jedoch werden die Freiräume innerhalb des Baums so klein wie möglich gehalten, so daß weniger Scrollen er-forderlich ist.

In Abb. 5.2.3 ist ein Beispiel für die zwei Möglichkeiten bezüglich des Abstandes zwischen Geschwistern dargestellt. Im oberen Baum wird die Symmetrie durch Beibehalten desselben Abstandes für alle Geschwister bewahrt, allerdings werden auf diese Weise innerhalb des Stammbaumes größere Freiräume geschaffen. Die untere Alternative in zeigt das in dieser Arbeit gewählte Layout des Baumes. Sollte eine Verschiebung erforderlich sein, so werden

Erste Ehefrau

Zweite Ehefrau

Karl Heinz

Kind 2

Kind 3

Kind 1

Kind 2

Kind 3

Kind 1

Erste Ehefrau

Zweite Ehefrau

Karl Heinz

Kind 2 Ehe 1

Kind 3 Ehe 1

Kind 1 Ehe 1

Kind 2 Ehe 2

Kind 3 Ehe 2

Kind 1 Ehe 2

ID

Person 10.04.1939-17.05.1998

ID

Partner 1 11.06.1941-

ID

Partner 2 05.07.1944-

ID

Partner 1 11.06.1971-

ID

Partner 2 05.07.1972-

ID

Partner 1 11.06.1976-

Abb. 5.2.2 Plazierung der Kinder im Bezug zu den Eltern

Abb. 5.2.1 Alternative Möglichkeiten zur Verzweigung zu den Kindern

Page 62: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

58

nur an der benötigten Stelle größere Abstände eingefügt, wodurch der Baum nicht mehr voll-ständig symmetrisch ist.

Bezüglich einer Übersichtsdarstellung des gesamten Baumes erfolgte die Entscheidung für zwei verschiedene Darstellungsbereiche: Es sind zwei verschiedene Zeichnungsbereiche für den Stammbaum verwirklicht worden, die gleichzeitig angezeigt werden. Im ersten Bereich wird der Stammbaum mit allen hier diskutierten Entscheidungen bezüglich der Darstellung aufgezeichnet, und im zweiten Bereich wird derselbe Stammbaum in einem kleineren Maß-stab zur Übersicht wiedergegeben. Dieser Übersichtsstammbaum enthält nur die IDs der Per-sonen, da für weitere Eintragungen kein Platz vorhanden ist und mit diesen lediglich der Be-zug zum ersten Stammbaum hergestellt werden soll. Die beiden Fenster sollten synchronisiert sein, so daß die Hauptdarstellung des Stammbaums immer einen Teil einer bestimmten Stelle aus der Übersicht zeigt.

Abb. 5.2.3 Abstand zwischen Geschwistern

Anne, Pss. Royal

Willem IV

Amelia SophiaEleanor

GEORGE II Augustus

Karoline Margravine

Frederick Lewis

Pss. Auguste

1

6 3 7

Abb. 5.2.4 Stammbaum mit Übersicht

Page 63: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

59

Abb. 5.2.4 zeigt den Stammbaum mit der Übersicht. Zusammenfassend ergibt sich das in Abb. 5.2.5 dargestellte Layout für die Stammbaumdarstellung in der Hauptansicht. Zur An-zeige der nicht im Stammbaum dargestellten Daten, wird bei Bedarf ein neues Fenster mit sämtlichen Informationen eingeblendet.

Nachfahre

angeheiratet

IDSophia Dorothea* 05.09.1666

02.11.1720

IDGeorg Ludwig* 28.05.1660

11.06.1727

IDGEORGE II Augustus* 30.10.168325.10.1760

IDKaroline Margravine* 01.03.168320.11.1737

IDSophia Dorothea* !&.0§.16(/28.06.1757

IDFriedrich Wilhelm I* 12.05.168711.06.1757

IDSophia Dorothea* 20.01.170720.03.1751

IDFriedrich Wilhelm I* 30.1.171908.02.1772

IDSophia Dorothea* 10.06.171131.10.1786

IDSophia Dorothea* 02.11.179112.01.1759

IDFriedrich Wilhelm I* 28.05.170812.01.1727

Abb. 5.2.5 Layout des Stammbaums

Page 64: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

60

6 Implementierung des Systems ViMaGe

Das System wurde aus dem Kontext heraus ViMaGe benannt, da es ein Werkzeug zur Vi-sualisierung und interaktiven Manipulation genealogischer Daten darstellt. Die Implementie-rung erfolgte in Java und die Daten werden in einer Microsoft-Access-Datenbank abgelegt.

Im folgenden soll ViMaGe vorgestellt werden; dabei werden einige ausgewählte Aspekte der Implementierung betrachtetet. ViMaGe bietet die Funktion zur Erstellung eines Stammbaums aus den in einer Datenbank in bestimmter Form gespeicherten Daten, und läßt gleichzeitig Manipulationen darauf zu. Das Datenbankschema, das hierzu nötig ist, wird in Kapitel 6.2 vorgestellt. Der Stammbaum wird auf zwei Arten dargestellt. Zu diesem Zweck sind auf der Hauptseite zwei Anzeigebereiche zu sehen: Das Hauptfenster ist vertikal in zwei kleinere Fenster unterteilt, wobei die Größenänderung des einen Fensters eine umgekehrt proportional Änderung in der Größe des anderen Fensters bewirkt. In dem linken Fenster befindet sich die Hauptansicht des Stammbaums. Sie zeigt die Informationen ID, Name, Lebensdaten und Le-bensstatus einer Person an. In dieser Ansicht können vorgefertigte Anfragen und Manipula-tionen an jede hier dargestellte Person gestellt werden. Dazu wird eine Person im Stammbaum mit der rechten Maustaste angeklickt, woraufhin ein entsprechendes Popup-Menü erscheint. In diesem Menü stehen folgende Funktionen zur Auswahl:

Daten zur Person ausgeben öffnet ein Fenster, in dem alle gespeicherten Daten zu einer Person ausgegeben werden, die nicht im Stammbaum angezeigt werden.

Nachfahren ausgeben markiert alle direkten Nachfahren dieser Person farbig.

Kind einfügen ermöglicht das Einfügen eines Kindes zu der ausgewählten Person; dabei ist jeweils die angeheiratete Person zu wählen, da bei Mehrfachehen sonst un-klar bleibt, wer der zweite Elternteil ist.

Partner einfügen Hiermit ist es möglich, einen Partner für die gewählte Person einzu-tragen.

Daten ändern ermöglicht es, Daten in der Datenbank zu ändern; Personendaten kön-nen geändert und neue Titel können eingetragen werden.

Beziehungen anzeigen erlaubt die Auswahl einer Verwandtschaftsbeziehung aus ei-ner Menge und die farbige Markierung dieser im Stammbaum. Beispielsweise können alle Enkel einer Person markiert werden, wobei diese rot dargestellt werden und die Bezugsperson grün. Sind die Antworten auf diese Anfrage nicht auf dem aktuellen Ausschnitt des Stammbaums sichtbar, kann unter dem Menü Aktion

der Menüpunkt Gehe Zu gewählt werden, der bewirkt, daß der Ausschnitt mit den Antworten als ak-tueller Bezugspunkt im Stammbaum angezeigt wird. Unter diesem Menüunterpunkt ist es auch möglich, zu den Stammeltern zu springen.

Das rechte Fenster zeigt die Übersichtsdarstellung des Stammbaumes. Dort wird ein um die Hälfte verkleinerter Übersichtstammbaum dargestellt, in dem nur die IDs der Personen abge-bildet sind, um die Personen in beiden Stammbäumen miteinander referenzieren zu können. In Abb. 6.1 ist der Hauptbildschirm mit beiden Stammbäumen dargestellt. Markierungen werden jeweils in beiden Stammbäumen dargestellt. Die linke obere Ecke wird jeweils als Bezugspunkt zum anderen Stammbaum verwendet. Wird in einer der Ansichten gescrollt, wird dies auch in der anderen Ansicht so übersetzt, daß im Maßstab 1:2 ausgehend von der linken oberen Ecke der gleiche Punkt in beiden Ansichten vom Stammbaum dargestellt wird.

Page 65: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

61

6.1 Architektur und Komponenten

Dem System ViMaGe liegt die in Abb. 6.1.1 beschriebene Architektur zugrunde.

VM

Hauptfenster

MenuGenealogy

ÜbersichtStB

TopologieSB

Person

ZeichneLinien

Wahlbox

DBAnbindung

ABAbfrage

DBDateneingabe

DJPanel

Eingabemaske

Abb. 6.1.2 Zusammenwirken der Java-Klassen

JDBC-ODBC-Brücke

Microsoft Access

DB

ODBC-Schnittstelle von Access

ODBC-Schnittstelle von Windows

ViMaGe

Abb. 6.1.1 Architektur und Komponenten

Page 66: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

62

Das System ViMaGe besteht aus zwölf Java-Klassen, die wie in Abb. 6.1.2 gezeigt zusam-menwirken.

Die Klasse Person enthält Methoden, in denen die Personen aus der Datenbank eingelesen werden und in denen für jede Person ein Objekt erzeugt wird. Desweiteren wird in dieser Klasse die Layout-Berechnung für die Anordnung der Personen in der Stammbaum-Darstellung durchgeführt. Die wichtigsten Methoden in dieser Klasse sind

1. Personeneinlesen(int y) 2. Personeneinlesen(String idv, int y) 3. partner(String personid, String geschlechtpartner, int y) 4. kindvonvec(String personid, String geschlechtvor) 5. partnervec(String personid, String geschlechtpartner) 6. balance(int xwert, int startbalance) 7. elternteileintragen(String idelternteil,Vector kinder, int zaeler,int xwertkind) 8. veschiebegeschwister() 9. elternverschieben(String id, int verxpos, int ebene) 10. nachkommenverschieben(String nid, int xwertverschieben) 11. countline()

Die ersten fünf Methoden sind zum Personeneinlesen nötig, an dieser Stelle wird bereits der erste Schritt der Layoutberechnung durchgeführt. Methoden sechs und sieben sind für den zweiten Layoutschritt erforderlich, acht bis zehn für die Layoutoptimierung und die letzte Methode zur Berechnung der Linien im Stammbaum. Der genaue Ablauf wird in Kapitel 6.3 erläutert.

TopologieSB erzeugt Objekte, die Informationen zu der topologischen Anordnung der Perso-nen im Stammbaum und zu ihrer Darstellung enthalten. Dazu zählen die x- und y-Koordinaten, Farbinformationen sowie Angaben zu der Ebene im Stammbaum, die Anzahl von Geschwistern und die größte Anzahl von Ehepartnern, die eine Person auf dieser Stamm-baumebene hat. Desweiteren ist gespeichert, ob die Person innerhalb des Stammbaums einen Nachfahren darstellt oder lediglich eingeheiratet hat. Jedem Person-Objekt wird ein Topolo-gieSB-Objekt zugeordnet.

LinienVerbindungen generiert für jede Linie ein Objekt, in dem die x- und y-Koordinaten von Startposition und Endposition der Linie angegeben sind. In WahlBox wird die Auswahl des Stammvaters inklusive Datenbankanfrage verwaltet. DBAnbindung ist für das Laden der Treiber zur Verwendung der JDBC-ODBC-Bridge und zum Verbindungsaufbau mit der Da-tenbank verantwortlich. In Eingabemaske werden die Fenster zur Dateneingabe erzeugt. Zu diesen gehören unter anderem das Fenster, in dem die Datenbank angegeben wird, die unter ODBC registriert ist, sowie die Fenster zur Personen- oder Titeleingabe von Personen. Die Klasse DJPanel erstellt das Fenster, in dem die erweiterten Personeninformationen angezeigt werden. Dieses Fenster wird erzeugt, sobald eine Anfrage über Personendaten zu einer be-stimmten Person vom Benutzer über das Popup-Menü im Hauptfenster gestellt wird.

In Hauptfenster wird das Hauptfenster erzeugt und das Menü integriert. Außerdem wird in dieser Klasse auch das Popup-Menü erzeugt. Im Hauptfenster werden zwei Scrollpanes, also scrollbare Bereiche, erzeugt. Jedem dieser Bereiche wird ein Panel zugeordnet. Auf dem Hauptpanel wird der Stammbaum gezeichnet, auf dem Übersichtspanel wird ein ÜbersichtStB dem zweiten Scrollpane zugeordnet. Dort wird der Stammbaum um die Hälfte kleiner ge-

Page 67: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

63

zeichnet und nur mit der ID als Ausgabe erstellt, damit die beiden Bäume einander zugeordnet werden können. ÜbersichtStB erzeugt ein Panel, welches im Hauptfenster in das Scrollpane eingebunden wird. Hier wird der um die Hälfte verkleinerte Übersichtsstammbaum abgebil-det. Das Panel muß dabei in einer anderen Klasse erzeugt werden als das Hauptpanel für den Stammbaum, da die Paint-Methode andernfalls in beiden Panels die gleichen Zeichnungen einfügt. MenuGenealogy erzeugt das Menü im Hauptfenster.

DBDateneingabe ist für das Absetzen von SQL-Befehlen, die eine Änderung der Datenbank wie z.B. das Einfügen neuer Personen oder Titel zur Folge haben, zuständig. Durch DBAb-frage werden die Beziehungen einer Person wie vom Benutzer abgefragt ermittelt und im Stammbaum markiert.

6.2 Vorstellung des Datenbankschemas

Die genealogischen Daten werden in einer relationalen Datenbank gespeichert, die unter Ac-cess angelegt wird. In dieser Datenbank werden die Informationen zu den einzelnen Personen in sechs Tabellen aufgeteilt.

Informationen, welche später auch in Kurzform im Stammbaum dargestellt werden, befinden sich in den Tabellen Person

und Lebensdaten . Das erste Attribut der Person -Tabelle stellt die ID der Person und gleichzeitig den Schlüssel der Tabelle dar. Diese ID ist ein Auto-wert, d.h. ein Integerwert, der automatisch inkrementiert wird, sobald eine neue Person einge-tragen wird. Der Name einer Person wird in drei verschiedenen Spalten der Tabelle eingetra-gen, nämlich unter Name , Vorname und Geburtsname . Alle diese Attribute haben den Wertebereich Text und dürfen Nullwerte enthalten. Zwei weitere Attribute sind Geschlecht , in dem m für männlich, w für weiblich und unbekannt

eingetragen werden kann, falls das Geschlecht einer Person nicht bekannt sein sollte, und Lebendig , in dem der Wert ja , nein oder unbekannt eingetragen werden muß. Diese beiden Attribute haben ebenfalls

den Wertebereich Text, besitzen jedoch eine Gültigkeitsregel, so daß hier anders als bei den ersten drei genannten kein anderer Wert als in der Gültigkeitsregel spezifiziert ist eingetragen werden kann. Die einzutragenden Werte sind dabei die oben beschriebenen Werte.

Eine weitere Tabelle ist Stammvater , die nur eine Spalte besitzt. Hier können Stammväter, die zur Wahl stehen sollen, eingetragen werden. Ausgehend von demjenigen Stammvater, der aus dieser Tabelle gewählt wird, beginnt die Berechnung zur Darstellung des Stammbaums. Der Datentyp des Feldes ist der ID entsprechend integer, da sich hierauf die ID einer Person, die in der Tabelle Person gespeichert ist, bezieht.

Die Tabelle Titel

besitzt vier Attribute: Das erste, PersonID , besitzt den Wertebereich Integer. Dieses Attribut ist ein Fremdschlüssel, in dem die ID der betreffenden Person einge-tragen wird. Die weiteren drei Spalten sind Titel , von und bis . Hier wird vermerkt, wann ein Titel verliehen wurde und, sollte er aberkannt oder nur zeitlich begrenzt vergeben worden sein, so wird dieser entsprechende Zeitpunkt in der bis -Spalte eingefügt. Auch hier ist der Wertebereich aller drei Attribute vom Typ Text.

Lebensdaten ist die letzte Tabelle, die Informationen zu einer Person liefert; die zwei übri-gen Tabellen Verheiratet und Kind geben lediglich Beziehungen zwischen Datensätze in der Person -Tabelle an. PersonID stellt wieder einen Schlüssel der Tabelle Lebensdaten

dar: Hier wird die ID einer Person eingetragen, auf die sich das Tupel bezieht. Die restlichen

Page 68: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

64

vier Attribute, die Spalten Geburtsort , Geburtstag , Todesort und Todestag , haben den Wert Text und geben Informationen zu Geburts- und Todesdaten.

In der Tabelle Kind

werden drei IDs gespeichert: in Mutter die ID der Mutter, in Vater

die ID des Vaters und in Kind entsprechend die ID des Kindes. Das Attribut Kind ist hier der Schlüssel dieser Tabelle: Jedes Kind kann nur einmal als Kind eingetragen sein, wogegen jede Person mehrfach Vater oder Mutter werden kann.

In der letzten Tabelle, verheiratet , wird die Heirat eines Paares vermerkt. In der Spalte Mann wird dabei die ID des Mannes, in Frau die ID der Frau eingetragen. Diese beiden

Attribute sind vom Typ Integer. Die weiteren Attribute von/seit und geschieden , in denen das Heiratsdatum- bzw. das Scheidungsdatum eingetragen werden, sind vom Typ Text. Diese verheiratet-Tabelle besitzt kein Attribut als Schlüssel, da es selbst unter den gleichen Perso-nen mehrere Heiraten geben kann. Somit ist hier das gesamte Tupel der Schlüssel.

6.3 Ausgewählte Aspekte der Implementierung

6.3.1 Datenbank-Kopplung

Java kommuniziert mit Access über die ODBC-JDBC-Bridge. Um dies zu ermöglichen, müs-sen zunächst die ODBC-Treiber installiert werden. Dies geschieht bei Microsoft Access schon parallel zur Programminstallation. Eine Datenbank, auf die mit ODBC zugegriffen werden soll, muß beim ODBC-Treiber unter dem jeweiligen Betriebssystem registriert werden, damit der Zugriff über ODBC freigegeben wird. Soll unter Windows XP bei Verwendung von Microsoft Access auf eine Datenbank zugegriffen werden, so muß diese Datenbank vorab erst erstellt werden. Die in dieser Arbeit verwendete Datenbank trägt den Namen Königshaus England.mdb ; ihre genaue Struktur wurde bereits im vorigen Kapitel beschrieben. Zur Regi-strierung der ODBC-Schnittstelle ist in der Systemsteuerung unter dem Punkt Leistung und Wartung

der Menüpunkt Verwaltung

zu wählen. Hier ist es nun unter Datenquellen (ODBC)

möglich, eine Datenbank unter System-DSN

zu registrieren: Man wählt Hinzu-fügen und wird im folgenden zunächst zur Auswahl eines Treibers aufgefordert.

Da Königshaus England.mdb eine Access-Datei ist, findet in diesem speziellen Fall der Microsoft Access-Treiber Verwendung. Im nächsten Punkt sind Datenquellenname und Da-tenbank zu wählen. Zum Datenquellennamen wird england bestimmt und die Datenbank Königshaus England.mdb

zugewiesen. Nach Bestätigung ist Königshaus England.mdb

somit unter dem Namen england

über die ODBC-Schnittstelle zu erreichen. Optional ist es möglich, einen Benutzernamen und ein Kennwort anzugeben, falls die Datenbank paßwortge-schützt ist. Nach dieser Registrierung der Datenbank unter Windows als ODBC-Datenquelle ist es nun möglich, mit einer ODBC-unterstützenden Anwendung, wie z.B. im vorliegenden Fall einem Java-Programm, direkt auf die Datenbank zuzugreifen.

In Java gestaltet sich der Zugriff auf die Datenbank folgendermaßen: Die Datenbankanbin-dung sowie alle Anfragen und Befehle an die Datenbank sind in einem try-catch-Block unter-zubringen, damit es in Fehlersituationen nicht zu unkontrollierbaren Abstürzen kommt. Bevor tatsächlich Anfragen an die Datenbank gestellt werden können, ist eine Datenbankanbindung erforderlich. Dazu wird zunächst der Datenbanktreiber für die JDBC-ODBC-Bridge geladen. Ist dies geschehen, wird eine Verbindung zur Datenbank hergestellt. Diese Verbindung bleibt geöffnet, bis sie mit dem Befehl .close()

wieder geschlossen wird. Die Verbindung zur Da-

Page 69: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

65

tenbank ist in der Klasse DBAnbindung geregelt. In dem folgenden Codeausschnitt ist die Datenbankanbindung dargestellt.

try {

Class.forName( sun.jdbc.odbc.JdbcOdbcDriver ); //Datenbanktreiber }catch(Exception e) {

(Reaktion auf Ausnahmen )

}

try { Connection verbindung = DriverManager.getConnection(DB,user,pass);

}catch(Exception e) {

(Reaktion auf Ausnahmen )

}

Der erste try-catch-Block zeigt, wie die ODBC-Treiber für die JDBC-ODBC-Bridge geladen werden, da das Programm über diese Windows-Bridge mit Access kommuniziert. Alternativ würde für ein MySQL-System der Treiber org.gjt.mm.mysql.Driver geladen werden; bei Oracle-Systemen wäre dagegen der Treiber oracle.jdbc.driver.OracleDriver

nötig. Im zwei-ten try-catch-Block wird mit Connection

eine Verbindung definiert, über die später Befehle und Anfragen an die Datenbank weitergegeben werden. Es werden drei Stringwerte als Para-meter übergeben: Die DB ist der Datenquellenname, d.h. der Name, unter dem die Datenbank (in diesem speziellen Fall Königshaus England.mdb ) im Betriebssystem dem ODBC-Treiber zugeordnet wurde (wie bereits erklärt, ist dieser Name im Rahmen dieser Arbeit eng-land ). Die Strings user

und pass

stellen Username bzw. Paßwort bei einer paßwortge-schützten Datenbank dar. Existieren keine Benutzer und kein Paßwort, ist ein leerer String zu übergeben.

In ViMaGe wird die Verbindung in der Variablen verbindung , die in MenuGenealogy als statisch definiert wird, geöffnet und bei Beendigung des Programms oder des Benutzers ge-trennt. Statisch ist diese Verbindung, weil mehrere Klassen auf sie zugreifen: Die Klasse Person

fragt alle Personendaten aus der Datenbank ab, DBDateneingabe benutzt die Ver-bindung zum Einfügen oder Ändern von Daten, DBAnbindung

stellt die Verbindung her, MenuGenealogy

gibt die Metadaten der Datenbank aus und beendet auf Wunsch des Be-nutzers die Verbindung. DBAbfrage

stellt die Beziehungsanfragen zwischen Personen an die ODBC-Schnittstelle und markiert sodann die Ergebnisse im dem Datensatz und der Dar-stellung in ViMaGe. Nach Herstellung der Verbindung werden nun Anfragen über die JDBC-ODBC-Bridge an die Datenbank gesendet. Die Anfragen und Befehle an die Datenbank werden dabei ebenfalls in einem try-catch-Block gestellt. Die Anfrage selbst gestaltet sich folgendermaßen: Es wird zunächst ein Statement definiert, das in dem Programm immer als query benannt wird. Dem Statement wird die offene Verbindung zugewiesen, über die dann die Anfragen an die JDBC-ODBC-Bridge weitergeleitet werden. Zusätzlich wird ein ResultSet erzeugt, welches die Er-gebnisse der SQL-Anfrage an die Datenbank als Antwort erhält. Dem ResultSet wird die An-frage zugeordnet, in der die SQL-Anweisung als Parameter in Stringform übergeben wird. Das Ergebnis wird in einer while-Schleife durchlaufen.

Page 70: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

66

In dem folgenden Codeausschnitt ist die Anfrage nach den Personendaten gezeigt, die in die Java-Objekte eingetragen werden. In einem Person -Objekt werden folgende Informationen gespeichert:

die ID (so, wie sie von der Datenbank vergeben ist);

Vor- und Nachname; Geschlecht;

ob die Person noch lebt oder bereits verstorben ist;

Vektoren, in denen die Partner und Kinder gespeichert sind;

ein Objekt topologie , in dem die bereits weiter oben beschriebenen Informationen zu finden sind;

das Elternteil, welches einen direkten Nachkommen in dem Stammbaum darstellt und also keine angeheiratete Person;

und schließlich die Sterbe- und Geburtsdaten.

try { String anfrage= "SELECT * FROM Person P,Lebensdaten L WHERE L.PersonID=P.ID AND P.ID= " +idv;

Statement query = MenuGenealogy.verbindung.createStatement(); ResultSet ergebnisse = query.executeQuery(anfrage);

while(ergebnisse.next()) { idinput = ergebnisse.getString(ergebnisse.findColumn("ID")); vnameinput=ergebnisse.getString(ergebnisse.findColumn("Vorname")); nameinput=ergebnisse.getString(ergebnisse.findColumn("Nachname")); geschlechtin-put=ergebnisse.getString(ergebnisse.findColumn("Geschlecht")); inputlebendig=ergebnisse.getString(ergebnisse.findColumn("Lebendig")); gebdatumin-put=ergebnisse.getString(ergebnisse.findColumn("Geburtstag")); todesdatumin-put=ergebnisse.getString(ergebnisse.findColumn("Todestag"));

Person peintrag = new Person(idinput, nameinput, vnameinput, ge-schlechtinput, tmpp, tmpk, gebdatuminput, todesdatuminput);

MenuGenealogy.vid.addElement(peintrag); partner(idinput,geschlechtinput,y);

}

}catch (Exception e) {

}

6.3.2 Einlesen von Personendaten

Das Einlesen der Personendaten und das Erzeugen von Objekten zur Darstellung im System ViMaGe beginnt, sobald der Benutzer die Stammbaumausgabe startet. Bevor dies möglich ist, wird mit der Wahl des Stammvaters die Startposition, ab der alle Daten ausgelesen werden sollen, spezifiziert. Diese Auswahl des Stammvaters bewirkt, daß seine ID in der Variablen stammvaterid

eingetragen wird. Wird nun im Menü die Ausgabe des Stammbaumes ausge-wählt, werden in der Klasse Person alle Nachfahren von diesem Stammvater eingelesen. Für jede Person wird ein Person-Objekt angelegt und im Vektor vid gespeichert. Dazu wer-den die Personen, abhängig von ihren Beziehungen untereinander, in einer bestimmten Rei-

Page 71: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

67

henfolge (siehe Abb. 6.3.2.1) gespeichert. Diese Reihenfolge dient der späteren Layoutbe-rechnung als Grundlage.

Zum Importieren der Personendaten in das System werden fünf Methoden und die zwei tem-porären Vektoren vektortemp und kindvektortemp

verwendet. In diesen beiden Vektoren

werden mit einer der Methoden die einzulesenden Personendaten bestimmt. Das Einlesen beginnt bei Stammvater. Dazu wird dessen ID in den Vektor vektortemp eingefügt. Mit der Methode Personeneinlesen (int y) wird der Import begonnen. Der übergebene Parameter dient zur Layoutberechnung. Dies wird in Kapitel 6.3.3 genauer erläutert. Zu Be-ginn wird für jede ID, die in dem Vektor vektortemp gespeichert ist, in einer Schleife die Methode Personeinlesen(String id, int y) aufgerufen. Diese zweite Methode generiert für jede ID, die in vektortemp gespeichert ist, ein Person-Objekt und fügt sie dem Vektor vid an. Desweiteren ermittelt sie alle Nachkommen für die Personen, deren ID in dem Vektor vektortemp gespeichert sind, und trägt sie in kindvektortemp ein. Wurde der Vektor vektortemp vollständig durchlaufen, wird dieser geleert. Der zweite Schritt in dieser ersten Methode ist die Übertragung aller Elemente aus kindvektortemp in vektortemp und das Löschen aller Einträge aus kindvektortemp . Hatte(n) die Person(en), deren Referenz zuvor in vektortemp gespeichert war(en), keine Kinder, so bleibt kindvektortemp leer und seine Größe somit gleich null. Dann ist das Einlesen der Personendaten aus der Datenbank beendet. Falls aber Kinder existiert haben, ruft sich diese Methode solange selbständig auf, bis sämtliche Nachkommen eingelesen wurden.

Die Methode Personeinlesen (String id, int y) wird, wie eben erwähnt, auf-gerufen. Dabei wird ihr die ID der auszulesenden Person übergebenen. Anhand dieser ID wird eine Anfrage an die Datenbank gestellt, um die nötigen Informationen zum Erstellen eines Person-Objektes zu erhalten. Diese Informationen sind die schon bekannte ID, Vor- und Nachname, Geschlecht, Geburts- und Todesdatum und zwei Vektoren. Ein Vektor beinhaltet die IDs aller Partner und der zweite Vektor die IDs alle Kindern einer Person. Diese beiden letzteren Vektoren werden jeweils mit der Methode kindvonvec (String id, String geschlecht) für die Kinder und partnervonvec (String id, String geschlecht) für die Partner gefüllt. Die Kinder werden an den Vektor kind-vektortemp angehangen, und für jeden Partner einer Person wird in der Methode Partner (String id, String geschlecht, int y)

ein Person-Objekt erzeugt. Diese Methode ist mit der vorherigen Methode, in der die Personen-Objekte angelegt wurden, nahe-zu identisch; der einzige Unterschied liegt darin, daß hier die Kinder nicht an kindvektor-temp angehangen und für die Partner dieser Personen keine neuen Objekte erzeugt werden, da sie selbst der Partner sind. In der Methode Partner (String id, String ge-schlecht, int y) werden die Personen eingelesen, die durch eine Heirat in die Fami-lie aufgenommen wurden.

In den beiden Methoden zum Einlesen der Partner und Kinder wird neben der ID und dem y-Wert, der zur Topologieberechnung benötigt wird, ebenfalls noch das Geschlecht der Person, deren Kinder bzw. Partner zurückgegeben werden sollen, übergeben. Dies ist wichtig, da bei-de Methoden eine SQL-Anfrage an die Datenbank senden, um die gewünschte Information zu erhalten, und je nach Geschlecht eine unterschiedliche Anfrage gesendet werden muß. Im Falle der Kinder, die ebenfalls an kindvektortemp zur weiteren Abarbeitung weitergegeben werden, gestaltet sich die SQL-Anweisung, die an die Datenbank gesendet wird, folgender-maßen:

if(geschlechtvor.equalsIgnoreCase("w")) {

Page 72: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

68

anfrage = "SELECT * FROM Person P,Kind K WHERE K.Kind=P.ID AND K.Mutter=";

}else if(geschlechtvor.equalsIgnoreCase("m")) { anfrageteil1 = "SELECT * FROM Person P,Kind K WHERE K.Kind=P.ID AND K.Vater=";

}

Abhängig vom Geschlecht der Person, deren Kinder angefragt werden, muß diese Person als Vater oder Mutter in der SQL-Anfrage eingetragen werden. Der zweite neben dem Geschlecht übergebene Wert ist y, was dem y-Wert für die Darstellung im Stammbaum entspricht. Er wird für die Layoutberechnung benötigt.

6.3.3 Layoutberechnung

Die Layoutberechnung wird in vier Schritten durchgeführt. Als erstes wird während des Ein-leseprozesses der Daten allen Personen der y-Wert für die vertikale Plazierung zugewiesen, die damit schon abgeschlossen ist, und ein erster x-Wert für die horizontale Plazierung. Der letztere Wert ordnet die Personen für jede Generation mit einem Abstand von 20 Pixeln ne-beneinander an. In diesem ersten Schritt werden auch die Partner einer Person unter den Per-sonen plaziert. Darauf folgt als zweiter Schritt eine Zuordnung der Kinder einer Person mittig unter dieser. Im anschließenden dritten Schritt werden Überschneidungen, die durch das An-ordnen der Kinder unter ihren Eltern entstehen, aufgelöst. Die Optimierung wird mit dem Be-rechnen der Linien beendet.

SV P1

Pn K1 K1P1

K1Pn K2 K2P1

KnPn K11 K11P1 .. K12

Abb. 6.3.2.1 Anordnung der Person-Objekte im Vektor vid

Stammeltern

Erste Generation

Zweite Generation

SV Stammvater Px Partner x Kn Kind n KmPn n-ter partner von m-ten Kind

K11 erstes Kind von Kind 1 K12 zweites Kind von Kind 1

Vertikale Anordnung beim einlesen y-Werte berechnen

Kinder den Eltern zuordnen

Überschneidungen auflösen Linien berechnen

Abb. 6.3.2.2 Ablauf der Layout-Optimierung

Page 73: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

69

6.3.3.1 Vertikale Anordnung

Der erste Schritt der Layoutberechnung wird bereits während des Einlesevorgangs der Perso-nendaten gestartet. Da mit der Wahl des Stammvaters festgelegt wird, von welcher Person ausgehend die Ausgabe des Stammbaums beginnen soll, wird somit gleichzeitig bestimmt, an welchem Punkt die Layoutberechnung beginnt. Zu Beginn der Layoutberechnung wird ein Startwert für den y-Wert von 50 festgelegt, damit die Stammeltern, die ja auch die ersten Per-sonen im Stammbaum sind, nicht unmittelbar am Fensterrand angeordnet werden. Es wurde hierzu ein Wert von 50 Pixeln gewählt, dies ist die Höhe eines Rechtecks. Bei dem Einlesen der Personendaten wird für jede Person einer Generation ein aktueller y-Wert geführt, der dieser Person zugewiesen wird. Sobald zu einer Person die Partner mit der Methode part-ner (String personid, String geschlechtpartner,int y) eingetragen werden, geschieht dies in einer Schleife, in der der maximale y-Wert dieser Ebene ermittelt wird. Jeder Partner einer Person besitzt denselben x-Wert, aber für jeden Partner wird der y-Wert um 50 erhöht.

Der größte y-Wert in einer Generation wird als Maximalwert gespeichert, von dem aus der y-Wert für alle direkten Nachfahren der nächsten Generation errechnet wird: Dazu wird zum erhaltenen maximalen y-Wert 90 hinzuaddiert. Somit ist die nächste Generation 90 Pixel vom letzten Ehepartner der Person entfernt, die die meisten Ehen eingegangen ist. Der nach dem Einlesen aller existierenden Daten der Nachkommen eines Stammvaters ermittelte y-Wert wird nun noch um 100 Pixel erhöht, da somit jede dargestellte Person der letzten Generation einen Abstand von mindestens 50 Pixel zum unteren Rand des Zeichnungsbereiches besitzt. Ohne diese Erhöhung um 100 Pixel würde für mindestens eine Person mit diesem maximalen y-Wert ein Platzhalter erzeugt werden, der nicht sichtbar ist, da er außerhalb des Darstel-lungsbereiches gezeichnet wird (denn das Rechteck wird ja vom maximalen y-Wert ausge-hend um 50 Pixel nach unten gezeichnet). Diese y-Werte ändern sich im folgenden auch in der weiteren Optimierung des Layouts nicht mehr.

Der x-Wert zu einer Person wird folgendermaßen berechnet. Da alle Personen generations-weise eingelesen werden, wird bei jeder Generation mit einem x-Wert von null begonnen. In dem Vektor vektortemp befinden sich die IDs für alle Personen der aktuell einzulesenden Generation. Es wird bei der ersten ID begonnen; dem dieser Person entsprechenden Person-Objekt wird ein x-Wert von null zugeordnet. Nun wird, bevor der x-Wert für die nächste Person um 120 Pixel erhöht wird, geprüft, ob Partner für die aktuell bearbeitete Person exi-stieren. Ist dies der Fall, wird der x-Wert beibehalten und wie weiter oben beschrieben der y-Wert für die eventuell vorhandenen Partner berechnet. Die Person-Objekte für die Partner werden mit denselben x-Werten erzeugt, da ein Partner bündig unter der dazugehörigen Per-son plaziert wird. Wenn aber die aktuell ausgelesene Person aus der Datenbank keine Partner besitzt und noch eine Person im Vektor vorhanden ist, wird für diese Person der x-Wert um 120 erhöht.

Nachdem alle Personen eingelesen wurden, entspricht die Reihenfolge, die sie im Vektor ein-nehmen, folgendem Muster: Die erste Person ist der Stammvater selbst, die nächste(n) Per-son(en) sein(e) Partner bzw. seine Partnerin(nen), und darauf folgen die Kinder des Stammva-ters sowie deren Partner. Dabei folgt bzw. folgen auf das erste Kind direkt dessen Partner, und erst danach das zweite Kind mit Partner etc. Somit schließt sich der kompletten ersten Gene-ration die vollständige zweite Generation an usw. Ausgehend von dieser Anordnung im vid wird nun die Berechnung des Layouts begonnen. Im ersten Schritt wird für jede Person, be-

Page 74: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

70

ginnend mit dem Stammvater, eine Verschiebung von deren Kindern durchgeführt, so daß sich die Eltern mittig über ihren Kindern befinden. D.h. also, daß die Kinder des Elternteils, welcher ein direkter Nachkomme ist, mittig unter diesem mit all seinen Partnern plaziert wer-den.

Mit den anfänglichen x- und y-Werten würde die Ausgabe des Stammbaums sich wie unter Abb. 6.3.1 gezeigt gestalten. Diese ursprünglichen Werte für die Koordinaten ergeben sich direkt nach Einlesen der Personendaten, ohne daß eine Optimierung begonnen wurde. Ledig-lich die gezeigten Linien sind nicht auf diese Weise berechnet worden; sie würden jedoch wie vorliegend dargestellt werden, wenn keine Optimierung der zur Anordnung der Personen im Stammbaum durchgeführt werden würde. Die Zahlen in der Abbildung bezeichnen die Rei-henfolge der einzelnen Personen im Vektor, was auch der Reihenfolge ihres Einlesevorgangs entspricht.

6.3.3.2 Plazierung der Kinder

Der zweite Teil der Layout-Berechnung erfolgt in mehreren Schritten. Im ersten Schritt wird die Methode balance() gestartet, die den Vektor vid mit allen Personenobjekten einmal durchläuft. Dabei wird mit der ersten Person im Vektor, also dem Stammvater, begonnen. Ob eine Person ein direkter Nachkomme ist und somit deren Kinder bezüglich ihrer Position an-geordnet werden müssen, wird daran erkannt, daß alle Personen beim Einlesen einen bool-schen Wert zugewiesen bekommen, nämlich getwahl . Werden Personen als Nachkommen oder als Stammvater eingelesen, erhalten sie den Wert false . Alle angeheirateten Personen, d.h. die Partner von direkten Nachkommen, werden mit true markiert. Bei der Topologiebe-rechnung wird nun für alle Personen mit getwahl=false die Anzahl ihrer Kinder abgefragt. Zur Berechnung der Positionen der Kinder muß lediglich ein neuer x-Wert berechnet werden, da alle y-Werte durch den Einlesevorgang schon korrekt berechnet worden sind. Um alle Kinder symmetrisch unter die Eltern zu plazieren, wird der x-Wert für das erste Kind ermit-telt. Dieser Wert wird als Parameter zusammen mit der ID des Elternteils, der Position im Personenvektor und allen Kindern dieses Elternteils an die Methode elternteileintragen

Abb. 6.3.1 Stammbaum vor Optimierung

9 10 11

18

7

19

8

20

23

22 25

272421

141312

26

15

16 17

1

2

3

4

5

6

Page 75: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

71

übergeben, in der jedem Kind der Elternteil, welcher ein direkter Nachkomme im Stamm-baum ist, und der entsprechende x-Wert zugewiesen wird. Um den Wert des ersten Kindes zu ermitteln, wird der x-Wert des Elternteils ausgelesen. Für eine Plazierung mittig unter den Eltern muß das erste Kind um die Hälfte der gesamten Länge aller Kinder nach links verscho-ben werden, was einer Subtraktion von (#Kinder-1)*60 vom x-Wert der Eltern entspricht. Der errechnete Wert wird mit den drei anderen Parametern an die Methode elternteileintragen übergeben. In dieser Methode wird der Vektor ausgehend von der übergebenen Position in einer Schleife mit den IDs der Kinder verglichen. Sobald das erste Kind erreicht wird, wird ihm die errechnete x-Position zugewiesen und die aktuelle x-Position um 120 erhöht. Gleich-zeitig wird dem Kind der Elternteil zugewiesen. Die Schleife wird abgebrochen, sobald dies für alle Kinder geschehen ist.

Bei jeder Berechnung des x-Wertes für die Kinder einer Person, die im Stammbaum direkte Nachkommen besitzt, wird dieser x-Wert beginnend mit null verglichen und der kleinste Wert gespeichert. Nach abgeschlossener Plazierung der Kinder existiert ein minimaler Wert, der gleich null oder negativ ist. Das Panel, in dem der Stammbaum dargestellt wird, beginnt bei der Position x = 0 und y = 0; dadurch liegen alle Darstellungen, die im negativen Wertebe-reich für x oder y beginnen, außerhalb des Darstellungsbereichs. Infolgedessen wird für jede Person der x-Wert um den Betrag dieses minimalen x-Wertes erhöht, was in einer Verschie-bung des Stammbaums um diesen Pixelwert nach rechts resultiert.

Nachdem diese Prozedur durchlaufen wurde, ergibt sich eine Anordnung wie in Abb. 6.3.2 dargestellt, wobei sich mittig unter jeder Person ihre Kinder befinden. Die Verschiebung hat jedoch zur Folge, daß es zu Überschneidungen in der Stammbaumdarstellung kommt, was aber durch die Methode veschiebegeschwister

behoben wird (dritter Schritt der Layoutbe-rechnung). Nun wird der gesamte Vektor erneut durchlaufen und jeder x-Wert um den Betrag des kleinsten existierenden x-Wert erhöht, um den Baum gegebenenfalls aus dem negativen Bereich, der nicht dargestellt wird, wieder in den positiven zu verschieben. Dadurch kann sich der maximale x-Wert wieder erhöhen, was parallel überprüft werden muß, um das Panel nach dieser Verschiebung ausreichend groß zu wählen.

if(p.topologie.getwahl()==true) { }else if(p.topologie.getwahl()==false) {

parts=p.partner.size(); kidv=p.getkind(); kinds=kidv.size(); xpos=p.topologie.getxpos(); help1=xpos-(kinds*60)+60; elternteileintragen(p.getid(),kidv,i,help1);

}else{}

Berechnung des x-Wertes für die Kinder

Page 76: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

72

6.3.3.3 Auflösen von Überschneidungen

Mit der Methode veschiebegeschwister

wird die dritte Phase der Layoutberechnung einge-leitet. Der Vektor vid mit den Person -Objekten wird noch einmal durchlaufen, und zwar geschieht dies jeweils generationsweise. Für jede Generationsebene wird geprüft, ob sich Überschneidungen ergeben, indem folgende Prozedur durchlaufen wird:

while(i<anzahlpersonen-1) { xposrechts=p.topologie.getxpos(); ypostest=p.topologie.getypos(); ebene=p.topologie.getebene(); i++; p=(Person)(vid.elementAt(i)); xposrechts2=p.topologie.getxpos(); ypostest2=p.topologie.getypos(); ebene2=p.topologie.getebene(); abort=false; while((ebene==ebene2)&&(i<anzahlpersonen)&&(abort==false)) {

if ((ypostest2==ypostest)) { abort=true;

}else { i++; p=(Person)(MenuGenealogy.vid.elementAt(i)); ebene2=p.topologie.getebene(); ypostest2=p.topologie.getypos(); id2 = (String)p.getid(); xposrechts2=p.topologie.getxpos(); } }

if((ebene2==ebene)&&(xposrechts2<xposrechts+119)&&(testvectorempty==false)) {

xwert=xposrechts-xposrechts2+120; elternverschieben(p.getelternteil(),xwert,ebene-1); }else{} }

9 10 11

18

7

19

8

20

23

22 25

272421

151412

26

13

16 17

1

2

3

4

5

6

X=0

Abb. 6.3.2 Erster Optimierungsschritt

Page 77: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

73

Bei diesem Verfahren wird mit dem ersten Eintrag im Vektor vid begonnen. Das erste Ob-jekt wird ausgelesen und dessen x- und y-Wert und sowie seine Ebene in der Stammbaumdar-stellung ermittelt. Ausgehend von dieser Ebene wird das nächste Objekt auf der gleichen Ebene mit identischem x-Wert gesucht. Um zu überprüfen, ob es hier nun zu einer Über-schneidung kommt, wird der x-Wert von zwei aufeinander folgenden Personen, die direkte Nachkommen im Stammbaum sind, verglichen. Alle angeheirateten Personen auf der gleichen Ebene haben einen größeren y-Wert, so daß mit diesem ersten Test jeder Partner einer Person übersprungen und stattdessen der nächste direkte Nachbar (bei dem es sich nur um ein Ge-schwisterteil oder ein Cousin bzw. eine Cousine handeln kann) im Stammbaum ermittelt wird.

Besitzt eine Person keine Verwandten auf derselben Generationsebene, folgt nach dem/den Partner(n) der erste Eintrag für ein Individuum der nächsten Generation. Diese wird daraufhin als aktuelle Generation markiert, und der Vergleich wird in dieser Generation weitergeführt, bis alle Ebenen abgearbeitet wurden. Sollte eine Person einen direkten Nachbarn haben, gibt es zwei mögliche Fälle. Im ersten Fall tritt keine Überschneidung auf und sodann wird die zweite dieser Personen als Vergleichsposition eingesetzt und mit dem nächsten direkten Nachbarn im Stammbaum verglichen. Im zweiten Fall kommt es zu einer Überschneidung.

Da alle Geschwister in der Methode veschiebegeschwister mittig unter den Eltern plaziert wurden, kann es sich dabei nur um eine Überschneidung zwischen Cousinen und Cousins handeln. Diese wird aufgelöst, indem die Person, die im Vektor die hintere Position einnimmt, einschließlich ihrer Partner verschoben wird. Um das errechnete Layout überall dort, wo kei-ne Überschneidungen auftreten, zu erhalten, werden die Eltern mitsamt allen ihren Nach-kommen und, wenn nötig, den direkten Nachbarn , verschoben. Die direkten Nachbarn der Eltern werden dabei nur dann verschoben, wenn es zu einer neuen Überschneidung auf dieser Generationsebene kommen sollte. Überschneidungen, die durch eine Verschiebung auf tiefe-ren Ebenen entstehen, bleiben unberücksichtigt und werden erst korrigiert, wenn die betref-fende Ebene erreicht wird.

Der x-Wert, um den solch eine Verschiebung durchgeführt werden muß, errechnet sich aus dem x-Wert der beiden Personen, die auf eine Überschneidung hin überprüft werden. Für Personen auf der gleichen Ebene, die direkte Nachfahren im Stammbaum sind, gilt dabei fol-gendes: Die im Vektor vor der anderen stehende Person (im folgenden als Person 1 bezeich-net) muß einen kleineren x-Wert besitzen als die nachstehende Person (im folgenden als Per-son 2 bezeichnet). Der x-Wert muß mindestens um den Wert von 120 kleiner sein, da er den Beginn des Rechtecks, in dem die Person dargestellt wird, bezeichnet, und von diesem Start-punkt ausgehend um 100 Pixel nach rechts abgebildet wird. Die 20 zusätzlichen Pixel be-zeichnen den Mindestabstand zwischen zwei Rechtecken innerhalb des Stammbaums. Hieraus ergibt sich also, daß der x-Wert von Person 1, um 120 erhöht (xposrechts), kleiner sein muß als der x-Wert von Person 2 (xposrechts2).

Die Differenz xpos = xposrechts - xposrechts2 dieser beiden Werte stellt somit den Wert dar, um den die Eltern von Person 2 inklusive aller Nachkommen und Nachbarn verschoben werden müssen. Dieser Wert wird zusammen mit der Ebene, auf der die Eltern zu finden sind, und der ID des Elternteils, welcher ein direkter Nachkomme im Stammbaum ist, der Methode elternverschieben übergeben. Die Position des betreffenden Elternteils wird im Vektor vid gesucht und gemeinsam mit dem zu verschiebenden x-Wert der Methode nachkom-

menverschieben übergeben. In dieser Methode werden alle x-Werte der direkten Nachkom-men der Eltern, inklusive aller Partner, um den Wert xpos erhöht. Dadurch wird der ent-sprechende Ast im Stammbaum, an dem Position der Eltern beginnend, um den Wert xpos nach recht verschoben. Das Verrücken der Eltern könnte dabei zwar zu einer neuen Über-

Page 78: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

74

schneidung auf deren Ebene führen, doch diese kann nur mit einem direkten Nachbarn , also einem Geschwisterteil oder einem/einer Cousin/Cousine, stattfinden. Um dies zu prüfen, wird in der Methode elternverschieben , nachdem die Methode nachkommenverschieben aufge-rufen wurde, mit dem neuen x-Wert des verschobenen Elternteils kontrolliert, ob eine solche Überschneidung entstanden ist.

Ist es zu keiner Überschneidung gekommen, wird diese Prozedur abgebrochen und das Ver-fahren an den Stellen in der Methode verschiebegeschwister fortgesetzt, wo zuvor auftre-tende Überschneidungen anfänglich den Aufruf der beiden Methoden ausgelöst hatten. Mit den neuen Werten von Person 2 werden die restlichen Einträge auf Überschneidungen hin überprüft. Sollte nun aber, verursacht durch die Verschiebung, eine Überschneidung auf der Ebene der Eltern erzeugt worden sein (was analog zur Methode verschiebegeschwister ge-prüft wird), kommt es hier zur Verschiebung der betroffenen Person mit allen Nachkommen und Partnern an der Stelle, wo sie auftritt, und nicht zur Verschiebung ab der Stelle ihrer El-tern. Diese Überprüfung läuft solange weiter, bis mit der nächsten Generation begonnen wird.

Nachdem die Topologieberechnung abgeschlossen ist, sind alle Personen korrekt im Stamm-baum angeordnet und die Verbindungen zwischen den Individuen können im folgenden an-hand dieser Anordnung berechnet werden. Dies geschieht in der Methode countline()

im letzten Schritt zur Layoutoptimierung.

9 10 11

18

7

19

8

20

23

22 25

272421

151412

26

13

16 17

1

2

3

4

5

6

Abb. 6.2.4 X = 0

Page 79: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

75

6.3.3.4 Linienberechnung

Um die Layoutberechnung abzuschließen, sind noch die Linien, welche die Verbindungen zwischen Kindern und Eltern darstellen, zu berechnen. Es existieren drei Linientypen, von denen zwei in countline() errechnet werden. Der dritte Typ wird bei der Zeichnung des Stammbaums ausgegeben und an dieser Stelle auch errechnet. Der erste der drei Linientypen ist die waagerechte Verbindung zwischen Geschwistern. Der zweite Typ ist die von den El-tern, genauer gesagt vom letzten Partner des Elternteils, der ein direkter Nachkomme ist, aus-gehende Linie, die sich bis zu der Stelle fortsetzt, an der bei mehreren Nachkommen die waa-gerechte Linie berechnet wird. Der dritte und letzte Linientyp ist die Verbindung von den Nachkommen zu der waagerechten Linie. Besitzt eine Person keine Geschwister, tritt keine waagerechte Linie auf, und die Linien der Eltern treffen sich mit der ihres Kindes an der Stel-le, an der sich andernfalls eine waagerechte Linie befinden würde.

Die Berechnung der Linien wird wie folgt vorgenommen. Jeder direkte Nachfahre im Stamm-baum ist an dem Eintrag false

im Wert getwahl zu erkennen. Dies bedeutet, daß an dieser Stelle eine senkrechte Linie von der Mitte des Rechtecks, das die Person repräsentiert, um 22 Pixel nach oben gezeichnet werden muß. Alle waagerechten Linien werden nun auf der glei-chen Höhe, und zwar 22 Pixel oberhalb der Personen, die sie als Geschwister verbinden, ge-zeichnet. Somit ist der Treffpunkt der Linien als diese Stelle definiert. Für die von den Eltern zu einem 22 Pixel oberhalb der Kinder gelegenen Punkt führende Linie wird zuerst nur der y-Wert berechnet, bei dem die Linie bei den Eltern beginnt. Zu diesem Zweck wird bei der Vek-tor vid durchlaufen und bei jeder Person, für die getwahl den Wert false hat, der y-Wert der Linie von dem letzten Partner aus errechnet. Dieser Wert ist der um 50 multiplizierte und mit der Anzahl der Partner erhöhte y-Wert des Partners. Beispielsweise würden im Falle von zwei Ehen 50 x 2 = 100 Pixel addiert werden.

Anschließend werden im Vektor alle Kinder der Person gesucht und von diesen der y-Wert sowie der kleinste und der größte x-Wert ermittelt. Aus diesen Werten errechnen sich dann die beiden Verbindungslinien. Die waagerechte Linie zur Verbindung aller Kinder beginnt bei dem kleinsten, um 50 erhöhten x-Wert und setzt sich, jeweils mit dem um 22 erniedrigten y-Wert des Kindes, fort bis zum größten, um 50 erhöhten x-Wert. Es werden 50 Pixel zum er-sten Kind addiert und vom letzten Kind abgezogen, damit die Linie in der Mitte der Kinder endet. Die wagerechte Linie wird 22 Pixel über den Kindern gezeichnet, damit sie näher an den Kindern als an den Eltern ist, da sie alle Kinder miteinander verbindet. Mit diesen Anga-ben stehen die beiden y-Werte für die Eltern der betreffenden Kinder ebenfalls fest. Der zuvor errechnete y-Wert kennzeichnet nämlich den Beginn der Linie und der y-Wert der Kinder ihr Ende. Um die Linie in der Mitte des Rechtecks beginnen zu lassen, bildet die um 50 Pixel erhöhte x-Position der Eltern die Startposition für den x-Wert der Eltern. Im allgemeinen wird die Linie senkrecht nach unten gezeichnet, allerdings kann ein Sonderfall eintreten, der noch berücksichtigt werden muß. Durch das Verschieben der Personen kann es passieren, daß an manchen Stellen im Stammbaum alle Kinder eines Paares, gemessen am x-Wert, weiter rechts plaziert werden, so daß eine senkrechte Linie die Eltern nicht mit den Kindern verbinden würde. Um dem vorzubeugen wird, bevor die Verbindungslinie zwischen Eltern und Kindern eingetragen wird, kontrolliert, ob der kleinste x-Wert der Kinder kleiner oder gleich dem der Eltern ist. Ist dies der Fall, treten keine Schwierigkeiten auf, und die Linie wird senkrecht eingetragen. Andernfalls wird der kleinste x-Wert der Kinder plus 50 zur Endposition der Linie bestimmt, und die Verbindung wird somit in diesem Sonderfall bei sehr vielen Ver-schiebungen schräg eingezeichnet, um eine weitere Verschiebung des ganzen Stammbaums zu vermeiden.

Page 80: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

76

7 Zusammenfassung und Ausblick

7.1 Zusammenfassung und Bewertung

Es wurde ein System zur Darstellung genealogischer Daten entwickelt, an dem interaktiv Ma-nipulation vorgenommen werden können. Das System erlaubt anhand deduktiver Regeln die Herleitung von Daten, die nicht in der Datenbank gespeichert, aber daraus ableitbar sind. Darüber hinaus ist die Änderung- und Erweiterung des Datensatzes über das System anhand der Darstellung möglich. Im vergleich zu den schon existierenden Anwendungen zur Visuali-sierung genealogischer Daten ist eine übersichtlichere und intuitiv verständlichere Darstellung der Daten gelungen. Jedoch ist die graphische Ausschmückung der Hauptfenster und Funk-tionalitäten wie zusätzlicher Bedienungskomfort nicht so weit fortgeschritten. Während in ViMaGe der Schwerpunkt auf die Darstellung der Daten und mögliche Anfragen zum herlei-ten von nicht gespeicherten Daten gelegt wurde, sind die meisten Programme mit genealogi-schem Hintergrund darauf ausgelegt Daten zu Speichern, oder einen optisch guten Eindruck in der Bedienung herzugeben.

Besonders gut ist meiner Meinung nach die Aufteilung des Darstellungsbereiches in zwei Fenster, in dem das eine zur Visualisierung und Manipulation der Daten herangezogen wer-den kann. Der zweite Bereich zeigt dahingegen eine Übersicht des Stammbaumes. Durch die räumliche Nähe der Antworten auf eine Anfrage an die Datenbank, ist im Allgemeinen die gesamte Visualisierung dieser Antworten, wenigstens im Übersichtfenster überblickbar. Die bisher existierenden genealogische Programme zeigen keine Übersicht, es sind Programme vorhanden, die ein Zoomen erlauben, doch wird dadurch entweder die Darstellung so klein, daß die Daten nicht mehr lesbar sind, oder die Daten sind lesbar aber der Baum kann nicht mehr überblickt werden. Ein weiterer Pluspunkt die erweiterte Anzeige, der nicht im Stamm-baum gespeicherten Daten. Es ist Möglich die erweiterte Anzeige für mehrere Personen gleichzeitig zu öffnen. In der erweiterten Anzeige stehen Informationen, die aufgrund der Größe des Platzhalters für eine Person, nicht angezeigt werden können. Diese Funktion er-laubt es, daß bei einer deduktiven Anfrage an die Datenbank, die erweiterte Anzeige für alle Personen die anhand der Antwortmenge markiert werden, gleichzeitig geöffnet werden kann. So ist eine genauere Analyse der Antwortmenge möglich.

Abhängig von der Größe des Stammbaums und damit abhängig von der Menge der Daten, die dargestellt werden, sind im oberen Bereich der Darstellung nur sehr wenige Personen ange-ordnet. In der ersten Generation finden sich hier nur die Stammeltern. Dadurch kommt es in der linken und rechten oberen Ecke zu ungenutztem Raum, in dem jedoch ein Scrollen mög-lich ist. Es ist durchaus möglich, sich als Benutzer darin regelrecht zu verlieren. Dies ist zwar kein Fehler, jedoch schadet es der Übersichtlichkeit. In Abb. 7.1 ist ein Beispielstammbaum gezeigt, bei dem der obere rechte Teil nahezu ein ganzes Viertel des Bildschirms ausmacht. Aufgrund dieses Effektes wurde bei der Darstellung auch auf die Plazierung der Stammeltern in der Mitte des Bildschirms verzichtet. Eine mittige Plazierung hätte zusätzlichen ungenutz-ten Platz zur folge.

Page 81: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

77

7.2 Ausblick

Als erster in Frage kommender technischer Verbesserungsvorschlag ist die Optimierung der Liniendarstellung zu nennen. An einigen Stellen sind die Nachkommen einer Person nicht unter diese plaziert, was durch das Verschieben von Personen hervorgerufen wird. Aus die-sem Grund müßte die Linienberechnung in der Darstellung noch weiter verbessert werden. Zu diesem Zweck könnte unter anderem das System um eine Schnittstelle erweitert werden, die dem Benutzer verschiedene vorgegebene Layouts der Darstellung zur Auswahl stellt.

Weiterhin wäre auch eine Verbesserung der Laufzeit erstrebenswert, denn sobald andere res-sourcenverbrauchende Programme im Hintergrund laufen, treten beim Multitasking Laufzeit-probleme auf. In diesem Fall wird das Scrollen verlangsamt, und beim Überzeichnen des Dar-stellungsbereichs ist in manchen Fällen das zuvor gezeichnete Bild zu sehen, und das Neu-zeichnen wird kurzzeitig verzögert.

ViMaGe bietet einige Anfragen an die genealogische Datenbank zur Herleitung nicht gespei-cherter Daten. Sollten weitere Anfragen hinzugefügt werden, ist ein abändern das System notwendig. In einer Weiterführung dieser Diplomarbeit, könnten die SQL-Anfragen in einer Datei gespeichert werden, und über eine Funktion im Hauptprogramm erweitert werden. So könnten beliebige, formulierbare SQL-Anfragen, ohne Änderung des Quellcodes, den deduk-tiven Regeln hinzugefügt werden. Hierbei werden vom Benutzer SQL-Kenntnisse erwartet.

Eine wünschenswerte Erweiterung des Systems wäre die Möglichkeit, einen GEDCOM-Datensatz aus den Daten in der genealogischen Datenbank oder den in das Programm impor-tierten Daten zu erstellen. Weiterhin sollte es möglich sein, eine GEDCOM-Datei mit Hilfe des Systems zu importieren, so daß für bestehende im GEDCOM-Format gespeicherte Daten-sätze nicht eine erneute manuelle Eingabe der Daten erfolgen muß. Damit wäre es möglich, Datensätze aus existierenden Genealogieprogrammen, die den Exports in eine GEDCOM-Datei ermöglichen, über diesen Umweg wieder einzulesen. Die dabei bestehende Schwierig-keit liegt in dem nicht einheitlichen GEDCOM-Standard. Obwohl GEDCOM als einheitliches Format zum Austausch von genealogischen Daten entwickelt wurde, haben viele Entwickler geringe Änderungen in die GEDCOM-Struktur eingebracht, so daß der Export einer GED-COM-Datei oft auf verschiede Arten verwirklicht wird. Dadurch sind diese inkompatibel zu anderen Anwendungen, die selbst GEDCOM-Daten exportieren und/oder importieren können.

Abb. 7.1.1 Stammbaum

Page 82: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

78

Eine weitere Schwierigkeit besteht in der Existenz mehrerer Versionen von GEDCOM. Daher muß eine Entscheidung getroffen werden im Hinblick darauf, ob es möglich sein sollte, jede Version zu importieren oder nur die aktuelle Version 5.5.

Eine andere mögliche Erweiterung wäre die Darstellung der Ahnentafel einer Person. Dies sollte gegebenenfalls auch interaktiv aus der Darstellung des Stammbaums erfolgen. Dabei sollte die Ahnentafel in einem separaten Fenster geöffnet werden, ähnlich wie die erweiterte Darstellung der Personendaten. Es wäre denkbar, in der Ahnentafel die gleichen Informatio-nen wie im Stammbaum darzustellen und dort ebenfalls eine Auswahl von weiteren Informa-tionen einzublenden. Diese Darstellung wäre damit einheitlich und könnte ohne Berech-nungsprobleme erstellt werden. Es ist lediglich zu überlegen, ob eine beliebig weit in die Ver-gangenheit zurückführende Ahnentafel zugelassen wird, oder diese auf beispielsweise fünf bis zehn Generationen beschränkt wird. Viele Datensätze reichen nur bis etwa zum 17. Jahrhun-dert zurück, so daß keine großen Generationsebenen zu erwarten sind. Ausnahmen bilden nur historisch interessante Familien, die schon vor den Zivilstandsangelegenheiten Ahnenchroni-ken geführt haben.

Im Bezug auf alternative Darstellungen der genealogischen Daten könnte eine von der An-wendung abhängige Darstellung gewählt werden, in der andere abgeleitete Daten relevant sind, aber auch die Auswahl der in den Stammbaum aufgenommenen Personen von verschie-denen Kriterien abhängt. So ist für eine genetisch orientierte Anwendung, die genealogische Daten anhand von biologischen Kriterien analysiert, eine andere Datenmenge aus den genea-logischen Daten einer Familie von Bedeutung als für die Darstellung des Familienstamm-baums. Im genetisch motivierten Beispiel werden ausschließlich die Daten von Blutsverwand-ten als relevant betrachtet, während ein Familienstammbaum auch Affinialverwandte umfaßt. Um aus genealogischen Daten das Erbe der einzelnen Verwandten zu ermitteln, sind wieder-um andere Bedingungen an die Daten gestellt. Das System könnte unter Einbeziehung des aktuellen Erbschaftsrecht und der Vererbungstheorie um weiter Darstellungsmöglichkeiten der gleichen genealogischen Datenmenge für verschieden Anwendungsmöglichkeiten erwei-tert werden. Auf die verschiedenen Darstellungen könnten anwendungsabhängig Anfragen ausgeführt und die Antworten wie gewohnt visualisiert werden.

In dieser vorliegenden Version von ViMaGe ist es nicht möglich, den Stammbaum irgendei-ner Person aus der gerade aktiven Darstellung auszugeben, während zur gleichen Zeit die er-stere Darstellung erhalten bleibt. Eine weitere Entwicklung könnte so aussehen, daß mehrere Stammbäume zur gleichen Zeit gezeichnet werden können, so ist es möglich den Stammbaum von beiden Großvätern gleichzeitig zu betrachten, falls alle Daten in der genealogischen Da-tenbank gespeichert sind. In einem Stammbaum sind die Vorfahren mütterlicher Seite nicht gespeichert, deshalb wäre die soeben erwähnte Darstellung nur mit zwei nebeneinander exi-stierenden Stammbäumen möglich. Da alle Daten in einer gemeinsamen genealogischen Datenbank gespeichert wären, ist es dadurch auch möglich übergreifende Anfragen an die Daten zu stellen, die dann simultan in beiden Stammbäumen visualisiert werden. Z.B. können dann alle Onkel einer Person dargestellt werden. In einem einzigen Stammbaum, werden nur die Onkel von einer Elternseite erfaßt, da die des anderen Elternteils in einem anderen Stammbaum dargestellt werden.

Es können Personen interaktiv in die Datenbank eingefügt werden. Die geänderten Personen-daten werden sofort gespeichert und sind auch abrufbar; lediglich bei Einfügen von neuen Personen, sei es ein Kind oder ein Partner, ist ein Programmneustart aufgrund der gewählten Darstellungs- und Einlesemethoden für die genealogischen Daten nötig.

Page 83: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

79

Denkt man in die Richtung von Transaktionsverwaltung nach, könnte das ViMaGe auf ein Mehrbenutzersystem ausgeweitet werden. Dazu wäre eine Mehrbenutzersynchronisation not-wendig. In der vorliegenden Version könnten zwar verschieden Exemplare dieser Software in einem Netzwerk auf eine gemeinsame genealogische Datenbank zugreifen, da ViMaGe über die JDBC-ODBC-Bridge auf die Datenbank zugreift, jedoch gibt es keine Regeln die den Zugriff steuern.

Page 84: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

80

Erklärung: Hiermit erkläre ich, diese Diplomarbeit selbständig durchgeführt zu haben. Alle Quellen und Hilfsmittel, die ich verwendet habe, sind angegeben. Zitate habe ich als solche kenntlich gemacht.

Bonn, 19. April 2004, Marijan Gjoreski

Page 85: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

81

Literaturverzeichnis

[AGLS00] A. Austermann, J. Gallenbacher, Ch. Lange, M. Spörl: Java 2 mit Methode , C&L Computer und Literaturverlag, Böblingen, 2000

[AeiGe] Österreich-Lexikon: Genealogie, http://www.aeiou.at/aeiou.encyclop.g/g235218.tm

[Ber91a] Bertelsmann Universal Lexikon in 20 Bänden, Band 1 A-Aso, Verlagsgruppe Bertelsmann GmbH/Bertelsmann Lexikon Verlag GmbH, Gütersloh, 1991

[Ber91b] Bertelsmann Universal Lexikon in 20 Bänden, Band 6 Feu-Gier, Verlagsgrup-pe Bertelsmann GmbH/Bertelsmann Lexikon Verlag GmbH, Gütersloh, 1991

[Ber91c] Bertelsmann Universal Lexikon in 20 Bänden, Band 12 Met-Nizo, Verlags-gruppe Bertelsmann GmbH/Bertelsmann Lexikon Verlag GmbH, Gütersloh, 1991

[Bün96] Karl-Dieter Bünting: Deutsches Wörterbuch , Isis Verlag AG , Chur, 1996

[Bis00] Judy Bishop: Java lernen , Addison-Wesley Verlag, München, 2000

[Com02] Computergenealogie, http://www.familiengeschichte.de/computer

[Chu96] The Church of Jesus Christ of Latter-day Saints: The Gedcom Standard Re-lease 5.5, http://homepages.rootsweb.com/~pmcbride/gedcom/55gctoc.htm

[Dad01] P. Dadam: Skript Datenbaksysteme WS 00/01, http://www.informatik.uni-ulm.de/dbis/f&l/lehre/WS00_01/Skript_DBMS/

[Dud93] Lektorat des B.I.-Wissenschaftsverlags unter Leitung von Hermann Enesser: Duden Informatik, 2. Auflage Dudenverlag, Mannheim, Leipzig, Wien, Zürich, 1993

[Eck01] Eckhard Henkel: Ahnenforschung, Tools, Mormonen , http://www.eckhard-henkel.de/ahnen/genealog.htm

[Enz] Encyclopedia: Begriffe der Genealogie , http://ahnenforschungen.de/famnet/

modules.php?name=Encyclopedia&op=terms&eid=5&1tr=A

[EthT04] Tagung am Max-Planck-Institut für Ethnologie: Verwandtschaft und Freund-schaft, http://www.freundschaft-und-verwandtschaft.de/tagung_halle_2004.rtf, 2004

[Fla00] David Flanagan: Java Foundation Classes in a Nutshell , 1. Auflage, O'Reilly Verlag, 2000

[Fok01] FOKO - Allgemeine Informationen, http://foko.genealogy.net/doc/

Page 86: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

82

[GHGRBa] Genealogisch-Heraldische Gesellschaft der Region Basel: Fachwörter/Glossar,

http://www.ghgrb.ch/genealogicalIntroduction/glossary.html

[GHGRBb] Genealogisch-Heraldische Gesellschaft der Region Basel: GEDCOM,

http://www.ghgrb.ch/genealogicalIntroduction/gedcom.html

[GHGRBc] Genealogisch-Heraldische Gesellschaft der Region Basel: Verwandtschaft,

http://www.ghgrb.ch/genealogicalIntroduction/verwandtschaft.html

[GHGRBd] Genealogisch-Heraldische Gesellschaft der Region Basel: Alte Schrift - aus Pfarrbüchern, http://www.ghgrb.ch/genealogicalIntroduction/Schrift_pfarr-

buch1.html, 2003

[GHGRBe] Genealogisch-Heraldische Gesellschaft der Region Basel: Geschichte der Ge-nealogie , http://www.ghgrb.ch/genealogicalIntroduction/history.html

[GYJ97a] James Gosling, Frank Yellin, Java-Team : JavaTM API Band 1: Die Basispa-kete , 1. Auflage, Addison Wesley Longman Verlag GmbH, 1997

[GYJ97b] James Gosling, Frank Yellin, Java-Team : JavaTM API Band 2: Das Window Toolkit und Applets , 1. Auflage, Addison Wesley Longman Verlag GmbH, 1997

[Hag96] Sven Hage: ODBC , http://wwwbs.informatik.htw-dresden.de/svortrag/ai93/

hage/odbc.html, 1996

[Her00] Rainer Herman: Genealogische Zeichen und Abkürzungen , http://www.genealogienetz.de/misc/

[HiKo] Hill, P.B. und Kopp: Anthropologische und historische Aspekte der Familie , http://infosoc.uni-koeln.de/fs-soziologie/texte/Makro_WS9899/Hill.html

[IEG] IEG Systems: Einsatzgebiete von Access, Vorteile und Nachteile

http://www.iegsystems.com/

[Job02] Fritz Jobst: Programmieren in Java , 4., überarbeitete Auflage, Hanser Ver-lag, München/Wien, 2002

[KBLa] Kanton Basel Landschaft: Verzeichnis der Zivilstandsregister aus französi-scher Zeit (1792-1815) , http://www.baselland.ch/docs/archive/main.htm

[KBLb] Kanton Basel Landschaft: Kirchenbücher: Übersicht und Ortsregister , http://www.baselland.ch/docs/archive/main.htm

[Kei_a] Ewald Keil: GEDCOM, http://www.geocities.com/ekeilde/d-ged.htm

[Kei_b] Ewald Keil: GEDCOM, http://www.uni-hohenheim.de/~keil/d-ged.htm

[Kei_c] Ewald Keil: FOKO, http://www.geocities.com/ekeilde/d-fok.htm

Page 87: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

83

[KeEi97] Alfons Kemper, André Eickler: Datenbanksysteme , 2., aktualisierte und er-

weiterte Auflage, R. Oldenbourg-Verlag, München, Wien, 1997

[Krü00] Guido Krüger: Go To Java 2 , Zweite Auflage, Addison Wesley,2000

[Lec93] Fremdwörterbuch , Lechner Verlag, 1993

[Lex90a] Neues großes Lexikon in Farbe 1 A-L, o.A. des Verlags, 1990

[Lex90b] Neues großes Lexikon in Farbe 1 M-Z, o.A. des Verlags, 1990

[Liwa] Klaus Liwowsky: Grundlagen zu Personenstandsregistern / Kirchenbüchern in Schlesien , www.boehm-chronik.com.verwandtschafts.htm

[Liwb] Klaus Liwowsky: Kirchenbücher der Gnadenkirche in Landeshut , www.boehm-chronik.com/verwandtschafts.htm

[Lug01] Hannes Lugert: Foko Kennziffern , http://www.genealogienetz.de/vereine

VSFF/fokoid.htm, 2001

[Mül] Gerd Müllenheim: Einträge in Kirchenbüchern , www.boehm-chronik.com.verwandtschafts.htm

[Man98] Rainer Manthey: Skript zur Vorlesung Informationssysteme

WS 98/99, Rhei-nische-Friedrich-Wilhelms-Universität Bonn Institut für Informatik III

[Man99] Rainer Manthey: Skript zur Vorlesung Deduktive Datenbanken I

SS 1999, Rheinische-Friedrich-Wilhelms-Universität Bonn Institut für Informatik III

[MSH02] Stefan Middendorf, Reiner Singer, Jörn Heid: Programmierhandbuch und Referenz , 3. Auflage, http://www.dpunkt.de/java/index.html, 2002

[Msa96] Microsoft Press: Microsoft Access 97 , Microsoft Press, 1996

[Mag] Mager: Nummerierungsmethoden , http://home.t-online.de/home/MagerAuW/nummer.htm

[Nie03] Alexander Niemann: Objektorientierte Programmierung in Java , 3., überar-beitete Auflage, bhv Verlag moderne industrie Buch AG & Co. KG, 2003

[Mcd97] Microsoft Press Computer Dictionary, 3rd. Edition, Microsoft Press, Washing-ton, 1997

[NL_1] Net-Lexikon: Familie, http://www.net-lexikon.de/Familie.html

[NL_2] Net-Lexikon: Genealogie, http://www.net-lexikon.de/Genealogie.html

[NL_3] Net-Lexikon: Microsoft Access, http://www.net-lexikon.de/Microsoft-Access.html

Page 88: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

84

[NL_4] Net-Lexikon: Stephan Kekulé von Stradonitz,

http://www.net-lexikon.de/Stephan_ Kekule_von_Stradonitz.html

[NL_5] Net-Lexikon: SQL Allgemein, http://www.net-lexikon.de/SQL.html

[ODBCa] http://www.net-lexikon.de/ODBC.html

[Bos] Bosssoftware: ODBC Unterstüzung , http://www.bossoftware.com/web/

deutsch/Html/tca_Odbc.html

[Pay97] Margarete Payer, Alois Payer: Skript Datenbankaufbau, http://www.payer.de/dbaufbau/dbaufbau01.html, 1997

[Rau] Heribert Rau: Genealogische Methodik , http://www.heribert-rau.de/

Ahnenseite_von_Heribert_Rau/Genealogie/body_genealogie.html

[Reu01a] Doris Reuter: Aufbau einer Ahnentafel , http://www.genealogie-forum.de/allgemein/ahnentafel.htm

[Reu01b] Doris Reuter: Was ist GEDCOM? , http://www.genealogie-forum.de/allgemein/gedcom/gedcom01.htm, 2001

[Ric87] Arndt Richter: Die 64 (autosomalen) Verwandschaftswege der Verwandtehe von Gregor Mendels Eltern, http://www.genetalogie.de/artikel/pdf/Mendel64.pdf , 1987

[Roo02] RootsWeb: GEDCOM TAGS, http://helpdesk.rootsweb.com/FAQ/Gedcom_tags.htm, 2002

[Rud] Karsten Rudorf: Grundlagen der Familienforschung, http://www.t-online.de/home/Karsten Rudorf/vhskurs2.htm

[Sch00] Brit Schröder: Data Beckers Kompaktreferenz Java2 , 1. Auflage, Data Be-cker Gmbh & Co. KG, 2000

[Sch] Juergen Schadnik: Verwandschaftsgrade , www.boehm-chronik.com.verwandtschafts.htm

[SO01] Herbert Schildt, Joe O`Neil: Java2 Ge-Packt , mitp-Verlag, 2001

[Sch97] Frank Schnell: Verwandtschaftsgrade , http://www.frank-schnell.de

[Sch01] Schmid Wolfgang: Rezension über Genealogie als Denkform in Mittelalter und Früher Neuzeit , http://www.sehepunkte.historicum.net/2001/01/2981.htm, 2001

[Sei00] Winfrid Seimert: Access 2000 , bhv Verlag, 2000

[Sin98] Detlef Singer: Die Vögel Mitteleuropas , 3. Auflage, Franckh-Kosmos-Verlags-GmbH & Co., Stuttgart, 1998

Page 89: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

85

[Ste02] Ralph Steyer: Java2 , Markt+Technik-Verlag, 2002

[See_a] Stiftung Seeau: Lexikon-Genealogie , http://members.kabsi.at/seeau/Encyclopedia/Kompendien/Lexikon-Genealogie.html

[See_b] Stiftung Seeau: Genealogische Modelle ,

http://members.kabsi.at/seeau/Encyclopedia/Kompendien/Medienmodelle.html

[See_c] Stiftung Seeau: Monografie Genealogieplan , http://members.kabsi.at/seeau/Encyclopedia/Kompendien/Monografie-Genealogie.html

[SQLa] SQL, http://www.net-lexikon.de/SQL.html

[SQLb] SQL, http://www.net-jcc.com/sqlpages/jccs_sql.htm

[Tra03] Enzo Traverso, Kontinuität und Bruch, Sozialistische Zeitung , http://members.aol.com/sozrst/030824.htm, 2003

[Ull03] Ullenboom Christian: Java ist auch eine Insel , 2., aktualisierte und erweiterte Auflage, Galileo Computing, 2003

[VC] Verein für Computergenealogie: Vorlagen , http://www.genealogienetz.de/

vorlagen

[Vos99] Gottfried Vossen: Datenbankmodelle, Datenbanksprachen und Datenmana-gement-Systeme , 3., vollständig überarbeitete Auflage, R. Oldenbourg-Verlag, München, Wien, 1999

[Web03] Tobias Weber, Einführung in die Genealogie , http://www.vilstal.net/users/tobiasweber/einführung.htm

[Wei03] Volkmar Weiß: Nationalsozialismus, Wissenschaftsgeschichte , http://www.volkmar-weiss.de/pub17.html, 2003

[Wei03] Illona Weinreich: Skript zur Vorlesung Datenbanken WS 03/04, Rhein-Ahr-Campus Remagen

[Wen04] Birgit Wendt: Internet für Familienforscher , http://tipps.ahnenforschung.net/internet, 2004

[Wik_1] Wikipedia: Ahnenpass, http://de.wikipedia.org/wiki/Ahnenpass

[Wik_2] Wikipedia: Ahnentafel, http://de.wikipedia.org/wiki/Ahnentafel

[Wik_3] Wikipedia: Ariernachweis, http://de.wikipedia.org/wiki/Arische_Abstammung

[Wik_4] Wikipedia: Familienstambaum, http://de.wikipedia.org/wiki/Familienstammbaum

Page 90: Visualisierung und interaktive ... - idb.uni-bonn.de · Danksagung Bei Herrn Prof. Dr. Rainer Manthey bedanke ich mich besonders für die Möglichkeit, meine Arbeit an diesem Institut

86

[Wik_5] Wikipedia: Darstellung, http://de.wikipedia.org/wiki/Darstellung

[Wik_6] Wikipedia: Genealogie, http://de.wikipedia.org/wiki/Genealogie

[Wik_7] Wikipedia: Stephan Kekulé von Stardonitz , http://de.wikipedia.org/wiki/Stephan_Kekulé_von_Stradonitz

[Wik_8] Wikipedia: Microsoft Access, http://de.wikipedia.org/wiki/MS_Access

[Wik_9] Wikipedia: Nachkommenliste, http://de.wikipedia.org/wiki/Nachkommenliste

[Wik_10] Wikipedia: Stammbaum, http://de.wikipedia.org/wiki/Stammbaum

[Wit_a] Thomas Wittek: JDBC Grundlagen , http://computer.freepage.de/cgi- bin/ feets/freepage_ext/41030x030A/rewrite/wittek/Java/JDBC_Grdlg.htm

[Wit_b] Thomas Wittek: JDBC für Fortgeschritene , http://computer.freepage.de/

cgi- bin/feets/freepage_ext/41030x030A/rewrite/wittek/Java/JDBC_Profi.htm