Forschung·Systeme·geprüft 2026-08-01
Woher weiß ein System, dass seine Daten noch stimmen — und nicht bloß, dass der letzte Abruf ohne Fehler endete?

Frische als Vertrag — vier Lehren aus einem offenen Lagebild-Werkzeug

Ein quelloffenes Weltlage-Werkzeug führt fünfhundert Nachrichtenquellen und fünfundsechzig Datenanbieter zusammen. Bemerkenswert ist nicht die Menge, sondern die Buchführung darüber: Jeder Datensatz trägt seine eigene Verfallsfrist, stumme Quellen werden über mehrere Läufe hinweg entlarvt, Dubletten brauchen zwei unabhängige Beweise, und jede Quelle hat eine eingetragene Herkunft.

Experimentell·Horizont: Jetzt
Der Befund

Vier Verfahren, die wir für unseren Veranstaltungs-Index und den Regionalradar direkt gebrauchen können — eine Frist je Datensatz statt eines Lauf-Protokolls, eine Leerlauf-Strähne statt eines Fehlerzählers, Dubletten über zwei unabhängige Merkmale statt über einen Titel, und ein Herkunfts-Verzeichnis, in dem „ungeprüft“ ein eigener Wert ist.

Autor
Elie Habib und Mitwirkende
Venue
GitHub (koala73/worldmonitor) (2026)
Lizenz
AGPL-3.0-only (reiner Lizenztext, keine Zusatzklauseln) — für uns heißt das, Verfahren ja, Dateien nur mit offener Quelle
eine Frist je Datensatz
Jeder zwischengespeicherte Datensatz trägt eine eigene erlaubte Höchstaltersangabe und einen Zeitstempel seiner letzten Befüllung. Die Zustandsprüfung vergleicht beides — statt zu fragen, ob der letzte Lauf ohne Fehler endete.
github.com/koala73/worldmonitor
Die Methode

Ein Projekt namens World Monitor ist im Januar 2026 auf GitHub erschienen und hat dort binnen sieben Monaten über siebenundsiebzigtausend Sterne gesammelt. Es baut ein Lagebild der Welt: fünfhundert kuratierte Nachrichtenquellen in fünfzehn Sachgebieten, dazu fünfundsechzig Datenanbieter für Konflikte, Märkte, Energie, Klima, Flug- und Schiffsverkehr, alles zusammengeführt auf einer Karte und in einem Raster aus Anzeigetafeln.

Uns interessiert das Lagebild nicht. Uns interessiert, wie ein System, das vollständig von fremden Quellen lebt, überhaupt weiß, ob seine Anzeige gerade die Wirklichkeit zeigt oder eine drei Wochen alte Konserve. Diese Frage haben wir selbst — beim Veranstaltungs-Index für die Bodenseeregion, beim Regionalradar, beim Lesezeichen-Dienst, bei der Wissens-Ablage. Vier Antworten aus diesem Projekt halten wir für übertragbar.

Erstens: Die Frist gehört an den Datensatz, nicht an den Lauf

Fast alle Überwachung, die wir bisher gebaut haben, beobachtet Vorgänge. Ein Abruf lief, endete ohne Fehler, wurde vermerkt. Daraus folgt aber nichts über die Daten. Ein Lauf kann tadellos durchlaufen und nichts mitbringen.

World Monitor dreht das um. Jedes Schreiben eines Datensatzes legt neben den Nutzdaten einen zweiten, kleinen Eintrag an — wann befüllt, wie viele Einträge enthalten. Und für jeden Datensatz ist getrennt hinterlegt, wie alt er höchstens sein darf: Börsenkurse in Minuten, jährliche Wirtschaftsdaten in Wochen. Die Zustandsprüfung liest nur noch diese beiden Angaben und meldet je Datensatz einen von vier Zuständen — in Ordnung, überaltert, auffällig, leer.

Der Unterschied klingt klein und ist es nicht. Eine Lauf-Überwachung kann sagen: alle achtunddreißig Abrufe heute Nacht erfolgreich. Eine Frist-Überwachung sagt: dieser Datensatz ist siebzehn Stunden alt und darf höchstens sechs sein. Nur die zweite Aussage beantwortet die Frage, die Besucherinnen und Besucher tatsächlich stellen.

Dazu gehört ein Handgriff beim Schreiben, den wir uns notiert haben: Sperre nehmen, Daten prüfen, dann erst Nutzdaten und Zusatzangaben schreiben, dann Sperre freigeben. Ohne diese Reihenfolge entsteht der unangenehmste aller Zustände — ein halb geschriebener Datensatz mit taufrischem Zeitstempel, der jede Prüfung mit Bestnote besteht.

