flowchart TD F["Filter: constraint-raum (eine Anweisung, Raumbeweis, Bewertung)"] --> G["Fundlage: Kandidaten mit Gebrauchslesart"] G --> N["Normalisierung: Anfrageform, Slots"] N --> P["Planer: Befunde, Form, Budget"] P --> L["Lesart: Regel, Cache, Modell nur fuer offen"] P --> V["Verfasser: Leiter der Gruende"] L --> B["Belegliste"] V --> B B --> W["Vollstaendigkeit: hart + Rest"] F --> W W --> U["validiert, validiert-mit-rest, Luecke, nicht validiert, Rueckfrage"]
Validitätsbaum
Die Zielentfaltung liest den bewiesenen Evidenzraum und urteilt relativ zu B@version
Der Evidenzraum liefert Brief-Ids. Der Validitätsbaum liest die Sätze dieser Briefe, prüft, ob die gefundene Form die gebundene Person ist, bildet die Belegliste und entscheidet, ob die Aussage relativ zu B@version validiert ist. Eine fehlende Begründung ist keine Widerlegung: das Urteil heißt dann nicht validiert oder Lücke, nicht falsch.
Die Stufen
Die Phase evidenzraum ist der Filter (famulus/evidenz/constraint): der Fragebaum über den Blättern des Schemabaums, mit dem Kontextbaum zu einem Suchbaum zusammengeführt, als eine DuckDB- Anweisung über die Schlüssel des Satz-Sidecars ausgeführt, jeder Träger verbucht und bewiesen (famulus-raum/1). Die Phase fundlage (famulus/evidenz/fundlage) liest daraus die Bindung der Namen, die Bedingungen mit ihren Kanälen und die Kandidatensätze; für jedes Vorkommen der Namensklasse trägt ein Kandidat die Lesart des Gebrauchs aus gebrauch/person.yaml, in SQL aus den Stanza-Faktoren entschieden. Die Normalisierung übernimmt die Paare und wählt die Anfrageform (rules/formen.yaml: erwaehnung, korrespondenz, eponym, thema); sie bindet die Namen nicht ein zweites Mal. Ein Slot ist fest, wenn das Paar ein Einzelding und dessen ent_ids trägt.
Sagt die Bewertung des Filters zu groß, unspezifisch, leer oder widersprüchlich und stellt eine Rückfrage, öffnet der Planer nichts: das Urteil heißt Rückfrage, und der Block antwortet im Vorspann (verfeinerung: {streng: <blatt>}, {offen: <blatt>}, {knoten, wert} oder form: mit slots:).
| Teilziel | wann |
|---|---|
| lesart | immer; die Regel entscheidet die meisten Kandidaten, der Cache die gelesenen, das Modell nur befunde.lesart_offen |
| verfasser | in derselben Welle, für relevante Kandidaten ohne verzeichneten Absender |
| abgleich | nur wenn Kanäle voneinander abweichen |
| belegliste | immer |
| vollstaendigkeit | immer; Prämisse RaumBewiesen aus dem Zertifikat des Filters |
Der Planer (rules/unfold.yaml, unfold.plan) öffnet ein Teilziel nur, wenn die Anfrageform es vorsieht, sein Befund vorkommt und seine geschätzten Kosten (Elemente × gemessene Kosten je Element, aus kosten.json des Blocks) in das Budget passen (budget: {zeit_s, modellaufrufe, kandidaten_max}); ein teilbares Teilziel läuft auf dem größten Präfix, das Rest ist zurückgestellt (Guard budget-erschoepft, Wirkung rest) und wird in der nächsten Welle wieder angeboten. Jede Entscheidung steht mit Gewinn, Kosten und Budgetrest am Planungsknoten des Baums. Ein Teilziel bindet an seine Partitur über die Id (partitur:) oder den genauen goal_path; die unscharfe Wortüberlappung gilt nur mit grenzen.fuzzy.
Lesart und Identität
Die Lesart liest je Kandidat in dieser Ordnung: die Lesung des Eigentümers; die Gebrauchsregel für das Vorkommen (Klasse person oder urheber nennt die Person, eponym, beiwort, zitat, andere nennt sie nicht — eine Eponymfrage akzeptiert eponym und beiwort); der Cache (<collection>/quality/lesarten/lesarten.duckdb, Schlüssel: Evidenzbasis, Satz, Person, Regelstand, Modell); und erst dann GLiNER2.5 in Losen (batch_size 8) für Vorkommen, die keine Regel deckt. Die Art Eponym ist ein Gesetz, eine Formel, eine Gleichung oder ein Effekt, der nach der Person heißt, und nennt die Person nicht. Die Art andere Person gilt, wenn die deckende Spanne keinen Nachnamenschlüssel des gebundenen Einzeldings trägt. Jede Lesart nennt ihre Quelle (Eigentümer, Regel, GLiNER2.5, aus dem Cache) und bei einer Regel die Bedingung und die Faktoren, die entschieden haben.
Der Vertrag jeder_kandidat_gelesen verlangt, dass jeder Kandidat des Elementvorrats eine Lesart hat. Die Schlüssel sind an der Quelle eindeutig (doc_id#pidx.sent_idx, eine Fußnote doc#pidx.fnN). Eine Frage ohne Nennung (modus: brief) liest den Brief als Beleg.
Der Verfasser ist ein gestufter Grund (rules/verfasser.yaml): Register (gewiss), Rohangabe (stark), Mappe und Randsatz (mittel), Regest und Bestand (schwach, der Durchschlag im Ordner des Empfängers ist vom Eigentümer des Nachlasses). Ein Beleg braucht einen Verfasser ab annahmegrad_verfasser (Standard schwach); darunter bleibt der Kandidat im Rest mit seiner Ursache. Der Grad steht am Beleg und in der Klausel des Beweises.
Das Urteil
Zwei Aussagen werden abgeleitet. (a) Die Person wird genannt: jeder Beleg trägt Verfasser, Satz-im-Brief und Lesart. (b) Die Liste ist vollständig relativ zu B@version. Die harten Prämissen: jeder Treffer ist verbucht, keine Differenz bleibt offen, der Raumbeweis hält, die unabhängige Referenzsuche verliert keinen zulässigen Satz, kein blockierender Einwand bleibt offen. Die gewichtete Prämisse: der Rest offener Kandidaten ist null (RestNull) oder liegt unter der Schwelle rest_max (RestUnterSchwelle, Standard 0,05, im Vorspann änderbar).
| Urteil | wann |
|---|---|
| validiert | harte Prämissen, kein blockierender Einwand, Rest null; Quantor genau |
| validiert-mit-rest | harte Prämissen, Rest unter der Schwelle; Quantor mindestens, Intervall der Belegzahl |
| Lücke | harte Prämissen halten, aber der Rest liegt über der Schwelle, ein Einwand blockiert, eine Rückfrage ist offen oder ein Teilziel ist zurückgestellt |
| nicht validiert | eine harte Prämisse fällt |
| Rückfrage | der Filter bittet um eine Einschränkung, bevor entfaltet wird |
Der Grad des Urteils ist (1 − Rest) × Π(1 − Abschwächung) über die offenen, nicht blockierenden Einwände; der Rest ist nach Ursache gezählt (Lesart unter dem Annahmegrad, Verfasser, zurückgestellt). Die kritischen Fragen stehen in rules/kritische_fragen.yaml (prueft, art, builtin, blockiert, abschwaechung), die Anfrageform wählt sie; sie sind ein lernbares Artefakt. Aus einer falschen Prämisse folgt nichts über die Wahrheit der Konklusion: ein falscher Registereintrag macht das Argument unfundiert, er macht die Konklusion nicht falsch.
Hitler
Fünf Warmläufe, Median 6,0 s, Beweis hält, ein Kandidatensatz, eine Stelle in einem Brief. GLiNER 209 ms für diesen Satz.
Urteil: validiert. Antwort: ja.
Theodor von Kármán nennt Adolf Hitler in seiner Korrespondenz (1 Stelle in 1 Brief). Die Liste ist vollständig relativ zu karman-nachlass@2fc48bc038 und dem Raumbeweis.
Prämissen, alle abgeleitet: alle Treffer verbucht (1 Beleg, 20 ausgeschlossen, 0 offen), Differenzen erklärt, kein relevanter Treffer offen, kein Einwand offen, Raum bewiesen (15.976 Träger), Referenz ohne Verlust (3 zulässige Sätze, 0 fehlen).
Das Teilziel verfasser entfällt: nach der Lesart ist der Verfasser des einen Briefs verzeichnet. Der Abgleich entfällt: die Kanäle weichen nicht voneinander ab.
Die vier Fragen
| Frage | Urteil | Belege | offen | Wand warm |
|---|---|---|---|---|
| Adolf Hitler | validiert | 1 | 0 | 6,0 s |
| Alexander Weinstein | Lücke | 0 | 7 | 7,1 s |
| Albert Einstein | Lücke | 20 | 29 | 12,1 s |
| Ludwig Prandtl | Lücke | 312 | 300 | 78,3 s |
Bei Weinstein trägt jeder offene Satz den Schlüssel, und der Verfasser ist nicht verzeichnet. Kein Beleg entsteht aus „Alexander“ allein. Bei Einstein sind 11 Eponyme und eine Spanne ohne Nachnamenschlüssel ausgeschlossen; unter den 20 Belegen ist kein Weinstein. Prandtl liest 752 Sätze. 312 werden Belege, 300 bleiben offen, kein Teilziel scheitert am Vertrag. Die Wandzeit ist die der Lesart. Die Records stehen in reports/data/record-karman-*.json.