@mailwoman/corpus 10.3.0 → 10.5.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 (361) hide show
  1. package/README.md +17 -17
  2. package/data/PROVENANCE.md +287 -273
  3. package/data/address-source-register.json +545 -23
  4. package/data/license-decisions.json +120 -0
  5. package/data/licenses/PROVENANCE.md +5 -5
  6. package/data/licenses/cdla-permissive-2.0.md +6 -6
  7. package/data/licenses/geonames-publication.md +5 -5
  8. package/data/licenses/licence-ouverte-2.0.md +3 -3
  9. package/data/licenses/national-address-database.md +12 -12
  10. package/data/licenses/nlod-2.0.md +3 -3
  11. package/data/licenses/sirene-publication.md +13 -6
  12. package/data/licenses/whosonfirst-licenses.md +4 -4
  13. package/data/source-resolutions.json +46 -0
  14. package/data/training-manifests/v0.7.2-address-systems.effective.json +1169 -0
  15. package/data/training-manifests/v0.7.2-address-systems.json +550 -0
  16. package/lib/adapters/cordis/adapter.ts +9 -9
  17. package/lib/adapters/gleif/adapter.ts +7 -8
  18. package/lib/adapters/po-box/adapter.ts +1 -1
  19. package/lib/adapters/source-id.ts +1 -1
  20. package/lib/adapters.ts +4 -2
  21. package/lib/au/adapters/gnaf/adapter.ts +1 -1
  22. package/lib/be/adapters/brussels/adapter.ts +3 -3
  23. package/lib/be/adapters/vlaanderen/adapter.ts +1 -1
  24. package/lib/be/adapters/wallonie/adapter.ts +1 -1
  25. package/lib/build/align.ts +1 -1
  26. package/lib/build.ts +1 -1
  27. package/lib/cz/adapters/cuzk/adapter.ts +2 -2
  28. package/lib/cz/tools/fetch/cuzk.ts +6 -6
  29. package/lib/de/recipes/locale.ts +1 -1
  30. package/lib/dk/adapters/inspire/adapter.ts +1 -1
  31. package/lib/ee/tools/fetch/ads.ts +2 -2
  32. package/lib/es/adapters/bizkaia/adapter.ts +1 -1
  33. package/lib/es/adapters/navarra/adapter.ts +2 -2
  34. package/lib/es/cadastre.ts +2 -2
  35. package/lib/es/tools/fetch/bizkaia.ts +8 -8
  36. package/lib/es/tools/fetch/catastro.ts +6 -6
  37. package/lib/es/tools/fetch/navarra.ts +4 -4
  38. package/lib/fingerprints.ts +3 -3
  39. package/lib/fr/adapters/finess/adapter.ts +6 -5
  40. package/lib/fr/adapters/finess/voie-type.ts +1 -1
  41. package/lib/fr/tools/fetch/annuaire-education.ts +3 -3
  42. package/lib/gb/adapters/os-open/adapter.ts +453 -0
  43. package/lib/gb/constituent-country.ts +52 -0
  44. package/lib/gb/os-open/nearest-link.ts +169 -0
  45. package/lib/gb/os-open/open-names.ts +180 -0
  46. package/lib/gb/os-open/open-roads.ts +145 -0
  47. package/lib/gb/tools/fetch/os-open.ts +251 -0
  48. package/lib/inspire/address.ts +3 -3
  49. package/lib/international/recipes/locale.ts +41 -7
  50. package/lib/it/adapters/anac/adapter.ts +4 -3
  51. package/lib/jp/adapters/wof-admin/adapter.ts +2 -2
  52. package/lib/kr/adapters/juso/label-rows.ts +1 -1
  53. package/lib/kr/adapters/localdata/key-index.ts +2 -1
  54. package/lib/lu/adapters/bd-adresses/adapter.ts +1 -1
  55. package/lib/nl/adapters/kadaster/adapter.ts +2 -2
  56. package/lib/nl/tools/fetch/kadaster.ts +2 -2
  57. package/lib/parquet/shuffle.ts +2 -2
  58. package/lib/parquet/span-sql.ts +8 -6
  59. package/lib/parquet/streams.ts +1 -1
  60. package/lib/parquet/writers.ts +2 -2
  61. package/lib/pl/tools/fetch/emuia.ts +2 -2
  62. package/lib/recipes/scaffold.ts +2 -2
  63. package/lib/recipes/sources.ts +3 -3
  64. package/lib/recipes/sub/venue/render.ts +1 -1
  65. package/lib/recipes/sub/venue/sources.ts +4 -3
  66. package/lib/recipes/sub/venue.ts +4 -3
  67. package/lib/recipes/venue.ts +11 -11
  68. package/lib/registers.ts +7 -0
  69. package/lib/ro/adapters/retea-scolara/adapter.ts +2 -2
  70. package/lib/runner.ts +3 -3
  71. package/lib/sk/tools/fetch/inspire.ts +3 -3
  72. package/lib/source-register/effective-manifest.ts +14 -8
  73. package/lib/source-register/training-manifest.ts +30 -2
  74. package/lib/source-register/types.ts +2 -2
  75. package/lib/source-register.ts +1 -0
  76. package/lib/subvenue/harvest.ts +6 -5
  77. package/lib/subvenue/promotions.ts +3 -3
  78. package/lib/subvenue/surfaces.ts +1 -1
  79. package/lib/subvenue/table.ts +6 -6
  80. package/lib/surfaces/locale.ts +1 -1
  81. package/lib/synthesizers/anchor-absorption.ts +1 -1
  82. package/lib/synthesizers/boundary-stress.ts +3 -2
  83. package/lib/synthesizers/no-street.ts +1 -1
  84. package/lib/synthesizers/po-box.ts +1 -1
  85. package/lib/synthesizers/tail.ts +2 -2
  86. package/lib/test-kit/corpus-recipe.ts +1 -1
  87. package/lib/tools/align-canonical.ts +3 -2
  88. package/lib/tools/audit.ts +1 -1
  89. package/lib/tools/corpus-stats.ts +1 -1
  90. package/lib/tools/fetch/download/network.ts +1 -1
  91. package/lib/tools/fetch/geonames/dump.ts +1 -1
  92. package/lib/tools/fetch/gleif.ts +2 -2
  93. package/lib/tools/fetch/header.ts +1 -1
  94. package/lib/tools/fetch/inspire-addresses.ts +1 -1
  95. package/lib/tools/fetch/vlaanderen-ad.ts +1 -1
  96. package/lib/tools/fetch/wfs-harvest.ts +6 -6
  97. package/lib/tools/fetch/zip-archive.ts +2 -2
  98. package/lib/tools/fetch.ts +2 -0
  99. package/lib/tools/golden/expand.ts +1 -1
  100. package/lib/tools/golden/promote.ts +3 -3
  101. package/lib/tools/golden/relabel-street/directory.ts +2 -1
  102. package/lib/tools/lint/recipe-output/vocab.ts +2 -2
  103. package/lib/tools/lint/recipe-output.ts +1 -1
  104. package/lib/tools/migrate/source-names.ts +1 -1
  105. package/lib/tools/overlay/manifest.ts +62 -10
  106. package/lib/tools/overlay/split-slice.ts +2 -10
  107. package/lib/tools/postcode-triples.ts +2 -2
  108. package/lib/tools/sub/venue/head-nouns.ts +4 -3
  109. package/lib/types.ts +3 -3
  110. package/lib/us/adapters/state/tx-notaries/adapter.ts +1 -1
  111. package/lib/us/adapters/usgov/irs-bmf/adapter.ts +2 -2
  112. package/lib/us/adapters/usgov/nad/adapter.ts +1 -1
  113. package/lib/us/adapters/usgov/nppes/adapter.ts +2 -2
  114. package/lib/us/synthesizers/intersection.ts +4 -4
  115. package/lib/us/synthesizers/street.ts +3 -3
  116. package/lib/us/tools/fetch/nad.ts +2 -2
  117. package/lib/utils/split.ts +59 -6
  118. package/lib/utils/wof-json.ts +1 -1
  119. package/out/adapters/cordis/adapter.d.ts +7 -7
  120. package/out/adapters/cordis/adapter.js +9 -9
  121. package/out/adapters/cordis/adapter.js.map +1 -1
  122. package/out/adapters/gleif/adapter.d.ts +7 -8
  123. package/out/adapters/gleif/adapter.d.ts.map +1 -1
  124. package/out/adapters/gleif/adapter.js +7 -8
  125. package/out/adapters/gleif/adapter.js.map +1 -1
  126. package/out/adapters/po-box/adapter.d.ts +1 -1
  127. package/out/adapters/source-id.d.ts +1 -1
  128. package/out/adapters/source-id.js +1 -1
  129. package/out/adapters.d.ts +2 -2
  130. package/out/adapters.d.ts.map +1 -1
  131. package/out/adapters.js +4 -2
  132. package/out/adapters.js.map +1 -1
  133. package/out/au/adapters/gnaf/adapter.js +1 -1
  134. package/out/be/adapters/brussels/adapter.d.ts +2 -2
  135. package/out/be/adapters/brussels/adapter.js +3 -3
  136. package/out/be/adapters/vlaanderen/adapter.d.ts +1 -1
  137. package/out/be/adapters/wallonie/adapter.d.ts +1 -1
  138. package/out/be/adapters/wallonie/adapter.js +1 -1
  139. package/out/build/align.d.ts +1 -1
  140. package/out/build.js +1 -1
  141. package/out/build.js.map +1 -1
  142. package/out/cz/adapters/cuzk/adapter.d.ts +2 -2
  143. package/out/cz/adapters/cuzk/adapter.js +2 -2
  144. package/out/cz/tools/fetch/cuzk.d.ts +2 -2
  145. package/out/cz/tools/fetch/cuzk.js +4 -4
  146. package/out/cz/tools/fetch/cuzk.js.map +1 -1
  147. package/out/de/recipes/locale.d.ts +1 -1
  148. package/out/de/recipes/locale.js +1 -1
  149. package/out/dk/adapters/inspire/adapter.js +1 -1
  150. package/out/ee/tools/fetch/ads.d.ts +2 -2
  151. package/out/ee/tools/fetch/ads.js +1 -1
  152. package/out/es/adapters/bizkaia/adapter.js +1 -1
  153. package/out/es/adapters/navarra/adapter.d.ts +2 -2
  154. package/out/es/adapters/navarra/adapter.js +2 -2
  155. package/out/es/cadastre.d.ts +2 -2
  156. package/out/es/cadastre.js +2 -2
  157. package/out/es/tools/fetch/bizkaia.d.ts +5 -5
  158. package/out/es/tools/fetch/bizkaia.js +6 -6
  159. package/out/es/tools/fetch/bizkaia.js.map +1 -1
  160. package/out/es/tools/fetch/catastro.d.ts +4 -4
  161. package/out/es/tools/fetch/catastro.js +2 -2
  162. package/out/es/tools/fetch/navarra.d.ts +2 -2
  163. package/out/es/tools/fetch/navarra.js +2 -2
  164. package/out/fingerprints.d.ts +3 -3
  165. package/out/fingerprints.js +3 -3
  166. package/out/fr/adapters/finess/adapter.d.ts +6 -5
  167. package/out/fr/adapters/finess/adapter.d.ts.map +1 -1
  168. package/out/fr/adapters/finess/adapter.js +6 -5
  169. package/out/fr/adapters/finess/adapter.js.map +1 -1
  170. package/out/fr/adapters/finess/voie-type.d.ts +1 -1
  171. package/out/fr/adapters/finess/voie-type.js +1 -1
  172. package/out/fr/tools/fetch/annuaire-education.d.ts +3 -3
  173. package/out/fr/tools/fetch/annuaire-education.js +3 -3
  174. package/out/gb/adapters/os-open/adapter.d.ts +165 -0
  175. package/out/gb/adapters/os-open/adapter.d.ts.map +1 -0
  176. package/out/gb/adapters/os-open/adapter.js +298 -0
  177. package/out/gb/adapters/os-open/adapter.js.map +1 -0
  178. package/out/gb/constituent-country.d.ts +36 -0
  179. package/out/gb/constituent-country.d.ts.map +1 -0
  180. package/out/gb/constituent-country.js +30 -0
  181. package/out/gb/constituent-country.js.map +1 -0
  182. package/out/gb/os-open/nearest-link.d.ts +73 -0
  183. package/out/gb/os-open/nearest-link.d.ts.map +1 -0
  184. package/out/gb/os-open/nearest-link.js +133 -0
  185. package/out/gb/os-open/nearest-link.js.map +1 -0
  186. package/out/gb/os-open/open-names.d.ts +92 -0
  187. package/out/gb/os-open/open-names.d.ts.map +1 -0
  188. package/out/gb/os-open/open-names.js +107 -0
  189. package/out/gb/os-open/open-names.js.map +1 -0
  190. package/out/gb/os-open/open-roads.d.ts +80 -0
  191. package/out/gb/os-open/open-roads.d.ts.map +1 -0
  192. package/out/gb/os-open/open-roads.js +79 -0
  193. package/out/gb/os-open/open-roads.js.map +1 -0
  194. package/out/gb/tools/fetch/os-open.d.ts +91 -0
  195. package/out/gb/tools/fetch/os-open.d.ts.map +1 -0
  196. package/out/gb/tools/fetch/os-open.js +166 -0
  197. package/out/gb/tools/fetch/os-open.js.map +1 -0
  198. package/out/inspire/address.d.ts +3 -3
  199. package/out/inspire/address.js +3 -3
  200. package/out/international/recipes/locale.d.ts +6 -0
  201. package/out/international/recipes/locale.d.ts.map +1 -1
  202. package/out/international/recipes/locale.js +29 -7
  203. package/out/international/recipes/locale.js.map +1 -1
  204. package/out/it/adapters/anac/adapter.d.ts +1 -1
  205. package/out/it/adapters/anac/adapter.d.ts.map +1 -1
  206. package/out/it/adapters/anac/adapter.js +4 -3
  207. package/out/it/adapters/anac/adapter.js.map +1 -1
  208. package/out/jp/adapters/wof-admin/adapter.d.ts +2 -2
  209. package/out/jp/adapters/wof-admin/adapter.js +2 -2
  210. package/out/kr/adapters/juso/label-rows.d.ts +1 -1
  211. package/out/kr/adapters/localdata/key-index.d.ts +2 -1
  212. package/out/kr/adapters/localdata/key-index.d.ts.map +1 -1
  213. package/out/kr/adapters/localdata/key-index.js +2 -1
  214. package/out/kr/adapters/localdata/key-index.js.map +1 -1
  215. package/out/lu/adapters/bd-adresses/adapter.d.ts +1 -1
  216. package/out/lu/adapters/bd-adresses/adapter.js +1 -1
  217. package/out/nl/adapters/kadaster/adapter.js +2 -2
  218. package/out/nl/tools/fetch/kadaster.d.ts +2 -2
  219. package/out/nl/tools/fetch/kadaster.js +2 -2
  220. package/out/parquet/shuffle.d.ts +2 -2
  221. package/out/parquet/shuffle.js +2 -2
  222. package/out/parquet/span-sql.d.ts +8 -6
  223. package/out/parquet/span-sql.d.ts.map +1 -1
  224. package/out/parquet/span-sql.js +8 -6
  225. package/out/parquet/span-sql.js.map +1 -1
  226. package/out/parquet/streams.d.ts +1 -1
  227. package/out/parquet/writers.d.ts +2 -2
  228. package/out/parquet/writers.js +1 -1
  229. package/out/pl/tools/fetch/emuia.d.ts +2 -2
  230. package/out/recipes/scaffold.d.ts +2 -2
  231. package/out/recipes/sources.d.ts +2 -2
  232. package/out/recipes/sources.js +3 -3
  233. package/out/recipes/sources.js.map +1 -1
  234. package/out/recipes/sub/venue/render.d.ts +1 -1
  235. package/out/recipes/sub/venue/render.js +1 -1
  236. package/out/recipes/sub/venue/sources.d.ts +4 -3
  237. package/out/recipes/sub/venue/sources.d.ts.map +1 -1
  238. package/out/recipes/sub/venue/sources.js +4 -3
  239. package/out/recipes/sub/venue/sources.js.map +1 -1
  240. package/out/recipes/sub/venue.d.ts +3 -2
  241. package/out/recipes/sub/venue.d.ts.map +1 -1
  242. package/out/recipes/sub/venue.js +2 -2
  243. package/out/recipes/sub/venue.js.map +1 -1
  244. package/out/recipes/venue.d.ts +7 -6
  245. package/out/recipes/venue.d.ts.map +1 -1
  246. package/out/recipes/venue.js +11 -10
  247. package/out/recipes/venue.js.map +1 -1
  248. package/out/registers.d.ts +7 -0
  249. package/out/registers.d.ts.map +1 -1
  250. package/out/registers.js +7 -0
  251. package/out/registers.js.map +1 -1
  252. package/out/ro/adapters/retea-scolara/adapter.d.ts +2 -2
  253. package/out/ro/adapters/retea-scolara/adapter.js +2 -2
  254. package/out/runner.d.ts +3 -3
  255. package/out/runner.js +2 -2
  256. package/out/sk/tools/fetch/inspire.d.ts +3 -3
  257. package/out/sk/tools/fetch/inspire.js +1 -1
  258. package/out/source-register/effective-manifest.d.ts +11 -5
  259. package/out/source-register/effective-manifest.d.ts.map +1 -1
  260. package/out/source-register/effective-manifest.js +9 -4
  261. package/out/source-register/effective-manifest.js.map +1 -1
  262. package/out/source-register/training-manifest.d.ts +27 -0
  263. package/out/source-register/training-manifest.d.ts.map +1 -1
  264. package/out/source-register/training-manifest.js +13 -1
  265. package/out/source-register/training-manifest.js.map +1 -1
  266. package/out/source-register/types.d.ts +2 -2
  267. package/out/source-register.d.ts +1 -1
  268. package/out/source-register.d.ts.map +1 -1
  269. package/out/source-register.js +1 -1
  270. package/out/source-register.js.map +1 -1
  271. package/out/subvenue/harvest.d.ts +4 -3
  272. package/out/subvenue/harvest.d.ts.map +1 -1
  273. package/out/subvenue/harvest.js +6 -5
  274. package/out/subvenue/harvest.js.map +1 -1
  275. package/out/subvenue/promotions.d.ts +2 -2
  276. package/out/subvenue/promotions.js +3 -3
  277. package/out/subvenue/promotions.js.map +1 -1
  278. package/out/subvenue/surfaces.d.ts +1 -1
  279. package/out/subvenue/table.d.ts +6 -6
  280. package/out/subvenue/table.js +1 -1
  281. package/out/surfaces/locale.d.ts +1 -1
  282. package/out/surfaces/locale.js +1 -1
  283. package/out/synthesizers/boundary-stress.d.ts.map +1 -1
  284. package/out/synthesizers/boundary-stress.js +2 -1
  285. package/out/synthesizers/boundary-stress.js.map +1 -1
  286. package/out/synthesizers/tail.d.ts +2 -2
  287. package/out/synthesizers/tail.js +2 -2
  288. package/out/test-kit/corpus-recipe.d.ts +1 -1
  289. package/out/test-kit/corpus-recipe.js +1 -1
  290. package/out/tools/align-canonical.d.ts.map +1 -1
  291. package/out/tools/align-canonical.js +3 -2
  292. package/out/tools/align-canonical.js.map +1 -1
  293. package/out/tools/audit.js +1 -1
  294. package/out/tools/corpus-stats.d.ts +1 -1
  295. package/out/tools/fetch/download/network.d.ts +1 -1
  296. package/out/tools/fetch/download/network.js +1 -1
  297. package/out/tools/fetch/geonames/dump.d.ts +1 -1
  298. package/out/tools/fetch/geonames/dump.js +1 -1
  299. package/out/tools/fetch/gleif.d.ts +2 -2
  300. package/out/tools/fetch/gleif.js +1 -1
  301. package/out/tools/fetch/header.d.ts +1 -1
  302. package/out/tools/fetch/header.js +1 -1
  303. package/out/tools/fetch/inspire-addresses.d.ts +1 -1
  304. package/out/tools/fetch/vlaanderen-ad.d.ts +1 -1
  305. package/out/tools/fetch/wfs-harvest.d.ts +3 -3
  306. package/out/tools/fetch/wfs-harvest.js +4 -4
  307. package/out/tools/fetch/wfs-harvest.js.map +1 -1
  308. package/out/tools/fetch/zip-archive.d.ts +2 -2
  309. package/out/tools/fetch/zip-archive.js +2 -2
  310. package/out/tools/fetch.d.ts +2 -0
  311. package/out/tools/fetch.d.ts.map +1 -1
  312. package/out/tools/fetch.js +2 -0
  313. package/out/tools/fetch.js.map +1 -1
  314. package/out/tools/golden/expand.js +1 -1
  315. package/out/tools/golden/expand.js.map +1 -1
  316. package/out/tools/golden/promote.d.ts +1 -1
  317. package/out/tools/golden/promote.js +3 -3
  318. package/out/tools/golden/promote.js.map +1 -1
  319. package/out/tools/golden/relabel-street/directory.d.ts +2 -1
  320. package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
  321. package/out/tools/golden/relabel-street/directory.js.map +1 -1
  322. package/out/tools/lint/recipe-output/vocab.js +2 -2
  323. package/out/tools/lint/recipe-output.d.ts +1 -1
  324. package/out/tools/migrate/source-names.d.ts +1 -1
  325. package/out/tools/overlay/manifest.d.ts +15 -2
  326. package/out/tools/overlay/manifest.d.ts.map +1 -1
  327. package/out/tools/overlay/manifest.js +41 -10
  328. package/out/tools/overlay/manifest.js.map +1 -1
  329. package/out/tools/overlay/split-slice.d.ts.map +1 -1
  330. package/out/tools/overlay/split-slice.js +2 -9
  331. package/out/tools/overlay/split-slice.js.map +1 -1
  332. package/out/tools/postcode-triples.d.ts +1 -1
  333. package/out/tools/postcode-triples.js +2 -2
  334. package/out/tools/postcode-triples.js.map +1 -1
  335. package/out/tools/sub/venue/head-nouns.d.ts +1 -1
  336. package/out/tools/sub/venue/head-nouns.d.ts.map +1 -1
  337. package/out/tools/sub/venue/head-nouns.js +4 -3
  338. package/out/tools/sub/venue/head-nouns.js.map +1 -1
  339. package/out/types.d.ts +3 -3
  340. package/out/types.js +1 -1
  341. package/out/us/adapters/state/tx-notaries/adapter.d.ts +1 -1
  342. package/out/us/adapters/state/tx-notaries/adapter.js +1 -1
  343. package/out/us/adapters/usgov/irs-bmf/adapter.d.ts +1 -1
  344. package/out/us/adapters/usgov/irs-bmf/adapter.js +2 -2
  345. package/out/us/adapters/usgov/nad/adapter.d.ts +1 -1
  346. package/out/us/adapters/usgov/nad/adapter.js +1 -1
  347. package/out/us/adapters/usgov/nppes/adapter.d.ts +1 -1
  348. package/out/us/adapters/usgov/nppes/adapter.js +1 -1
  349. package/out/us/synthesizers/intersection.js +4 -4
  350. package/out/us/synthesizers/intersection.js.map +1 -1
  351. package/out/us/synthesizers/street.js +3 -3
  352. package/out/us/synthesizers/street.js.map +1 -1
  353. package/out/us/tools/fetch/nad.d.ts +2 -2
  354. package/out/us/tools/fetch/nad.js +2 -2
  355. package/out/utils/split.d.ts +21 -0
  356. package/out/utils/split.d.ts.map +1 -1
  357. package/out/utils/split.js +49 -5
  358. package/out/utils/split.js.map +1 -1
  359. package/out/utils/wof-json.d.ts +1 -1
  360. package/out/utils/wof-json.js +1 -1
  361. package/package.json +15 -14