Und eine dritte Zutat: Fallketten. Für Daten, die sich mehrfach beschaffen lassen, ist eine ausdrückliche Reihenfolge hinterlegt — erst der Live-Stand, dann der veraltete, dann ein Sicherungsstand. Die Anzeige springt damit nicht zwischen „da“ und „weg“, sondern sagt, auf welcher Stufe sie gerade steht. Das ist ehrlicher als beides.

Zweitens: Die stille Null

Über stumme Quellen haben wir an anderer Stelle schon geschrieben. World Monitor liefert dazu einen ergänzenden Befund, der uns unmittelbar betrifft.

Ein erheblicher Teil ihrer Nachrichtenquellen sind keine eigenen Kanäle der Redaktionen, sondern Sammeladressen einer großen Suchmaschine — eine Suchanfrage, als Nachrichtenstrom verpackt. Solche Adressen sterben nicht. Sie antworten weiter ordnungsgemäß und liefern still null Einträge, sobald sich die Rangfolge dahinter verschiebt. Aus Sicht jedes Fehlerzählers ist das ein perfekter Tag.

Ihre Antwort ist eine Strähne statt eines Zählers: Wie viele aufeinander folgende Läufe hat diese Quelle nichts geliefert? Ein Leerlauf ist Zufall. Zwei tägliche Läufe mit null Einträgen sind ein Loch in der Abdeckung. Und das Ergebnis wandert nicht in ein Protokoll, sondern wird als eigener, abrufbarer Datensatz veröffentlicht — Quellen-Gesundheit ist bei ihnen ein Produkt, keine Nebenwirkung.

Drittens: Dubletten brauchen zwei Beweise

Beim Zusammenführen von Datenbeständen — bei ihnen Infrastruktur-Objekte, bei uns Konzerte und Ausstellungen — gilt eine Regel, die wir übernehmen wollen: Zwei Einträge sind nur dann derselbe, wenn zwei unabhängige Merkmale gleichzeitig passen. Räumliche Nähe und Überlappung der Namensbestandteile. Ein Merkmal allein irrt zu oft: Der Name allein führt gleichnamige Dinge auf verschiedenen Kontinenten zusammen, der Ort allein wirft alles zusammen, was im selben Haus stattfindet.

Zwei Feinheiten daran verraten Betriebserfahrung. Erstens gewinnt im Streitfall grundsätzlich der Bestandseintrag, weil der aus der Hand gepflegt ist und der Neuzugang aus einer Massenquelle stammt — der Neuzugang wird geschluckt, aber nicht darüber geschrieben. Zweitens steht über dem Modul ausdrücklich, dass weder Uhrzeit noch Zufall noch die Reihenfolge einer Menge benutzt werden dürfen: Zwei Läufe auf denselben Eingaben müssen dasselbe Ergebnis liefern. Genau diese Wiederholbarkeit fehlt unserer heutigen Dubletten-Erkennung, und ohne sie ist jede Änderung an den Schwellenwerten unprüfbar.

Viertens: „Ungeprüft“ ist ein Wert, kein leeres Feld

Der vierte Fund ist der, der am besten zu uns passt. Jede Quelle steht in einem Verzeichnis mit drei Angaben: Was für eine Art Quelle ist das (Nachrichtenagentur, Behörde, Fachdienst, Massenmedium, Marktdienst), auf welcher von vier Verlässlichkeits-Stufen steht sie, und trägt sie ein erhöhtes Risiko staatlicher Einflussnahme.

Entscheidend ist nicht die Einteilung selbst, sondern die Regel daneben: Eine Quelle, die noch niemand geprüft hat, bekommt den Wert ungeprüft — und im Code steht dazu die Anweisung, niemals einen Typ zu erfinden. Ein nicht ausgefülltes Feld und ein geprüftes „unbekannt“ sind zwei verschiedene Dinge, und die Anzeige unterscheidet sie.

Für den Regionalradar ist das die eigentlich interessante Spalte. Wem gehört ein Blatt, aus welchem Verlagshaus kommt es, ist es eine Redaktion oder eine Verlautbarung — und steht bei uns dran, wenn wir das noch nicht wissen.

Was wir nicht übernehmen

Der Betriebs-Aufbau des Projekts ist so ziemlich das Gegenteil unseres eigenen: Rand-Funktionen bei einem großen Anbieter, fremder Zwischenspeicher, fremde Nutzerverwaltung, Fehler-Telemetrie, ein Abrechnungsdienst, dazu eine ganze Kette bezahlpflichtiger Datenanbieter. Wir betreiben unsere Dienste auf einem Rechner, der uns gehört. Beides ist legitim, aber nichts davon ist für uns eine Vorlage.

