Zum Hauptinhalt springen

LWgrammar: die Formulierungsprüfung am Aufsatz famulus-plattform

Ein Golden-Notebook: Zurückweisung, Befunde, Dreiwegevergleich, Prüfung eines Absatzes

Autor:in
Zugehörigkeit

Gerd Graßhoff

Philosophisches Institut, Humboldt-Universität zu Berlin

Veröffentlichungsdatum

23. September 2026

Zusammenfassung

Im September 2026 veränderte ein Lektoratslauf 137 Absätze des Aufsatzes famulus-plattform und fügte Bewertungen, fremde Wörter und neue Aussagen ein. Die Formulierungsprüfung von LWgrammar vergleicht jede dieser Fassungen mit ihrem Absatz vom 9. September. Das Notebook liest das Ergebnis, zählt die Befunde, stellt die drei Fassungen des Aufsatzes nebeneinander und prüft einen Absatz im Lauf.

Die Ergebnisse stammen aus python -m lwgrammar_reference.evaluate.golden und python -m lwgrammar_reference.evaluate.threeway. Beide schreiben nach ~/ai-mac-studio/LWgrammar/evaluate/golden/. Das Notebook liest diese Dateien nur; es verändert sie nicht.

1 Frage 1. Wie viele der veränderten Absätze weist die Prüfung zurück?

Veränderte Absätze des Lektoratslaufs, von der Formulierungsprüfung zurückgewiesene Fassungen und die Kontrollen: jeder Absatz vom 9. September, gegen sich selbst geprüft.

Partitur
---
id: golden-zurueckweisung
display: kennzahl
partiturs:
  - id: duckdb-read
    input:
      sql: |
        SELECT changed AS veraendert,
               rejected AS zurueckgewiesen,
               rejection_rate AS quote,
               len(identity_controls_failed) AS kontrollen_verfehlt
        FROM read_json_auto('~/ai-mac-studio/LWgrammar/evaluate/golden/famulus-plattform.json')
artefacts:
  - name: zurueckweisung
    kind: table
    file: zurueckweisung.json
oracle:
  zurueckgewiesen: {min: 130}
  kontrollen_verfehlt: {max: 0}
---
Veränderte Absätze des Lektoratslaufs, von der Formulierungsprüfung
zurückgewiesene Fassungen und die Kontrollen: jeder Absatz vom 9. September,
gegen sich selbst geprüft.

133 zurueckgewiesen, 0 kontrollen_verfehlt.

bestanden
133.0zurueckgewiesen erwartet mindestens 130
0.0kontrollen_verfehlt erwartet höchstens 0

Das Urteil besteht, wenn mindestens 130 der 136 Fassungen zurückgewiesen werden (95 %) und keine Kontrolle fehlschlägt. Eine Prüfung, die alles zurückweist, bestünde die erste Bedingung auch; die zweite schließt sie aus.

2 Frage 2. Welche Befunde tragen die Zurückweisung?

Zahl der Fassungen je Befund. Eine Fassung kann mehrere Befunde tragen.

Partitur
---
id: golden-befunde
depends_on: [golden-zurueckweisung]
display: tabelle
partiturs:
  - id: duckdb-read
    input:
      sql: |
        WITH p AS (
          SELECT unnest(pairs) AS p
          FROM read_json_auto('~/ai-mac-studio/LWgrammar/evaluate/golden/famulus-plattform.json')
        ),
        m AS (SELECT unnest(p.failed) AS metrik FROM p)
        SELECT metrik, count(*) AS fassungen
        FROM m
        GROUP BY metrik
        ORDER BY fassungen DESC
artefacts:
  - name: befunde
    kind: table
    file: befunde.json
oracle:
  n_sentences: {min: 5}
---
Zahl der Fassungen je Befund. Eine Fassung kann mehrere Befunde tragen.

14 Sätze.

bestanden

3 Frage 3. Was unterscheidet die drei Fassungen des Aufsatzes?

Die Fassung vom 9. September, die beschädigte Fassung und die neue Fassung vom 23. September. Absätze werden über ihre gemeinsamen Inhaltswörter zugeordnet (Jaccard mindestens 0,35); „voll erhalten“ heißt, dass jede Aussage des Absatzes vom 9. September in seinem Gegenstück folgt.

Wörter, eingefügte Bewertungen und Verstärkungswörter, zugeordnete und voll erhaltene Absätze der beschädigten und der neuen Fassung, jeweils gegenüber der Fassung vom 9. September.

