Kanu-Aktivitäten Deutschland
Terminextraktion aus heterogenen Webquellen: 2.490 Veranstaltungen eingelesen, klassifiziert, entdoppelt und in einen Kalender ueberfuehrt.
Terminextraktion aus heterogenen Webquellen: 2.490 Veranstaltungen eingelesen, klassifiziert, entdoppelt und in einen Kalender ueberfuehrt.
Der Vereins-Datensatz beantwortet, wo ein Bootshaus liegt. Offen bleibt die Frage, die davor kommt: Was findet wann wo statt?
Die Antwort ist verstreut. Der Deutsche Kanu-Verband führt einen zentralen Terminkalender, aber längst nicht jeder Verein meldet dorthin. Der größere Teil steht auf den Vereinswebseiten – in jedem denkbaren Format, von der gepflegten Kalender-Erweiterung bis zur Tabelle im Fließtext. Das Ergebnis ist ein gemeinsamer Terminbestand aus beiden Quellen, der in der Arbeitsmappe steht und als Zweit-Kalender in Outlook eingeblendet werden kann.
Auf Vereinswebseiten steht sehr häufig „15.08. Sommerfahrt" – ohne Jahr. Das Jahr ließe sich plausibel ergänzen, und in den meisten Fällen wäre die Ergänzung sogar richtig. Sie unterbleibt trotzdem: 3.711 jahreslose Datumsangaben werden gezählt und gemeldet, aber nicht übernommen.
Ein Terminbestand mit erratenen Jahreszahlen ist größer und unbrauchbar, weil niemand mehr unterscheiden kann, welcher Eintrag aus der Quelle stammt und welcher aus einer Annahme. Es ist dieselbe Haltung wie beim leeren Gewässerfeld im Vereins-Datensatz: lieber eine sichtbare Lücke als ein unsichtbarer Fehler.
Jeder auf einer Webseite gefundene Termin wird gegen die Verbandstermine desselben Vereins am selben Tag geprüft und in vier Ausgänge sortiert. Der Verbandskalender bleibt dabei die maßgebliche Quelle – aber ein Widerspruch wird nicht dadurch gelöst, dass eine Seite gewinnt, sondern dadurch, dass er sichtbar bleibt.
Der Verband unterscheidet 14 Terminarten – von „Anfängerkurs" über „Freizeitsportlich ausgerichteter Wettkampf" bis „Sonstige Veranstaltung ohne Boot". Für die Auswertung ist das zu fein: Bei 524 Terminen bleiben je Kategorie zu wenige übrig, um etwas zu erkennen.
Darüber liegt deshalb eine gröbere Gruppierung mit vier Werten – Tour (196), Kurs (153), Wettkampf (89), Sonstiges (86). Die Termine von den Vereinswebseiten werden in denselben Namensraum einsortiert, damit beide Quellen überhaupt gemeinsam auswertbar sind.
Eine Tour startet selten am Bootshaus. Steht im Titel „Wanderfahrt auf der Isar ab Kochel am See", ist der Veranstaltungsort Kochel – nicht die Adresse des ausrichtenden Vereins in einer anderen Stadt.
Aus den bereits vorhandenen lokalen Kartenextrakten wird deshalb ein Index aller Orts- und Gewässernamen gebaut: 120.417 Namen, nur die Namen, ohne Geometrie. Findet sich einer davon im Titel, wird er als Veranstaltungsort gesetzt. Bei den Verbandsterminen liefert bereits die Quelle für 408 der 524 Termine einen Ort mit.
Der bestätigte Terminbestand wird als Ganztages-Einträge in einen eigenen Outlook-Kalender „Kanu – Aktivitäten" geschrieben, ein- und ausblendbar wie jeder Zweit-Kalender. Ein Kalender, der bei jedem Lauf neu befüllt wird, wäre nach dem zweiten Lauf unbrauchbar – deshalb trägt jeder Eintrag eine stabile Kennung aus Herkunft, Startdatum und Titel sowie eine Inhalts-Signatur.
Daraus ergibt sich das Verhalten beim Wiederlauf: unbekannt → anlegen, bekannt und verändert → aktualisieren, bekannt und gleich → überspringen. Vergangene Einträge bleiben unangetastet – sie sind Historie. Zukünftige Einträge, die in der Quelle nicht mehr vorkommen, werden entfernt.
Ist Outlook nicht erreichbar, wird der Schritt mit sichtbarer Meldung übersprungen statt die Pipeline abzubrechen. Er läuft deshalb bewusst als letzter Schritt: Ein fehlendes Outlook darf die Veröffentlichung der Daten nicht verhindern.
Zwei Quellen zusammenzuführen sieht nach einer Datenaufgabe aus und ist in Wahrheit eine Entscheidungsaufgabe. Der schwierige Teil ist nicht das Einlesen, sondern die Frage: Was ist neu, was ist dasselbe, was widerspricht sich – und wer entscheidet das?
Ein automatischer Merge beantwortet alle drei Fragen still und macht dabei zwangsläufig Fehler, die niemand mehr sieht. Hier beantwortet die Maschine nur die ersten beiden und legt die dritte – 23 Konflikte von 1.966 Terminen – als Arbeitsliste vor. Der Aufwand dafür ist klein, weil die Zahl klein ist. Klein ist sie aber nur, weil vorher sauber klassifiziert wurde.
Dieses Projekt wird in folgenden anderen Projekten verwendet: