Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

KIDS

Anwendung - StammbaumXML

Verarbeitung von Daten eines Stammbaumes

Ein Stammbaum enthält Informationen über die Eltern, Großeltern, Urgroßeltern usw. einer Person. Geht man eine Generation in die Vergangenheit, so verdoppelt sich die Anzahl der Personen in dieser Generation. Ein Beispiel:

Stammbaum von Joseph Wilhelm Peter[1]

Ziel ist es, Informationen über Stammbäume automatisiert zu verarbeiten. Wir gehen dabei davon aus, dass die Informationen mit Hilfe von XML-Dokumenten dargestellt werden.

Aufgabe 1

(a) Betrachte die Dateien josefpeter.xml sowie stammbaum.dtd und vergleiche sie mit dem Stammbaum oben.

(b) Was genau gibt der Index an? Wieso kommen die Werte 22 und 23 nicht vor? Wie kann man aus dem Index einer Person den ihrer Eltern berechnen?

Aufgabe 2

Entwickle jeweils eine Funktion:

(a) Zu einem gegebenen Index sollen alle Personendaten ausgegeben werden.

(b) Zu einem gegebenen Namen sollen alle Personendaten ausgegeben werden.

(c) Welche (Vor-)Name kommt wie oft vor? Eine Statistik soll ausgegeben werden.

(d) Das Durchschnittsalter der Personen soll getrennt nach Geschlecht ermittelt werden. (schwer! - recherchiere das Python-Modul datetime)

Aufgabe 3

Das folgende Programm gibt eine Liste aller Personen des Stammbaums aus:

def printPersonen(rootElement):
    erstePerson = (rootElement.getElementsByTagName("Person"))[0]
    liste = [erstePerson]
    while len(liste) > 0:
        aktPerson = liste.pop(0)
        print(aktPerson.getAttribute("Index") + ": " + aktPerson.getAttribute("Vorname") + " " + aktPerson.getAttribute("Name"))
        ahnen = []
        for k in aktPerson.childNodes:
            if k.nodeName != "#text":
                ahnen = ahnen + [k]
        liste = liste + ahnen

(a) In welcher Reihenfolge werden die Personen ausgegeben? Denke zunächst darüber nach und teste dann das Programm.

(b) Recherchiere die beiden Verfahren Breitensuche und Tiefensuche. Welches Verfahren kommt hier zum Einsatz?

(c) Ändere das Programm derart ab, dass das andere Verfahren zum Einsatz kommt.

Aufgabe 4

In der Ahnenforschung werden verschiedene Darstellungsformen für Stammbäume benutzt. Probiere dies aus mit dem Birkenhördt-Projekt.

Eine Herausforderung: Entwickle ein Programm, welches Stammbäume geeignet darstellt.

Aufgabe 5

Wenn man sich näher mit Ahnenforschung beschäftigt, kommt obiges XML-Format schnell an seine Grenzen. Welche Informationen lassen sich nicht speichern? Welche Erweiterungen könnte man vornehmen?

Quellen

X

Fehler melden

X

Suche