@mailwoman/corpus 8.6.0 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/out/src/adapter.d.ts +41 -0
- package/out/src/adapter.d.ts.map +1 -1
- package/out/src/adapter.js +46 -1
- package/out/src/adapter.js.map +1 -1
- package/out/src/adapters/ban/adapter.d.ts +4 -3
- package/out/src/adapters/ban/adapter.d.ts.map +1 -1
- package/out/src/adapters/ban/adapter.js +60 -67
- package/out/src/adapters/ban/adapter.js.map +1 -1
- package/out/src/adapters/ban/street-decompose.d.ts.map +1 -1
- package/out/src/adapters/ban/street-decompose.js +18 -25
- package/out/src/adapters/ban/street-decompose.js.map +1 -1
- package/out/src/adapters/fcc-bdc/adapter.d.ts +0 -6
- package/out/src/adapters/fcc-bdc/adapter.d.ts.map +1 -1
- package/out/src/adapters/fcc-bdc/adapter.js +2 -24
- package/out/src/adapters/fcc-bdc/adapter.js.map +1 -1
- package/out/src/adapters/geonames/adapter.d.ts.map +1 -1
- package/out/src/adapters/geonames/adapter.js +70 -76
- package/out/src/adapters/geonames/adapter.js.map +1 -1
- package/out/src/adapters/geonames-postal/adapter.d.ts.map +1 -1
- package/out/src/adapters/geonames-postal/adapter.js +44 -49
- package/out/src/adapters/geonames-postal/adapter.js.map +1 -1
- package/out/src/adapters/gnaf/adapter.d.ts.map +1 -1
- package/out/src/adapters/gnaf/adapter.js +4 -7
- package/out/src/adapters/gnaf/adapter.js.map +1 -1
- package/out/src/adapters/gnaf/assemble.d.ts.map +1 -1
- package/out/src/adapters/gnaf/assemble.js +6 -11
- package/out/src/adapters/gnaf/assemble.js.map +1 -1
- package/out/src/adapters/openaddresses/adapter.d.ts.map +1 -1
- package/out/src/adapters/openaddresses/adapter.js +2 -7
- package/out/src/adapters/openaddresses/adapter.js.map +1 -1
- package/out/src/adapters/overture/adapter.d.ts.map +1 -1
- package/out/src/adapters/overture/adapter.js +3 -7
- package/out/src/adapters/overture/adapter.js.map +1 -1
- package/out/src/adapters/state-hi-schools/adapter.d.ts.map +1 -1
- package/out/src/adapters/state-hi-schools/adapter.js +55 -73
- package/out/src/adapters/state-hi-schools/adapter.js.map +1 -1
- package/out/src/adapters/state-ia-contractors/adapter.d.ts.map +1 -1
- package/out/src/adapters/state-ia-contractors/adapter.js +58 -76
- package/out/src/adapters/state-ia-contractors/adapter.js.map +1 -1
- package/out/src/adapters/state-ny-notaries/adapter.d.ts.map +1 -1
- package/out/src/adapters/state-ny-notaries/adapter.js +67 -85
- package/out/src/adapters/state-ny-notaries/adapter.js.map +1 -1
- package/out/src/adapters/state-tx-notaries/adapter.d.ts.map +1 -1
- package/out/src/adapters/state-tx-notaries/adapter.js +69 -87
- package/out/src/adapters/state-tx-notaries/adapter.js.map +1 -1
- package/out/src/adapters/synth-po-box/adapter.d.ts.map +1 -1
- package/out/src/adapters/synth-po-box/adapter.js +7 -15
- package/out/src/adapters/synth-po-box/adapter.js.map +1 -1
- package/out/src/adapters/tiger/street-decompose.d.ts.map +1 -1
- package/out/src/adapters/tiger/street-decompose.js +18 -27
- package/out/src/adapters/tiger/street-decompose.js.map +1 -1
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts +3 -3
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.js +62 -80
- package/out/src/adapters/usgov-hrsa-fqhc/adapter.js.map +1 -1
- package/out/src/adapters/usgov-imls-pls/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-imls-pls/adapter.js +60 -82
- package/out/src/adapters/usgov-imls-pls/adapter.js.map +1 -1
- package/out/src/adapters/usgov-irs-bmf/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-irs-bmf/adapter.js +58 -65
- package/out/src/adapters/usgov-irs-bmf/adapter.js.map +1 -1
- package/out/src/adapters/usgov-nad/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-nad/adapter.js +5 -8
- package/out/src/adapters/usgov-nad/adapter.js.map +1 -1
- package/out/src/adapters/usgov-nppes/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-nppes/adapter.js +58 -76
- package/out/src/adapters/usgov-nppes/adapter.js.map +1 -1
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +1 -1
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js +51 -71
- package/out/src/adapters/usgov-samhsa-treatment-locator/adapter.js.map +1 -1
- package/out/src/adapters/wof-admin-jp/adapter.d.ts.map +1 -1
- package/out/src/adapters/wof-admin-jp/adapter.js +24 -6
- package/out/src/adapters/wof-admin-jp/adapter.js.map +1 -1
- package/out/src/build.d.ts.map +1 -1
- package/out/src/build.js +2 -1
- package/out/src/build.js.map +1 -1
- package/out/src/golden.d.ts +5 -0
- package/out/src/golden.d.ts.map +1 -1
- package/out/src/golden.js +23 -9
- package/out/src/golden.js.map +1 -1
- package/out/src/parquet-wrapper/reader.d.ts +8 -0
- package/out/src/parquet-wrapper/reader.d.ts.map +1 -1
- package/out/src/parquet-wrapper/reader.js +16 -0
- package/out/src/parquet-wrapper/reader.js.map +1 -1
- package/out/src/parquet-wrapper/schema.d.ts +4 -0
- package/out/src/parquet-wrapper/schema.d.ts.map +1 -1
- package/out/src/parquet-wrapper/schema.js.map +1 -1
- package/out/src/parquet.d.ts.map +1 -1
- package/out/src/parquet.js +2 -13
- package/out/src/parquet.js.map +1 -1
- package/out/src/shard-recipes/anchor-absorption.d.ts.map +1 -1
- package/out/src/shard-recipes/anchor-absorption.js +2 -1
- package/out/src/shard-recipes/anchor-absorption.js.map +1 -1
- package/out/src/shard-recipes/country-balanced.d.ts.map +1 -1
- package/out/src/shard-recipes/country-balanced.js +68 -60
- package/out/src/shard-recipes/country-balanced.js.map +1 -1
- package/out/src/shard-recipes/fr-fragment.d.ts.map +1 -1
- package/out/src/shard-recipes/fr-fragment.js +8 -5
- package/out/src/shard-recipes/fr-fragment.js.map +1 -1
- package/out/src/shard-recipes/fr-order.d.ts.map +1 -1
- package/out/src/shard-recipes/fr-order.js +14 -58
- package/out/src/shard-recipes/fr-order.js.map +1 -1
- package/out/src/shard-recipes/german.d.ts.map +1 -1
- package/out/src/shard-recipes/german.js +11 -58
- package/out/src/shard-recipes/german.js.map +1 -1
- package/out/src/shard-recipes/index.d.ts.map +1 -1
- package/out/src/shard-recipes/index.js +2 -0
- package/out/src/shard-recipes/index.js.map +1 -1
- package/out/src/shard-recipes/intersection.d.ts +2 -2
- package/out/src/shard-recipes/intersection.d.ts.map +1 -1
- package/out/src/shard-recipes/intersection.js +24 -62
- package/out/src/shard-recipes/intersection.js.map +1 -1
- package/out/src/shard-recipes/locale.d.ts.map +1 -1
- package/out/src/shard-recipes/locale.js +14 -16
- package/out/src/shard-recipes/locale.js.map +1 -1
- package/out/src/shard-recipes/no-fragment.d.ts.map +1 -1
- package/out/src/shard-recipes/no-fragment.js +8 -5
- package/out/src/shard-recipes/no-fragment.js.map +1 -1
- package/out/src/shard-recipes/no-street-led.d.ts.map +1 -1
- package/out/src/shard-recipes/no-street-led.js +8 -5
- package/out/src/shard-recipes/no-street-led.js.map +1 -1
- package/out/src/shard-recipes/po-box-cedex.d.ts +3 -3
- package/out/src/shard-recipes/po-box-cedex.d.ts.map +1 -1
- package/out/src/shard-recipes/po-box-cedex.js +51 -94
- package/out/src/shard-recipes/po-box-cedex.js.map +1 -1
- package/out/src/shard-recipes/scaffold.d.ts +59 -9
- package/out/src/shard-recipes/scaffold.d.ts.map +1 -1
- package/out/src/shard-recipes/scaffold.js +51 -30
- package/out/src/shard-recipes/scaffold.js.map +1 -1
- package/out/src/shard-recipes/street-affix.d.ts.map +1 -1
- package/out/src/shard-recipes/street-affix.js +56 -82
- package/out/src/shard-recipes/street-affix.js.map +1 -1
- package/out/src/shard-recipes/sub-venue-sources.d.ts +231 -0
- package/out/src/shard-recipes/sub-venue-sources.d.ts.map +1 -0
- package/out/src/shard-recipes/sub-venue-sources.js +669 -0
- package/out/src/shard-recipes/sub-venue-sources.js.map +1 -0
- package/out/src/shard-recipes/sub-venue.d.ts +269 -0
- package/out/src/shard-recipes/sub-venue.d.ts.map +1 -0
- package/out/src/shard-recipes/sub-venue.js +709 -0
- package/out/src/shard-recipes/sub-venue.js.map +1 -0
- package/out/src/shard-recipes/unit.d.ts +1 -1
- package/out/src/shard-recipes/unit.d.ts.map +1 -1
- package/out/src/shard-recipes/unit.js +22 -64
- package/out/src/shard-recipes/unit.js.map +1 -1
- package/out/src/split.d.ts +7 -0
- package/out/src/split.d.ts.map +1 -1
- package/out/src/split.js +7 -0
- package/out/src/split.js.map +1 -1
- package/out/src/synthesize.d.ts.map +1 -1
- package/out/src/synthesize.js +1 -12
- package/out/src/synthesize.js.map +1 -1
- package/out/src/tools/align-shard.d.ts.map +1 -1
- package/out/src/tools/align-shard.js +3 -7
- package/out/src/tools/align-shard.js.map +1 -1
- package/out/src/tools/audit.d.ts.map +1 -1
- package/out/src/tools/audit.js +4 -4
- package/out/src/tools/audit.js.map +1 -1
- package/out/src/tools/corpus-stats.d.ts +2 -2
- package/out/src/tools/corpus-stats.d.ts.map +1 -1
- package/out/src/tools/corpus-stats.js +18 -31
- package/out/src/tools/corpus-stats.js.map +1 -1
- package/out/src/tools/fetch/download.d.ts.map +1 -1
- package/out/src/tools/fetch/download.js +5 -6
- package/out/src/tools/fetch/download.js.map +1 -1
- package/out/src/tools/fetch/imls-pls.d.ts.map +1 -1
- package/out/src/tools/fetch/imls-pls.js +2 -2
- package/out/src/tools/fetch/imls-pls.js.map +1 -1
- package/out/src/tools/fetch/index.d.ts +14 -1
- package/out/src/tools/fetch/index.d.ts.map +1 -1
- package/out/src/tools/fetch/index.js +14 -1
- package/out/src/tools/fetch/index.js.map +1 -1
- package/out/src/tools/fetch/nad.d.ts +1 -1
- package/out/src/tools/fetch/nad.js +1 -1
- package/out/src/tools/fetch/nppes.d.ts.map +1 -1
- package/out/src/tools/fetch/nppes.js +2 -1
- package/out/src/tools/fetch/nppes.js.map +1 -1
- package/out/src/tools/fetch/openaddresses.d.ts +1 -1
- package/out/src/tools/fetch/openaddresses.js +1 -1
- package/out/src/tools/fetch/ourairports.d.ts +45 -0
- package/out/src/tools/fetch/ourairports.d.ts.map +1 -0
- package/out/src/tools/fetch/ourairports.js +123 -0
- package/out/src/tools/fetch/ourairports.js.map +1 -0
- package/out/src/tools/fetch/wikidata-subvenue.d.ts +171 -0
- package/out/src/tools/fetch/wikidata-subvenue.d.ts.map +1 -0
- package/out/src/tools/fetch/wikidata-subvenue.js +275 -0
- package/out/src/tools/fetch/wikidata-subvenue.js.map +1 -0
- package/out/src/tools/golden-expand.d.ts.map +1 -1
- package/out/src/tools/golden-expand.js +18 -16
- package/out/src/tools/golden-expand.js.map +1 -1
- package/out/src/tools/golden-promote.d.ts.map +1 -1
- package/out/src/tools/golden-promote.js +12 -6
- package/out/src/tools/golden-promote.js.map +1 -1
- package/out/src/tools/golden-relabel-street.d.ts +196 -0
- package/out/src/tools/golden-relabel-street.d.ts.map +1 -0
- package/out/src/tools/golden-relabel-street.js +513 -0
- package/out/src/tools/golden-relabel-street.js.map +1 -0
- package/out/src/tools/index.d.ts +4 -0
- package/out/src/tools/index.d.ts.map +1 -1
- package/out/src/tools/index.js +4 -0
- package/out/src/tools/index.js.map +1 -1
- package/out/src/tools/jsonl-to-parquet.d.ts.map +1 -1
- package/out/src/tools/jsonl-to-parquet.js +3 -2
- package/out/src/tools/jsonl-to-parquet.js.map +1 -1
- package/out/src/tools/lint-shard-vocab.d.ts.map +1 -1
- package/out/src/tools/lint-shard-vocab.js +3 -2
- package/out/src/tools/lint-shard-vocab.js.map +1 -1
- package/out/src/tools/lint-shard.d.ts +3 -3
- package/out/src/tools/lint-shard.d.ts.map +1 -1
- package/out/src/tools/lint-shard.js +23 -32
- package/out/src/tools/lint-shard.js.map +1 -1
- package/out/src/tools/overlay-manifest.d.ts.map +1 -1
- package/out/src/tools/overlay-manifest.js +2 -1
- package/out/src/tools/overlay-manifest.js.map +1 -1
- package/out/src/tools/overture-subvenue.d.ts +112 -0
- package/out/src/tools/overture-subvenue.d.ts.map +1 -0
- package/out/src/tools/overture-subvenue.js +144 -0
- package/out/src/tools/overture-subvenue.js.map +1 -0
- package/out/src/tools/shard-kryptonite.d.ts +1 -1
- package/out/src/tools/shard-kryptonite.d.ts.map +1 -1
- package/out/src/tools/shard-kryptonite.js +5 -4
- package/out/src/tools/shard-kryptonite.js.map +1 -1
- package/out/src/tools/shard-translit.d.ts +6 -3
- package/out/src/tools/shard-translit.d.ts.map +1 -1
- package/out/src/tools/shard-translit.js +8 -6
- package/out/src/tools/shard-translit.js.map +1 -1
- package/out/src/tools/sub-venue-lexicon.d.ts +507 -0
- package/out/src/tools/sub-venue-lexicon.d.ts.map +1 -0
- package/out/src/tools/sub-venue-lexicon.js +817 -0
- package/out/src/tools/sub-venue-lexicon.js.map +1 -0
- package/out/src/tools/sub-venue-promotions.d.ts +94 -0
- package/out/src/tools/sub-venue-promotions.d.ts.map +1 -0
- package/out/src/tools/sub-venue-promotions.js +266 -0
- package/out/src/tools/sub-venue-promotions.js.map +1 -0
- package/out/src/wof-json.d.ts +2 -2
- package/out/src/wof-json.d.ts.map +1 -1
- package/out/src/wof-json.js +5 -8
- package/out/src/wof-json.js.map +1 -1
- package/package.json +8 -8
- package/src/adapter.ts +58 -1
- package/src/adapters/ban/adapter.ts +55 -65
- package/src/adapters/ban/street-decompose.ts +17 -25
- package/src/adapters/fcc-bdc/adapter.ts +2 -33
- package/src/adapters/geonames/adapter.ts +64 -72
- package/src/adapters/geonames-postal/adapter.ts +42 -50
- package/src/adapters/gnaf/adapter.ts +4 -7
- package/src/adapters/gnaf/assemble.ts +6 -10
- package/src/adapters/openaddresses/adapter.ts +2 -7
- package/src/adapters/overture/adapter.ts +3 -6
- package/src/adapters/state-hi-schools/adapter.ts +50 -73
- package/src/adapters/state-ia-contractors/adapter.ts +52 -76
- package/src/adapters/state-ny-notaries/adapter.ts +61 -85
- package/src/adapters/state-tx-notaries/adapter.ts +60 -84
- package/src/adapters/synth-po-box/adapter.ts +7 -17
- package/src/adapters/tiger/street-decompose.ts +21 -31
- package/src/adapters/usgov-hrsa-fqhc/adapter.ts +61 -84
- package/src/adapters/usgov-imls-pls/adapter.ts +54 -82
- package/src/adapters/usgov-irs-bmf/adapter.ts +53 -63
- package/src/adapters/usgov-nad/adapter.ts +5 -8
- package/src/adapters/usgov-nppes/adapter.ts +51 -75
- package/src/adapters/usgov-samhsa-treatment-locator/adapter.ts +45 -71
- package/src/adapters/wof-admin-jp/adapter.ts +34 -8
- package/src/build.ts +2 -1
- package/src/golden.ts +24 -9
- package/src/parquet-wrapper/reader.ts +19 -0
- package/src/parquet-wrapper/schema.ts +4 -0
- package/src/parquet.ts +3 -16
- package/src/shard-recipes/anchor-absorption.ts +2 -1
- package/src/shard-recipes/country-balanced.ts +69 -70
- package/src/shard-recipes/fr-fragment.ts +10 -7
- package/src/shard-recipes/fr-order.ts +13 -63
- package/src/shard-recipes/german.ts +12 -65
- package/src/shard-recipes/index.ts +2 -0
- package/src/shard-recipes/intersection.ts +32 -60
- package/src/shard-recipes/locale.ts +14 -16
- package/src/shard-recipes/no-fragment.ts +10 -7
- package/src/shard-recipes/no-street-led.ts +10 -7
- package/src/shard-recipes/po-box-cedex.ts +68 -119
- package/src/shard-recipes/scaffold.ts +82 -28
- package/src/shard-recipes/street-affix.ts +58 -95
- package/src/shard-recipes/sub-venue-sources.ts +895 -0
- package/src/shard-recipes/sub-venue.ts +982 -0
- package/src/shard-recipes/unit.ts +22 -70
- package/src/split.ts +7 -0
- package/src/synthesize.ts +1 -15
- package/src/tools/align-shard.ts +3 -6
- package/src/tools/audit.ts +6 -5
- package/src/tools/corpus-stats.ts +25 -33
- package/src/tools/fetch/download.ts +7 -5
- package/src/tools/fetch/imls-pls.ts +2 -2
- package/src/tools/fetch/index.ts +14 -1
- package/src/tools/fetch/nad.ts +1 -1
- package/src/tools/fetch/nppes.ts +2 -1
- package/src/tools/fetch/openaddresses.ts +1 -1
- package/src/tools/fetch/ourairports.ts +166 -0
- package/src/tools/fetch/wikidata-subvenue.ts +386 -0
- package/src/tools/golden-expand.ts +18 -13
- package/src/tools/golden-promote.ts +15 -6
- package/src/tools/golden-relabel-street.ts +748 -0
- package/src/tools/index.ts +4 -0
- package/src/tools/jsonl-to-parquet.ts +3 -2
- package/src/tools/lint-shard-vocab.ts +3 -2
- package/src/tools/lint-shard.ts +33 -36
- package/src/tools/overlay-manifest.ts +2 -1
- package/src/tools/overture-subvenue.ts +215 -0
- package/src/tools/shard-kryptonite.ts +5 -4
- package/src/tools/shard-translit.ts +12 -7
- package/src/tools/sub-venue-lexicon.ts +1250 -0
- package/src/tools/sub-venue-promotions.ts +330 -0
- package/src/wof-json.ts +5 -8
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* canonical → `alignRow` → `LabeledRow` JSONL emit step. A recipe ({@link ShardRecipe}) supplies
|
|
9
9
|
* only its synthesis + filter; the `mailwoman corpus shard <recipe>` command supplies the I/O.
|
|
10
10
|
*/
|
|
11
|
+
import { tryParsingJSON } from "@mailwoman/core/objects";
|
|
12
|
+
import { CSVSpliterator } from "spliterator";
|
|
11
13
|
import { stableSourceID } from "../adapter.js";
|
|
12
14
|
import { alignRow } from "../align.js";
|
|
13
15
|
/**
|
|
@@ -19,50 +21,69 @@ export function shardSourceID(adapterID, parts) {
|
|
|
19
21
|
return stableSourceID(adapterID, parts);
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
|
-
* The
|
|
23
|
-
*
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Back-compat alias for {@link makeLcg}.
|
|
24
|
+
* The two seeded generators the legacy `build-*-shard` scripts used, re-exported from their home in
|
|
25
|
+
* `@mailwoman/core/utils` so a recipe keeps importing everything it needs from this one scaffold module.
|
|
26
|
+
*
|
|
27
|
+
* - `makeLcg` (`s = s*1664525 + 1013904223 mod 2^32`) — what the street/po-box/anchor builders seeded.
|
|
28
|
+
* - `makeMulberry32` — what the MAJORITY of them used (german, locale, boundary-stress, unit, fr-order, country-balanced,
|
|
29
|
+
* intersection, fr-admin-split, street-affix, street-bare, po-box-cedex).
|
|
30
|
+
*
|
|
31
|
+
* A recipe must seed the same one its `.mjs` did, the same way it did (usually `seed`, but some derive a per-stream
|
|
32
|
+
* seed), or `--seed N` stops being byte-reproducible.
|
|
34
33
|
*/
|
|
35
|
-
export
|
|
34
|
+
export { makeLcg, mulberry32 as makeMulberry32, makeLcg as makeRandom } from "@mailwoman/core/utils";
|
|
36
35
|
/**
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
36
|
+
* Read an in-memory CSV (an `unzip -p` buffer, say) as header-keyed records.
|
|
37
|
+
*
|
|
38
|
+
* Quote handling spans the ROW split, not only the column split: a newline inside a quoted field belongs to a single
|
|
39
|
+
* record, so the record boundaries can only be found by a scanner that already knows where the quotes are. Find the
|
|
40
|
+
* lines first and unquote afterwards and such a record splits in two — the first half short by however many columns
|
|
41
|
+
* followed the newline, which is how a `street` value comes to be read as `city`.
|
|
42
|
+
*
|
|
43
|
+
* Header names are lower-cased on the way in. `normalizeKeys` will not do it: it leaves an ALL CAPS header alone, and
|
|
44
|
+
* OpenAddresses ships `LON,LAT,NUMBER,STREET` while other extracts ship the same names lower-case. A recipe names its
|
|
45
|
+
* columns in lower case either way.
|
|
46
|
+
*
|
|
47
|
+
* Line breaks inside a value become single spaces. A quote-aware parse is the first thing here able to return a value
|
|
48
|
+
* CONTAINING one — `us/ia/statewide.csv` has 12, all unit designators like `"#2\n#2"` — and every consumer synthesizes
|
|
49
|
+
* one-line address text from these cells with no guard, because until that parse landed no value could carry one.
|
|
50
|
+
* Collapsing keeps the record (the address is fine; the source's line break is not part of it) without emitting a
|
|
51
|
+
* training row with a newline inside it.
|
|
52
|
+
*
|
|
53
|
+
* Only `\r` and `\n`, deliberately — NOT `\s`. Runs of spaces and tabs pass through exactly as the source wrote them
|
|
54
|
+
* (OA's IA extract writes `NORTH`, three spaces, `MAIN STREET`), because those could always appear and every shard
|
|
55
|
+
* built to date contains them. Widening this to `\s+` silently rewrites values on rows with no line break at all.
|
|
56
|
+
* `scaffold.test.ts` pins both halves.
|
|
40
57
|
*/
|
|
41
|
-
export function
|
|
42
|
-
let
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
58
|
+
export function* readCSVRecords(source) {
|
|
59
|
+
let header = null;
|
|
60
|
+
// `header: false` keeps the first record in the stream so this reader owns the lower-casing.
|
|
61
|
+
for (const cells of CSVSpliterator.from(source, { header: false, enableQuoteHandling: true })) {
|
|
62
|
+
if (!header) {
|
|
63
|
+
header = cells.map((name) => name.trim().toLowerCase());
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const record = {};
|
|
67
|
+
for (let i = 0; i < header.length; i++) {
|
|
68
|
+
record[header[i]] = (cells[i] ?? "").replaceAll(/[\r\n]+/g, " ").trim();
|
|
69
|
+
}
|
|
70
|
+
yield record;
|
|
71
|
+
}
|
|
49
72
|
}
|
|
50
73
|
/**
|
|
51
74
|
* Stream-parse a tuples JSONL file, yielding each parsed object (blank/invalid lines skipped).
|
|
52
75
|
*/
|
|
53
76
|
export async function* readTuples(input) {
|
|
54
77
|
// TextSpliterator (not JSONSpliterator) so a malformed line is SKIPPED, not thrown — the
|
|
55
|
-
// per-line
|
|
78
|
+
// per-line tryParsingJSON below is the tolerance this reader has always had.
|
|
56
79
|
const { TextSpliterator } = await import("spliterator");
|
|
57
80
|
for await (const line of TextSpliterator.fromAsync(input)) {
|
|
58
81
|
const trimmed = line.trim();
|
|
59
82
|
if (!trimmed)
|
|
60
83
|
continue;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
catch {
|
|
65
|
-
// skip malformed line
|
|
84
|
+
const tuple = tryParsingJSON(trimmed);
|
|
85
|
+
if (tuple !== null) {
|
|
86
|
+
yield tuple;
|
|
66
87
|
}
|
|
67
88
|
}
|
|
68
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/shard-recipes/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,KAAyC;IACzF,OAAO,cAAc,CAAC,SAAS,EAAE,KAAwD,CAAC,CAAA;AAC3F,CAAC;AAaD
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/shard-recipes/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,KAAyC;IACzF,OAAO,cAAc,CAAC,SAAS,EAAE,KAAwD,CAAC,CAAA;AAC3F,CAAC;AAaD;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAQpG;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,SAAS,CAAC,CAAC,cAAc,CAAC,MAAkB;IACjD,IAAI,MAAM,GAAoB,IAAI,CAAA;IAElC,6FAA6F;IAC7F,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/F,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;YAEvD,SAAQ;QACT,CAAC;QAED,MAAM,MAAM,GAAc,EAAE,CAAA;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACzE,CAAC;QAED,MAAM,MAAM,CAAA;IACb,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,UAAU,CAAC,KAAa;IAC9C,yFAAyF;IACzF,6EAA6E;IAC7E,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;IAEvD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAE3B,IAAI,CAAC,OAAO;YAAE,SAAQ;QAEtB,MAAM,KAAK,GAAG,cAAc,CAAa,OAAO,CAAC,CAAA;QAEjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,KAAK,CAAA;QACZ,CAAC;IACF,CAAC;AACF,CAAC;AAgBD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC5B,KAA6B,EAC7B,SAA4B,EAC5B,WAAmB,EACnB,cAA6B,IAAI;IAEjC,MAAM,OAAO,GAAG,QAAQ,CAAC,SAA2C,CAAC,CAAA;IAErE,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;IAEvG,OAAO,IAAI,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"street-affix.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/street-affix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;
|
|
1
|
+
{"version":3,"file":"street-affix.d.ts","sourceRoot":"","sources":["../../../src/shard-recipes/street-affix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAmBH,OAAO,EAAkC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAuVhF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAiM/B,CAAA"}
|
|
@@ -28,27 +28,56 @@
|
|
|
28
28
|
*/
|
|
29
29
|
import { spawnSync } from "node:child_process";
|
|
30
30
|
import { DirectionalAbbreviation, lookupDirectional, matchCase, matchLeadingDirectional, matchTrailingSuffix, renderDirectional, US_STREET_SUFFIX_PREFERRED_ABBR, } from "@mailwoman/codex/us";
|
|
31
|
+
import { dataRootPath } from "@mailwoman/core/utils";
|
|
31
32
|
import { stableSourceID } from "../adapter.js";
|
|
32
33
|
import { alignRow } from "../align.js";
|
|
33
|
-
import { makeMulberry32 } from "./scaffold.js";
|
|
34
|
+
import { makeMulberry32, readCSVRecords } from "./scaffold.js";
|
|
34
35
|
const TRAIN_SOURCES = [
|
|
35
|
-
{ zip: "
|
|
36
|
-
{ zip: "
|
|
37
|
-
{ zip: "
|
|
38
|
-
{ zip: "
|
|
39
|
-
{ zip: "
|
|
40
|
-
{ zip: "
|
|
41
|
-
{ zip: "
|
|
36
|
+
{ zip: dataRootPath("oa-cache", "us__ca__berkeley.zip"), csv: "us/ca/berkeley.csv", region: "CA" },
|
|
37
|
+
{ zip: dataRootPath("oa-cache", "us__ca__marin.zip"), csv: "us/ca/marin.csv", region: "CA" },
|
|
38
|
+
{ zip: dataRootPath("oa-cache", "us__dc__statewide.zip"), csv: "us/dc/statewide.csv", region: "DC" },
|
|
39
|
+
{ zip: dataRootPath("oa-cache", "us__ia__statewide.zip"), csv: "us/ia/statewide.csv", region: "IA" },
|
|
40
|
+
{ zip: dataRootPath("oa-cache", "us__il__cook.zip"), csv: "us/il/cook.csv", region: "IL" },
|
|
41
|
+
{ zip: dataRootPath("oa-cache", "us__mt__statewide.zip"), csv: "us/mt/statewide.csv", region: "MT" },
|
|
42
|
+
{ zip: dataRootPath("oa-cache", "us__sd__statewide.zip"), csv: "us/sd/statewide.csv", region: "SD" },
|
|
42
43
|
];
|
|
43
|
-
const EVAL_SOURCE = {
|
|
44
|
+
const EVAL_SOURCE = {
|
|
45
|
+
zip: dataRootPath("oa-cache", "us__vt__statewide.zip"),
|
|
46
|
+
csv: "us/vt/statewide.csv",
|
|
47
|
+
region: "VT",
|
|
48
|
+
};
|
|
44
49
|
const MULTILOCALE_SOURCES = [
|
|
45
|
-
{
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
{
|
|
51
|
+
zip: dataRootPath("oa-cache", "de__sn__statewide.zip"),
|
|
52
|
+
csv: "de/sn/statewide.csv",
|
|
53
|
+
iso2: "DE",
|
|
54
|
+
region: "",
|
|
55
|
+
order: "eu",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
zip: dataRootPath("oa-cache", "fr__countrywide.zip"),
|
|
59
|
+
csv: "fr/countrywide.csv",
|
|
60
|
+
iso2: "FR",
|
|
61
|
+
region: "",
|
|
62
|
+
order: "fr",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
zip: dataRootPath("oa-cache", "it__countrywide.zip"),
|
|
66
|
+
csv: "it/countrywide.csv",
|
|
67
|
+
iso2: "IT",
|
|
68
|
+
region: "",
|
|
69
|
+
order: "eu",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
zip: dataRootPath("oa-cache", "nl__countrywide.zip"),
|
|
73
|
+
csv: "nl/countrywide.csv",
|
|
74
|
+
iso2: "NL",
|
|
75
|
+
region: "",
|
|
76
|
+
order: "eu",
|
|
77
|
+
},
|
|
49
78
|
];
|
|
50
79
|
const MULTILOCALE_EVAL_SOURCES = [
|
|
51
|
-
{ zip: "
|
|
80
|
+
{ zip: dataRootPath("oa-cache", "de__berlin.zip"), csv: "de/berlin.csv", iso2: "DE", region: "", order: "eu" },
|
|
52
81
|
];
|
|
53
82
|
/**
|
|
54
83
|
* ["N","E","S","W","NE","NW","SE","SW"].
|
|
@@ -58,43 +87,6 @@ const DIRECTIONAL_ABBRS = Object.values(DirectionalAbbreviation);
|
|
|
58
87
|
* Fraction of prefix-less streets that get a synthetic directional.
|
|
59
88
|
*/
|
|
60
89
|
const INJECT_PREFIX_PROB = 0.3;
|
|
61
|
-
/**
|
|
62
|
-
* Minimal RFC-4180-ish splitter (handles quoted fields).
|
|
63
|
-
*/
|
|
64
|
-
function splitCSV(line) {
|
|
65
|
-
const out = [];
|
|
66
|
-
let cur = "";
|
|
67
|
-
let inQ = false;
|
|
68
|
-
for (let i = 0; i < line.length; i++) {
|
|
69
|
-
const c = line[i];
|
|
70
|
-
if (inQ) {
|
|
71
|
-
if (c === '"') {
|
|
72
|
-
if (line[i + 1] === '"') {
|
|
73
|
-
cur += '"';
|
|
74
|
-
i++;
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
inQ = false;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
cur += c;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else if (c === '"') {
|
|
85
|
-
inQ = true;
|
|
86
|
-
}
|
|
87
|
-
else if (c === ",") {
|
|
88
|
-
out.push(cur);
|
|
89
|
-
cur = "";
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
cur += c;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
out.push(cur);
|
|
96
|
-
return out;
|
|
97
|
-
}
|
|
98
90
|
/**
|
|
99
91
|
* Stream real US tuples (number/street/city/postcode) out of a cached OA zip.
|
|
100
92
|
*/
|
|
@@ -104,29 +96,19 @@ function readTuples(source) {
|
|
|
104
96
|
console.error(` WARN: unzip failed for ${source.zip} (status ${r.status})`);
|
|
105
97
|
return [];
|
|
106
98
|
}
|
|
107
|
-
const lines = r.stdout.toString("utf8").split(/\r?\n/);
|
|
108
|
-
if (lines.length < 2)
|
|
109
|
-
return [];
|
|
110
|
-
const header = splitCSV(lines[0]).map((h) => h.trim().toLowerCase());
|
|
111
|
-
const idx = (name) => header.indexOf(name);
|
|
112
|
-
const iNum = idx("number"), iStreet = idx("street"), iCity = idx("city"), iPost = idx("postcode");
|
|
113
|
-
const get = (cells, i) => (i >= 0 && i < cells.length ? (cells[i] ?? "").trim() : "");
|
|
114
99
|
const tuples = [];
|
|
115
100
|
const seen = new Set();
|
|
116
|
-
for (
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
const street = get(cells, iStreet);
|
|
121
|
-
const locality = get(cells, iCity);
|
|
122
|
-
const house_number = get(cells, iNum);
|
|
101
|
+
for (const row of readCSVRecords(r.stdout)) {
|
|
102
|
+
const street = row.street ?? "";
|
|
103
|
+
const locality = row.city ?? "";
|
|
104
|
+
const house_number = row.number ?? "";
|
|
123
105
|
if (!street || !locality || !house_number)
|
|
124
106
|
continue;
|
|
125
107
|
const key = `${house_number}|${street}|${locality}`.toLowerCase();
|
|
126
108
|
if (seen.has(key))
|
|
127
109
|
continue;
|
|
128
110
|
seen.add(key);
|
|
129
|
-
tuples.push({ house_number, street, locality, region: source.region, postcode:
|
|
111
|
+
tuples.push({ house_number, street, locality, region: source.region, postcode: row.postcode ?? "" });
|
|
130
112
|
}
|
|
131
113
|
return tuples;
|
|
132
114
|
}
|
|
@@ -222,8 +204,8 @@ function renderRow(random, base, street, streetComponents) {
|
|
|
222
204
|
};
|
|
223
205
|
}
|
|
224
206
|
/**
|
|
225
|
-
* Capped reader for the multi-locale BALANCE sources. The FR/IT/NL countrywide extracts are GB-scale
|
|
226
|
-
*
|
|
207
|
+
* Capped reader for the multi-locale BALANCE sources. The FR/IT/NL countrywide extracts are GB-scale, so cap the bytes
|
|
208
|
+
* with `head` (mirrors build-country-shard-balanced.mjs) rather than holding a whole extract in memory. Only keeps
|
|
227
209
|
* tuples that carry a POSTCODE.
|
|
228
210
|
*/
|
|
229
211
|
function readBalanceTuples(source, limit) {
|
|
@@ -236,20 +218,12 @@ function readBalanceTuples(source, limit) {
|
|
|
236
218
|
console.error(` WARN: unzip failed for ${source.zip} (status ${r.status})`);
|
|
237
219
|
return [];
|
|
238
220
|
}
|
|
239
|
-
const lines = r.stdout.toString("utf8").split(/\r?\n/);
|
|
240
|
-
if (lines.length < 2)
|
|
241
|
-
return [];
|
|
242
|
-
const header = splitCSV(lines[0]).map((h) => h.trim().toLowerCase());
|
|
243
|
-
const idx = (n) => header.indexOf(n);
|
|
244
|
-
const iNum = idx("number"), iStreet = idx("street"), iCity = idx("city"), iRegion = idx("region"), iPost = idx("postcode");
|
|
245
|
-
const get = (cells, i) => (i >= 0 && i < cells.length ? (cells[i] ?? "").trim() : "");
|
|
246
221
|
const tuples = [];
|
|
247
222
|
const seen = new Set();
|
|
248
|
-
for (
|
|
249
|
-
if (
|
|
250
|
-
|
|
251
|
-
const
|
|
252
|
-
const street = get(cells, iStreet), locality = get(cells, iCity), house_number = get(cells, iNum), postcode = get(cells, iPost);
|
|
223
|
+
for (const row of readCSVRecords(r.stdout)) {
|
|
224
|
+
if (tuples.length >= limit)
|
|
225
|
+
break;
|
|
226
|
+
const street = row.street ?? "", locality = row.city ?? "", house_number = row.number ?? "", postcode = row.postcode ?? "";
|
|
253
227
|
if (!street || !locality || !house_number || !postcode)
|
|
254
228
|
continue; // postcode is required for balance
|
|
255
229
|
const key = `${house_number}|${street}|${locality}`.toLowerCase();
|
|
@@ -260,7 +234,7 @@ function readBalanceTuples(source, limit) {
|
|
|
260
234
|
house_number,
|
|
261
235
|
street,
|
|
262
236
|
locality,
|
|
263
|
-
region:
|
|
237
|
+
region: row.region || source.region,
|
|
264
238
|
postcode,
|
|
265
239
|
iso2: source.iso2,
|
|
266
240
|
order: source.order,
|
|
@@ -312,7 +286,7 @@ export const streetAffixRecipe = {
|
|
|
312
286
|
}
|
|
313
287
|
}
|
|
314
288
|
if (!pool.length) {
|
|
315
|
-
throw new Error(
|
|
289
|
+
throw new Error(`No US tuples found — are the cached OA zips present in ${dataRootPath("oa-cache")}?`);
|
|
316
290
|
}
|
|
317
291
|
let emitted = 0;
|
|
318
292
|
let skipped = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"street-affix.js","sourceRoot":"","sources":["../../../src/shard-recipes/street-affix.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"street-affix.js","sourceRoot":"","sources":["../../../src/shard-recipes/street-affix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* The READ half of the `sub-venue` shard recipe (#35 step 4): which surfaces a locale may emit,
|
|
7
|
+
* what identifier follows them in that region, and which real names become the confound negatives.
|
|
8
|
+
* `sub-venue.ts` owns the WRITE half (line rendering + the emit loop) and the recipe registration;
|
|
9
|
+
* split because the two halves together run past the 750-line file cap, and this is the seam — one
|
|
10
|
+
* side reads disk and the ledger, the other side never touches either.
|
|
11
|
+
*
|
|
12
|
+
* Every rule in this file is a rule about EVIDENCE, and each one has a measurement behind it:
|
|
13
|
+
*
|
|
14
|
+
* - {@link promotedSurfacesFor} — a promotion names a designator, a phrase AND a locale, because the
|
|
15
|
+
* same token is a designator in one language and a disaster in another (`hall` is 0-of-3,273 in
|
|
16
|
+
* Great Britain and 35-of-40 in France).
|
|
17
|
+
* - {@link hasPromotedShape} — an `identifier-required` promotion is exercised only as
|
|
18
|
+
* `<phrase> <identifier>`. The de-DE `halle` board is the founding case: its 168-hit confound
|
|
19
|
+
* includes the CITY Halle (Saale), and only the identifier-bearing shape separates them.
|
|
20
|
+
* - {@link buildIdentifierModel} — the identifier distribution is measured per REGION, because it
|
|
21
|
+
* differs by country far more than the shared vocabulary suggests (GB gates 71% bare digit, ES
|
|
22
|
+
* 35% ranges).
|
|
23
|
+
* - {@link isVenueSlotName} / {@link isSignIdentifier} — the filters that keep bus-stop codes, route
|
|
24
|
+
* descriptions and street names out of the slots they would mislabel. Both were written FROM
|
|
25
|
+
* smoke output, not predicted; the docstrings name the strings that produced them.
|
|
26
|
+
*/
|
|
27
|
+
import type { LocaleBaseTuple } from "../synthesize-german.ts";
|
|
28
|
+
import { type SubVenueLexiconTable } from "../tools/sub-venue-lexicon.ts";
|
|
29
|
+
import { type SubVenuePromotion } from "../tools/sub-venue-promotions.ts";
|
|
30
|
+
/**
|
|
31
|
+
* The committed lexicon, resolved through the package manifest rather than by counting `..` segments — the same file
|
|
32
|
+
* sits at `corpus/data/` from both the source tree and the compiled `out/` tree, and `createRequire().resolve` finds it
|
|
33
|
+
* from either without a `__isCompiledTree` flag of its own.
|
|
34
|
+
*/
|
|
35
|
+
export declare function defaultLexiconPath(): string;
|
|
36
|
+
/**
|
|
37
|
+
* Read and parse the lexicon. Strict: a corrupt lexicon is a build failure, not a fallback.
|
|
38
|
+
*/
|
|
39
|
+
export declare function readSubVenueLexicon(path?: string): SubVenueLexiconTable;
|
|
40
|
+
/**
|
|
41
|
+
* Reject a name that is a route description, a junction, or a code rather than a name: embedded `/`, `;`, `,`, `:`,
|
|
42
|
+
* parentheses, no letters, or a bare source code. Measured motivation, not taste — the GB extract's `platform` tier
|
|
43
|
+
* contributes 7,549 `other`-shaped names like `kntgwdgj` and `SPEKE HALL ROAD/HILLFOOT AVE`.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isCleanName(name: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Is this name usable as a VENUE-slot string (positive venue or negative confound venue)?
|
|
48
|
+
*/
|
|
49
|
+
export declare function isVenueSlotName(name: string): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* A (designator, surface) pair usable in one locale, with the shape constraint the ledger attached to it.
|
|
52
|
+
*/
|
|
53
|
+
export interface PromotedSurface {
|
|
54
|
+
designatorID: string;
|
|
55
|
+
phrase: string;
|
|
56
|
+
/**
|
|
57
|
+
* Rendering form — the phrase title-cased, which is how a sign writes it.
|
|
58
|
+
*/
|
|
59
|
+
surface: string;
|
|
60
|
+
identifierRequired: boolean;
|
|
61
|
+
modifierEligible: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Title-case a designator phrase for rendering (`flugsteig` → `Flugsteig`). Single-token by construction: every
|
|
65
|
+
* promoted phrase in the ledger is one word.
|
|
66
|
+
*/
|
|
67
|
+
export declare function titleCase(phrase: string): string;
|
|
68
|
+
/**
|
|
69
|
+
* Word-boundary containment, script-aware enough for the Latin legs this recipe runs.
|
|
70
|
+
*
|
|
71
|
+
* The boundary matters: without it `gate` matches Briggate and `wing` matches Wingate, which is how a harvest teaches
|
|
72
|
+
* itself that a Yorkshire street is a sub-venue. (The lexicon's own harvest carries the same rule, and it drops the
|
|
73
|
+
* boundary only for Han/Kana, which has no word boundaries and no leg here.)
|
|
74
|
+
*/
|
|
75
|
+
export declare function containsPhrase(lowerName: string, phrase: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Is `value` what a sub-venue identifier looks like on a sign — an atom, or a range of two?
|
|
78
|
+
*
|
|
79
|
+
* Applied on top of {@link USABLE_IDENTIFIER_SHAPES}, which classifies but does not bound: `WSW3687` classifies as
|
|
80
|
+
* `letter-digit` and is a station code.
|
|
81
|
+
*/
|
|
82
|
+
export declare function isSignIdentifier(value: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Does a real extract name exercise `promoted` in one of the two shapes this shard teaches?
|
|
85
|
+
*
|
|
86
|
+
* Only `<phrase> <identifier>` and (English legs) `<modifier> <phrase>` qualify. That is stricter than "contains the
|
|
87
|
+
* phrase", and the 2026-08-05 smoke is why: the loose test put `Glasgow Clyde College - Langside Campus`, `Terminal de
|
|
88
|
+
* Ferry de Bilbao` and — worst — `Halle Wohnstadt Nord` into the attested pool, the last of which is a bare German
|
|
89
|
+
* `Halle` wearing a name where the ledger requires an identifier. A whole venue's name is not a sub-venue string, and
|
|
90
|
+
* an attested string that violates the promotion's own shape constraint is not attestation of it.
|
|
91
|
+
*
|
|
92
|
+
* The follower is checked with {@link classifyIdentifier} plus {@link isSignIdentifier} rather than "any following
|
|
93
|
+
* word": `Wohnstadt` is a word, `8` is an identifier, and the de-DE board turns on exactly that difference.
|
|
94
|
+
*/
|
|
95
|
+
export declare function hasPromotedShape(lowerName: string, promoted: PromotedSurface, modifiers?: readonly string[], english?: boolean): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* {@link hasPromotedShape} plus the length cap that makes a string usable AS a sub-venue span.
|
|
98
|
+
*
|
|
99
|
+
* The two are separate because the difference decides which POOL a name lands in. `navette n2 vers terminal 2g` carries
|
|
100
|
+
* the promoted shape and is five tokens: too long to be a sub-venue string, and disqualified from being a NEGATIVE
|
|
101
|
+
* precisely because it does contain the shape. It belongs to neither pool, and only splitting the test says so.
|
|
102
|
+
*/
|
|
103
|
+
export declare function matchesPromotedShape(lowerName: string, promoted: PromotedSurface, modifiers?: readonly string[], english?: boolean): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* The surfaces a locale may emit as `unit`.
|
|
106
|
+
*
|
|
107
|
+
* Two inputs, and the difference between them is the advisory/binding split the ledger's docstring names:
|
|
108
|
+
*
|
|
109
|
+
* - The SHIPPED English vocabulary (`neural/venue-structure.ts`, re-declared in the lexicon as `shipped: true`) is a flat
|
|
110
|
+
* English list with no locale gate. It is promoted-by-shipping for the English legs, because the span proposer fires
|
|
111
|
+
* on it there today and the eval board's target cases are drawn from it.
|
|
112
|
+
* - {@link SUBVENUE_PROMOTIONS} adds the localized surfaces and SUBTRACTS the rejections. A rejection of a shipped
|
|
113
|
+
* designator cannot un-ship it (nothing here stops the proposer firing on "Red Wing"), but it absolutely stops this
|
|
114
|
+
* recipe generating a positive: en-US `wing` produces negatives instead.
|
|
115
|
+
*/
|
|
116
|
+
export declare function promotedSurfacesFor(locale: string, lexicon: SubVenueLexiconTable, promotions?: readonly SubVenuePromotion[]): PromotedSurface[];
|
|
117
|
+
/**
|
|
118
|
+
* The phrases REJECTED in a locale — the negatives' vocabulary.
|
|
119
|
+
*/
|
|
120
|
+
export declare function rejectedPhrasesFor(locale: string, promotions?: readonly SubVenuePromotion[]): string[];
|
|
121
|
+
interface ShapeBucket {
|
|
122
|
+
shape: string;
|
|
123
|
+
observations: number;
|
|
124
|
+
examples: string[];
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* A region's identifier distributions: per designator, plus the pooled fallback.
|
|
128
|
+
*/
|
|
129
|
+
export interface IdentifierModel {
|
|
130
|
+
byDesignator: Map<string, ShapeBucket[]>;
|
|
131
|
+
pooled: ShapeBucket[];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Build the per-region identifier model out of the lexicon's `identifierShapes`.
|
|
135
|
+
*/
|
|
136
|
+
export declare function buildIdentifierModel(lexicon: SubVenueLexiconTable, region: string): IdentifierModel;
|
|
137
|
+
/**
|
|
138
|
+
* Draw one identifier for `designatorID` in this region.
|
|
139
|
+
*
|
|
140
|
+
* Own distribution when it has {@link MIN_OWN_SHAPE_OBSERVATIONS} usable observations, else the region's pooled one.
|
|
141
|
+
* Shapes are weighted by observation count and an example is drawn uniformly inside the chosen shape — the lexicon
|
|
142
|
+
* ships up to eight per shape, which is the resolution available.
|
|
143
|
+
*/
|
|
144
|
+
export declare function sampleIdentifier(model: IdentifierModel, designatorID: string, random: () => number): string | null;
|
|
145
|
+
/**
|
|
146
|
+
* Per-leg pools read off disk once.
|
|
147
|
+
*/
|
|
148
|
+
export interface LegPools {
|
|
149
|
+
context: LocaleBaseTuple[];
|
|
150
|
+
/**
|
|
151
|
+
* Real venue names for the venue slot (stations, airports, campuses; US: airports, terminals, hospitals, rail).
|
|
152
|
+
*/
|
|
153
|
+
venues: string[];
|
|
154
|
+
/**
|
|
155
|
+
* Real sub-venue strings, already filtered to this locale's promoted surfaces and their shape constraint.
|
|
156
|
+
*/
|
|
157
|
+
attested: string[];
|
|
158
|
+
/**
|
|
159
|
+
* Real names carrying a surface REJECTED in this locale, for the venue slot of a negative row.
|
|
160
|
+
*/
|
|
161
|
+
rejectedVenues: string[];
|
|
162
|
+
/**
|
|
163
|
+
* Real names that contain a designator inside a longer proper name — "Lochaline Ferry Terminal", "Kingdom Hall". The
|
|
164
|
+
* whole string is `venue`; nothing in it is `unit`.
|
|
165
|
+
*/
|
|
166
|
+
longerNames: string[];
|
|
167
|
+
/**
|
|
168
|
+
* Real names carrying a PROMOTED phrase in a shape the promotion does NOT cover — `Halle Rosengarten`, `PHOENIX
|
|
169
|
+
* Halle`, `Halle-Südstadt`. The other half of an `identifier-required` ruling, and the only thing that teaches the
|
|
170
|
+
* shape boundary rather than the word: de-DE has no `reject` row at all, so without this class its 168-hit confound
|
|
171
|
+
* (97 of them the CITY Halle) would go untaught while its 32-hit promotion got 11,000 rows.
|
|
172
|
+
*/
|
|
173
|
+
unpromotedShapes: string[];
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The name pools a source contributes. `attested` and `unpromotedShapes` come only from an extract — poi.db carries no
|
|
177
|
+
* `tier` and no localized names, so it cannot say which side of a shape boundary a name sits on.
|
|
178
|
+
*/
|
|
179
|
+
export type NamePools = Pick<LegPools, "venues" | "attested" | "rejectedVenues" | "longerNames" | "unpromotedShapes">;
|
|
180
|
+
/**
|
|
181
|
+
* The pools a source that has nothing to say contributes — en-US has no OSM extract, and DE/ES/GB are outside poi.db's
|
|
182
|
+
* four countries. Empty rather than absent so a leg's merge is unconditional.
|
|
183
|
+
*/
|
|
184
|
+
export declare const EMPTY_NAME_POOLS: NamePools;
|
|
185
|
+
/**
|
|
186
|
+
* What every pool reader needs to know about the leg it is reading for.
|
|
187
|
+
*/
|
|
188
|
+
export interface PoolQuery {
|
|
189
|
+
promoted: readonly PromotedSurface[];
|
|
190
|
+
rejectedPhrases: readonly string[];
|
|
191
|
+
designatorPhrases: readonly string[];
|
|
192
|
+
modifiers: readonly string[];
|
|
193
|
+
english: boolean;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Read one OSM extract and split it into name pools.
|
|
197
|
+
*/
|
|
198
|
+
export declare function readExtractPools(path: string, query: PoolQuery): NamePools;
|
|
199
|
+
/**
|
|
200
|
+
* Read the venue + confound pools for a country out of `poi.db`.
|
|
201
|
+
*
|
|
202
|
+
* Poi.db is FOUR COUNTRIES — US 11,521,612 / CA 794,418 / FR 721,352 / MX 644,316 — so this is reachable for en-US and
|
|
203
|
+
* fr-FR and nothing else, and a zero here is evidence of absence in four countries rather than in the world.
|
|
204
|
+
*/
|
|
205
|
+
export declare function readPOIPools(dbPath: string, country: string, query: PoolQuery): NamePools;
|
|
206
|
+
/**
|
|
207
|
+
* Merge two sources' name pools.
|
|
208
|
+
*/
|
|
209
|
+
export declare function mergeNamePools(a: NamePools, b: NamePools): NamePools;
|
|
210
|
+
/**
|
|
211
|
+
* Load the address skeletons every leg renders onto: GB / US / FR from the house-venue v3 tuples (the same 176,519 real
|
|
212
|
+
* rows the `synth-house-venue` shard is built from, so the two shards' address halves are drawn from one pool), DE and
|
|
213
|
+
* ES streamed out of OpenAddresses.
|
|
214
|
+
*/
|
|
215
|
+
export declare function loadContextTuples(tuplesPath: string, seed: number): Promise<Map<string, LocaleBaseTuple[]>>;
|
|
216
|
+
/**
|
|
217
|
+
* The street-side confound classes, mined from the leg's OWN address tuples.
|
|
218
|
+
*
|
|
219
|
+
* Real streets, not invented ones. The 176,519-row context pool carries 195 GB `hall` streets, 114 GB `gate` streets,
|
|
220
|
+
* 134 distinct GB `-gate` single tokens and a two-figure `<modifier> <designator>` population in both GB and US — small
|
|
221
|
+
* absolute numbers, but every one of them a street somebody lives on, which is the property an invented list cannot
|
|
222
|
+
* have.
|
|
223
|
+
*/
|
|
224
|
+
export interface StreetNegatives {
|
|
225
|
+
designator: LocaleBaseTuple[];
|
|
226
|
+
modifierDesignator: LocaleBaseTuple[];
|
|
227
|
+
gateSuffix: LocaleBaseTuple[];
|
|
228
|
+
}
|
|
229
|
+
export declare function buildStreetNegatives(context: readonly LocaleBaseTuple[], designatorPhrases: readonly string[], modifiers: readonly string[], country: string): StreetNegatives;
|
|
230
|
+
export {};
|
|
231
|
+
//# sourceMappingURL=sub-venue-sources.d.ts.map
|