Daten & Prozesse · Artdaten-Pipeline

Acht Prüfabfragen, im Wortlaut

378 Bildmetadatensätze zu 189 Gehölzarten, über die iNaturalist-API geholt und in eine kleine SQLite-Datenbank überführt. Hier laufen die acht Abfragen, die den Bestand prüfen. Jede zeigt ihren SQL-Text, ihren Sollwert und ihr Ergebnis – auch dort, wo das Ergebnis ein Befund ist.

Was hier läuft – und was nicht

Die Daten sind echt: Es sind die Metadaten des Laufs vom 30. August 2026, unverändert. Beobachtungs-IDs, Foto-IDs, Autor:innen und Lizenzen stammen von iNaturalist-Nutzer:innen und stehen unter den je Datensatz angegebenen Creative-Commons-Lizenzen. Eigene Arbeit ist die Verarbeitung – Datenmodell, Import, Abfragen, Bericht.

Es läuft keine Live-Abfrage gegen iNaturalist. Der Datenbestand ist eingefroren; genau deshalb ist das Ergebnis reproduzierbar.

Die Abfragen stehen in SQL und laufen als SQL gegen SQLite – nachlesbar in skripte/artdaten-datenbank.py. Weil SQLite nicht im Browser läuft, ohne eine Bibliothek von einem fremden Server nachzuladen, sind sie in shared/rules-artdaten.js ein zweites Mal ausgeschrieben. Die Regeltests weiter unten halten beide Fassungen Abfrage für Abfrage gegeneinander.

Der Datenbestand

Die Abfragen

Eine Abfrage anklicken, um SQL-Text und Ergebniszeilen zu sehen. Bestanden heißt: Die Abfrage findet nichts. Befund heißt: Sie findet etwas – das ist kein Fehler des Programms, sondern das Ergebnis der Prüfung.

Ein Datensatz, vollständig

So sieht eine Zeile aus, auf die die Abfragen zugreifen. Autor, Lizenz und Quell-URL sind keine Beigabe – ohne sie dürfte der Datensatz nicht weitergegeben werden.

FeldWert

Regeltests

Der wichtigste Block ist der erste: Er hält jede der acht Abfragen in der JavaScript-Fassung gegen das Ergebnis, das dieselbe Abfrage als SQL in SQLite geliefert hat – Zeile für Zeile, nicht nur die Anzahl. Der zweite Block baut jeden Fehler künstlich ein und prüft, dass die zuständige Abfrage anschlägt. Eine Abfrage, die immer null Zeilen liefert, sieht wie eine bestandene Prüfung aus und ist keine.

Grenzen

  • 378 Datensätze sind keine große Datenbank. Was hier gezeigt wird, ist die Denkweise – Schlüssel, Beziehungen, Sollwerte, Befund statt Bauchgefühl –, nicht die Bewältigung großer Datenmengen.
  • Keine Berufserfahrung mit Datenbanken. Die SQLite-Schicht ist 2026 nachträglich für dieses Portfolio entstanden. Das ursprüngliche Programm hat keine Datenbank, und es gibt keine berufliche Station, in der ich mit SQL gearbeitet habe.
  • Die Bilder sind nicht meine. Sie gehören iNaturalist-Nutzer:innen. Deshalb liegen hier Metadaten und keine Bilder.
  • Die Prüfungen prüfen Form, nicht Botanik. Ob auf einem Foto wirklich die genannte Art zu sehen ist, kann keine dieser Abfragen feststellen. Abfrage 8 sagt genau das: Sie zählt die Fälle, die ein Mensch ansehen muss.

Zum Nachrechnen

Datenbank (SQLite) Prüfbericht (CSV) Metadaten (CSV)

Die Metadaten enthalten zu jedem Bild Autor, Lizenz und Quell-URL. Weggelassen sind Prüfsumme, Dateigröße und Abrufzeitpunkt – sie beschreiben meinen Rechner, nicht die Quelle. Wie alles entstanden ist, steht auf Von der API bis zur Prüfabfrage.