@@ -0,0 +1,550 @@
1
+ {
2
+ "manifestID": "corpus-training-manifest",
3
+ "schemaVersion": 1,
4
+ "corpusVersion": "v0.7.2-address-systems",
5
+ "builtAt": "2026-10-03T15:15:00.922Z",
6
+ "profile": "exploratory",
7
+ "sources": [
8
+ {
9
+ "source": "usgov-nad",
10
+ "rows": 380800563,
11
+ "license": "Public Domain",
12
+ "decision": null
13
+ },
14
+ {
15
+ "source": "ban",
16
+ "rows": 145193536,
17
+ "license": "Licence Ouverte 2.0",
18
+ "decision": null
19
+ },
20
+ {
21
+ "source": "wof-admin",
22
+ "rows": 53815886,
23
+ "license": "CC0-1.0",
24
+ "decision": null
25
+ },
26
+ {
27
+ "source": "usgov-nppes",
28
+ "rows": 53629629,
29
+ "license": "Public Domain",
30
+ "decision": null
31
+ },
32
+ {
33
+ "source": "tiger",
34
+ "rows": 40240695,
35
+ "license": "Public Domain",
36
+ "decision": null
37
+ },
38
+ {
39
+ "source": "wof-postalcode",
40
+ "rows": 15206200,
41
+ "license": "CC0-1.0",
42
+ "decision": null
43
+ },
44
+ {
45
+ "source": "overture-latam",
46
+ "rows": 3771982,
47
+ "license": "CDLA-Permissive-2.0",
48
+ "decision": null
49
+ },
50
+ {
51
+ "source": "state-tx-notaries",
52
+ "rows": 3453329,
53
+ "license": "Public Domain",
54
+ "decision": null
55
+ },
56
+ {
57
+ "source": "overture",
58
+ "rows": 2400000,
59
+ "license": "CDLA-Permissive-2.0",
60
+ "decision": null
61
+ },
62
+ {
63
+ "source": "osm-ru",
64
+ "rows": 2000177,
65
+ "license": "ODbL-1.0",
66
+ "decision": null
67
+ },
68
+ {
69
+ "source": "gleif-lei",
70
+ "rows": 1355135,
71
+ "license": "CC0-1.0",
72
+ "decision": null
73
+ },
74
+ {
75
+ "source": "rendered-gb",
76
+ "rows": 800000,
77
+ "license": "OpenAddresses GB tuples, rendered native-order — see ingest SOURCES",
78
+ "licenseValues": {
79
+ "OpenAddresses GB tuples, rendered native-order — see ingest SOURCES": 746904,
80
+ "OpenAddresses GB tuples, rendered international-order — see ingest SOURCES": 53096
81
+ },
82
+ "decision": null
83
+ },
84
+ {
85
+ "source": "rendered-pt",
86
+ "rows": 800000,
87
+ "license": "OpenAddresses PT tuples, rendered native-order — see ingest SOURCES",
88
+ "licenseValues": {
89
+ "OpenAddresses PT tuples, rendered native-order — see ingest SOURCES": 480617,
90
+ "OpenAddresses PT tuples, rendered international-order — see ingest SOURCES": 319383
91
+ },
92
+ "decision": null
93
+ },
94
+ {
95
+ "source": "lv-varis",
96
+ "rows": 550632,
97
+ "license": "CC-BY-4.0",
98
+ "decision": null
99
+ },
100
+ {
101
+ "source": "rendered-ch",
102
+ "rows": 500000,
103
+ "license": "OpenAddresses CH tuples, rendered native-order — see ingest SOURCES",
104
+ "licenseValues": {
105
+ "OpenAddresses CH tuples, rendered native-order — see ingest SOURCES": 300153,
106
+ "OpenAddresses CH tuples, rendered international-order — see ingest SOURCES": 199847
107
+ },
108
+ "decision": null
109
+ },
110
+ {
111
+ "source": "ban-re",
112
+ "rows": 352335,
113
+ "license": "Licence Ouverte 2.0",
114
+ "decision": null
115
+ },
116
+ {
117
+ "source": "rendered-hr",
118
+ "rows": 300000,
119
+ "license": "OpenAddresses HR tuples, rendered native-order — see ingest SOURCES",
120
+ "licenseValues": {
121
+ "OpenAddresses HR tuples, rendered native-order — see ingest SOURCES": 179807,
122
+ "OpenAddresses HR tuples, rendered international-order — see ingest SOURCES": 120193
123
+ },
124
+ "decision": null
125
+ },
126
+ {
127
+ "source": "rendered-de",
128
+ "rows": 204000,
129
+ "license": "OpenAddresses DE tuples, rendered native-order — see ingest SOURCES",
130
+ "licenseValues": {
131
+ "OpenAddresses DE tuples, rendered native-order — see ingest SOURCES": 122294,
132
+ "OpenAddresses DE tuples, rendered international-order — see ingest SOURCES": 81706
133
+ },
134
+ "decision": null
135
+ },
136
+ {
137
+ "source": "fragment-assay",
138
+ "rows": 200348,
139
+ "license": "Synthetic — fragment-assay; street/number/city from OpenAddresses dk",
140
+ "licenseValues": {
141
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses dk": 13416,
142
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses no": 13126,
143
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses si": 12635,
144
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses fi": 12584,
145
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses pl": 12564,
146
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses hr": 12544,
147
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses ch": 12436,
148
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses es": 11276,
149
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses nl": 10839,
150
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses au": 10816,
151
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses cz": 10464,
152
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses pt": 9946,
153
+ "Synthetic — fragment-assay; locality surfaces from corpus v0.5.0 spans": 9913,
154
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses at": 9587,
155
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses se": 9120,
156
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses nz": 8967,
157
+ "Synthetic — fragment-assay; street/number/city from OpenAddresses sk": 8076,
158
+ "Synthetic — fragment-assay; top-population locality names from the candidate gazetteer (WOF-derived)": 4765,
159
+ "Synthetic — fragment-assay; street surfaces from corpus v0.5.0 spans": 3609,
160
+ "Synthetic — fragment-assay; (locality, region) pairs from corpus US spans": 3602,
161
+ "Synthetic — fragment-assay; directional-prefixed US localities (the N-Hartland flip class)": 63
162
+ },
163
+ "decision": null
164
+ },
165
+ {
166
+ "source": "state-ny-notaries",
167
+ "rows": 180606,
168
+ "license": "Public Domain",
169
+ "decision": null
170
+ },
171
+ {
172
+ "source": "ban-gp",
173
+ "rows": 161409,
174
+ "license": "Licence Ouverte 2.0",
175
+ "decision": null
176
+ },
177
+ {
178
+ "source": "osm",
179
+ "rows": 153965,
180
+ "license": "ODbL-1.0",
181
+ "decision": null
182
+ },
183
+ {
184
+ "source": "usgov-hrsa-fqhc",
185
+ "rows": 150894,
186
+ "license": "Public Domain",
187
+ "decision": null
188
+ },
189
+ {
190
+ "source": "rendered-lu",
191
+ "rows": 150000,
192
+ "license": "OpenAddresses LU tuples, rendered native-order — see ingest SOURCES",
193
+ "licenseValues": {
194
+ "OpenAddresses LU tuples, rendered native-order — see ingest SOURCES": 89535,
195
+ "OpenAddresses LU tuples, rendered international-order — see ingest SOURCES": 60465
196
+ },
197
+ "decision": null
198
+ },
199
+ {
200
+ "source": "rendered-sk",
201
+ "rows": 150000,
202
+ "license": "OpenAddresses SK tuples, rendered native-order — see ingest SOURCES",
203
+ "licenseValues": {
204
+ "OpenAddresses SK tuples, rendered native-order — see ingest SOURCES": 89998,
205
+ "OpenAddresses SK tuples, rendered international-order — see ingest SOURCES": 60002
206
+ },
207
+ "decision": null
208
+ },
209
+ {
210
+ "source": "gnaf",
211
+ "rows": 149969,
212
+ "license": "CC-BY-4.0",
213
+ "decision": null
214
+ },
215
+ {
216
+ "source": "fragment-fr",
217
+ "rows": 144865,
218
+ "license": "Synthetic — fr-fragment; (street, commune) from BAN (Base Adresse Nationale, Licence Ouverte)",
219
+ "licenseValues": {
220
+ "Synthetic — fr-fragment; (street, commune) from BAN (Base Adresse Nationale, Licence Ouverte)": 115892,
221
+ "Synthetic — fr-fragment counter-distribution; commune from BAN (Licence Ouverte)": 28973
222
+ },
223
+ "decision": null
224
+ },
225
+ {
226
+ "source": "rendered-sg-register",
227
+ "rows": 142083,
228
+ "license": "CDLA-Permissive-2.0 — Overture Maps addresses over the Singapore Open Data Licence 1.0 (OneMap / Singapore Land Authority)",
229
+ "decision": null
230
+ },
231
+ {
232
+ "source": "ban-mq",
233
+ "rows": 138873,
234
+ "license": "Licence Ouverte 2.0",
235
+ "decision": null
236
+ },
237
+ {
238
+ "source": "invented-house-venue",
239
+ "rows": 134244,
240
+ "license": "Synthetic — derived from CC-BY / public-domain input tuples",
241
+ "decision": null
242
+ },
243
+ {
244
+ "source": "spliced-sub-venue",
245
+ "rows": 120000,
246
+ "license": "Synthetic — OpenStreetMap venue + sub-venue names (ODbL, © OpenStreetMap contributors) and Overture Places names (CDLA-Permissive-2.0) over OpenAddresses / HM Land Registry Price Paid Data address skeletons",
247
+ "decision": null
248
+ },
249
+ {
250
+ "source": "usgov-imls-pls",
251
+ "rows": 102451,
252
+ "license": "Public Domain",
253
+ "decision": null
254
+ },
255
+ {
256
+ "source": "spliced-affix",
257
+ "rows": 90000,
258
+ "license": "OpenAddresses US (non-VT) skeletons, street split via USPS Pub-28 C1/C2 (codex)",
259
+ "licenseValues": {
260
+ "OpenAddresses US (non-VT) skeletons, street split via USPS Pub-28 C1/C2 (codex)": 50000,
261
+ "OpenAddresses non-US skeletons (native-order postcode balance for the affix shard)": 40000
262
+ },
263
+ "decision": null
264
+ },
265
+ {
266
+ "source": "osm-pk",
267
+ "rows": 81501,
268
+ "license": "ODbL-1.0",
269
+ "decision": null
270
+ },
271
+ {
272
+ "source": "rendered-pk-register",
273
+ "rows": 80081,
274
+ "license": "ODbL-1.0",
275
+ "decision": null
276
+ },
277
+ {
278
+ "source": "state-ia-contractors",
279
+ "rows": 74682,
280
+ "license": "Public Domain",
281
+ "decision": null
282
+ },
283
+ {
284
+ "source": "osm-vn",
285
+ "rows": 68971,
286
+ "license": "ODbL-1.0",
287
+ "decision": null
288
+ },
289
+ {
290
+ "source": "fragment-fr-bare-street-v22",
291
+ "rows": 64122,
292
+ "license": "Synthetic — fr-bare-street; (street, number, city) from BAN (Base Adresse Nationale, Licence Ouverte)",
293
+ "decision": null
294
+ },
295
+ {
296
+ "source": "rendered-fr-admin-split",
297
+ "rows": 60000,
298
+ "license": "BAN (Base Adresse Nationale) commune+postcode tuples, rendered admin-split — see ingest SOURCE",
299
+ "decision": null
300
+ },
301
+ {
302
+ "source": "ban-gf",
303
+ "rows": 59871,
304
+ "license": "Licence Ouverte 2.0",
305
+ "decision": null
306
+ },
307
+ {
308
+ "source": "cordis",
309
+ "rows": 57918,
310
+ "license": "CC-BY-4.0",
311
+ "decision": null
312
+ },
313
+ {
314
+ "source": "osm-in",
315
+ "rows": 57604,
316
+ "license": "ODbL-1.0",
317
+ "decision": null
318
+ },
319
+ {
320
+ "source": "osm-id",
321
+ "rows": 56396,
322
+ "license": "ODbL-1.0",
323
+ "decision": null
324
+ },
325
+ {
326
+ "source": "ban-yt",
327
+ "rows": 51705,
328
+ "license": "Licence Ouverte 2.0",
329
+ "decision": null
330
+ },
331
+ {
332
+ "source": "ban-nc",
333
+ "rows": 51701,
334
+ "license": "Licence Ouverte 2.0",
335
+ "decision": null
336
+ },
337
+ {
338
+ "source": "osm-cn",
339
+ "rows": 51555,
340
+ "license": "ODbL-1.0",
341
+ "decision": null
342
+ },
343
+ {
344
+ "source": "rendered-cz-pcfirst-preposition-v21",
345
+ "rows": 51037,
346
+ "license": "Synthetic — cz-pcfirst-preposition; (street, number, postcode, city) from OpenAddresses CZ (per-source attribution in the model card)",
347
+ "decision": null
348
+ },
349
+ {
350
+ "source": "invented-anchor-absorption",
351
+ "rows": 50000,
352
+ "license": "none-recorded-on-rows",
353
+ "decision": null
354
+ },
355
+ {
356
+ "source": "invented-po-box-cedex",
357
+ "rows": 50000,
358
+ "license": "OpenAddresses US (non-VT) skeletons + USPS Pub-28 §29 PO-box designators (codex/corpus templates)",
359
+ "licenseValues": {
360
+ "OpenAddresses US (non-VT) skeletons + USPS Pub-28 §29 PO-box designators (codex/corpus templates)": 19397,
361
+ "OpenAddresses FR (BAN-derived) skeletons + La Poste BP/CEDEX forms (corpus templates, NF Z 10-011)": 13682,
362
+ "GeoNames CA (CC-BY 4.0) locality skeletons + Canada Post box forms (corpus templates); postcodes synthesized to the codex CA pattern": 8028,
363
+ "GeoNames AU postal dump (CC-BY 4.0) locality/state/postcode tails + Australia Post Postal Delivery Type designators (@mailwoman/codex/au)": 5903,
364
+ "GeoNames NZ postal dump (CC-BY 4.0) locality/postcode tails + NZ Post ADV358 Delivery Service Types (@mailwoman/codex/nz)": 2990
365
+ },
366
+ "decision": null
367
+ },
368
+ {
369
+ "source": "rendered-fr-order",
370
+ "rows": 50000,
371
+ "license": "OpenAddresses FR countrywide tuples, rendered canonical + reversed-order — see ingest SOURCE",
372
+ "decision": null
373
+ },
374
+ {
375
+ "source": "spliced-country",
376
+ "rows": 50000,
377
+ "license": "OpenAddresses multi-locale skeletons + injected ISO-3166 country surface forms (codex)",
378
+ "decision": null
379
+ },
380
+ {
381
+ "source": "spliced-unit",
382
+ "rows": 50000,
383
+ "license": "OpenAddresses US (non-VT) skeletons + injected USPS Pub-28 C2 unit designators",
384
+ "decision": null
385
+ },
386
+ {
387
+ "source": "spliced-unit-v30",
388
+ "rows": 50000,
389
+ "license": "OpenAddresses US (non-VT) skeletons + injected USPS Pub-28 C2 unit designators",
390
+ "decision": null
391
+ },
392
+ {
393
+ "source": "invented-intersection",
394
+ "rows": 40000,
395
+ "license": "TIGER/Line 2023 EDGES (US Census, public domain) real street pairs; OA Cook IL zip-to-city tails",
396
+ "decision": null
397
+ },
398
+ {
399
+ "source": "fragment-no",
400
+ "rows": 33203,
401
+ "license": "Synthetic — no-fragment; (street, number, postcode, city) from OpenAddresses NO / Kartverket",
402
+ "decision": null
403
+ },
404
+ {
405
+ "source": "spliced-suffix-boundary",
406
+ "rows": 30000,
407
+ "license": "OpenAddresses US (non-VT) skeletons; terminal suffix labels via USPS Pub-28 codex; venue shell from HRSA site names (US public domain)",
408
+ "decision": null
409
+ },
410
+ {
411
+ "source": "codex-bare-postcode",
412
+ "rows": 20460,
413
+ "license": "Synthetic — bare-postcode; postcodes from OpenAddresses (per-source attribution in the model card)",
414
+ "decision": null
415
+ },
416
+ {
417
+ "source": "ro-retea-scolara",
418
+ "rows": 17533,
419
+ "license": "CC-BY-4.0",
420
+ "decision": null
421
+ },
422
+ {
423
+ "source": "spliced-trailing-region-us",
424
+ "rows": 15976,
425
+ "license": "Synthetic — trailing-region; (locality, region) ancestor pairs from WOF (CC0/ODC-By per source)",
426
+ "decision": null
427
+ },
428
+ {
429
+ "source": "spliced-trailing-region-ca-bare",
430
+ "rows": 13740,
431
+ "license": "Synthetic — trailing-region; (locality, region) ancestor pairs from WOF (CC0/ODC-By per source)",
432
+ "decision": null
433
+ },
434
+ {
435
+ "source": "rendered-no-street-led",
436
+ "rows": 12000,
437
+ "license": "Synthetic — no-street-led; (street, number, postcode, city) from OpenAddresses NO (per-source attribution in the model card)",
438
+ "decision": null
439
+ },
440
+ {
441
+ "source": "osm-bd",
442
+ "rows": 11371,
443
+ "license": "ODbL-1.0",
444
+ "decision": null
445
+ },
446
+ {
447
+ "source": "fragment-fr-bare-street",
448
+ "rows": 10803,
449
+ "license": "Synthetic — fr-bare-street; (street, number, city) from BAN (Base Adresse Nationale, Licence Ouverte)",
450
+ "decision": null
451
+ },
452
+ {
453
+ "source": "rendered-nl-postcode",
454
+ "rows": 10000,
455
+ "license": "Synthetic — nl-postcode; (street, number, postcode, city) from OpenAddresses NL (per-source attribution in the model card)",
456
+ "decision": null
457
+ },
458
+ {
459
+ "source": "rendered-cz-pcfirst-preposition",
460
+ "rows": 8501,
461
+ "license": "Synthetic — cz-pcfirst-preposition; (street, number, postcode, city) from OpenAddresses CZ (per-source attribution in the model card)",
462
+ "decision": null
463
+ },
464
+ {
465
+ "source": "ban-mf",
466
+ "rows": 7360,
467
+ "license": "Licence Ouverte 2.0",
468
+ "decision": null
469
+ },
470
+ {
471
+ "source": "osm-ng",
472
+ "rows": 6762,
473
+ "license": "ODbL-1.0",
474
+ "decision": null
475
+ },
476
+ {
477
+ "source": "ban-pf",
478
+ "rows": 6755,
479
+ "license": "Licence Ouverte 2.0",
480
+ "decision": null
481
+ },
482
+ {
483
+ "source": "rendered-si-bare-village",
484
+ "rows": 6285,
485
+ "license": "Synthetic — si-bare-village; (village, number, postcode) from OpenAddresses SI (per-source attribution in the model card)",
486
+ "decision": null
487
+ },
488
+ {
489
+ "source": "ban-bl",
490
+ "rows": 5545,
491
+ "license": "Licence Ouverte 2.0",
492
+ "decision": null
493
+ },
494
+ {
495
+ "source": "invented-po-box-military",
496
+ "rows": 5279,
497
+ "license": "Synthetic — derived from CC-BY / public-domain input tuples",
498
+ "decision": null
499
+ },
500
+ {
501
+ "source": "spliced-trailing-region-es-v28",
502
+ "rows": 4944,
503
+ "license": "Synthetic — trailing-region; (locality, region) ancestor pairs from WOF (CC0/ODC-By per source)",
504
+ "decision": null
505
+ },
506
+ {
507
+ "source": "deepseek-kryptonite",
508
+ "rows": 4822,
509
+ "license": "Synthetic (DeepSeek-v4-flash, AGPL-compatible)",
510
+ "decision": null
511
+ },
512
+ {
513
+ "source": "rendered-bd-register",
514
+ "rows": 4551,
515
+ "license": "ODbL-1.0",
516
+ "decision": null
517
+ },
518
+ {
519
+ "source": "ban-pm",
520
+ "rows": 3049,
521
+ "license": "Licence Ouverte 2.0",
522
+ "decision": null
523
+ },
524
+ {
525
+ "source": "fr-annuaire-education-overseas",
526
+ "rows": 2825,
527
+ "license": "Licence Ouverte 2.0",
528
+ "decision": null
529
+ },
530
+ {
531
+ "source": "fr-finess-overseas",
532
+ "rows": 2395,
533
+ "license": "Licence Ouverte 1.0",
534
+ "decision": null
535
+ },
536
+ {
537
+ "source": "reviewed-postcode-tail",
538
+ "rows": 22,
539
+ "license": "Synthetic rendering of reviewed postal facts — Universal Postal Union; source terms recorded in reviewed-ve-postcode-tuples.json",
540
+ "licenseValues": {
541
+ "Synthetic rendering of reviewed postal facts — Universal Postal Union; source terms recorded in reviewed-ve-postcode-tuples.json": 16,
542
+ "Synthetic rendering of reviewed postal facts — Gobierno del Estado Anzoátegui; source terms recorded in reviewed-ve-postcode-tuples.json": 6
543
+ },
544
+ "decision": null
545
+ }
546
+ ],
547
+ "refused": {},
548
+ "totalRows": 708995131,
549
+ "contentDigest": "71dd2dc11c316b10738fdd251226facbc0b06ebb49af2d4faf7d898438e675ed"
550
+ }
@@ -71,7 +71,7 @@
71
71
  *