Ebenso wenig taugt der Quellenkatalog: fünfhundertneunundsechzig Einträge, deutschsprachig nur die großen überregionalen Häuser, nichts Regionales für Bodensee oder Schweiz. Übertragbar ist die Form eines Quelleneintrags — mit Sprachvarianten, Stufe und Herkunft —, nicht sein Inhalt.

Und ein Punkt, der beim Abschreiben zählt: Das Projekt steht unter der strengen Netzwerk-Variante der freien Softwarelizenz. Wer Code daraus in einem öffentlich erreichbaren Dienst betreibt, muss den Quelltext dieses Dienstes offenlegen. Für unsere offenen Dienste ist das kein Hindernis, sondern Selbstverständlichkeit. Für alles andere wäre es eine bewusste Entscheidung — und ein Verfahren nachzubauen, das man verstanden hat, ist ohnehin zuverlässiger als eine fremde Datei einzuhängen, deren Ausnahmefälle man nicht kennt.

Was bleibt, ist derselbe Satz wie beim letzten Fund dieser Art, nur eine Stufe weiter: Ein System, das von fremden Quellen lebt, braucht eine ehrliche Antwort auf die Frage, ob diese Quellen noch antworten. Und eine zweite dazu — ob das, was sie geliefert haben, noch jung genug ist, um angezeigt zu werden.

Vereins-Bezug

Was das für uns bedeutet

  • Wir betreiben inzwischen mehrere Systeme, die von fremden Quellen leben: den Veranstaltungs-Index für die Bodenseeregion, den Regionalradar für die Presse der Region, den Lesezeichen-Dienst, die Wissens-Ablage. Alle vier haben dieselbe Schwachstelle — sie können melden, dass ein Abruf lief, aber nicht zuverlässig, dass die Daten noch etwas taugen.
  • Der Kern-Gedanke ist eine Umkehrung: Nicht der Vorgang wird überwacht, sondern der Datensatz. Jeder abgelegte Datensatz bekommt beim Schreiben zwei Zusatzangaben mit — wann er befüllt wurde und wie viele Einträge er enthält. Die Zustandsprüfung liest danach nur noch diese Zusatzangaben und hält sie gegen eine je Datensatz hinterlegte Frist. Ein Lauf, der sauber durchlief und trotzdem nichts Neues brachte, fällt damit auf.
  • Dazu gehört ein zweiter Handgriff, den wir bisher nirgends sauber haben: Das Schreiben nimmt vorher eine Sperre, prüft die Daten, schreibt dann Nutzdaten und Zusatzangaben und gibt die Sperre frei. Ohne das entsteht genau der Zustand, den wir schon zweimal hatten — ein halb geschriebener Datensatz mit frischem Zeitstempel, der jede Prüfung besteht und trotzdem falsch ist.
  • Für stumme Quellen liefert das Projekt die Ergänzung zu dem, was wir aus dem last30days-Steckbrief mitgenommen haben: Ihre Sammeladressen bei einer großen Suchmaschine antworten regelmäßig ordnungsgemäß und liefern dabei null Einträge, sobald deren Rangfolge kippt. Ein einzelner Leerlauf ist Rauschen, zwei aufeinanderfolgende sind ein Loch in der Abdeckung. Der Zähler steht deshalb ausdrücklich über Läufe hinweg, nicht innerhalb eines Laufs — und das Ergebnis wird als eigener, abrufbarer Datensatz veröffentlicht, statt in einem Protokoll zu versickern.
  • Beim Zusammenführen von Dubletten verlangen sie zwei unabhängige Beweise gleichzeitig — räumliche Nähe und Namensüberlappung — und lassen im Streitfall grundsätzlich den Bestandseintrag gewinnen, weil der aus der Hand geprüft ist und der Neuzugang nur aus einer Massenquelle stammt. Ausdrücklich verboten sind dabei Uhrzeit und Zufall: Zwei Läufe auf denselben Eingaben müssen dasselbe Ergebnis liefern. Genau diese Wiederholbarkeit fehlt unserer heutigen Dubletten-Erkennung.
  • Und schließlich ein Verzeichnis, das jeder Quelle einen Typ, eine Stufe und ein Staatsnähe-Risiko zuordnet — mit der ausdrücklichen Regel, dass eine nicht geprüfte Quelle den Wert „ungeprüft“ trägt und niemals geraten wird. Das ist unsere eigene Haltung, in Code gegossen: lieber eine ehrliche Lücke als eine erfundene Einordnung.
Der Plan

