@mailwoman/corpus 9.3.0 → 10.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.
Files changed (991) hide show
  1. package/README.md +16 -0
  2. package/lib/adapters/geonames/adapter.ts +3 -3
  3. package/lib/adapters/geonames/postal/adapter.ts +122 -0
  4. package/lib/adapters/index.ts +39 -32
  5. package/lib/adapters/openaddresses/adapter.ts +4 -7
  6. package/lib/adapters/osm/adapter.ts +278 -0
  7. package/lib/adapters/overture/adapter.ts +22 -7
  8. package/lib/adapters/utils/index.ts +1 -1
  9. package/lib/adapters/wof/admin/json/adapter.ts +239 -0
  10. package/lib/adapters/wof/json-rows.ts +181 -0
  11. package/lib/adapters/wof/postalcode-json/adapter.ts +196 -0
  12. package/lib/au/adapters/gnaf/adapter.ts +152 -0
  13. package/lib/au/adapters/gnaf/assemble.ts +225 -0
  14. package/lib/cz/recipes/pcfirst-preposition.ts +112 -0
  15. package/lib/de/recipes/locale.ts +360 -0
  16. package/lib/fr/adapters/ban/adapter.ts +159 -0
  17. package/lib/fr/recipes/admin-split.ts +243 -0
  18. package/lib/fr/recipes/bare-street.ts +171 -0
  19. package/lib/fr/recipes/fragment.ts +334 -0
  20. package/lib/fr/recipes/lieudit.ts +274 -0
  21. package/lib/fr/recipes/order.ts +246 -0
  22. package/lib/fr/tools/fetch/ban.ts +289 -0
  23. package/lib/index.ts +1 -1
  24. package/lib/international/recipes/locale.ts +598 -0
  25. package/lib/jp/tools/fetch/houjin.ts +141 -0
  26. package/lib/kr/adapters/juso/label-rows.ts +259 -0
  27. package/lib/kr/adapters/localdata/align.ts +299 -0
  28. package/lib/kr/adapters/localdata/key-index.ts +185 -0
  29. package/lib/kr/adapters/localdata/permit-rows.ts +186 -0
  30. package/lib/kr/tools/fetch/juso.ts +172 -0
  31. package/lib/kr/tools/fetch/localdata.ts +206 -0
  32. package/lib/nl/recipes/postcode.ts +117 -0
  33. package/lib/no/recipes/fragment.ts +213 -0
  34. package/lib/no/recipes/street/index.ts +91 -0
  35. package/lib/no/recipes/street/led.ts +135 -0
  36. package/lib/recipes/anchor-absorption.ts +2 -2
  37. package/lib/recipes/bare/country.ts +95 -0
  38. package/lib/recipes/bare/postcode/eval.ts +99 -0
  39. package/lib/recipes/bare/postcode/index.ts +327 -0
  40. package/lib/recipes/boundary-stress.ts +3 -1
  41. package/lib/recipes/country-balanced.ts +3 -2
  42. package/lib/recipes/house-venue.ts +2 -1
  43. package/lib/recipes/index.ts +28 -21
  44. package/lib/recipes/intersection.ts +3 -2
  45. package/lib/recipes/po/box/cedex/au-nz.ts +82 -0
  46. package/lib/recipes/po/box/cedex/ca.ts +58 -0
  47. package/lib/recipes/po/box/cedex/fr.ts +76 -0
  48. package/lib/recipes/po/box/cedex/phrases.ts +108 -0
  49. package/lib/recipes/po/box/cedex/recipe.ts +203 -0
  50. package/lib/recipes/po/box/cedex/sources.ts +189 -0
  51. package/lib/recipes/po/box/cedex/types.ts +35 -0
  52. package/lib/recipes/po/box/cedex/us.ts +69 -0
  53. package/lib/recipes/po/box/cedex/vocabulary.ts +106 -0
  54. package/lib/recipes/po/box/cedex.ts +9 -0
  55. package/lib/recipes/po/box/index.ts +128 -0
  56. package/lib/recipes/scaffold.ts +18 -42
  57. package/lib/recipes/street/affix.ts +807 -0
  58. package/lib/recipes/street/bare.ts +102 -0
  59. package/lib/recipes/street.ts +3 -1
  60. package/lib/recipes/sub/venue/context.ts +149 -0
  61. package/lib/recipes/sub/venue/index.ts +997 -0
  62. package/lib/recipes/sub/venue/sources.ts +739 -0
  63. package/lib/recipes/trailing-region.ts +9 -9
  64. package/lib/recipes/unit.ts +3 -3
  65. package/lib/sg/recipes/register.ts +270 -0
  66. package/lib/sg/tools/fetch/acra.ts +179 -0
  67. package/lib/si/recipes/bare-village.ts +99 -0
  68. package/lib/south-asia/recipes/register.ts +214 -0
  69. package/lib/synthesizers/anchor-absorption.ts +1 -1
  70. package/lib/synthesizers/locale.ts +261 -0
  71. package/lib/synthesizers/street.ts +1 -1
  72. package/lib/synthesizers/utils.ts +2 -2
  73. package/lib/tools/audit.ts +3 -2
  74. package/lib/tools/corpus-stats.ts +3 -3
  75. package/lib/tools/fetch/download/index.ts +10 -0
  76. package/lib/tools/fetch/download/manifest.ts +102 -0
  77. package/lib/tools/fetch/download/network.ts +226 -0
  78. package/lib/tools/fetch/download/retry.ts +173 -0
  79. package/lib/tools/fetch/geonames/dump.ts +257 -0
  80. package/lib/tools/fetch/geonames/postal.ts +180 -0
  81. package/lib/tools/fetch/index.ts +47 -20
  82. package/lib/tools/fetch/openaddresses.ts +2 -2
  83. package/lib/tools/fetch/ourairports.ts +2 -2
  84. package/lib/tools/fetch/ppd.ts +1 -3
  85. package/lib/tools/fetch/wikidata-subvenue.ts +2 -2
  86. package/lib/tools/golden/promote.ts +340 -0
  87. package/lib/tools/golden/relabel-street/directory.ts +340 -0
  88. package/lib/tools/golden/relabel-street/index.ts +9 -0
  89. package/lib/tools/golden/relabel-street/row.ts +361 -0
  90. package/lib/tools/index.ts +10 -10
  91. package/lib/tools/ingest-csv.ts +5 -7
  92. package/lib/tools/lint/slice/vocab.ts +376 -0
  93. package/lib/tools/overlay-manifest.ts +92 -25
  94. package/lib/tools/overture-subvenue.ts +1 -1
  95. package/lib/tools/postcode-triples.ts +138 -14
  96. package/lib/tools/sub/venue/harvest.ts +234 -0
  97. package/lib/tools/sub/venue/head-nouns.ts +245 -0
  98. package/lib/tools/sub/venue/lexicon.ts +429 -0
  99. package/lib/tools/sub/venue/surfaces.ts +95 -0
  100. package/lib/tools/sub/venue/table.ts +281 -0
  101. package/lib/tools/sub/venue/wikidata.ts +85 -0
  102. package/lib/tw/tools/fetch/gcis.ts +180 -0
  103. package/lib/types.ts +1 -1
  104. package/lib/us/adapters/fcc-bdc/adapter.ts +173 -0
  105. package/lib/us/adapters/state/hi-schools/adapter.ts +160 -0
  106. package/lib/us/adapters/state/ia-contractors/adapter.ts +136 -0
  107. package/lib/us/adapters/state/ny-notaries/adapter.ts +133 -0
  108. package/lib/us/adapters/state/tx-notaries/adapter.ts +149 -0
  109. package/lib/us/adapters/tiger/adapter.ts +250 -0
  110. package/lib/us/adapters/usgov/hrsa-fqhc/adapter.ts +156 -0
  111. package/lib/us/adapters/usgov/imls-pls/adapter.ts +134 -0
  112. package/lib/us/adapters/usgov/irs-bmf/adapter.ts +145 -0
  113. package/lib/us/adapters/usgov/nad/adapter.ts +324 -0
  114. package/lib/us/adapters/usgov/nppes/adapter.ts +143 -0
  115. package/lib/us/adapters/usgov/samhsa-treatment-locator/adapter.ts +182 -0
  116. package/lib/us/tools/fetch/hrsa.ts +59 -0
  117. package/lib/us/tools/fetch/imls-pls.ts +149 -0
  118. package/lib/us/tools/fetch/nad.ts +341 -0
  119. package/lib/us/tools/fetch/nppes.ts +165 -0
  120. package/lib/us/tools/fetch/state/hi-schools.ts +161 -0
  121. package/lib/us/tools/fetch/state/sources.ts +146 -0
  122. package/lib/us/tools/fetch/tiger-full.ts +308 -0
  123. package/lib/utils/align.ts +1 -1
  124. package/lib/utils/golden.ts +12 -8
  125. package/lib/utils/wof-json.ts +7 -13
  126. package/out/adapters/geonames/adapter.d.ts +1 -1
  127. package/out/adapters/geonames/adapter.js +3 -3
  128. package/out/adapters/geonames/adapter.js.map +1 -1
  129. package/out/adapters/geonames/postal/adapter.d.ts.map +1 -0
  130. package/out/adapters/geonames/postal/adapter.js +107 -0
  131. package/out/adapters/geonames/postal/adapter.js.map +1 -0
  132. package/out/adapters/index.d.ts +16 -16
  133. package/out/adapters/index.d.ts.map +1 -1
  134. package/out/adapters/index.js +34 -32
  135. package/out/adapters/index.js.map +1 -1
  136. package/out/adapters/openaddresses/adapter.d.ts.map +1 -1
  137. package/out/adapters/openaddresses/adapter.js +4 -6
  138. package/out/adapters/openaddresses/adapter.js.map +1 -1
  139. package/out/adapters/osm/adapter.d.ts +95 -0
  140. package/out/adapters/osm/adapter.d.ts.map +1 -0
  141. package/out/adapters/osm/adapter.js +211 -0
  142. package/out/adapters/osm/adapter.js.map +1 -0
  143. package/out/adapters/overture/adapter.d.ts +10 -0
  144. package/out/adapters/overture/adapter.d.ts.map +1 -1
  145. package/out/adapters/overture/adapter.js +20 -7
  146. package/out/adapters/overture/adapter.js.map +1 -1
  147. package/out/adapters/synth-po-box/adapter.js.map +1 -1
  148. package/out/adapters/utils/index.d.ts +1 -1
  149. package/out/adapters/utils/index.d.ts.map +1 -1
  150. package/out/adapters/utils/index.js.map +1 -1
  151. package/out/adapters/wof/admin/json/adapter.d.ts +79 -0
  152. package/out/adapters/wof/admin/json/adapter.d.ts.map +1 -0
  153. package/out/adapters/wof/admin/json/adapter.js +204 -0
  154. package/out/adapters/wof/admin/json/adapter.js.map +1 -0
  155. package/out/adapters/wof/json-rows.d.ts +73 -0
  156. package/out/adapters/wof/json-rows.d.ts.map +1 -0
  157. package/out/adapters/wof/json-rows.js +115 -0
  158. package/out/adapters/wof/json-rows.js.map +1 -0
  159. package/out/adapters/wof/postalcode-json/adapter.d.ts +65 -0
  160. package/out/adapters/wof/postalcode-json/adapter.d.ts.map +1 -0
  161. package/out/adapters/wof/postalcode-json/adapter.js +167 -0
  162. package/out/adapters/wof/postalcode-json/adapter.js.map +1 -0
  163. package/out/au/adapters/gnaf/adapter.d.ts.map +1 -0
  164. package/out/au/adapters/gnaf/adapter.js +127 -0
  165. package/out/au/adapters/gnaf/adapter.js.map +1 -0
  166. package/out/au/adapters/gnaf/assemble.d.ts +65 -0
  167. package/out/au/adapters/gnaf/assemble.d.ts.map +1 -0
  168. package/out/au/adapters/gnaf/assemble.js +154 -0
  169. package/out/au/adapters/gnaf/assemble.js.map +1 -0
  170. package/out/cn/recipes/organizational-units.d.ts +36 -0
  171. package/out/cn/recipes/organizational-units.d.ts.map +1 -0
  172. package/out/cn/recipes/organizational-units.js +159 -0
  173. package/out/cn/recipes/organizational-units.js.map +1 -0
  174. package/out/cz/recipes/pcfirst-preposition.d.ts +22 -0
  175. package/out/cz/recipes/pcfirst-preposition.d.ts.map +1 -0
  176. package/out/cz/recipes/pcfirst-preposition.js +101 -0
  177. package/out/cz/recipes/pcfirst-preposition.js.map +1 -0
  178. package/out/de/recipes/locale.d.ts +44 -0
  179. package/out/de/recipes/locale.d.ts.map +1 -0
  180. package/out/de/recipes/locale.js +289 -0
  181. package/out/de/recipes/locale.js.map +1 -0
  182. package/out/env.d.ts +1 -1
  183. package/out/fr/adapters/ban/adapter.d.ts.map +1 -0
  184. package/out/fr/adapters/ban/adapter.js +123 -0
  185. package/out/fr/adapters/ban/adapter.js.map +1 -0
  186. package/out/fr/adapters/ban/street-decompose.d.ts.map +1 -0
  187. package/out/fr/adapters/ban/street-decompose.js.map +1 -0
  188. package/out/fr/recipes/admin-split.d.ts +38 -0
  189. package/out/fr/recipes/admin-split.d.ts.map +1 -0
  190. package/out/fr/recipes/admin-split.js +192 -0
  191. package/out/fr/recipes/admin-split.js.map +1 -0
  192. package/out/fr/recipes/bare-street.d.ts +28 -0
  193. package/out/fr/recipes/bare-street.d.ts.map +1 -0
  194. package/out/fr/recipes/bare-street.js +144 -0
  195. package/out/fr/recipes/bare-street.js.map +1 -0
  196. package/out/fr/recipes/fragment.d.ts +77 -0
  197. package/out/fr/recipes/fragment.d.ts.map +1 -0
  198. package/out/fr/recipes/fragment.js +277 -0
  199. package/out/fr/recipes/fragment.js.map +1 -0
  200. package/out/fr/recipes/lieudit.d.ts +32 -0
  201. package/out/fr/recipes/lieudit.d.ts.map +1 -0
  202. package/out/fr/recipes/lieudit.js +211 -0
  203. package/out/fr/recipes/lieudit.js.map +1 -0
  204. package/out/fr/recipes/order.d.ts +38 -0
  205. package/out/fr/recipes/order.d.ts.map +1 -0
  206. package/out/fr/recipes/order.js +198 -0
  207. package/out/fr/recipes/order.js.map +1 -0
  208. package/out/fr/tools/fetch/ban.d.ts +31 -0
  209. package/out/fr/tools/fetch/ban.d.ts.map +1 -0
  210. package/out/fr/tools/fetch/ban.js +239 -0
  211. package/out/fr/tools/fetch/ban.js.map +1 -0
  212. package/out/index.d.ts +1 -1
  213. package/out/index.d.ts.map +1 -1
  214. package/out/index.js +1 -1
  215. package/out/index.js.map +1 -1
  216. package/out/international/recipes/locale.d.ts +136 -0
  217. package/out/international/recipes/locale.d.ts.map +1 -0
  218. package/out/international/recipes/locale.js +458 -0
  219. package/out/international/recipes/locale.js.map +1 -0
  220. package/out/jp/adapters/wof-admin/adapter.d.ts.map +1 -0
  221. package/out/jp/adapters/wof-admin/adapter.js.map +1 -0
  222. package/out/jp/tools/fetch/houjin.d.ts +24 -0
  223. package/out/jp/tools/fetch/houjin.d.ts.map +1 -0
  224. package/out/jp/tools/fetch/houjin.js +102 -0
  225. package/out/jp/tools/fetch/houjin.js.map +1 -0
  226. package/out/kr/adapters/juso/label-rows.d.ts +76 -0
  227. package/out/kr/adapters/juso/label-rows.d.ts.map +1 -0
  228. package/out/kr/adapters/juso/label-rows.js +194 -0
  229. package/out/kr/adapters/juso/label-rows.js.map +1 -0
  230. package/out/kr/adapters/localdata/align.d.ts +43 -0
  231. package/out/kr/adapters/localdata/align.d.ts.map +1 -0
  232. package/out/kr/adapters/localdata/align.js +223 -0
  233. package/out/kr/adapters/localdata/align.js.map +1 -0
  234. package/out/kr/adapters/localdata/key-index.d.ts +71 -0
  235. package/out/kr/adapters/localdata/key-index.d.ts.map +1 -0
  236. package/out/kr/adapters/localdata/key-index.js +133 -0
  237. package/out/kr/adapters/localdata/key-index.js.map +1 -0
  238. package/out/kr/adapters/localdata/permit-rows.d.ts +66 -0
  239. package/out/kr/adapters/localdata/permit-rows.d.ts.map +1 -0
  240. package/out/kr/adapters/localdata/permit-rows.js +131 -0
  241. package/out/kr/adapters/localdata/permit-rows.js.map +1 -0
  242. package/out/kr/tools/fetch/juso.d.ts +30 -0
  243. package/out/kr/tools/fetch/juso.d.ts.map +1 -0
  244. package/out/kr/tools/fetch/juso.js +120 -0
  245. package/out/kr/tools/fetch/juso.js.map +1 -0
  246. package/out/kr/tools/fetch/localdata.d.ts +30 -0
  247. package/out/kr/tools/fetch/localdata.d.ts.map +1 -0
  248. package/out/kr/tools/fetch/localdata.js +139 -0
  249. package/out/kr/tools/fetch/localdata.js.map +1 -0
  250. package/out/nl/recipes/postcode.d.ts +26 -0
  251. package/out/nl/recipes/postcode.d.ts.map +1 -0
  252. package/out/nl/recipes/postcode.js +103 -0
  253. package/out/nl/recipes/postcode.js.map +1 -0
  254. package/out/no/recipes/fragment.d.ts +43 -0
  255. package/out/no/recipes/fragment.d.ts.map +1 -0
  256. package/out/no/recipes/fragment.js +183 -0
  257. package/out/no/recipes/fragment.js.map +1 -0
  258. package/out/no/recipes/street/index.d.ts +18 -0
  259. package/out/no/recipes/street/index.d.ts.map +1 -0
  260. package/out/no/recipes/street/index.js +72 -0
  261. package/out/no/recipes/street/index.js.map +1 -0
  262. package/out/no/recipes/street/led.d.ts +24 -0
  263. package/out/no/recipes/street/led.d.ts.map +1 -0
  264. package/out/no/recipes/street/led.js +114 -0
  265. package/out/no/recipes/street/led.js.map +1 -0
  266. package/out/recipes/anchor-absorption.d.ts.map +1 -1
  267. package/out/recipes/anchor-absorption.js +2 -1
  268. package/out/recipes/anchor-absorption.js.map +1 -1
  269. package/out/recipes/bare/country.d.ts +25 -0
  270. package/out/recipes/bare/country.d.ts.map +1 -0
  271. package/out/recipes/bare/country.js +88 -0
  272. package/out/recipes/bare/country.js.map +1 -0
  273. package/out/recipes/bare/postcode/eval.d.ts +29 -0
  274. package/out/recipes/bare/postcode/eval.d.ts.map +1 -0
  275. package/out/recipes/bare/postcode/eval.js +85 -0
  276. package/out/recipes/bare/postcode/eval.js.map +1 -0
  277. package/out/recipes/bare/postcode/index.d.ts +62 -0
  278. package/out/recipes/bare/postcode/index.d.ts.map +1 -0
  279. package/out/recipes/bare/postcode/index.js +267 -0
  280. package/out/recipes/bare/postcode/index.js.map +1 -0
  281. package/out/recipes/boundary-stress.d.ts.map +1 -1
  282. package/out/recipes/boundary-stress.js +2 -1
  283. package/out/recipes/boundary-stress.js.map +1 -1
  284. package/out/recipes/country-balanced.d.ts.map +1 -1
  285. package/out/recipes/country-balanced.js +2 -1
  286. package/out/recipes/country-balanced.js.map +1 -1
  287. package/out/recipes/house-venue.d.ts.map +1 -1
  288. package/out/recipes/house-venue.js +2 -1
  289. package/out/recipes/house-venue.js.map +1 -1
  290. package/out/recipes/index.d.ts.map +1 -1
  291. package/out/recipes/index.js +28 -21
  292. package/out/recipes/index.js.map +1 -1
  293. package/out/recipes/intersection.d.ts.map +1 -1
  294. package/out/recipes/intersection.js +2 -1
  295. package/out/recipes/intersection.js.map +1 -1
  296. package/out/recipes/po/box/cedex/au-nz.d.ts +7 -0
  297. package/out/recipes/po/box/cedex/au-nz.d.ts.map +1 -0
  298. package/out/recipes/po/box/cedex/au-nz.js +56 -0
  299. package/out/recipes/po/box/cedex/au-nz.js.map +1 -0
  300. package/out/recipes/po/box/cedex/ca.d.ts +7 -0
  301. package/out/recipes/po/box/cedex/ca.d.ts.map +1 -0
  302. package/out/recipes/po/box/cedex/ca.js +38 -0
  303. package/out/recipes/po/box/cedex/ca.js.map +1 -0
  304. package/out/recipes/po/box/cedex/fr.d.ts +7 -0
  305. package/out/recipes/po/box/cedex/fr.d.ts.map +1 -0
  306. package/out/recipes/po/box/cedex/fr.js +57 -0
  307. package/out/recipes/po/box/cedex/fr.js.map +1 -0
  308. package/out/recipes/po/box/cedex/phrases.d.ts +8 -0
  309. package/out/recipes/po/box/cedex/phrases.d.ts.map +1 -0
  310. package/out/recipes/po/box/cedex/phrases.js +76 -0
  311. package/out/recipes/po/box/cedex/phrases.js.map +1 -0
  312. package/out/recipes/po/box/cedex/recipe.d.ts +9 -0
  313. package/out/recipes/po/box/cedex/recipe.d.ts.map +1 -0
  314. package/out/recipes/po/box/cedex/recipe.js +153 -0
  315. package/out/recipes/po/box/cedex/recipe.js.map +1 -0
  316. package/out/recipes/po/box/cedex/sources.d.ts +86 -0
  317. package/out/recipes/po/box/cedex/sources.d.ts.map +1 -0
  318. package/out/recipes/po/box/cedex/sources.js +143 -0
  319. package/out/recipes/po/box/cedex/sources.js.map +1 -0
  320. package/out/recipes/po/box/cedex/types.d.ts +31 -0
  321. package/out/recipes/po/box/cedex/types.d.ts.map +1 -0
  322. package/out/recipes/po/box/cedex/types.js +5 -0
  323. package/out/recipes/po/box/cedex/types.js.map +1 -0
  324. package/out/recipes/po/box/cedex/us.d.ts +7 -0
  325. package/out/recipes/po/box/cedex/us.d.ts.map +1 -0
  326. package/out/recipes/po/box/cedex/us.js +51 -0
  327. package/out/recipes/po/box/cedex/us.js.map +1 -0
  328. package/out/recipes/po/box/cedex/vocabulary.d.ts +68 -0
  329. package/out/recipes/po/box/cedex/vocabulary.d.ts.map +1 -0
  330. package/out/recipes/po/box/cedex/vocabulary.js +90 -0
  331. package/out/recipes/po/box/cedex/vocabulary.js.map +1 -0
  332. package/out/recipes/po/box/cedex.d.ts +9 -0
  333. package/out/recipes/po/box/cedex.d.ts.map +1 -0
  334. package/out/recipes/po/box/cedex.js +9 -0
  335. package/out/recipes/po/box/cedex.js.map +1 -0
  336. package/out/recipes/po/box/index.d.ts +17 -0
  337. package/out/recipes/po/box/index.d.ts.map +1 -0
  338. package/out/recipes/po/box/index.js +105 -0
  339. package/out/recipes/po/box/index.js.map +1 -0
  340. package/out/recipes/scaffold.d.ts +20 -1
  341. package/out/recipes/scaffold.d.ts.map +1 -1
  342. package/out/recipes/scaffold.js +18 -49
  343. package/out/recipes/scaffold.js.map +1 -1
  344. package/out/recipes/street/affix.d.ts +89 -0
  345. package/out/recipes/street/affix.d.ts.map +1 -0
  346. package/out/recipes/street/affix.js +565 -0
  347. package/out/recipes/street/affix.js.map +1 -0
  348. package/out/recipes/street/bare.d.ts +25 -0
  349. package/out/recipes/street/bare.d.ts.map +1 -0
  350. package/out/recipes/street/bare.js +87 -0
  351. package/out/recipes/street/bare.js.map +1 -0
  352. package/out/recipes/street.d.ts.map +1 -1
  353. package/out/recipes/street.js +2 -1
  354. package/out/recipes/street.js.map +1 -1
  355. package/out/recipes/sub/venue/context.d.ts +29 -0
  356. package/out/recipes/sub/venue/context.d.ts.map +1 -0
  357. package/out/recipes/sub/venue/context.js +106 -0
  358. package/out/recipes/sub/venue/context.js.map +1 -0
  359. package/out/recipes/sub/venue/index.d.ts +270 -0
  360. package/out/recipes/sub/venue/index.d.ts.map +1 -0
  361. package/out/recipes/sub/venue/index.js +728 -0
  362. package/out/recipes/sub/venue/index.js.map +1 -0
  363. package/out/recipes/sub/venue/sources.d.ts +209 -0
  364. package/out/recipes/sub/venue/sources.d.ts.map +1 -0
  365. package/out/recipes/sub/venue/sources.js +555 -0
  366. package/out/recipes/sub/venue/sources.js.map +1 -0
  367. package/out/recipes/trailing-region.d.ts.map +1 -1
  368. package/out/recipes/trailing-region.js +8 -2
  369. package/out/recipes/trailing-region.js.map +1 -1
  370. package/out/recipes/unit.d.ts.map +1 -1
  371. package/out/recipes/unit.js +2 -1
  372. package/out/recipes/unit.js.map +1 -1
  373. package/out/sg/recipes/register.d.ts +69 -0
  374. package/out/sg/recipes/register.d.ts.map +1 -0
  375. package/out/sg/recipes/register.js +211 -0
  376. package/out/sg/recipes/register.js.map +1 -0
  377. package/out/sg/tools/fetch/acra.d.ts +23 -0
  378. package/out/sg/tools/fetch/acra.d.ts.map +1 -0
  379. package/out/sg/tools/fetch/acra.js +126 -0
  380. package/out/sg/tools/fetch/acra.js.map +1 -0
  381. package/out/si/recipes/bare-village.d.ts +32 -0
  382. package/out/si/recipes/bare-village.d.ts.map +1 -0
  383. package/out/si/recipes/bare-village.js +89 -0
  384. package/out/si/recipes/bare-village.js.map +1 -0
  385. package/out/south-asia/recipes/register.d.ts +51 -0
  386. package/out/south-asia/recipes/register.d.ts.map +1 -0
  387. package/out/south-asia/recipes/register.js +154 -0
  388. package/out/south-asia/recipes/register.js.map +1 -0
  389. package/out/synthesizers/anchor-absorption.d.ts +1 -1
  390. package/out/synthesizers/anchor-absorption.d.ts.map +1 -1
  391. package/out/synthesizers/anchor-absorption.js.map +1 -1
  392. package/out/synthesizers/boundary-stress.js.map +1 -1
  393. package/out/synthesizers/house-venue.js.map +1 -1
  394. package/out/synthesizers/intersection.js.map +1 -1
  395. package/out/synthesizers/locale.d.ts +116 -0
  396. package/out/synthesizers/locale.d.ts.map +1 -0
  397. package/out/synthesizers/locale.js +150 -0
  398. package/out/synthesizers/locale.js.map +1 -0
  399. package/out/synthesizers/no-street.d.ts.map +1 -1
  400. package/out/synthesizers/no-street.js.map +1 -1
  401. package/out/synthesizers/po-box.js.map +1 -1
  402. package/out/synthesizers/street.d.ts.map +1 -1
  403. package/out/synthesizers/street.js +1 -1
  404. package/out/synthesizers/street.js.map +1 -1
  405. package/out/synthesizers/utils.js +1 -1
  406. package/out/synthesizers/utils.js.map +1 -1
  407. package/out/test-kit/corpus-recipe.d.ts.map +1 -1
  408. package/out/test-kit/corpus-recipe.js.map +1 -1
  409. package/out/tools/audit.d.ts.map +1 -1
  410. package/out/tools/audit.js +3 -2
  411. package/out/tools/audit.js.map +1 -1
  412. package/out/tools/corpus-stats.js +3 -3
  413. package/out/tools/corpus-stats.js.map +1 -1
  414. package/out/tools/fetch/download/index.d.ts +10 -0
  415. package/out/tools/fetch/download/index.d.ts.map +1 -0
  416. package/out/tools/fetch/download/index.js +10 -0
  417. package/out/tools/fetch/download/index.js.map +1 -0
  418. package/out/tools/fetch/download/manifest.d.ts +47 -0
  419. package/out/tools/fetch/download/manifest.d.ts.map +1 -0
  420. package/out/tools/fetch/download/manifest.js +74 -0
  421. package/out/tools/fetch/download/manifest.js.map +1 -0
  422. package/out/tools/fetch/download/network.d.ts +105 -0
  423. package/out/tools/fetch/download/network.d.ts.map +1 -0
  424. package/out/tools/fetch/download/network.js +130 -0
  425. package/out/tools/fetch/download/network.js.map +1 -0
  426. package/out/tools/fetch/download/retry.d.ts +45 -0
  427. package/out/tools/fetch/download/retry.d.ts.map +1 -0
  428. package/out/tools/fetch/download/retry.js +136 -0
  429. package/out/tools/fetch/download/retry.js.map +1 -0
  430. package/out/tools/fetch/geonames/dump.d.ts +91 -0
  431. package/out/tools/fetch/geonames/dump.d.ts.map +1 -0
  432. package/out/tools/fetch/geonames/dump.js +171 -0
  433. package/out/tools/fetch/geonames/dump.js.map +1 -0
  434. package/out/tools/fetch/geonames/postal.d.ts +76 -0
  435. package/out/tools/fetch/geonames/postal.d.ts.map +1 -0
  436. package/out/tools/fetch/geonames/postal.js +126 -0
  437. package/out/tools/fetch/geonames/postal.js.map +1 -0
  438. package/out/tools/fetch/index.d.ts +47 -20
  439. package/out/tools/fetch/index.d.ts.map +1 -1
  440. package/out/tools/fetch/index.js +47 -20
  441. package/out/tools/fetch/index.js.map +1 -1
  442. package/out/tools/fetch/openaddresses.d.ts +1 -1
  443. package/out/tools/fetch/openaddresses.d.ts.map +1 -1
  444. package/out/tools/fetch/openaddresses.js +1 -1
  445. package/out/tools/fetch/openaddresses.js.map +1 -1
  446. package/out/tools/fetch/ourairports.d.ts +1 -1
  447. package/out/tools/fetch/ourairports.d.ts.map +1 -1
  448. package/out/tools/fetch/ourairports.js +1 -1
  449. package/out/tools/fetch/ourairports.js.map +1 -1
  450. package/out/tools/fetch/ppd.js +1 -3
  451. package/out/tools/fetch/ppd.js.map +1 -1
  452. package/out/tools/fetch/wikidata-subvenue.d.ts +1 -1
  453. package/out/tools/fetch/wikidata-subvenue.d.ts.map +1 -1
  454. package/out/tools/fetch/wikidata-subvenue.js +1 -1
  455. package/out/tools/fetch/wikidata-subvenue.js.map +1 -1
  456. package/out/tools/golden/expand.d.ts +90 -0
  457. package/out/tools/golden/expand.d.ts.map +1 -0
  458. package/out/tools/golden/expand.js +406 -0
  459. package/out/tools/golden/expand.js.map +1 -0
  460. package/out/tools/golden/promote.d.ts +72 -0
  461. package/out/tools/golden/promote.d.ts.map +1 -0
  462. package/out/tools/golden/promote.js +243 -0
  463. package/out/tools/golden/promote.js.map +1 -0
  464. package/out/tools/golden/relabel-street/directory.d.ts +83 -0
  465. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -0
  466. package/out/tools/golden/relabel-street/directory.js +216 -0
  467. package/out/tools/golden/relabel-street/directory.js.map +1 -0
  468. package/out/tools/golden/relabel-street/index.d.ts +9 -0
  469. package/out/tools/golden/relabel-street/index.d.ts.map +1 -0
  470. package/out/tools/golden/relabel-street/index.js +9 -0
  471. package/out/tools/golden/relabel-street/index.js.map +1 -0
  472. package/out/tools/golden/relabel-street/row.d.ts +121 -0
  473. package/out/tools/golden/relabel-street/row.d.ts.map +1 -0
  474. package/out/tools/golden/relabel-street/row.js +232 -0
  475. package/out/tools/golden/relabel-street/row.js.map +1 -0
  476. package/out/tools/index.d.ts +10 -10
  477. package/out/tools/index.d.ts.map +1 -1
  478. package/out/tools/index.js +10 -10
  479. package/out/tools/index.js.map +1 -1
  480. package/out/tools/ingest-csv.d.ts.map +1 -1
  481. package/out/tools/ingest-csv.js +5 -7
  482. package/out/tools/ingest-csv.js.map +1 -1
  483. package/out/tools/lint/slice/index.d.ts +93 -0
  484. package/out/tools/lint/slice/index.d.ts.map +1 -0
  485. package/out/tools/lint/slice/index.js +322 -0
  486. package/out/tools/lint/slice/index.js.map +1 -0
  487. package/out/tools/lint/slice/vocab.d.ts +90 -0
  488. package/out/tools/lint/slice/vocab.d.ts.map +1 -0
  489. package/out/tools/lint/slice/vocab.js +254 -0
  490. package/out/tools/lint/slice/vocab.js.map +1 -0
  491. package/out/tools/overlay-manifest.d.ts +56 -6
  492. package/out/tools/overlay-manifest.d.ts.map +1 -1
  493. package/out/tools/overlay-manifest.js +56 -15
  494. package/out/tools/overlay-manifest.js.map +1 -1
  495. package/out/tools/overture-subvenue.d.ts +1 -1
  496. package/out/tools/postcode-triples.d.ts +36 -0
  497. package/out/tools/postcode-triples.d.ts.map +1 -1
  498. package/out/tools/postcode-triples.js +91 -12
  499. package/out/tools/postcode-triples.js.map +1 -1
  500. package/out/tools/slice/kryptonite.d.ts +32 -0
  501. package/out/tools/slice/kryptonite.d.ts.map +1 -0
  502. package/out/tools/slice/kryptonite.js +99 -0
  503. package/out/tools/slice/kryptonite.js.map +1 -0
  504. package/out/tools/slice/translit.d.ts +51 -0
  505. package/out/tools/slice/translit.d.ts.map +1 -0
  506. package/out/tools/slice/translit.js +166 -0
  507. package/out/tools/slice/translit.js.map +1 -0
  508. package/out/tools/sub/venue/harvest.d.ts +100 -0
  509. package/out/tools/sub/venue/harvest.d.ts.map +1 -0
  510. package/out/tools/sub/venue/harvest.js +168 -0
  511. package/out/tools/sub/venue/harvest.js.map +1 -0
  512. package/out/tools/sub/venue/head-nouns.d.ts +50 -0
  513. package/out/tools/sub/venue/head-nouns.d.ts.map +1 -0
  514. package/out/tools/sub/venue/head-nouns.js.map +1 -0
  515. package/out/tools/sub/venue/lexicon.d.ts +156 -0
  516. package/out/tools/sub/venue/lexicon.d.ts.map +1 -0
  517. package/out/tools/sub/venue/lexicon.js +283 -0
  518. package/out/tools/sub/venue/lexicon.js.map +1 -0
  519. package/out/tools/sub/venue/promotions.d.ts +94 -0
  520. package/out/tools/sub/venue/promotions.d.ts.map +1 -0
  521. package/out/tools/sub/venue/promotions.js +266 -0
  522. package/out/tools/sub/venue/promotions.js.map +1 -0
  523. package/out/tools/sub/venue/surfaces.d.ts +45 -0
  524. package/out/tools/sub/venue/surfaces.d.ts.map +1 -0
  525. package/out/tools/sub/venue/surfaces.js.map +1 -0
  526. package/out/tools/sub/venue/table.d.ts +229 -0
  527. package/out/tools/sub/venue/table.d.ts.map +1 -0
  528. package/out/tools/sub/venue/table.js.map +1 -0
  529. package/out/tools/sub/venue/wikidata.d.ts +26 -0
  530. package/out/tools/sub/venue/wikidata.d.ts.map +1 -0
  531. package/out/tools/sub/venue/wikidata.js +62 -0
  532. package/out/tools/sub/venue/wikidata.js.map +1 -0
  533. package/out/tw/tools/fetch/gcis.d.ts +23 -0
  534. package/out/tw/tools/fetch/gcis.d.ts.map +1 -0
  535. package/out/tw/tools/fetch/gcis.js +135 -0
  536. package/out/tw/tools/fetch/gcis.js.map +1 -0
  537. package/out/types.d.ts +1 -1
  538. package/out/types.d.ts.map +1 -1
  539. package/out/us/adapters/fcc-bdc/adapter.d.ts.map +1 -0
  540. package/out/us/adapters/fcc-bdc/adapter.js +142 -0
  541. package/out/us/adapters/fcc-bdc/adapter.js.map +1 -0
  542. package/out/us/adapters/state/hi-schools/adapter.d.ts.map +1 -0
  543. package/out/us/adapters/state/hi-schools/adapter.js +136 -0
  544. package/out/us/adapters/state/hi-schools/adapter.js.map +1 -0
  545. package/out/us/adapters/state/hi-schools/workbook.d.ts.map +1 -0
  546. package/out/us/adapters/state/hi-schools/workbook.js.map +1 -0
  547. package/out/us/adapters/state/ia-contractors/adapter.d.ts.map +1 -0
  548. package/out/us/adapters/state/ia-contractors/adapter.js +104 -0
  549. package/out/us/adapters/state/ia-contractors/adapter.js.map +1 -0
  550. package/out/us/adapters/state/ny-notaries/adapter.d.ts.map +1 -0
  551. package/out/us/adapters/state/ny-notaries/adapter.js +112 -0
  552. package/out/us/adapters/state/ny-notaries/adapter.js.map +1 -0
  553. package/out/us/adapters/state/tx-notaries/adapter.d.ts.map +1 -0
  554. package/out/us/adapters/state/tx-notaries/adapter.js +118 -0
  555. package/out/us/adapters/state/tx-notaries/adapter.js.map +1 -0
  556. package/out/us/adapters/tiger/adapter.d.ts +55 -0
  557. package/out/us/adapters/tiger/adapter.d.ts.map +1 -0
  558. package/out/us/adapters/tiger/adapter.js +197 -0
  559. package/out/us/adapters/tiger/adapter.js.map +1 -0
  560. package/out/us/adapters/tiger/street-decompose.d.ts.map +1 -0
  561. package/out/us/adapters/tiger/street-decompose.js.map +1 -0
  562. package/out/us/adapters/usgov/hrsa-fqhc/adapter.d.ts.map +1 -0
  563. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js +121 -0
  564. package/out/us/adapters/usgov/hrsa-fqhc/adapter.js.map +1 -0
  565. package/out/us/adapters/usgov/imls-pls/adapter.d.ts.map +1 -0
  566. package/out/us/adapters/usgov/imls-pls/adapter.js +106 -0
  567. package/out/us/adapters/usgov/imls-pls/adapter.js.map +1 -0
  568. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts.map +1 -0
  569. package/out/us/adapters/usgov/irs-bmf/adapter.js +116 -0
  570. package/out/us/adapters/usgov/irs-bmf/adapter.js.map +1 -0
  571. package/out/us/adapters/usgov/nad/adapter.d.ts.map +1 -0
  572. package/out/us/adapters/usgov/nad/adapter.js +239 -0
  573. package/out/us/adapters/usgov/nad/adapter.js.map +1 -0
  574. package/out/us/adapters/usgov/nppes/adapter.d.ts.map +1 -0
  575. package/out/us/adapters/usgov/nppes/adapter.js +110 -0
  576. package/out/us/adapters/usgov/nppes/adapter.js.map +1 -0
  577. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.d.ts.map +1 -0
  578. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js +143 -0
  579. package/out/us/adapters/usgov/samhsa-treatment-locator/adapter.js.map +1 -0
  580. package/out/us/fips-state.d.ts +41 -0
  581. package/out/us/fips-state.d.ts.map +1 -0
  582. package/out/us/fips-state.js +100 -0
  583. package/out/us/fips-state.js.map +1 -0
  584. package/out/us/tools/fetch/hrsa.d.ts +18 -0
  585. package/out/us/tools/fetch/hrsa.d.ts.map +1 -0
  586. package/out/us/tools/fetch/hrsa.js +46 -0
  587. package/out/us/tools/fetch/hrsa.js.map +1 -0
  588. package/out/us/tools/fetch/imls-pls.d.ts +25 -0
  589. package/out/us/tools/fetch/imls-pls.d.ts.map +1 -0
  590. package/out/us/tools/fetch/imls-pls.js +108 -0
  591. package/out/us/tools/fetch/imls-pls.js.map +1 -0
  592. package/out/us/tools/fetch/nad.d.ts +70 -0
  593. package/out/us/tools/fetch/nad.d.ts.map +1 -0
  594. package/out/us/tools/fetch/nad.js +234 -0
  595. package/out/us/tools/fetch/nad.js.map +1 -0
  596. package/out/us/tools/fetch/nppes.d.ts +26 -0
  597. package/out/us/tools/fetch/nppes.d.ts.map +1 -0
  598. package/out/us/tools/fetch/nppes.js +126 -0
  599. package/out/us/tools/fetch/nppes.js.map +1 -0
  600. package/out/us/tools/fetch/state/hi-schools.d.ts +26 -0
  601. package/out/us/tools/fetch/state/hi-schools.d.ts.map +1 -0
  602. package/out/us/tools/fetch/state/hi-schools.js +112 -0
  603. package/out/us/tools/fetch/state/hi-schools.js.map +1 -0
  604. package/out/us/tools/fetch/state/sources.d.ts +26 -0
  605. package/out/us/tools/fetch/state/sources.d.ts.map +1 -0
  606. package/out/us/tools/fetch/state/sources.js +111 -0
  607. package/out/us/tools/fetch/state/sources.js.map +1 -0
  608. package/out/us/tools/fetch/tiger-full.d.ts +22 -0
  609. package/out/us/tools/fetch/tiger-full.d.ts.map +1 -0
  610. package/out/us/tools/fetch/tiger-full.js +217 -0
  611. package/out/us/tools/fetch/tiger-full.js.map +1 -0
  612. package/out/utils/align.d.ts +1 -1
  613. package/out/utils/align.d.ts.map +1 -1
  614. package/out/utils/align.js.map +1 -1
  615. package/out/utils/golden.d.ts +7 -3
  616. package/out/utils/golden.d.ts.map +1 -1
  617. package/out/utils/golden.js +12 -8
  618. package/out/utils/golden.js.map +1 -1
  619. package/out/utils/parquet.d.ts.map +1 -1
  620. package/out/utils/split.js.map +1 -1
  621. package/out/utils/wof-json.d.ts.map +1 -1
  622. package/out/utils/wof-json.js +7 -12
  623. package/out/utils/wof-json.js.map +1 -1
  624. package/out/ve/recipes/reviewed-postcode-tail.d.ts.map +1 -0
  625. package/out/ve/recipes/reviewed-postcode-tail.js.map +1 -0
  626. package/package.json +196 -46
  627. package/lib/adapters/ban/adapter.ts +0 -190
  628. package/lib/adapters/fcc-bdc/adapter.ts +0 -174
  629. package/lib/adapters/geonames-postal/adapter.ts +0 -122
  630. package/lib/adapters/gnaf/adapter.ts +0 -149
  631. package/lib/adapters/gnaf/assemble.ts +0 -225
  632. package/lib/adapters/state-hi-schools/adapter.ts +0 -170
  633. package/lib/adapters/state-ia-contractors/adapter.ts +0 -144
  634. package/lib/adapters/state-ny-notaries/adapter.ts +0 -141
  635. package/lib/adapters/state-tx-notaries/adapter.ts +0 -157
  636. package/lib/adapters/tiger/adapter.ts +0 -252
  637. package/lib/adapters/usgov-hrsa-fqhc/adapter.ts +0 -167
  638. package/lib/adapters/usgov-imls-pls/adapter.ts +0 -143
  639. package/lib/adapters/usgov-irs-bmf/adapter.ts +0 -151
  640. package/lib/adapters/usgov-nad/adapter.ts +0 -334
  641. package/lib/adapters/usgov-nppes/adapter.ts +0 -151
  642. package/lib/adapters/usgov-samhsa-treatment-locator/adapter.ts +0 -193
  643. package/lib/adapters/wof-admin-json/adapter.ts +0 -231
  644. package/lib/adapters/wof-json-rows.ts +0 -129
  645. package/lib/adapters/wof-postalcode-json/adapter.ts +0 -176
  646. package/lib/name-prone-us-suffixes.ts +0 -12
  647. package/lib/recipes/bare-country.ts +0 -95
  648. package/lib/recipes/cz-pcfirst-preposition.ts +0 -111
  649. package/lib/recipes/fr-admin-split.ts +0 -242
  650. package/lib/recipes/fr-bare-street.ts +0 -170
  651. package/lib/recipes/fr-fragment.ts +0 -333
  652. package/lib/recipes/fr-lieudit.ts +0 -301
  653. package/lib/recipes/fr-order.ts +0 -245
  654. package/lib/recipes/german.ts +0 -359
  655. package/lib/recipes/locale.ts +0 -599
  656. package/lib/recipes/nl-postcode.ts +0 -115
  657. package/lib/recipes/no-fragment.ts +0 -219
  658. package/lib/recipes/no-street-led.ts +0 -141
  659. package/lib/recipes/no-street.ts +0 -90
  660. package/lib/recipes/po-box-cedex.ts +0 -976
  661. package/lib/recipes/po-box.ts +0 -123
  662. package/lib/recipes/si-bare-village.ts +0 -97
  663. package/lib/recipes/street-affix.ts +0 -804
  664. package/lib/recipes/street-bare.ts +0 -100
  665. package/lib/recipes/sub-venue-sources.ts +0 -877
  666. package/lib/recipes/sub-venue.ts +0 -997
  667. package/lib/synthesizers/german.ts +0 -260
  668. package/lib/tools/fetch/ban.ts +0 -289
  669. package/lib/tools/fetch/download.ts +0 -262
  670. package/lib/tools/fetch/geonames-dump.ts +0 -257
  671. package/lib/tools/fetch/geonames-postal.ts +0 -180
  672. package/lib/tools/fetch/hrsa.ts +0 -59
  673. package/lib/tools/fetch/imls-pls.ts +0 -149
  674. package/lib/tools/fetch/nad.ts +0 -341
  675. package/lib/tools/fetch/nppes.ts +0 -165
  676. package/lib/tools/fetch/state-hi-schools.ts +0 -161
  677. package/lib/tools/fetch/state-sources.ts +0 -146
  678. package/lib/tools/fetch/tiger-full.ts +0 -308
  679. package/lib/tools/golden-promote.ts +0 -337
  680. package/lib/tools/golden-relabel-street.ts +0 -683
  681. package/lib/tools/lint-slice-vocab.ts +0 -388
  682. package/lib/tools/sub-venue/harvest.ts +0 -234
  683. package/lib/tools/sub-venue/head-nouns.ts +0 -245
  684. package/lib/tools/sub-venue/surfaces.ts +0 -95
  685. package/lib/tools/sub-venue/table.ts +0 -281
  686. package/lib/tools/sub-venue/wikidata.ts +0 -85
  687. package/lib/tools/sub-venue-lexicon.ts +0 -429
  688. package/out/adapters/ban/adapter.d.ts.map +0 -1
  689. package/out/adapters/ban/adapter.js +0 -149
  690. package/out/adapters/ban/adapter.js.map +0 -1
  691. package/out/adapters/ban/street-decompose.d.ts.map +0 -1
  692. package/out/adapters/ban/street-decompose.js.map +0 -1
  693. package/out/adapters/fcc-bdc/adapter.d.ts.map +0 -1
  694. package/out/adapters/fcc-bdc/adapter.js +0 -144
  695. package/out/adapters/fcc-bdc/adapter.js.map +0 -1
  696. package/out/adapters/geonames-postal/adapter.d.ts.map +0 -1
  697. package/out/adapters/geonames-postal/adapter.js +0 -107
  698. package/out/adapters/geonames-postal/adapter.js.map +0 -1
  699. package/out/adapters/gnaf/adapter.d.ts.map +0 -1
  700. package/out/adapters/gnaf/adapter.js +0 -124
  701. package/out/adapters/gnaf/adapter.js.map +0 -1
  702. package/out/adapters/gnaf/assemble.d.ts +0 -65
  703. package/out/adapters/gnaf/assemble.d.ts.map +0 -1
  704. package/out/adapters/gnaf/assemble.js +0 -154
  705. package/out/adapters/gnaf/assemble.js.map +0 -1
  706. package/out/adapters/state-hi-schools/adapter.d.ts.map +0 -1
  707. package/out/adapters/state-hi-schools/adapter.js +0 -145
  708. package/out/adapters/state-hi-schools/adapter.js.map +0 -1
  709. package/out/adapters/state-hi-schools/workbook.d.ts.map +0 -1
  710. package/out/adapters/state-hi-schools/workbook.js.map +0 -1
  711. package/out/adapters/state-ia-contractors/adapter.d.ts.map +0 -1
  712. package/out/adapters/state-ia-contractors/adapter.js +0 -111
  713. package/out/adapters/state-ia-contractors/adapter.js.map +0 -1
  714. package/out/adapters/state-ny-notaries/adapter.d.ts.map +0 -1
  715. package/out/adapters/state-ny-notaries/adapter.js +0 -119
  716. package/out/adapters/state-ny-notaries/adapter.js.map +0 -1
  717. package/out/adapters/state-tx-notaries/adapter.d.ts.map +0 -1
  718. package/out/adapters/state-tx-notaries/adapter.js +0 -125
  719. package/out/adapters/state-tx-notaries/adapter.js.map +0 -1
  720. package/out/adapters/tiger/adapter.d.ts +0 -55
  721. package/out/adapters/tiger/adapter.d.ts.map +0 -1
  722. package/out/adapters/tiger/adapter.js +0 -201
  723. package/out/adapters/tiger/adapter.js.map +0 -1
  724. package/out/adapters/tiger/street-decompose.d.ts.map +0 -1
  725. package/out/adapters/tiger/street-decompose.js.map +0 -1
  726. package/out/adapters/usgov-hrsa-fqhc/adapter.d.ts.map +0 -1
  727. package/out/adapters/usgov-hrsa-fqhc/adapter.js +0 -132
  728. package/out/adapters/usgov-hrsa-fqhc/adapter.js.map +0 -1
  729. package/out/adapters/usgov-imls-pls/adapter.d.ts.map +0 -1
  730. package/out/adapters/usgov-imls-pls/adapter.js +0 -114
  731. package/out/adapters/usgov-imls-pls/adapter.js.map +0 -1
  732. package/out/adapters/usgov-irs-bmf/adapter.d.ts.map +0 -1
  733. package/out/adapters/usgov-irs-bmf/adapter.js +0 -120
  734. package/out/adapters/usgov-irs-bmf/adapter.js.map +0 -1
  735. package/out/adapters/usgov-nad/adapter.d.ts.map +0 -1
  736. package/out/adapters/usgov-nad/adapter.js +0 -249
  737. package/out/adapters/usgov-nad/adapter.js.map +0 -1
  738. package/out/adapters/usgov-nppes/adapter.d.ts.map +0 -1
  739. package/out/adapters/usgov-nppes/adapter.js +0 -118
  740. package/out/adapters/usgov-nppes/adapter.js.map +0 -1
  741. package/out/adapters/usgov-samhsa-treatment-locator/adapter.d.ts.map +0 -1
  742. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js +0 -154
  743. package/out/adapters/usgov-samhsa-treatment-locator/adapter.js.map +0 -1
  744. package/out/adapters/wof-admin-jp/adapter.d.ts.map +0 -1
  745. package/out/adapters/wof-admin-jp/adapter.js.map +0 -1
  746. package/out/adapters/wof-admin-json/adapter.d.ts +0 -79
  747. package/out/adapters/wof-admin-json/adapter.d.ts.map +0 -1
  748. package/out/adapters/wof-admin-json/adapter.js +0 -197
  749. package/out/adapters/wof-admin-json/adapter.js.map +0 -1
  750. package/out/adapters/wof-json-rows.d.ts +0 -62
  751. package/out/adapters/wof-json-rows.d.ts.map +0 -1
  752. package/out/adapters/wof-json-rows.js +0 -83
  753. package/out/adapters/wof-json-rows.js.map +0 -1
  754. package/out/adapters/wof-postalcode-json/adapter.d.ts +0 -65
  755. package/out/adapters/wof-postalcode-json/adapter.d.ts.map +0 -1
  756. package/out/adapters/wof-postalcode-json/adapter.js +0 -151
  757. package/out/adapters/wof-postalcode-json/adapter.js.map +0 -1
  758. package/out/codex/us-fips-state.d.ts +0 -41
  759. package/out/codex/us-fips-state.d.ts.map +0 -1
  760. package/out/codex/us-fips-state.js +0 -100
  761. package/out/codex/us-fips-state.js.map +0 -1
  762. package/out/name-prone-us-suffixes.d.ts +0 -12
  763. package/out/name-prone-us-suffixes.d.ts.map +0 -1
  764. package/out/name-prone-us-suffixes.js +0 -12
  765. package/out/name-prone-us-suffixes.js.map +0 -1
  766. package/out/recipes/bare-country.d.ts +0 -25
  767. package/out/recipes/bare-country.d.ts.map +0 -1
  768. package/out/recipes/bare-country.js +0 -87
  769. package/out/recipes/bare-country.js.map +0 -1
  770. package/out/recipes/cn-organizational-units.d.ts +0 -36
  771. package/out/recipes/cn-organizational-units.d.ts.map +0 -1
  772. package/out/recipes/cn-organizational-units.js +0 -159
  773. package/out/recipes/cn-organizational-units.js.map +0 -1
  774. package/out/recipes/cz-pcfirst-preposition.d.ts +0 -22
  775. package/out/recipes/cz-pcfirst-preposition.d.ts.map +0 -1
  776. package/out/recipes/cz-pcfirst-preposition.js +0 -100
  777. package/out/recipes/cz-pcfirst-preposition.js.map +0 -1
  778. package/out/recipes/fr-admin-split.d.ts +0 -38
  779. package/out/recipes/fr-admin-split.d.ts.map +0 -1
  780. package/out/recipes/fr-admin-split.js +0 -192
  781. package/out/recipes/fr-admin-split.js.map +0 -1
  782. package/out/recipes/fr-bare-street.d.ts +0 -28
  783. package/out/recipes/fr-bare-street.d.ts.map +0 -1
  784. package/out/recipes/fr-bare-street.js +0 -143
  785. package/out/recipes/fr-bare-street.js.map +0 -1
  786. package/out/recipes/fr-fragment.d.ts +0 -77
  787. package/out/recipes/fr-fragment.d.ts.map +0 -1
  788. package/out/recipes/fr-fragment.js +0 -276
  789. package/out/recipes/fr-fragment.js.map +0 -1
  790. package/out/recipes/fr-lieudit.d.ts +0 -32
  791. package/out/recipes/fr-lieudit.d.ts.map +0 -1
  792. package/out/recipes/fr-lieudit.js +0 -227
  793. package/out/recipes/fr-lieudit.js.map +0 -1
  794. package/out/recipes/fr-order.d.ts +0 -38
  795. package/out/recipes/fr-order.d.ts.map +0 -1
  796. package/out/recipes/fr-order.js +0 -197
  797. package/out/recipes/fr-order.js.map +0 -1
  798. package/out/recipes/german.d.ts +0 -44
  799. package/out/recipes/german.d.ts.map +0 -1
  800. package/out/recipes/german.js +0 -288
  801. package/out/recipes/german.js.map +0 -1
  802. package/out/recipes/locale.d.ts +0 -136
  803. package/out/recipes/locale.d.ts.map +0 -1
  804. package/out/recipes/locale.js +0 -460
  805. package/out/recipes/locale.js.map +0 -1
  806. package/out/recipes/nl-postcode.d.ts +0 -26
  807. package/out/recipes/nl-postcode.d.ts.map +0 -1
  808. package/out/recipes/nl-postcode.js +0 -102
  809. package/out/recipes/nl-postcode.js.map +0 -1
  810. package/out/recipes/no-fragment.d.ts +0 -43
  811. package/out/recipes/no-fragment.d.ts.map +0 -1
  812. package/out/recipes/no-fragment.js +0 -182
  813. package/out/recipes/no-fragment.js.map +0 -1
  814. package/out/recipes/no-street-led.d.ts +0 -24
  815. package/out/recipes/no-street-led.d.ts.map +0 -1
  816. package/out/recipes/no-street-led.js +0 -113
  817. package/out/recipes/no-street-led.js.map +0 -1
  818. package/out/recipes/no-street.d.ts +0 -18
  819. package/out/recipes/no-street.d.ts.map +0 -1
  820. package/out/recipes/no-street.js +0 -71
  821. package/out/recipes/no-street.js.map +0 -1
  822. package/out/recipes/po-box-cedex.d.ts +0 -38
  823. package/out/recipes/po-box-cedex.d.ts.map +0 -1
  824. package/out/recipes/po-box-cedex.js +0 -767
  825. package/out/recipes/po-box-cedex.js.map +0 -1
  826. package/out/recipes/po-box.d.ts +0 -17
  827. package/out/recipes/po-box.d.ts.map +0 -1
  828. package/out/recipes/po-box.js +0 -100
  829. package/out/recipes/po-box.js.map +0 -1
  830. package/out/recipes/reviewed-postcode-tail.d.ts.map +0 -1
  831. package/out/recipes/reviewed-postcode-tail.js.map +0 -1
  832. package/out/recipes/si-bare-village.d.ts +0 -32
  833. package/out/recipes/si-bare-village.d.ts.map +0 -1
  834. package/out/recipes/si-bare-village.js +0 -88
  835. package/out/recipes/si-bare-village.js.map +0 -1
  836. package/out/recipes/street-affix.d.ts +0 -89
  837. package/out/recipes/street-affix.d.ts.map +0 -1
  838. package/out/recipes/street-affix.js +0 -563
  839. package/out/recipes/street-affix.js.map +0 -1
  840. package/out/recipes/street-bare.d.ts +0 -25
  841. package/out/recipes/street-bare.d.ts.map +0 -1
  842. package/out/recipes/street-bare.js +0 -86
  843. package/out/recipes/street-bare.js.map +0 -1
  844. package/out/recipes/sub-venue-sources.d.ts +0 -229
  845. package/out/recipes/sub-venue-sources.d.ts.map +0 -1
  846. package/out/recipes/sub-venue-sources.js +0 -653
  847. package/out/recipes/sub-venue-sources.js.map +0 -1
  848. package/out/recipes/sub-venue.d.ts +0 -269
  849. package/out/recipes/sub-venue.d.ts.map +0 -1
  850. package/out/recipes/sub-venue.js +0 -725
  851. package/out/recipes/sub-venue.js.map +0 -1
  852. package/out/synthesizers/german.d.ts +0 -115
  853. package/out/synthesizers/german.d.ts.map +0 -1
  854. package/out/synthesizers/german.js +0 -149
  855. package/out/synthesizers/german.js.map +0 -1
  856. package/out/tools/fetch/ban.d.ts +0 -31
  857. package/out/tools/fetch/ban.d.ts.map +0 -1
  858. package/out/tools/fetch/ban.js +0 -239
  859. package/out/tools/fetch/ban.js.map +0 -1
  860. package/out/tools/fetch/download.d.ts +0 -117
  861. package/out/tools/fetch/download.d.ts.map +0 -1
  862. package/out/tools/fetch/download.js +0 -160
  863. package/out/tools/fetch/download.js.map +0 -1
  864. package/out/tools/fetch/geonames-dump.d.ts +0 -91
  865. package/out/tools/fetch/geonames-dump.d.ts.map +0 -1
  866. package/out/tools/fetch/geonames-dump.js +0 -171
  867. package/out/tools/fetch/geonames-dump.js.map +0 -1
  868. package/out/tools/fetch/geonames-postal.d.ts +0 -76
  869. package/out/tools/fetch/geonames-postal.d.ts.map +0 -1
  870. package/out/tools/fetch/geonames-postal.js +0 -126
  871. package/out/tools/fetch/geonames-postal.js.map +0 -1
  872. package/out/tools/fetch/hrsa.d.ts +0 -18
  873. package/out/tools/fetch/hrsa.d.ts.map +0 -1
  874. package/out/tools/fetch/hrsa.js +0 -46
  875. package/out/tools/fetch/hrsa.js.map +0 -1
  876. package/out/tools/fetch/imls-pls.d.ts +0 -25
  877. package/out/tools/fetch/imls-pls.d.ts.map +0 -1
  878. package/out/tools/fetch/imls-pls.js +0 -108
  879. package/out/tools/fetch/imls-pls.js.map +0 -1
  880. package/out/tools/fetch/nad.d.ts +0 -70
  881. package/out/tools/fetch/nad.d.ts.map +0 -1
  882. package/out/tools/fetch/nad.js +0 -234
  883. package/out/tools/fetch/nad.js.map +0 -1
  884. package/out/tools/fetch/nppes.d.ts +0 -26
  885. package/out/tools/fetch/nppes.d.ts.map +0 -1
  886. package/out/tools/fetch/nppes.js +0 -126
  887. package/out/tools/fetch/nppes.js.map +0 -1
  888. package/out/tools/fetch/state-hi-schools.d.ts +0 -26
  889. package/out/tools/fetch/state-hi-schools.d.ts.map +0 -1
  890. package/out/tools/fetch/state-hi-schools.js +0 -112
  891. package/out/tools/fetch/state-hi-schools.js.map +0 -1
  892. package/out/tools/fetch/state-sources.d.ts +0 -26
  893. package/out/tools/fetch/state-sources.d.ts.map +0 -1
  894. package/out/tools/fetch/state-sources.js +0 -111
  895. package/out/tools/fetch/state-sources.js.map +0 -1
  896. package/out/tools/fetch/tiger-full.d.ts +0 -22
  897. package/out/tools/fetch/tiger-full.d.ts.map +0 -1
  898. package/out/tools/fetch/tiger-full.js +0 -217
  899. package/out/tools/fetch/tiger-full.js.map +0 -1
  900. package/out/tools/golden-expand.d.ts +0 -90
  901. package/out/tools/golden-expand.d.ts.map +0 -1
  902. package/out/tools/golden-expand.js +0 -406
  903. package/out/tools/golden-expand.js.map +0 -1
  904. package/out/tools/golden-promote.d.ts +0 -72
  905. package/out/tools/golden-promote.d.ts.map +0 -1
  906. package/out/tools/golden-promote.js +0 -240
  907. package/out/tools/golden-promote.js.map +0 -1
  908. package/out/tools/golden-relabel-street.d.ts +0 -196
  909. package/out/tools/golden-relabel-street.d.ts.map +0 -1
  910. package/out/tools/golden-relabel-street.js +0 -440
  911. package/out/tools/golden-relabel-street.js.map +0 -1
  912. package/out/tools/lint-slice-vocab.d.ts +0 -90
  913. package/out/tools/lint-slice-vocab.d.ts.map +0 -1
  914. package/out/tools/lint-slice-vocab.js +0 -267
  915. package/out/tools/lint-slice-vocab.js.map +0 -1
  916. package/out/tools/lint-slice.d.ts +0 -93
  917. package/out/tools/lint-slice.d.ts.map +0 -1
  918. package/out/tools/lint-slice.js +0 -322
  919. package/out/tools/lint-slice.js.map +0 -1
  920. package/out/tools/slice-kryptonite.d.ts +0 -32
  921. package/out/tools/slice-kryptonite.d.ts.map +0 -1
  922. package/out/tools/slice-kryptonite.js +0 -99
  923. package/out/tools/slice-kryptonite.js.map +0 -1
  924. package/out/tools/slice-translit.d.ts +0 -51
  925. package/out/tools/slice-translit.d.ts.map +0 -1
  926. package/out/tools/slice-translit.js +0 -166
  927. package/out/tools/slice-translit.js.map +0 -1
  928. package/out/tools/sub-venue/harvest.d.ts +0 -100
  929. package/out/tools/sub-venue/harvest.d.ts.map +0 -1
  930. package/out/tools/sub-venue/harvest.js +0 -168
  931. package/out/tools/sub-venue/harvest.js.map +0 -1
  932. package/out/tools/sub-venue/head-nouns.d.ts +0 -50
  933. package/out/tools/sub-venue/head-nouns.d.ts.map +0 -1
  934. package/out/tools/sub-venue/head-nouns.js.map +0 -1
  935. package/out/tools/sub-venue/surfaces.d.ts +0 -45
  936. package/out/tools/sub-venue/surfaces.d.ts.map +0 -1
  937. package/out/tools/sub-venue/surfaces.js.map +0 -1
  938. package/out/tools/sub-venue/table.d.ts +0 -229
  939. package/out/tools/sub-venue/table.d.ts.map +0 -1
  940. package/out/tools/sub-venue/table.js.map +0 -1
  941. package/out/tools/sub-venue/wikidata.d.ts +0 -26
  942. package/out/tools/sub-venue/wikidata.d.ts.map +0 -1
  943. package/out/tools/sub-venue/wikidata.js +0 -62
  944. package/out/tools/sub-venue/wikidata.js.map +0 -1
  945. package/out/tools/sub-venue-lexicon.d.ts +0 -156
  946. package/out/tools/sub-venue-lexicon.d.ts.map +0 -1
  947. package/out/tools/sub-venue-lexicon.js +0 -283
  948. package/out/tools/sub-venue-lexicon.js.map +0 -1
  949. package/out/tools/sub-venue-promotions.d.ts +0 -94
  950. package/out/tools/sub-venue-promotions.d.ts.map +0 -1
  951. package/out/tools/sub-venue-promotions.js +0 -266
  952. package/out/tools/sub-venue-promotions.js.map +0 -1
  953. /package/lib/{recipes/cn-organizational-units.ts → cn/recipes/organizational-units.ts} +0 -0
  954. /package/lib/{adapters → fr/adapters}/ban/street-decompose.ts +0 -0
  955. /package/lib/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.ts +0 -0
  956. /package/lib/tools/{golden-expand.ts → golden/expand.ts} +0 -0
  957. /package/lib/tools/{lint-slice.ts → lint/slice/index.ts} +0 -0
  958. /package/lib/tools/{slice-kryptonite.ts → slice/kryptonite.ts} +0 -0
  959. /package/lib/tools/{slice-translit.ts → slice/translit.ts} +0 -0
  960. /package/lib/tools/{sub-venue-promotions.ts → sub/venue/promotions.ts} +0 -0
  961. /package/lib/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.ts +0 -0
  962. /package/lib/{adapters → us/adapters}/tiger/street-decompose.ts +0 -0
  963. /package/lib/{codex/us-fips-state.ts → us/fips-state.ts} +0 -0
  964. /package/lib/{recipes → ve/recipes}/reviewed-postcode-tail.ts +0 -0
  965. /package/out/adapters/{geonames-postal → geonames/postal}/adapter.d.ts +0 -0
  966. /package/out/{adapters → au/adapters}/gnaf/adapter.d.ts +0 -0
  967. /package/out/{adapters → fr/adapters}/ban/adapter.d.ts +0 -0
  968. /package/out/{adapters → fr/adapters}/ban/street-decompose.d.ts +0 -0
  969. /package/out/{adapters → fr/adapters}/ban/street-decompose.js +0 -0
  970. /package/out/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.d.ts +0 -0
  971. /package/out/{adapters/wof-admin-jp → jp/adapters/wof-admin}/adapter.js +0 -0
  972. /package/out/tools/{sub-venue → sub/venue}/head-nouns.js +0 -0
  973. /package/out/tools/{sub-venue → sub/venue}/surfaces.js +0 -0
  974. /package/out/tools/{sub-venue → sub/venue}/table.js +0 -0
  975. /package/out/{adapters → us/adapters}/fcc-bdc/adapter.d.ts +0 -0
  976. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/adapter.d.ts +0 -0
  977. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.d.ts +0 -0
  978. /package/out/{adapters/state-hi-schools → us/adapters/state/hi-schools}/workbook.js +0 -0
  979. /package/out/{adapters/state-ia-contractors → us/adapters/state/ia-contractors}/adapter.d.ts +0 -0
  980. /package/out/{adapters/state-ny-notaries → us/adapters/state/ny-notaries}/adapter.d.ts +0 -0
  981. /package/out/{adapters/state-tx-notaries → us/adapters/state/tx-notaries}/adapter.d.ts +0 -0
  982. /package/out/{adapters → us/adapters}/tiger/street-decompose.d.ts +0 -0
  983. /package/out/{adapters → us/adapters}/tiger/street-decompose.js +0 -0
  984. /package/out/{adapters/usgov-hrsa-fqhc → us/adapters/usgov/hrsa-fqhc}/adapter.d.ts +0 -0
  985. /package/out/{adapters/usgov-imls-pls → us/adapters/usgov/imls-pls}/adapter.d.ts +0 -0
  986. /package/out/{adapters/usgov-irs-bmf → us/adapters/usgov/irs-bmf}/adapter.d.ts +0 -0
  987. /package/out/{adapters/usgov-nad → us/adapters/usgov/nad}/adapter.d.ts +0 -0
  988. /package/out/{adapters/usgov-nppes → us/adapters/usgov/nppes}/adapter.d.ts +0 -0
  989. /package/out/{adapters/usgov-samhsa-treatment-locator → us/adapters/usgov/samhsa-treatment-locator}/adapter.d.ts +0 -0
  990. /package/out/{recipes → ve/recipes}/reviewed-postcode-tail.d.ts +0 -0
  991. /package/out/{recipes → ve/recipes}/reviewed-postcode-tail.js +0 -0