72
72
  * ## The street line
73
73
  *
74
- * `street` holds the whole street line as the participant typed it, usually but not always in the
74
+ * `street` holds the whole street line as the participant typed it, in most records but not all in the
75
75
  * country's own order: `THE WELLCOME TRUST LIMITED` writes `EUSTON ROAD 215 GIBBS BUILDING`, a
76
76
  * number-last line in a number-first country. The house number is therefore split off only on the
77
77
  * side the country's order puts it, and {@linkcode streetOrderForCountry} reads that side from codex's
@@ -110,11 +110,11 @@
110
110
  *
111
111
  * ## License
112
112
  *
113
- * The CORDIS legal notice at `https://cordis.europa.eu/about/legal`, read 2026-10-03, states:
114
- * "Unless otherwise noted (e.g. in individual copyright notices), the reuse of the editorial content on
115
- * this website owned by the EU is authorized under the Creative Commons Attribution 4.0 International
116
- * (CC BY 4.0) licence." The same notice records that "The Commission's reuse policy is implemented by
117
- * Commission Decision 2011/833/EU of 12 December 2011 on the reuse of Commission documents", and the
113
+ * The CORDIS legal notice at `https://cordis.europa.eu/about/legal`, read 2026-10-03, authorizes reuse
114
+ * of the EU-owned editorial content on the site under Creative Commons Attribution 4.0 International
115
+ * (CC BY 4.0), except where an individual copyright notice states otherwise. The same notice states
116
+ * that Commission Decision 2011/833/EU of 12 December 2011, on the reuse of Commission documents,
117
+ * implements the Commission's reuse policy, and the
118
118
  * data.europa.eu records for `cordisfp7projects`, `cordish2020projects` and