Partitur
---
id: dreiweg
display: tabelle
partiturs:
  - id: duckdb-read
    input:
      sql: |
        WITH t AS (
          SELECT * FROM read_json_auto('~/ai-mac-studio/LWgrammar/evaluate/golden/famulus-plattform-threeway.json')
        )
        SELECT 'beschädigt' AS fassung,
               damaged.document.words AS woerter,
               damaged.document.inserted.evaluative."count" AS bewertungen,
               damaged.document.inserted.intensifier."count" AS verstaerker,
               damaged.paragraphs.aligned AS zugeordnet,
               damaged.paragraphs.fully_preserved AS voll_erhalten
        FROM t
        UNION ALL
        SELECT 'neu', rewrite.document.words,
               rewrite.document.inserted.evaluative."count",
               rewrite.document.inserted.intensifier."count",
               rewrite.paragraphs.aligned,
               rewrite.paragraphs.fully_preserved
        FROM t
artefacts:
  - name: dreiweg
    kind: table
    file: dreiweg.json
oracle:
  n_sentences: {min: 2}
---
Wörter, eingefügte Bewertungen und Verstärkungswörter, zugeordnete und voll
erhaltene Absätze der beschädigten und der neuen Fassung, jeweils gegenüber
der Fassung vom 9. September.

2 Sätze.

bestanden

Die beschädigte Fassung erhält in mehr Absätzen alle Aussagen als die neue. Sie hat den Inhalt weitgehend stehen lassen und die Wörter verändert; die neue Fassung ist eine Neufassung mit neu gemessenen Zahlen und neuen Abschnitten. Die Tabelle trennt beides: Bewertungen und Verstärkungswörter stehen in der beschädigten Fassung, veränderte Aussagen in der neuen.

4 Frage 4. Wie entscheidet die Prüfung über einen einzelnen Absatz?

Absatz sec-neugier#5, links die Fassung vom 9. September, rechts die des Lektoratslaufs.

Prüfe die Fassung des Lektoratslaufs gegen den Absatz vom 9. September.

Partitur
---
id: absatz-pruefen
display: tabelle
partiturs:
  - id: lwgrammar:lw_evaluate
    input:
      rows_from: metrics
      task: revise-segment
      context: {lang: de, author: grasshoff, family: grasshoff-de}
      source: >-
        Dieselbe Abfrage – eine Person in wechselnder Schreibweise – erstreckt
        sich auf `eulerOO` (56 Formen `bernoul%`, 16 ms), `kepler-prim` (108
        Formen `Tycho`, 25 ms) und `karman-nachlass` (85 Formen `Prandtl`, 19
        ms).
      revision: >-
        **Bemerkenswert:** Dieselbe Abfrage – eine Person in wechselnder
        Schreibweise – meistert Famulus über drei heterogene Bestände hinweg in
        Millisekunden: `eulerOO` (56 Formen `bernoul%`, 16 ms), `kepler-prim`
        (108 Formen `Tycho`, 25 ms) und `karman-nachlass` (85 Formen `Prandtl`,
        19 ms).
artefacts:
  - name: pruefung
    kind: table
    file: pruefung.json
oracle:
  n_blocking_failed: {min: 1}
---
Prüfe die Fassung des Lektoratslaufs gegen den Absatz vom 9. September.

6 n_blocking_failed.

bestanden

Das Urteil besteht, wenn die Prüfung mindestens einen blockierenden Befund meldet. Die Gegenprobe ist der Absatz gegen sich selbst:

Prüfe den Absatz vom 9. September gegen sich selbst.

Partitur
---
id: absatz-kontrolle
display: tabelle
partiturs:
  - id: lwgrammar:lw_evaluate
    input:
      rows_from: metrics
      task: revise-segment
      context: {lang: de, author: grasshoff, family: grasshoff-de}
      source: >-
        Dieselbe Abfrage – eine Person in wechselnder Schreibweise – erstreckt
        sich auf `eulerOO` (56 Formen `bernoul%`, 16 ms), `kepler-prim` (108
        Formen `Tycho`, 25 ms) und `karman-nachlass` (85 Formen `Prandtl`, 19
        ms).
      revision: >-
        Dieselbe Abfrage – eine Person in wechselnder Schreibweise – erstreckt
        sich auf `eulerOO` (56 Formen `bernoul%`, 16 ms), `kepler-prim` (108
        Formen `Tycho`, 25 ms) und `karman-nachlass` (85 Formen `Prandtl`, 19
        ms).
artefacts:
  - name: kontrolle
    kind: table
    file: kontrolle.json
oracle:
  n_blocking_failed: {max: 0}
---
Prüfe den Absatz vom 9. September gegen sich selbst.

0 n_blocking_failed.

bestanden