@@ -1,166 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * Build per-script parquet slices from the DeepSeek-generated transliteration JSONL and emit the
7
- * corpus-v0.4.0 MANIFEST that combines them with the existing kryptonite + v0.3.0 slices.
8
- *
9
- * Sibling to `slice-kryptonite.ts`. The two modules share the same composition pattern: take a
10
- * base MANIFEST, append new slices, write a combined MANIFEST. Differences specific to
11
- * transliteration:
12
- *
13
- * - One JSONL contains rows from N target scripts (source = `deepseek-translit-<slug>`). We bucket by
14
- * `source` and write one slice per script so `audit.ts` can attribute each slice to its
15
- * synthetic source without relying on filename-prefix inference.
16
- * - Each slice is written to `train/part-translit-<slug>.parquet` (distinct from kryptonite's
17
- * `part-0000.parquet`, which v0.4.0's first builder already produced).
18
- * - Inherits the path-canonicalization fix flagged in Thread B's postmortem: v0.3.0 slice paths are
19
- * rewritten from `$MAILWOMAN_DATA_ROOT/...` to `/data/...` in the combined MANIFEST so
20
- * all paths share one container-friendly form.
21
- *
22
- * See docs/engineering/reference/CORPUS_V0_4_0_GENERATION.md for prompts, model, and the
23
- * reproducibility contract.
24
- *
25
- * Invoke via `mailwoman corpus slice translit \
26
- * --jsonl /data/corpus/versioned/v0.4.0/transliteration/canonical-transliteration.jsonl \
27
- * --base-manifest /data/corpus/versioned/v0.4.0/corpus-v0.4.0/MANIFEST.json \
28
- * --out-dir /data/corpus/versioned/v0.4.0`
29
- */
30
- import { mailwomanDataRoot } from "@mailwoman/core/data-root";
31
- import { pathExists, readLocalJSONFile, tryStat } from "@mailwoman/core/fs/readers";
32
- import { writeLocalJSONFile, writeLocalTextFile, makeDirectories } from "@mailwoman/core/fs/writers";
33
- import { sha256File } from "@mailwoman/core/hash";
34
- import { join } from "path-ts";
35
- import { JSONSpliterator } from "spliterator";
36
- import { alignRow, PARQUET_COLUMNS, ROW_GROUP_SIZE, rowToParquet, SLICE_COMPRESSION, writeParquetRows } from "#utils";
37
- function toCanonicalRow(raw, corpusVersion) {
38
- return {
39
- raw: raw["raw"],
40
- components: raw["components"],
41
- country: raw["country"] ?? "US",
42
- locale: raw["locale"] ?? undefined,
43
- source: raw["source"],
44
- source_id: raw["source_id"],
45
- corpus_version: corpusVersion,
46
- license: raw["license"] ?? "Synthetic (DeepSeek-v4-flash, AGPL-compatible)",
47
- synth: raw["synth"],
48
- };
49
- }
50
- /**
51
- * Write one slice for a single source slug. Returns the populated SliceDescriptor + a list of quarantine reasons for
52
- * rows that failed alignment.
53
- */
54
- async function writeOneSlice(rows, outPath, source) {
55
- let firstSourceID = "";
56
- let lastSourceID = "";
57
- for (const row of rows) {
58
- if (firstSourceID === "") {
59
- firstSourceID = row.source_id;
60
- }
61
- lastSourceID = row.source_id;
62
- }
63
- await writeParquetRows(rows.map(rowToParquet), outPath);
64
- const fileStat = await tryStat(outPath);
65
- const sha256 = await sha256File(outPath);
66
- return {
67
- split: "train",
68
- path: outPath,
69
- format: "parquet",
70
- compression: SLICE_COMPRESSION,
71
- rows: rows.length,
72
- bytes: fileStat?.size ?? 0,
73
- sha256,
74
- first_source_id: firstSourceID,
75
- last_source_id: lastSourceID,
76
- // Stamp source so audit.ts attributes the slice without falling back to filename-prefix inference.
77
- source,
78
- };
79
- }
80
- function canonicalizeSlicePath(path, legacyPrefix, canonicalPrefix) {
81
- if (path.startsWith(legacyPrefix))
82
- return canonicalPrefix + path.slice(legacyPrefix.length);
83
- return path;
84
- }
85
- export async function buildTranslitSlice(options, report) {
86
- const corpusVersion = options.corpusVersion ?? "0.4.0";
87
- // This is a portable manifest namespace, not a host filesystem default.
88
- const canonicalPathPrefix = options.canonicalPathPrefix ?? "/data/";
89
- const legacyPathPrefix = options.legacyPathPrefix ?? `${mailwomanDataRoot()}/`;
90
- if (!(await pathExists(options.jsonl)))
91
- throw new Error(`jsonl not found: ${options.jsonl}`);
92
- if (!(await pathExists(options.baseManifest)))
93
- throw new Error(`base-manifest not found: ${options.baseManifest}`);
94
- const corpusDir = join(options.outDir, `corpus-v${corpusVersion}`);
95
- const trainDir = join(corpusDir, "train");
96
- await makeDirectories(trainDir);
97
- // Bucket canonical rows by source. Quarantined rows are logged.
98
- const buckets = new Map();
99
- const quarantine = [];
100
- let totalIn = 0;
101
- for await (const raw of JSONSpliterator.fromAsync(options.jsonl)) {
102
- totalIn++;
103
- const canon = toCanonicalRow(raw, corpusVersion);
104
- const result = alignRow(canon);
105
- if (result.kind !== "labeled") {
106
- quarantine.push(`${canon.source_id}\t${result.row.reason}`);
107
- continue;
108
- }
109
- const bucket = buckets.get(canon.source);
110
- if (bucket) {
111
- bucket.push(result.row);
112
- }
113
- else {
114
- buckets.set(canon.source, [result.row]);
115
- }
116
- }
117
- report?.(`read ${totalIn} rows; ${quarantine.length} quarantined; ${buckets.size} script buckets`);
118
- const newSlices = [];
119
- const sortedKeys = [...buckets.keys()].toSorted();
120
- for (const source of sortedKeys) {
121
- const rows = buckets.get(source);
122
- const slug = source.startsWith("deepseek-translit-") ? source.slice("deepseek-translit-".length) : source;
123
- const outPath = join(trainDir, `part-translit-${slug}.parquet`);
124
- const descriptor = await writeOneSlice(rows, outPath, source);
125
- newSlices.push(descriptor);
126
- report?.(` ${source}: ${descriptor.rows} rows → ${outPath} (${descriptor.bytes} bytes)`);
127
- }
128
- if (quarantine.length) {
129
- const qPath = join(corpusDir, "quarantine-transliteration.tsv");
130
- await writeLocalTextFile(quarantine.join("\n") + "\n", qPath);
131
- report?.(`quarantine log → ${qPath} (${quarantine.length} rows)`);
132
- }
133
- // Compose final MANIFEST: rewrite base.slices paths from /mnt/playpen/... → /data/... and append
134
- // the new translit slices. Kryptonite slice already lives in the base manifest (it was written
135
- // there by Thread B).
136
- const base = await readLocalJSONFile(options.baseManifest);
137
- const rewrittenBase = base.slices.map((sh) => ({
138
- ...sh,
139
- path: canonicalizeSlicePath(sh.path, legacyPathPrefix, canonicalPathPrefix),
140
- }));
141
- const newTrainRows = newSlices.reduce((sum, sh) => sum + sh.rows, 0);
142
- const combined = {
143
- corpus_version: corpusVersion,
144
- schema: PARQUET_COLUMNS,
145
- rows_per_slice: base.rows_per_slice,
146
- row_group_size: base.row_group_size ?? ROW_GROUP_SIZE,
147
- slices: [...rewrittenBase, ...newSlices],
148
- counts: {
149
- train: base.counts.train + newTrainRows,
150
- val: base.counts.val,
151
- test: base.counts.test,
152
- },
153
- total_rows: base.total_rows + newTrainRows,
154
- };
155
- const combinedPath = join(corpusDir, "MANIFEST.json");
156
- await writeLocalJSONFile(combined, combinedPath);
157
- report?.(`wrote combined manifest → ${combinedPath}`);
158
- report?.(` total_rows=${combined.total_rows} (base=${base.total_rows}, added=${newTrainRows})`);
159
- report?.(` slices=${combined.slices.length} (base=${base.slices.length}, added=${newSlices.length})`);
160
- report?.(` compression=${SLICE_COMPRESSION}`);
161
- const pathFix = rewrittenBase.filter((s, i) => s.path !== base.slices[i].path).length;
162
- if (pathFix > 0) {
163
- report?.(` path-canonicalized base slices: ${pathFix} (legacy '${legacyPathPrefix}' → '${canonicalPathPrefix}')`);
164
- }
165
- }
166
- //# sourceMappingURL=slice-translit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"slice-translit.js","sourceRoot":"","sources":["../../lib/tools/slice-translit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACnF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG7C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAwBrH,SAAS,cAAc,CAAC,GAA4B,EAAE,aAAqB;IAC1E,OAAO;QACN,GAAG,EAAE,GAAG,CAAC,KAAK,CAAW;QACzB,UAAU,EAAE,GAAG,CAAC,YAAY,CAA2B;QACvD,OAAO,EAAG,GAAG,CAAC,SAAS,CAAY,IAAI,IAAI;QAC3C,MAAM,EAAG,GAAG,CAAC,QAAQ,CAAY,IAAI,SAAS;QAC9C,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAW;QAC/B,SAAS,EAAE,GAAG,CAAC,WAAW,CAAW;QACrC,cAAc,EAAE,aAAa;QAC7B,OAAO,EAAG,GAAG,CAAC,SAAS,CAAY,IAAI,gDAAgD;QACvF,KAAK,EAAE,GAAG,CAAC,OAAO,CAA0B;KAC5C,CAAA;AACF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAAC,IAA2B,EAAE,OAAe,EAAE,MAAc;IACxF,IAAI,aAAa,GAAG,EAAE,CAAA;IACtB,IAAI,YAAY,GAAG,EAAE,CAAA;IAErB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,aAAa,KAAK,EAAE,EAAE,CAAC;YAC1B,aAAa,GAAG,GAAG,CAAC,SAAS,CAAA;QAC9B,CAAC;QAED,YAAY,GAAG,GAAG,CAAC,SAAS,CAAA;IAC7B,CAAC;IAED,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAA;IAEvD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAA;IAExC,OAAO;QACN,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC;QAC1B,MAAM;QACN,eAAe,EAAE,aAAa;QAC9B,cAAc,EAAE,YAAY;QAC5B,mGAAmG;QACnG,MAAM;KACN,CAAA;AACF,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,YAAoB,EAAE,eAAuB;IACzF,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IAE3F,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,OAA6B,EAC7B,MAA+B;IAE/B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAA;IACtD,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,QAAQ,CAAA;IACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,GAAG,iBAAiB,EAAE,GAAG,CAAA;IAE9E,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAE5F,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAElH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,aAAa,EAAE,CAAC,CAAA;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACzC,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;IAE/B,gEAAgE;IAChE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC/C,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,IAAI,OAAO,GAAG,CAAC,CAAA;IAEf,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,eAAe,CAAC,SAAS,CAA0B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3F,OAAO,EAAE,CAAA;QACT,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE9B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;YAE3D,SAAQ;QACT,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAExC,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACxC,CAAC;IACF,CAAC;IAED,MAAM,EAAE,CAAC,QAAQ,OAAO,UAAU,UAAU,CAAC,MAAM,iBAAiB,OAAO,CAAC,IAAI,iBAAiB,CAAC,CAAA;IAElG,MAAM,SAAS,GAAsB,EAAE,CAAA;IACvC,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;IAEjD,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACzG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,IAAI,UAAU,CAAC,CAAA;QAC/D,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC7D,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1B,MAAM,EAAE,CAAC,KAAK,MAAM,KAAK,UAAU,CAAC,IAAI,WAAW,OAAO,KAAK,UAAU,CAAC,KAAK,SAAS,CAAC,CAAA;IAC1F,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAA;QAC/D,MAAM,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAA;QAC7D,MAAM,EAAE,CAAC,oBAAoB,KAAK,KAAK,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAA;IAClE,CAAC;IAED,iGAAiG;IACjG,+FAA+F;IAC/F,sBAAsB;IACtB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAgB,OAAO,CAAC,YAAY,CAAC,CAAA;IAEzE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,GAAG,EAAE;QACL,IAAI,EAAE,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;KAC3E,CAAC,CAAC,CAAA;IAEH,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAEpE,MAAM,QAAQ,GAAkB;QAC/B,cAAc,EAAE,aAAa;QAC7B,MAAM,EAAE,eAAe;QACvB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,cAAc;QACrD,MAAM,EAAE,CAAC,GAAG,aAAa,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,EAAE;YACP,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,YAAY;YACvC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;YACpB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SACtB;QACD,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY;KAC1C,CAAA;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;IACrD,MAAM,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAChD,MAAM,EAAE,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAA;IACrD,MAAM,EAAE,CAAC,gBAAgB,QAAQ,CAAC,UAAU,UAAU,IAAI,CAAC,UAAU,WAAW,YAAY,GAAG,CAAC,CAAA;IAChG,MAAM,EAAE,CAAC,YAAY,QAAQ,CAAC,MAAM,CAAC,MAAM,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,WAAW,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;IACtG,MAAM,EAAE,CAAC,iBAAiB,iBAAiB,EAAE,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;IAEtF,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,EAAE,CAAC,qCAAqC,OAAO,aAAa,gBAAgB,QAAQ,mBAAmB,IAAI,CAAC,CAAA;IACnH,CAAC;AACF,CAAC"}
@@ -1,100 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * @file The harvest side of the sub-venue lexicon: what one row of a harvestable source looks like,
7
- * how a file of them is read back, and what a pass over them extracts — attested surfaces plus the
8
- * measured shape of each designator's identifier half.
9
- *
10
- * {@link SubVenueHarvestRow} is SOURCE-NEUTRAL, and verified so: an Overture Places row from the
11
- * `airport_terminal` category is `{ designatorID, name }` and fits unchanged. It is declared here
12
- * rather than imported so the builder does not take a dependency on `@mailwoman/osm` (which
13
- * `@mailwoman/corpus` does not depend on) just to name a shape it reads from a file.
14
- *
15
- * Two measurements shape {@link extractAttestedPhrases}, and both are the reason it is safe to run
16
- * over raw OSM at all:
17
- *
18
- * **A feature's `name` is usually the VENUE's name, not a sub-venue phrase.** On the Berlin extract
19
- * (2,060 matched features) a `railway=platform` is named `Stendaler Straße` and an `amenity=university`
20
- * is named `Hertie School`; across 250,116 named Great Britain features only 6,003 (2.40%) contain a
21
- * designator token at all. So names are not harvested wholesale — a name contributes only when it
22
- * CONTAINS a phrase already in the surface index, which is what makes `Terminal E (Untere Ebene)`
23
- * evidence and `Otto Lilienthal Flughafen Berlin Tegel` not.
24
- *
25
- * **A matched phrase belongs to the record the PHRASE names, not the record the ROW carries.**
26
- * Attributing every hit to `row.designatorID` — the rule that matched the FEATURE — produced `west →
27
- * platform`, `hall → platform` and `biggin → platform` on the GB extract, because a bus stop tagged
28
- * `public_transport=platform` is named "Village Hall" or "West Kensington"; 108 of 133 OSM-derived
29
- * surfaces named a different record than the one they pointed at. Attribution therefore runs through
30
- * the index, and the row's own designator is kept as `context` — exactly the axis a confound board
31
- * needs, since a `hall` seen on a platform is a confound and a `hall` seen on a terminal is evidence.
32
- */
33
- import { type SurfaceIndex } from "#tools/sub-venue/surfaces";
34
- import type { IdentifierShape, SubVenueSurface } from "#tools/sub-venue/table";
35
- /**
36
- * One row of a harvestable source, as read back off JSONL or out of a layer database.
37
- *
38
- * SOURCE-NEUTRAL by design, and verified so in wave 2: an Overture Places row from the `airport_terminal` category is
39
- * `{ designatorID, name }` and fits unchanged. What did NOT fit was the harvest function's hardcoded `osm:name` source
40
- * stamp — see `overture-subvenue.ts`'s docstring. Declared locally so the builder does not import `@mailwoman/osm`
41
- * (which `@mailwoman/corpus` does not depend on) just to name a shape it reads from a file.
42
- */
43
- export interface SubVenueHarvestRow {
44
- /**
45
- * The designator the SOURCE's rule assigned to the FEATURE. Not necessarily the record a matched phrase names — see
46
- * this file's header on phrase attribution. Carried into {@link SubVenueSurface.context}.
47
- */
48
- designatorID: string;
49
- /**
50
- * `venue` (station, airport, campus) or `sub_venue`, when the source's rule assigns one. The harvest itself does not
51
- * read it; the sub-venue slice recipe fills its venue slot from it.
52
- */
53
- tier?: string;
54
- name?: string | null;
55
- ref?: string | null;
56
- localizedNames?: Record<string, string>;
57
- }
58
- /**
59
- * Classify an OSM `ref` into an {@link IdentifierShape} class.
60
- *
61
- * The classes are the ones Berlin's gates actually produced, plus the two aviation forms the corpus task names
62
- * (`Terminal 2F` is digit-letter, `Concourse B` is letter). `range` covers both separators OSM uses for a gate serving
63
- * more than one stand: `16-18` and `0/1`.
64
- */
65
- export declare function classifyIdentifier(ref: string): string;
66
- /**
67
- * Options for one harvest pass — which source stamp its surfaces carry and which region they were attested in.
68
- *
69
- * Both default to the OSM/unknown-region values wave 1 hardcoded, so an existing caller is unchanged.
70
- */
71
- export interface HarvestOptions {
72
- /**
73
- * Source family: `osm` yields `osm:name` / `osm:name:<lang>`, `overture` yields `overture:name`.
74
- */
75
- source?: string;
76
- /**
77
- * ISO 3166-1 alpha-2 of the extract or partition. `""` when unknown.
78
- */
79
- region?: string;
80
- }
81
- /**
82
- * Harvest attested phrases and identifier shapes out of a source's rows.
83
- *
84
- * `index` gates the name harvest — a name contributes only when it CONTAINS a phrase already in the table. That filter
85
- * is the whole reason this function is safe to run over raw OSM: see this file's header for the Berlin measurement that
86
- * motivated it. The index also decides ATTRIBUTION: a hit is a surface of the record the PHRASE names, and the row's
87
- * own designator is recorded as `context`.
88
- *
89
- * Returns surfaces with real `observations` counts, so the lexicon can rank `terminal` above a phrase attested once.
90
- */
91
- export declare function extractAttestedPhrases(rows: Iterable<SubVenueHarvestRow>, index: SurfaceIndex, options?: HarvestOptions): {
92
- surfaces: SubVenueSurface[];
93
- identifierShapes: IdentifierShape[];
94
- };
95
- /**
96
- * Read a JSONL file of {@link SubVenueHarvestRow}s. Blank lines and unparseable rows are skipped rather than fatal — an
97
- * extract is a build output, and one malformed line should not cost the whole lexicon.
98
- */
99
- export declare function readSubVenueJSONL(path: string): Promise<SubVenueHarvestRow[]>;
100
- //# sourceMappingURL=harvest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"harvest.d.ts","sourceRoot":"","sources":["../../../lib/tools/sub-venue/harvest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAMH,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACnF,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CActD;AAYD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAClC,KAAK,EAAE,YAAY,EACnB,OAAO,GAAE,cAAmB,GAC1B;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,gBAAgB,EAAE,eAAe,EAAE,CAAA;CAAE,CAiFtE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAmBnF"}
@@ -1,168 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * @file The harvest side of the sub-venue lexicon: what one row of a harvestable source looks like,
7
- * how a file of them is read back, and what a pass over them extracts — attested surfaces plus the
8
- * measured shape of each designator's identifier half.
9
- *
10
- * {@link SubVenueHarvestRow} is SOURCE-NEUTRAL, and verified so: an Overture Places row from the
11
- * `airport_terminal` category is `{ designatorID, name }` and fits unchanged. It is declared here
12
- * rather than imported so the builder does not take a dependency on `@mailwoman/osm` (which
13
- * `@mailwoman/corpus` does not depend on) just to name a shape it reads from a file.
14
- *
15
- * Two measurements shape {@link extractAttestedPhrases}, and both are the reason it is safe to run
16
- * over raw OSM at all:
17
- *
18
- * **A feature's `name` is usually the VENUE's name, not a sub-venue phrase.** On the Berlin extract
19
- * (2,060 matched features) a `railway=platform` is named `Stendaler Straße` and an `amenity=university`
20
- * is named `Hertie School`; across 250,116 named Great Britain features only 6,003 (2.40%) contain a
21
- * designator token at all. So names are not harvested wholesale — a name contributes only when it
22
- * CONTAINS a phrase already in the surface index, which is what makes `Terminal E (Untere Ebene)`
23
- * evidence and `Otto Lilienthal Flughafen Berlin Tegel` not.
24
- *
25
- * **A matched phrase belongs to the record the PHRASE names, not the record the ROW carries.**
26
- * Attributing every hit to `row.designatorID` — the rule that matched the FEATURE — produced `west →
27
- * platform`, `hall → platform` and `biggin → platform` on the GB extract, because a bus stop tagged
28
- * `public_transport=platform` is named "Village Hall" or "West Kensington"; 108 of 133 OSM-derived
29
- * surfaces named a different record than the one they pointed at. Attribution therefore runs through
30
- * the index, and the row's own designator is kept as `context` — exactly the axis a confound board
31
- * needs, since a `hall` seen on a platform is a confound and a `hall` seen on a terminal is evidence.
32
- */
33
- import { readLocalTextFile } from "@mailwoman/core/fs/readers";
34
- import { parseJSONStrict } from "@mailwoman/core/json";
35
- import { TextSpliterator } from "spliterator";
36
- import { nameContainsSurfaces } from "#tools/sub-venue/surfaces";
37
- /**
38
- * Classify an OSM `ref` into an {@link IdentifierShape} class.
39
- *
40
- * The classes are the ones Berlin's gates actually produced, plus the two aviation forms the corpus task names
41
- * (`Terminal 2F` is digit-letter, `Concourse B` is letter). `range` covers both separators OSM uses for a gate serving
42
- * more than one stand: `16-18` and `0/1`.
43
- */
44
- export function classifyIdentifier(ref) {
45
- const value = ref.trim();
46
- if (/^[0-9]+$/.test(value))
47
- return "digit";
48
- if (/^[A-Za-z]$/.test(value))
49
- return "letter";
50
- if (/^[A-Za-z]+[0-9]+$/.test(value))
51
- return "letter-digit";
52
- if (/^[0-9]+[A-Za-z]+$/.test(value))
53
- return "digit-letter";
54
- if (/^[0-9A-Za-z]+\s*[-/]\s*[0-9A-Za-z]+$/.test(value))
55
- return "range";
56
- return "other";
57
- }
58
- /**
59
- * How many real `ref` values each {@link IdentifierShape} keeps.
60
- *
61
- * Eight, not "all" and not one. The field exists so a slice author can see what a class actually CONTAINS — GB's
62
- * `other` class turned out to be semicolon multi-values (`1;2;3`, `13;14`), which one example would have hidden and
63
- * which the class name does not say. Eight fits a terminal line and covers the variety inside every class the GB
64
- * extract produced. The COUNT lives in `observations`; this is a sample, not a census.
65
- */
66
- const IDENTIFIER_EXAMPLES_PER_SHAPE = 8;
67
- /**
68
- * Harvest attested phrases and identifier shapes out of a source's rows.
69
- *
70
- * `index` gates the name harvest — a name contributes only when it CONTAINS a phrase already in the table. That filter
71
- * is the whole reason this function is safe to run over raw OSM: see this file's header for the Berlin measurement that
72
- * motivated it. The index also decides ATTRIBUTION: a hit is a surface of the record the PHRASE names, and the row's
73
- * own designator is recorded as `context`.
74
- *
75
- * Returns surfaces with real `observations` counts, so the lexicon can rank `terminal` above a phrase attested once.
76
- */
77
- export function extractAttestedPhrases(rows, index, options = {}) {
78
- const source = options.source ?? "osm";
79
- const region = options.region ?? "";
80
- /**
81
- * `phrase\0lang\0source` → { count, context }.
82
- */
83
- const surfaceCounts = new Map();
84
- /**
85
- * `designatorID\0shape` → { count, examples }.
86
- */
87
- const shapes = new Map();
88
- const note = (phrase, lang, sourceTag, context) => {
89
- const key = `${phrase}\0${lang}\0${sourceTag}`;
90
- const entry = surfaceCounts.get(key) ?? { count: 0, context: new Map() };
91
- entry.count++;
92
- entry.context.set(context, (entry.context.get(context) ?? 0) + 1);
93
- surfaceCounts.set(key, entry);
94
- };
95
- for (const row of rows) {
96
- if (row.name) {
97
- for (const hit of nameContainsSurfaces(row.name, index)) {
98
- // `und` — the default `name` tag carries no language. Overture's `name` is the same: a
99
- // primary name in whatever language the place uses, untagged.
100
- note(hit, "und", `${source}:name`, row.designatorID);
101
- }
102
- }
103
- for (const [lang, localized] of Object.entries(row.localizedNames ?? {})) {
104
- for (const hit of nameContainsSurfaces(localized, index)) {
105
- note(hit, lang, `${source}:name:${lang}`, row.designatorID);
106
- }
107
- }
108
- if (row.ref) {
109
- const shape = classifyIdentifier(row.ref);
110
- const key = `${row.designatorID}\0${shape}`;
111
- const entry = shapes.get(key) ?? { count: 0, examples: new Set() };
112
- entry.count++;
113
- if (entry.examples.size < IDENTIFIER_EXAMPLES_PER_SHAPE) {
114
- entry.examples.add(row.ref.trim());
115
- }
116
- shapes.set(key, entry);
117
- }
118
- }
119
- const surfaces = [...surfaceCounts].map(([key, entry]) => {
120
- const [phrase, lang, sourceTag] = key.split("\0");
121
- const record = index.get(phrase);
122
- return {
123
- phrase,
124
- recordID: record.recordID,
125
- recordKind: record.recordKind,
126
- lang,
127
- region,
128
- source: sourceTag,
129
- curated: false,
130
- observations: entry.count,
131
- context: Object.fromEntries([...entry.context].toSorted((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))),
132
- };
133
- });
134
- const identifierShapes = [...shapes].map(([key, entry]) => {
135
- const [designatorID, shape] = key.split("\0");
136
- return {
137
- designatorID,
138
- region,
139
- shape,
140
- observations: entry.count,
141
- examples: [...entry.examples].toSorted((a, b) => a.localeCompare(b)),
142
- };
143
- });
144
- return { surfaces, identifierShapes };
145
- }
146
- /**
147
- * Read a JSONL file of {@link SubVenueHarvestRow}s. Blank lines and unparseable rows are skipped rather than fatal — an
148
- * extract is a build output, and one malformed line should not cost the whole lexicon.
149
- */
150
- export async function readSubVenueJSONL(path) {
151
- const out = [];
152
- // `TextSpliterator` rather than `split("\n")` — a whole-country extract runs to 250,000 lines
153
- // (52 MB for Great Britain), and materializing every segment before reading the first is exactly
154
- // what the repo lint rule exists to prevent.
155
- for (const line of TextSpliterator.from(await readLocalTextFile(path))) {
156
- const trimmed = line.trim();
157
- if (!trimmed)
158
- continue;
159
- try {
160
- out.push(parseJSONStrict(trimmed));
161
- }
162
- catch {
163
- continue;
164
- }
165
- }
166
- return out;
167
- }
168
- //# sourceMappingURL=harvest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"harvest.js","sourceRoot":"","sources":["../../../lib/tools/sub-venue/harvest.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * @file Head-noun derivation for the sub-venue lexicon — proposing the ADDRESSED form of a designator
7
- * from the encyclopaedic label a vocabulary source carries.
8
- *
9
- * Wikidata's label for a concept is the encyclopaedic name (`terminal aeroportuaria`, `letištní
10
- * terminál`, `havalimanı terminali`), while the addressed form is the bare head (`Terminal`,
11
- * `Terminál`, `Terminali`). Nothing can promote the encyclopaedic form, so the head has to be
12
- * extracted before the curation pass has anything to decide about — that gap is why the first wave of
13
- * this table shipped 1,014 uncurated surfaces.
14
- *
15
- * Everything derived lands `curated: false`. A derivation is a HYPOTHESIS about what the addressed
16
- * form is; a locale's own data is what confirms or kills it.
17
- */
18
- import type { SubVenueSurface } from "#tools/sub-venue/table";
19
- /**
20
- * Derive the HEAD NOUN of every multi-part surface, so `terminal aeroportuaria` contributes the form anyone actually
21
- * writes on an envelope.
22
- *
23
- * The problem this solves is the whole reason wave 1 shipped 1,014 uncurated surfaces: Wikidata's label for a concept
24
- * is the ENCYCLOPAEDIC name (`terminal aeroportuaria`, `letištní terminál`, `havalimanı terminali`), while the
25
- * addressed form is the bare head (`Terminal`, `Terminál`, `Terminali`). Nothing can promote the encyclopaedic form, so
26
- * the head has to be extracted before the curation pass has anything to decide about.
27
- *
28
- * Two derivations, because the table holds two kinds of writing:
29
- *
30
- * - **Latin script — the COGNATE test.** A token is the head when its ASCII fold shares {@link HEAD_NOUN_PREFIX_FLOOR}
31
- * leading characters with the designator's own canonical id. Nothing subtler survived contact with the data: an
32
- * earlier version matched a token against any SINGLE-TOKEN surface of the record, and because Dutch `universiteit` is
33
- * a one-token surface of `campus`, it derived `universitario`, `universitaire`, `üniversite` and twenty more as head
34
- * nouns of `campus`. Those are the MODIFIER half of the label, and admitting them would have taught the harvest to
35
- * read "Ciudad Universitaria" as sub-venue structure.
36
- * - **Non-Latin script — the SHARED-SUBSTRING test.** The cognate test cannot reach a script the id is not written in,
37
- * and for Han and Kana a token split finds nothing at all. So every substring of length ≥
38
- * {@link NON_LATIN_HEAD_MIN_LENGTH} occurring in at least two DISTINCT surfaces of the same record and primary
39
- * language becomes a candidate, ranked by how many surfaces carry it. Japanese yields `ターミナル` (in all five `ja`
40
- * terminal labels) ahead of `ターミナルビル` (three); Chinese yields `航站`, `航站楼`, `航站樓`. Where the script DOES space its
41
- * words (Korean, Greek, Cyrillic) a candidate must be a whole token, so `공항 터미널` ∩ `공항터미널` gives `터미널` and never a
42
- * fragment.
43
- *
44
- * The non-Latin branch deliberately emits SEVERAL candidates instead of picking one. Choosing between `航站` and `航站楼`
45
- * from Wikidata alone is guesswork; the Japan extract answers it by counting, and the promotion ledger records which
46
- * count won. Everything derived lands `curated: false` — the derivation is a hypothesis about what the addressed form
47
- * is, and a locale's own data is what confirms or kills it.
48
- */
49
- export declare function deriveHeadNounSurfaces(surfaces: readonly SubVenueSurface[]): SubVenueSurface[];
50
- //# sourceMappingURL=head-nouns.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"head-nouns.d.ts","sourceRoot":"","sources":["../../../lib/tools/sub-venue/head-nouns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAuD7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,eAAe,EAAE,CA+E9F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"head-nouns.js","sourceRoot":"","sources":["../../../lib/tools/sub-venue/head-nouns.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- /**
2
- * @copyright Sister Software
3
- * @license AGPL-3.0
4
- * @author Teffen Ellis, et al.
5
- *
6
- * @file Surface-form primitives for the sub-venue lexicon: the normalizer every phrase passes
7
- * through, the phrase → record index built over the surfaces accumulated so far, and the operator
8
- * that decides whether a feature's name contains a known designator.
9
- *
10
- * The two matching rules here are script-conditional, and both narrowings are required — see
11
- * {@link NON_SPACING_SCRIPT} and {@link nameContainsSurfaces}.
12
- */
13
- import type { SubVenueSurface } from "#tools/sub-venue/table";
14
- /**
15
- * Normalize a surface for the table: trim, collapse internal whitespace, and lowercase ONLY when the string is entirely
16
- * in a bicameral script. `ターミナルビル` and `航站楼` pass through untouched; `Flughafenterminal` folds.
17
- */
18
- export declare function normalizeSurface(text: string): string;
19
- /**
20
- * A phrase → record index, keyed on the normalized phrase. Built by {@link buildSurfaceIndex} from the surfaces present
21
- * before the harvest runs, and the reason a matched phrase can be attributed to the record it actually names.
22
- */
23
- export type SurfaceIndex = ReadonlyMap<string, {
24
- recordID: string;
25
- recordKind: "designator" | "modifier";
26
- }>;
27
- /**
28
- * Index the surfaces accumulated so far by phrase. First writer wins, so a seed record beats a Wikidata alias that
29
- * happens to collide — `terminal` stays the `terminal` designator even though it is also an Italian alias for it.
30
- */
31
- export declare function buildSurfaceIndex(surfaces: readonly SubVenueSurface[]): SurfaceIndex;
32
- /**
33
- * Every known phrase found in `name`, as whole-token runs for spacing scripts and as substrings for non-spacing ones.
34
- *
35
- * Token-boundary matching for Latin script, not substring: `Nordterminal` is a real German compound in which `terminal`
36
- * is a suffix, and a substring test would also fire on `Terminalstraße`. The compound case is a genuine miss and it is
37
- * the right miss — admitting suffix matches would fire on every `-hall`/`-gate` compound in Germanic and Nordic street
38
- * naming, which is exactly the confound class `Briggate`/`Kirkgate` represents.
39
- *
40
- * For Han/Kana names that rule finds nothing at all, because the script has no word boundaries: `第1ターミナル` splits into
41
- * one token that matches no surface. There the LONGEST known substring is the correct operator, and the compound
42
- * objection does not transfer — Japanese has no `-gate` street-name suffix class.
43
- */
44
- export declare function nameContainsSurfaces(name: string, index: SurfaceIndex): string[];
45
- //# sourceMappingURL=surfaces.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"surfaces.d.ts","sourceRoot":"","sources":["../../../lib/tools/sub-venue/surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAiB7D;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,YAAY,GAAG,UAAU,CAAA;CAAE,CAAC,CAAA;AAE3G;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,YAAY,CASpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAqBhF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"surfaces.js","sourceRoot":"","sources":["../../../lib/tools/sub-venue/surfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,MAAM,mBAAmB,GAAG,oEAAoE,CAAA;AAEhG;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAG,yDAAyD,CAAA;AAEpF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAEpD,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;AAC3E,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAoC;IACrE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuE,CAAA;IAE5F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,SAAQ;QACvC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;IAC1F,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,KAAmB;IACrE,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAE9B,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAA;QAE1E,IAAI,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACnB,CAAC;IACF,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YAC9B,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;AACjB,CAAC"}