/** * @copyright Sister Software * @license AGPL-3.0 * @author Teffen Ellis, et al. * * `german` slice recipe — German coverage rows from REAL OpenAddresses tuples (Berlin + Saxony, * cached zips). Each sampled tuple is rendered via {@link synthesizeGermanRow} in BOTH orders — * `--intl-fraction` (default 0.4) in international order (house-first / postcode-after-city), the * rest in idiomatic German order — then aligned to BIO. Generate-mode: it builds a tuple pool * from the cached zips, then draws `--count` rows from it with the passed `random` (so the emit * stream matches the legacy reservoir-sample loop). Ported from scripts/build-german-slice.mjs. * * ORDER ROBUSTNESS (2026-06-06): mixing the two renderings stops a native-only slice from teaching * German order so well it reads the US/feed-order eval as a "collapse". See * docs/articles/evals/resolver-geo/2026-06-06-anchor-pilot.md (the order-artifact correction). * * TWO REGISTERS THE OA TUPLES DO NOT CARRY (#1946). A comma-free single line — `Neusser Str. 12 Nippes * 50733 Köln`, the dictation / one-field-form register — segments as ONE unit at stage 2, and with one * segment the placetype-pair prior never fires, so the model reads `Nippes` as a second street and the * one-value-per-tag projection deletes it. `--comma-free-fraction` renders that many native-order rows * with `" "` as the line separator. And OA rows have no district at all, so `--ortsteil-fraction` rows * borrow a WOF Ortsteil of the tuple's own locality as `dependent_locality` — 67,532 DE neighbourhoods * carry a locality ancestor in the admin database, `Köln-Nippes` among them. The German spelling is * recovered from the `names` table ({@link ortsteilSurface}): WOF's `spr.name` for DE neighbourhoods is * the ASCII-folded label (`Bocklemuend`), which no German ever types. */ import { type CorpusRecipe } from "#recipes/scaffold"; /** * The surface an Ortsteil is written with in an address, from WOF's rows for it. * * `spr.name` for a DE neighbourhood is the ASCII-folded label; the `names` rows in `deu` carry the German spelling * beside unrelated labels for co-located features (`Bocklemuend` → `Bocklemünd`, `Jüdischer Friedhof Bocklemünd`, * `Menara-Garten`). The German name is the one that spells the same label as `spr.name` under either of WOF's ASCII * folds ({@link foldGerman}); with none, `spr.name` stands. WOF also prefixes some Ortsteile with their city * (`Köln-Nippes`), a form no envelope carries once the city is its own line, so a leading `-` is dropped when * something is left after it. */ export declare function ortsteilSurface(sprName: string, deuNames: readonly string[], locality: string): string; /** * Slice recipe registered with the corpus builder — see the file header for the parse behaviour it exists to exercise, * and `description` below for the surface form it generates. */ export declare const germanRecipe: CorpusRecipe; //# sourceMappingURL=locale.d.ts.map