119
119
  * `cordis-eu-research-projects-under-horizon-europe-2021-2027` label each CSV distribution with that
120
120
  * decision (`COM_REUSE`). CC BY requires credit and a statement that changes were made, so every row
@@ -402,7 +402,7 @@ const TITLE_WORD = /^\p{Lu}\p{Ll}+(?:[-'’]\p{Lu}?\p{Ll}+)*$/u
402
402
  const MAX_PERSONAL_NAME_WORDS = 4
403
403
 
404
404
  /**
405
- * The shortest word read as a country name.
405
+ * The shortest word that reads as a country name.
406
406
  *
407
407
  * `matchCountry` resolves two- and three-letter codes as well as names, and a two-letter
408
408
  * word such as `AS` is a Norwegian legal form rather than a market.
@@ -603,7 +603,7 @@ export function readCORDISRecord(record: CORDISOrganizationRecord, lexicon: Pers
603
603
  if (!aligned.street && !aligned.postcode) return { refused: CORDISRefusal.ComponentsTooFew, country }
604
604
 
605
605
  // A layout with no slot for a component leaves it out of `raw`, as the United Arab Emirates'
606
- // leaves the locality, and the count records how often a published value went unwritten.
606
+ // leaves the locality, and the count records the number of published values that went unwritten.
607
607
  for (const tag of rendered.unplaced) {
608
608
  discarded.push(`component:${tag}:unplaced`)
609
609
  }
@@ -633,7 +633,7 @@ export interface CORDISRecordReading {
633
633
  /**
634
634
  * Every distinct published record under `inputPath`, read once each.
635
635
  *
636
- * A record is distinct on the five fields that reach a row, so an organization that took part in many
636
+ * A record is distinct on the five fields that reach a row, so an organization that took part in several
637
637
  * projects with one address is read once, and one whose address changed is read once per version.
638
638
  * `onDuplicate` is called once for every participation row a record already read covers.
639
639
  *
@@ -14,12 +14,11 @@
14
14
  *
15
15
  * ## License
16
16
  *
17
- * GLEIF's LEI Data Terms of Use, at {@linkcode GLEIF_LICENSE_URL}, read on 2026-10-03, state: "The
18
- * data available through the Access Service are provided under the CC0 licence, see CC0 1.0
19
- * Universal (CC0 1.0)." The Access Service is defined there as the facility that lets users "look-up
20
- * and/or download individual LEIs and/or related LE-RD and/or the entire set or a subset of LEIs",
21
- * which is the golden copy. GLEIF's open-data page states the same: "The data on GLEIF's website is
22
- * provided under a Creative Commons (CC0) license." The same terms ask a user not to create the
17
+ * GLEIF's LEI Data Terms of Use, at {@linkcode GLEIF_LICENSE_URL}, read on 2026-10-03, place the
18
+ * data served through the Access Service under CC0 1.0 Universal. The terms define the Access
19
+ * Service as the facility for looking up or downloading single LEIs, their related reference data,
20
+ * or the whole LEI set or a subset of it. The golden copy falls under that definition. GLEIF's open-data page
21
+ * also places the data on GLEIF's website under CC0. The same terms ask a user not to create the
23
22
  * impression that derived data or services are provided or endorsed by GLEIF. That is why
24
23
  * {@linkcode GLEIF_ATTRIBUTION} credits the source rather than the corpus.
25
24
  *
@@ -60,7 +59,7 @@
60
59
  * becomes `po_box` rather than a street.
61
60
  *
62
61
  * **A line holding a digit the split could not place refuses the address**, and so does a line with
63
- * no digit at all: in this register a digitless first line is as often a building (`UGLAND HOUSE`,
62
+ * no digit at all: in this register a digitless first line is a building about as frequently (`UGLAND HOUSE`,
64
63
  * `KYDD BUILDING`) as a street, and no field separates the two. An English ordinal inside a street name
65
64
  * (`5TH AVENUE`) is a name rather than a number.
66
65
  *
@@ -126,7 +125,7 @@ export const GLEIF_ADAPTER_ID = "gleif-lei"
126
125
  * Countries whose sampled rows show a labeling defect the street split cannot detect,
127
126
  * so none of their rows is emitted until the split handles them.
128
127
  *
129
- * - `AE`: the first address line is often an office or unit number before a building name,
128
+ * - `AE`: the first address line can be an office or unit number before a building name,
130
129
  * as in `601 سويس تاور` and `501 LE SOLARIUM`, which the split reads as a house number and a street.
131
130
  * - `HK`: a floor such as `6F` comes out as the house number, as in `6F MANULIFE PLACE`.
132
131
  * - `BS`: codex records the Bahamas as number-last while its published lines are number-first
@@ -49,7 +49,7 @@ export interface PoBoxInputRow extends PoBoxBaseTuple {
49
49
 
50
50
  export interface PoBoxAdapterOptions {
51
51
  /**
52
- * How many PO box variants to emit per input tuple, each picking a different leader
52
+ * The number of PO box variants to emit per input tuple, each picking a different leader
53
53
  * (and possibly a different number or noise level); default 1.
54
54
  */
55
55
  variantsPerInput?: number
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * The deterministic row id for a source that publishes no primary key of its own.
7
7
  *
8
- * A CSV row or GeoJSON feature often has no stable identifier. The runner still needs one, so
8
+ * A CSV row or GeoJSON feature can lack a stable identifier. The runner still needs one, so
9
9
  * deduplication and holdout manifests agree across reruns and a run can resume. These functions
10
10
  * derive it by hashing the adapter id together with a canonical serialization of the row's values.
11
11
  *