← Syntagma Forschung · Iterationsprüfer · FORSCH-PROV0459 · Technische Dokumentation · Paket v0.1.0 (ZIP, AGPL-3.0) · Anleitung
| title: “Iterationsprüfer — Technische Dokumentation” |
| kennung: “FORSCH-PROV0459” |
| komponente: “Werkzeug Iterationsprüfer v0.1.0 Phase 1a” |
| author: “Thomas Schüller” |
| date: “2026-10-06” |
| license: “AGPL-3.0-or-later (Code) / CC BY 4.0 (dieses Dokument)” |
Der Iterationsprüfer liest einen Text und gibt eine strukturierte Einschätzung aus, ob der Text eine Iteration behauptet, die er nicht nachweist. Er ist eine reine Textanalyse ohne Netzzugriff und ohne Modellaufruf.
| Eigenschaft | Wert |
|---|---|
| Sprache | Python 3.10 oder neuer |
| Abhängigkeiten | keine außer der Standardbibliothek |
| Umfang | 491 wirksame Codezeilen |
| Tests | 14, davon 5 Negativtests |
| Ausgabe | JSON und Markdown |
| Netzzugriff | keiner in Phase 1a |
iterationspruefer/
├── kern.py Datenmodell, Satz- und Spracherkennung, Aggregation
├── marker.py Vokabulare, Marker M1, M2, M5
├── cli.py Kommandozeile
├── __init__.py check() und bericht()
└── __main__.py Einstieg für python -m
Enthält die Datenklassen Beleg,
MarkerErgebnis und Pruefergebnis, die
Basisklasse Marker sowie AdapterPlatzhalter
für die noch nicht implementierten Marker.
Hilfsfunktionen: hash_text bildet die SHA-256-Summe des
Eingangstexts als Anker; erkenne_sprache unterscheidet
Deutsch und Englisch über das Verhältnis von Funktionswörtern;
satz_spans zerlegt den Text in Satzbereiche;
umgebung liefert den Zeichenbereich von ±n Sätzen um eine
Position; aggregiere bildet den gewichteten Mittelwert über
alle Marker mit vorhandenem Ergebnis.
Gewichte und Schwellen stehen als Konstanten GEWICHTE
und SCHWELLEN am Dateikopf und sind der vorgesehene
Anpassungspunkt.
Je Marker eine Klasse mit einheitlicher Schnittstelle
pruefe(text, sprache) -> MarkerErgebnis.
M1 Eliminationsbehauptung ohne Spur. Sucht Eliminationsvokabular. Für jeden Treffer wird im Umkreis von zwei Sätzen geprüft, ob ein konkreter Kandidat benannt und ein Grund genannt ist. Kategoriale Ausschlussklassen im selben Satz erhöhen den Wert gesondert. Die Teilgewichtung setzt fehlenden Grund mit 0,6 und fehlenden Kandidaten mit 0,4 an, weil der Grund die Nachvollziehbarkeit trägt.
M2 Kriterien nach der Bewertung. Bestimmt die textuelle Position von Kriteriennennungen und Auswahlentscheidungen. Steht mindestens ein Kriterium vor der ersten Auswahl, wird der Wert auf 70 Prozent gedämpft. Der Marker misst textuelle Reihenfolge, nicht logische Argumentstruktur; das ist in der Ausgabe vermerkt.
M5 Konkretisierungs-Asymmetrie. Trennt Substanzzahlen von Strukturzahlen. Strukturzahlen (Woche 1, Phase 2, Schritt 3) werden verworfen. Für jede Substanzzahl wird im Umkreis eines Satzes nach Quellenmarkern oder nach Rechenmarkern gesucht. Zusätzlich wird der Trend über die Texthälften gebildet: steigt der Anteil unbelegter Zahlen um mehr als 15 Prozentpunkte, erhöht sich der Wert um 0,1.
Alle Wortlisten stehen am Kopf von marker.py als
benannte Konstanten, getrennt nach Sprache. Sie sind der
Hauptwartungspunkt: Modellausgaben verändern sich, die Listen altern.
Empfohlene Prüfung halbjährlich.
python3 -m iterationspruefer DATEI [--lang de|en] [--model NAME] [--format md|json] [--out DATEI]
python3 -m iterationspruefer - # liest von stdin
Rückgabewerte: 0 bei Erfolg, 2 bei Eingabefehler.
from iterationspruefer import check, bericht
e = check(text, sprache="de")
e.aggregat # 0.0 bis 1.0 oder None
e.empfehlung # accept | review | reject | unbestimmt
e.marker["M5"].belege
print(bericht(e))Felder: tool, version, schema,
timestamp, input_hash,
input_meta, markers, aggregate,
recommendation, notes. Jeder Markereintrag
führt score, evidence mit Zeichenpositionen,
confidence, method und note.
Das Feld notes weist aus, welche Marker nicht
implementiert sind und dass der Aggregatwert deshalb nach unten
verzerrt.
Kein Modell im Prüfweg. Das zu erkennende Muster wird von Sprachmodellen erzeugt. Ein Modell als Prüfinstanz würde dieselben Muster reproduzieren, statt sie zu erkennen. Belegt bei Zhu u. a. 2025 und Li u. a. 2025. Die Prüfung bleibt deshalb strukturell.
Teilgewichtung statt Ja-Nein. Frühe Fassungen bewerteten je Treffer binär. Das erzeugte Maximalwerte bei Texten mit einer einzigen unglücklichen Formulierung. Die Teilgewichtung bildet Abstufungen ab.
Negativtests zuerst. Siehe Betriebshandbuch, Abschnitt Prüfung.
Falsch-Positive bei Lehrtexten und Strategiepapieren. Falsch-Negative bei sorgfältig formulierten performativen Texten. Modellabhängigkeit, da die Marker an einer Ausgabe entwickelt wurden. Sprachabhängigkeit auf Deutsch und Englisch. M2 misst Reihenfolge im Text, nicht im Argument.
| Phase | Inhalt | Zustand |
|---|---|---|
| 1a | M1, M2, M5 strukturell | fertig |
| 1b | M4 als Anbindung an veröffentlichte Sycophancy-Metriken | offen |
| 1c | M3 und M3b über Semantic Scholar oder OpenAlex | offen |
| 2 | Anbindung an die Plattform | offen |
| 3 | Vorab-Festlegung mit Hash-Sperre | offen |
Vor Phase 1c ist die Lizenz des Repositoriums
UKPLab/eacl2026-assessing-paper-novelty zu prüfen und
anzubinden statt nachzubauen.