Wie wir es nutzen könnten

  1. 1
    Frische-Vertrag im Veranstaltungs-Index einziehenoffen
    Jeder abgelegte Datensatz bekommt beim Schreiben Befüll-Zeitpunkt und Anzahl mit, dazu eine je Datensatz hinterlegte Höchstalter-Frist. Die Zustandsansicht beantwortet danach die richtige Frage — nicht „lief der letzte Lauf“, sondern „ist dieser Datensatz noch jung genug“.
  2. 2
    Schreiben unter Sperre, mit Prüfung vor dem Schreibenoffen
    Sperre nehmen, Daten prüfen, Nutzdaten und Zusatzangaben schreiben, Sperre freigeben. Verhindert den halb geschriebenen Datensatz mit frischem Zeitstempel, der jede Prüfung besteht.
  3. 3
    Leerlauf-Strähne statt Fehlerzähleroffen
    Je Quelle mitführen, wie viele aufeinanderfolgende Läufe null Einträge ergaben. Ab zwei gilt die Quelle als stumm und erscheint in der Diagnose — unabhängig davon, ob der Abruf technisch erfolgreich war.
  4. 4
    Kaskaden statt Ausfalloffen
    Für Datensätze, die wir mehrfach beschaffen können, eine ausdrückliche Fallkette hinterlegen: frisch, dann veraltet-aber-brauchbar, dann Sicherungsstand. Die Ansicht zeigt, welche Stufe gerade greift, statt zwischen „da“ und „weg“ zu springen.
  5. 5
    Dubletten auf zwei Beweise umstellen — erst messen, dann umstellenoffen
    Räumliche Nähe UND Namensüberlappung, Bestand gewinnt, ohne Uhrzeit und Zufall. Vorher an den Bestandsdaten messen, wie viele Einträge zusammenfielen, damit die rückwirkende Änderung der Dubletten-Semantik sichtbar wird, bevor sie greift.
  6. 6
    Herkunfts-Verzeichnis für Regionalradar und Veranstaltungs-Indexoffen
    Quellentyp, Stufe und Trägerschaft je Quelle eintragen, mit „ungeprüft“ als vollwertigem Wert. Bei regionaler Presse ist die Trägerschaft die eigentlich interessante Angabe — wem gehört das Blatt, und steht das bei uns dran.
Ehrlich benannt

Offene Punkte

  • Wir haben Aufbau-Dokumentation, die Verzeichnisstruktur und einzelne Module gelesen, nicht die vollständige Logik. Vor der Nachbildung eines einzelnen Verfahrens lesen wir das betroffene Modul ganz — die Schwellenwerte dort tragen Ausnahmefälle, die man nur im Code sieht.
  • Die Lizenz ist die strenge Netzwerk-Variante der freien Softwarelizenz. Für uns bedeutet das: Verfahren nachbauen ist frei, Dateien übernehmen bindet — wer den Code in einem öffentlich erreichbaren Dienst einsetzt, muss dessen Quelltext offenlegen. Bei unseren offenen Diensten ist das unproblematisch, bei allem Nicht-Veröffentlichten wäre es eine bewusste Entscheidung.
  • Der Betriebs-Aufbau ist das Gegenteil unseres eigenen: fremde Rand-Funktionen bei einem großen Anbieter, fremder Zwischenspeicher, fremde Nutzerverwaltung, Fehler-Telemetrie, Abrechnungsdienst. Ein Selbstbetrieb ist vorgesehen, hängt aber an Pflicht-Zugangsschlüsseln und Befüll-Läufen. Ob er ohne die fremden Bausteine vollständig läuft, haben wir nicht nachgeprüft.
  • Der Quellenkatalog selbst nützt uns wenig: fünfhundertneunundsechzig Einträge, deutschsprachig nur die großen überregionalen. Nichts Regionales für Bodensee oder Schweiz. Übertragbar ist die Struktur, nicht der Inhalt.
  • Die interessanten Auswertungs-Werkzeuge sind über eine Schnittstelle abrufbar, das Auflisten ohne Schlüssel, das Abrufen nur mit bezahltem Zugang. Als Datenquelle für uns fällt das damit aus — was bleibt, sind die Bauformen.
  • Die Übertragung ist bislang ein Vorhaben, kein Ergebnis. Ob eine Frist je Datensatz bei uns tatsächlich mehr veraltete Bestände findet als die heutige Lauf-Überwachung, muss sich an echten Zahlen zeigen.
Im Verein

Womit das zusammenhängt

Der Forschungsradar sammelt fremde Methoden, die zu dem passen, was wir bauen. Externe Entwicklungen (Regulierung, Markt) stehen in den Recherchen; die KI-Modelle selbst im Modell-Katalog.