@mailwoman/resolver-wof-sqlite 10.7.0 → 10.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/address/point/interpolation.ts +4 -4
- package/lib/address/point/spine-schema.ts +59 -0
- package/lib/ancestry/backfill.ts +3 -25
- package/lib/build/candidate.ts +22 -5
- package/lib/candidate/alias-bags.ts +32 -14
- package/lib/candidate/bare-admin-names.ts +54 -0
- package/lib/candidate/importance.ts +2 -2
- package/lib/candidate/lookup.ts +54 -26
- package/lib/candidate/own-name.ts +1 -5
- package/lib/candidate/scoring.ts +4 -4
- package/lib/capitals.ts +2 -2
- package/lib/coincident-roles.ts +3 -3
- package/lib/currency-backfill.ts +4 -4
- package/lib/fst/autocomplete.ts +1 -1
- package/lib/fst/binary-matcher.ts +379 -0
- package/lib/fst/builder.ts +1 -1
- package/lib/fst/deserialize-web.ts +14 -143
- package/lib/fst/matcher.ts +3 -3
- package/lib/fst/serialize.ts +1 -1
- package/lib/fst.ts +1 -0
- package/lib/geonames/aliases.ts +2 -2
- package/lib/interpolation.ts +3 -2
- package/lib/lookup.ts +6 -6
- package/lib/nsul/lookup.ts +2 -1
- package/lib/nsul/schema.ts +2 -8
- package/lib/place-importance-schema.ts +1 -1
- package/lib/poi/lookup.ts +14 -14
- package/lib/proximity-rerank.ts +2 -2
- package/lib/reverse.ts +8 -5
- package/lib/search-fetch.ts +3 -3
- package/lib/sqlite/convention-source.ts +1 -1
- package/lib/street/centroid.ts +2 -2
- package/lib/street/morphology/fst/builder.ts +3 -3
- package/lib/street/morphology/fst/loader.ts +3 -3
- package/lib/street/normalize.ts +59 -1
- package/lib/types.ts +8 -0
- package/lib/uprn/existence.ts +0 -1
- package/lib/uprn/lookup.ts +5 -5
- package/lib/uprn/schema.ts +3 -4
- package/lib/weights-overlay-linker.ts +4 -4
- package/out/address/point/interpolation.js +4 -4
- package/out/address/point/interpolation.js.map +1 -1
- package/out/address/point/spine-schema.d.ts +40 -0
- package/out/address/point/spine-schema.d.ts.map +1 -0
- package/out/address/point/spine-schema.js +40 -0
- package/out/address/point/spine-schema.js.map +1 -0
- package/out/ancestry/backfill.d.ts.map +1 -1
- package/out/ancestry/backfill.js +3 -22
- package/out/ancestry/backfill.js.map +1 -1
- package/out/build/candidate.d.ts.map +1 -1
- package/out/build/candidate.js +17 -5
- package/out/build/candidate.js.map +1 -1
- package/out/candidate/alias-bags.d.ts +8 -0
- package/out/candidate/alias-bags.d.ts.map +1 -1
- package/out/candidate/alias-bags.js +20 -11
- package/out/candidate/alias-bags.js.map +1 -1
- package/out/candidate/bare-admin-names.d.ts +26 -0
- package/out/candidate/bare-admin-names.d.ts.map +1 -0
- package/out/candidate/bare-admin-names.js +38 -0
- package/out/candidate/bare-admin-names.js.map +1 -0
- package/out/candidate/importance.js +2 -2
- package/out/candidate/importance.js.map +1 -1
- package/out/candidate/lookup.d.ts.map +1 -1
- package/out/candidate/lookup.js +35 -19
- package/out/candidate/lookup.js.map +1 -1
- package/out/candidate/own-name.d.ts.map +1 -1
- package/out/candidate/own-name.js +1 -5
- package/out/candidate/own-name.js.map +1 -1
- package/out/candidate/scoring.js +4 -4
- package/out/candidate/scoring.js.map +1 -1
- package/out/capitals.js +2 -2
- package/out/capitals.js.map +1 -1
- package/out/coincident-roles.js +3 -3
- package/out/coincident-roles.js.map +1 -1
- package/out/currency-backfill.js +4 -4
- package/out/currency-backfill.js.map +1 -1
- package/out/env.d.ts +3 -0
- package/out/env.d.ts.map +1 -1
- package/out/fst/autocomplete.js +1 -1
- package/out/fst/autocomplete.js.map +1 -1
- package/out/fst/binary-matcher.d.ts +34 -0
- package/out/fst/binary-matcher.d.ts.map +1 -0
- package/out/fst/binary-matcher.js +294 -0
- package/out/fst/binary-matcher.js.map +1 -0
- package/out/fst/builder.js +1 -1
- package/out/fst/builder.js.map +1 -1
- package/out/fst/deserialize-web.d.ts +11 -6
- package/out/fst/deserialize-web.d.ts.map +1 -1
- package/out/fst/deserialize-web.js +12 -94
- package/out/fst/deserialize-web.js.map +1 -1
- package/out/fst/matcher.js +3 -3
- package/out/fst/matcher.js.map +1 -1
- package/out/fst/serialize.js +1 -1
- package/out/fst/serialize.js.map +1 -1
- package/out/fst.d.ts +1 -0
- package/out/fst.d.ts.map +1 -1
- package/out/fst.js +1 -0
- package/out/fst.js.map +1 -1
- package/out/geonames/aliases.js +2 -2
- package/out/geonames/aliases.js.map +1 -1
- package/out/interpolation.d.ts.map +1 -1
- package/out/interpolation.js +3 -2
- package/out/interpolation.js.map +1 -1
- package/out/lookup.d.ts +2 -2
- package/out/lookup.d.ts.map +1 -1
- package/out/lookup.js +4 -4
- package/out/lookup.js.map +1 -1
- package/out/nsul/lookup.d.ts +1 -1
- package/out/nsul/lookup.d.ts.map +1 -1
- package/out/nsul/lookup.js +1 -1
- package/out/nsul/lookup.js.map +1 -1
- package/out/nsul/schema.d.ts +2 -5
- package/out/nsul/schema.d.ts.map +1 -1
- package/out/nsul/schema.js +2 -7
- package/out/nsul/schema.js.map +1 -1
- package/out/place-importance-schema.js +1 -1
- package/out/place-importance-schema.js.map +1 -1
- package/out/poi/lookup.d.ts +3 -3
- package/out/poi/lookup.d.ts.map +1 -1
- package/out/poi/lookup.js +9 -9
- package/out/poi/lookup.js.map +1 -1
- package/out/proximity-rerank.js +2 -2
- package/out/proximity-rerank.js.map +1 -1
- package/out/reverse.d.ts.map +1 -1
- package/out/reverse.js +7 -5
- package/out/reverse.js.map +1 -1
- package/out/search-fetch.js +3 -3
- package/out/search-fetch.js.map +1 -1
- package/out/sqlite/convention-source.js +1 -1
- package/out/sqlite/convention-source.js.map +1 -1
- package/out/street/centroid.js +2 -2
- package/out/street/centroid.js.map +1 -1
- package/out/street/morphology/fst/builder.d.ts +2 -2
- package/out/street/morphology/fst/builder.js +2 -2
- package/out/street/morphology/fst/builder.js.map +1 -1
- package/out/street/morphology/fst/loader.d.ts +2 -2
- package/out/street/morphology/fst/loader.js +2 -2
- package/out/street/morphology/fst/loader.js.map +1 -1
- package/out/street/normalize.d.ts +16 -0
- package/out/street/normalize.d.ts.map +1 -1
- package/out/street/normalize.js +51 -1
- package/out/street/normalize.js.map +1 -1
- package/out/types.d.ts +7 -0
- package/out/types.d.ts.map +1 -1
- package/out/uprn/existence.d.ts.map +1 -1
- package/out/uprn/existence.js.map +1 -1
- package/out/uprn/lookup.d.ts.map +1 -1
- package/out/uprn/lookup.js +3 -3
- package/out/uprn/lookup.js.map +1 -1
- package/out/uprn/schema.d.ts +1 -1
- package/out/uprn/schema.d.ts.map +1 -1
- package/out/uprn/schema.js +1 -1
- package/out/uprn/schema.js.map +1 -1
- package/out/weights-overlay-linker.js +4 -4
- package/out/weights-overlay-linker.js.map +1 -1
- package/package.json +16 -13
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software.
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
* @file The shared rooftop schema with an H3 spine column and the layer-interface tables.
|
|
6
|
+
*
|
|
7
|
+
* The OpenStreetMap and G-NAF rooftop builders write this shape. Readers of existing address points
|
|
8
|
+
* project only the columns of `address_point` in `#address/point/schema`, so the H3 spine and the
|
|
9
|
+
* layer-interface tables leave their query path unchanged.
|
|
10
|
+
*/
|
|
11
|
+
import { createLayerCoverageTable, createLayerManifestTable } from "@mailwoman/core/layers";
|
|
12
|
+
import { ADDRESS_POINT_COLUMNS, createAddressPointTable } from "#address/point/schema";
|
|
13
|
+
/**
|
|
14
|
+
* Jitter-stable address/POI join cell.
|
|
15
|
+
* Matches @mailwoman/address-id.
|
|
16
|
+
*/
|
|
17
|
+
export const ADDRESS_POINT_H3_RESOLUTION = 9;
|
|
18
|
+
/**
|
|
19
|
+
* Positional insert order: the shared address-point fields followed by the H3 spine.
|
|
20
|
+
*/
|
|
21
|
+
export const SPINE_ADDRESS_POINT_COLUMNS = [...ADDRESS_POINT_COLUMNS, "h3_cell"];
|
|
22
|
+
/**
|
|
23
|
+
* Create the legacy-compatible domain table plus the H3 spine and the layer-interface tables.
|
|
24
|
+
*/
|
|
25
|
+
export async function createSpineAddressPointTables(db) {
|
|
26
|
+
await createAddressPointTable(db);
|
|
27
|
+
await db.schema
|
|
28
|
+
.alterTable("address_point")
|
|
29
|
+
.addColumn("h3_cell", "integer", (column) => column.notNull())
|
|
30
|
+
.execute();
|
|
31
|
+
await createLayerManifestTable(db);
|
|
32
|
+
await createLayerCoverageTable(db);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build after the bulk load so the spine index is not updated on every streaming insert.
|
|
36
|
+
*/
|
|
37
|
+
export async function createSpineAddressPointIndexes(db) {
|
|
38
|
+
await db.schema.createIndex("idx_ap_h3").on("address_point").column("h3_cell").execute();
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=spine-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spine-schema.js","sourceRoot":"","sources":["../../../lib/address/point/spine-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAA4B,MAAM,wBAAwB,CAAA;AAGrH,OAAO,EAAE,qBAAqB,EAA0B,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAE9G;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAA;AAa5C;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,GAAG,qBAAqB,EAAE,SAAS,CAAU,CAAA;AAEzF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,EAAqC;IACxF,MAAM,uBAAuB,CAAC,EAAE,CAAC,CAAA;IAEjC,MAAM,EAAE,CAAC,MAAM;SACb,UAAU,CAAC,eAAe,CAAC;SAC3B,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC7D,OAAO,EAAE,CAAA;IAEX,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAA;IAClC,MAAM,wBAAwB,CAAC,EAAE,CAAC,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,EAAqC;IACzF,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;AACzF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../lib/ancestry/backfill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../lib/ancestry/backfill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAG3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,MAAM,WAAW,sBAAsB;IACtC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8B/F;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CACnD,EAAE,EAAE,cAAc,CAAC,WAAW,CAAC,EAC/B,YAAY,EAAE,SAAS,eAAe,EAAE,EACxC,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CA2FjC"}
|
package/out/ancestry/backfill.js
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Repair the truncated ancestry left by the `parent_id` closure. Must run after `populateAncestors` and before the build freezes.
|
|
7
7
|
*/
|
|
8
|
-
import { readWOFFeature } from "@mailwoman/
|
|
8
|
+
import { readWOFFeature } from "@mailwoman/gazetteer/whosonfirst";
|
|
9
|
+
import { hierarchyAncestorsInAnyBranch } from "@mailwoman/gazetteer/whosonfirst/hierarchy";
|
|
9
10
|
import { PathBuilder } from "path-ts";
|
|
10
11
|
import { Globerator } from "spliterator/node/fs";
|
|
11
12
|
const TOP_PLACETYPES = new Set(["country", "continent", "empire", "ocean", "marinearea", "planet"]);
|
|
@@ -40,13 +41,6 @@ export async function discoverAdminDataRoots(reposRoot) {
|
|
|
40
41
|
await visit(PathBuilder.from(reposRoot), 0);
|
|
41
42
|
return roots;
|
|
42
43
|
}
|
|
43
|
-
// The `aid === id` check filters out a place's own `locality_id`.
|
|
44
|
-
// For a neighborhood, that id identifies a real ancestor.
|
|
45
|
-
function placetypeFromKey(key) {
|
|
46
|
-
if (!key.endsWith("_id"))
|
|
47
|
-
return null;
|
|
48
|
-
return key.slice(0, -3);
|
|
49
|
-
}
|
|
50
44
|
/**
|
|
51
45
|
* Insert missing ancestor rows for places whose ancestry chain ended before reaching a country.
|
|
52
46
|
*
|
|
@@ -96,20 +90,7 @@ export async function backfillAncestorsFromHierarchy(db, geojsonRoots, opts = {}
|
|
|
96
90
|
}
|
|
97
91
|
continue;
|
|
98
92
|
}
|
|
99
|
-
const seen =
|
|
100
|
-
for (const branch of hierarchy) {
|
|
101
|
-
for (const [key, val] of Object.entries(branch)) {
|
|
102
|
-
const pt = placetypeFromKey(key);
|
|
103
|
-
if (!pt)
|
|
104
|
-
continue;
|
|
105
|
-
const aid = Number(val);
|
|
106
|
-
if (!Number.isFinite(aid) || aid <= 0 || aid === id)
|
|
107
|
-
continue;
|
|
108
|
-
if (!seen.has(aid)) {
|
|
109
|
-
seen.set(aid, pt);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
93
|
+
const seen = hierarchyAncestorsInAnyBranch(id, hierarchy);
|
|
113
94
|
let present = alreadyPresent.get(id);
|
|
114
95
|
if (!present) {
|
|
115
96
|
present = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../lib/ancestry/backfill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../lib/ancestry/backfill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidate.d.ts","sourceRoot":"","sources":["../../lib/build/candidate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"candidate.d.ts","sourceRoot":"","sources":["../../lib/build/candidate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAmB9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAK7C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,KAAK,EAAE,eAAe,CAAA;IAEtB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;IAEvB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IAElC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAEtC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAEvC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,eAAe,CAAA;IAE5B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE;QAClB,WAAW,EAAE,eAAe,CAAA;QAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;QAE5B;;;;WAIG;QACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;KAClC,CAAA;IAED;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAErD;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IAEjB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;IAEvB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAE/B;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IAEjC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AAGH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAmZpG"}
|
package/out/build/candidate.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*/
|
|
6
6
|
import { COUNTRY_POPULATION } from "@mailwoman/codex/country";
|
|
7
|
+
import { bareAdminName } from "@mailwoman/codex/country/bare-admin-names";
|
|
7
8
|
import { pathExists } from "@mailwoman/core/fs/readers/stat";
|
|
8
9
|
import { removePath } from "@mailwoman/core/fs/writers";
|
|
9
10
|
import { stringifyJSON } from "@mailwoman/core/json";
|
|
@@ -11,6 +12,7 @@ import { DatabaseClient } from "@mailwoman/sqlite/client";
|
|
|
11
12
|
import { POPULATION_CORRECTIONS } from "#build/population-corrections";
|
|
12
13
|
import { explodeAliasBags } from "#candidate/alias-bags";
|
|
13
14
|
import { buildAncestorsSidecar } from "#candidate/ancestors/sidecar";
|
|
15
|
+
import { stageBareAdminNames } from "#candidate/bare-admin-names";
|
|
14
16
|
import { stageCountryDisplayNames } from "#candidate/country-display-names";
|
|
15
17
|
import { foldExtract } from "#candidate/extract-fold";
|
|
16
18
|
import { createCandidateFTS } from "#candidate/fts";
|
|
@@ -24,6 +26,8 @@ import { normalizeLocalityForKey } from "#street/normalize";
|
|
|
24
26
|
* Builds the candidate lookup database from a WOF admin database and replaces any existing output.
|
|
25
27
|
* The builder adds an FTS5 trigram index for fuzzy lookup.
|
|
26
28
|
*/
|
|
29
|
+
// repo-health-ignore export-name-affix -- writes candidate.db, and the gazetteer
|
|
30
|
+
// pipeline's buildCandidate runs a whole build around it
|
|
27
31
|
export async function buildCandidateTable(opts) {
|
|
28
32
|
const progress = opts.onProgress ?? (() => { });
|
|
29
33
|
if (await pathExists(opts.output)) {
|
|
@@ -38,7 +42,7 @@ export async function buildCandidateTable(opts) {
|
|
|
38
42
|
const ccID = (code) => {
|
|
39
43
|
const c = (code || "??").toUpperCase();
|
|
40
44
|
let id = ccodes.get(c);
|
|
41
|
-
if (id
|
|
45
|
+
if (typeof id !== "number") {
|
|
42
46
|
id = ccodes.size;
|
|
43
47
|
ccodes.set(c, id);
|
|
44
48
|
}
|
|
@@ -47,7 +51,7 @@ export async function buildCandidateTable(opts) {
|
|
|
47
51
|
const ptID = (pt) => {
|
|
48
52
|
const p = pt || "";
|
|
49
53
|
let id = ptcodes.get(p);
|
|
50
|
-
if (id
|
|
54
|
+
if (typeof id !== "number") {
|
|
51
55
|
id = ptcodes.size;
|
|
52
56
|
ptcodes.set(p, id);
|
|
53
57
|
}
|
|
@@ -94,7 +98,7 @@ export async function buildCandidateTable(opts) {
|
|
|
94
98
|
const cid = ccID(r.country);
|
|
95
99
|
const ptid = ptID(r.placetype);
|
|
96
100
|
const rid = regionOf.get(sid) ?? 0;
|
|
97
|
-
const wofPop = r.pop === null || r.pop
|
|
101
|
+
const wofPop = r.pop === null || !r.pop ? null : Number(r.pop);
|
|
98
102
|
const pop = POPULATION_CORRECTIONS[sid]?.population ??
|
|
99
103
|
(wofPop === null && r.placetype === "country" ? (COUNTRY_POPULATION[String(r.country ?? "")] ?? null) : wofPop);
|
|
100
104
|
const neg = -Math.log10((pop ?? 0) + 1);
|
|
@@ -140,6 +144,12 @@ export async function buildCandidateTable(opts) {
|
|
|
140
144
|
stageRow,
|
|
141
145
|
tx: kdb,
|
|
142
146
|
}).toLocaleString()} country surfaces`);
|
|
147
|
+
progress("bare-admin-names", `${stageBareAdminNames({
|
|
148
|
+
attrs,
|
|
149
|
+
iso2ByID: new Map([...ccodes].map(([code, id]) => [id, code])),
|
|
150
|
+
stageRow,
|
|
151
|
+
tx: kdb,
|
|
152
|
+
}).toLocaleString()} bare admin names`);
|
|
143
153
|
if (opts.currencyBackfill) {
|
|
144
154
|
const nBackfill = await resurrectCurrencyHoles({
|
|
145
155
|
src,
|
|
@@ -161,11 +171,13 @@ export async function buildCandidateTable(opts) {
|
|
|
161
171
|
progress("currency-backfill", "not configured — deprecated-no-successor holes stay dead (#1737)");
|
|
162
172
|
}
|
|
163
173
|
progress("aliases", "exploding alias bags");
|
|
164
|
-
const
|
|
174
|
+
const iso2ByCountryID = new Map([...ccodes].map(([code, id]) => [id, code]));
|
|
175
|
+
const { nAlias, nBare, keyCounts, regionOfficialRefused } = explodeAliasBags(src, kdb, attrs, stageRow, {
|
|
165
176
|
regionPlacetypeID: ptID("region"),
|
|
166
177
|
ccID,
|
|
178
|
+
bareName: (countryID, alias) => bareAdminName(iso2ByCountryID.get(countryID) ?? "", alias),
|
|
167
179
|
});
|
|
168
|
-
progress("aliases", `${nAlias.toLocaleString()} aliases` +
|
|
180
|
+
progress("aliases", `${nAlias.toLocaleString()} aliases; ${nBare.toLocaleString()} bare admin aliases` +
|
|
169
181
|
(regionOfficialRefused
|
|
170
182
|
? `; ${regionOfficialRefused.toLocaleString()} region aliases refused as another region's official name`
|
|
171
183
|
: ""));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candidate.js","sourceRoot":"","sources":["../../lib/build/candidate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"candidate.js","sourceRoot":"","sources":["../../lib/build/candidate.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,16 @@ import type { WOFDatabase } from "#schema";
|
|
|
19
19
|
export declare function explodeAliasBags(src: DatabaseClient<WOFDatabase>, out: DatabaseClient<CandidateDatabase>, attrs: Map<number, PlaceAttrs>, stageRow: StageRow, opts?: {
|
|
20
20
|
regionPlacetypeID?: number;
|
|
21
21
|
ccID?: (code: string | null) => number;
|
|
22
|
+
/**
|
|
23
|
+
* The bare form of an alias in its place's country, staged as one more alias: `渋谷` for the alias `渋谷区`.
|
|
24
|
+
*
|
|
25
|
+
* A Japanese place's primary name is romanized, so its suffixed name reaches
|
|
26
|
+
* the candidate only as an alias.
|
|
27
|
+
*/
|
|
28
|
+
bareName?: (countryID: number, alias: string) => string | null;
|
|
22
29
|
}): {
|
|
23
30
|
nAlias: number;
|
|
31
|
+
nBare: number;
|
|
24
32
|
keyCounts: Map<number, number>;
|
|
25
33
|
regionOfficialRefused: number;
|
|
26
34
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alias-bags.d.ts","sourceRoot":"","sources":["../../lib/candidate/alias-bags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAqC1C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,cAAc,CAAC,WAAW,CAAC,EAChC,GAAG,EAAE,cAAc,CAAC,iBAAiB,CAAC,EACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE;
|
|
1
|
+
{"version":3,"file":"alias-bags.d.ts","sourceRoot":"","sources":["../../lib/candidate/alias-bags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAqC1C;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,cAAc,CAAC,WAAW,CAAC,EAChC,GAAG,EAAE,cAAc,CAAC,iBAAiB,CAAC,EACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC9B,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE;IACL,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,CAAA;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CACzD,GACJ;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CA2DlG"}
|
|
@@ -42,6 +42,7 @@ function officialNameHoldersByRegion(src, ccID) {
|
|
|
42
42
|
*/
|
|
43
43
|
export function explodeAliasBags(src, out, attrs, stageRow, opts = {}) {
|
|
44
44
|
let nAlias = 0;
|
|
45
|
+
let nBare = 0;
|
|
45
46
|
let regionOfficialRefused = 0;
|
|
46
47
|
const keyCounts = new Map();
|
|
47
48
|
const official = typeof opts.regionPlacetypeID === "number" && opts.ccID
|
|
@@ -60,23 +61,31 @@ export function explodeAliasBags(src, out, attrs, stageRow, opts = {}) {
|
|
|
60
61
|
// includes surrounding whitespace and the last one is empty.
|
|
61
62
|
// `normalizeLocalityForKey` folds both away.
|
|
62
63
|
for (const piece of alt.split(ALIAS_SEPARATOR)) {
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if (isRegion) {
|
|
68
|
-
const holder = official.get(`${a.cid}\0${k}`);
|
|
69
|
-
if (typeof holder === "number" && holder !== id) {
|
|
70
|
-
regionOfficialRefused++;
|
|
64
|
+
const bare = opts.bareName?.(a.cid, piece.trim());
|
|
65
|
+
const keys = [normalizeLocalityForKey(piece), bare ? normalizeLocalityForKey(bare) : ""];
|
|
66
|
+
for (const [position, k] of keys.entries()) {
|
|
67
|
+
if (!k || seen.has(k))
|
|
71
68
|
continue;
|
|
69
|
+
seen.add(k);
|
|
70
|
+
if (isRegion) {
|
|
71
|
+
const holder = official.get(`${a.cid}\0${k}`);
|
|
72
|
+
if (typeof holder === "number" && holder !== id) {
|
|
73
|
+
regionOfficialRefused++;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
stageRow(k, a, id, 0);
|
|
78
|
+
if (position) {
|
|
79
|
+
nBare++;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
nAlias++;
|
|
72
83
|
}
|
|
73
84
|
}
|
|
74
|
-
stageRow(k, a, id, 0);
|
|
75
|
-
nAlias++;
|
|
76
85
|
}
|
|
77
86
|
keyCounts.set(id, seen.size);
|
|
78
87
|
}
|
|
79
88
|
out.exec("COMMIT");
|
|
80
|
-
return { nAlias, keyCounts, regionOfficialRefused };
|
|
89
|
+
return { nAlias, nBare, keyCounts, regionOfficialRefused };
|
|
81
90
|
}
|
|
82
91
|
//# sourceMappingURL=alias-bags.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alias-bags.js","sourceRoot":"","sources":["../../lib/candidate/alias-bags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAI7D,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAEtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D;;;;;;;;GAQG;AACH,SAAS,2BAA2B,CACnC,GAAgC,EAChC,IAAqC;IAErC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAA;IAEtC,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAE3C,KAAK,MAAM,CAAC,IAAI,GAAG;SACjB,OAAO,CACP;;kGAE+F,CAC/F;SACA,OAAO,EAAE,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAA;QAEvD,IAAI,CAAC,EAAE,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,OAAwB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACpE,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC/B,GAAgC,EAChC,GAAsC,EACtC,KAA8B,EAC9B,QAAkB,EAClB,IAAI,
|
|
1
|
+
{"version":3,"file":"alias-bags.js","sourceRoot":"","sources":["../../lib/candidate/alias-bags.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
* @file A candidate build pass that keys each admin place under its bare name as well as its full one.
|
|
6
|
+
*/
|
|
7
|
+
import type { PlaceAttrs, StageRow } from "#candidate/place-attrs";
|
|
8
|
+
/**
|
|
9
|
+
* Stages an alias row under the bare form of every place name a country writes with an admin-unit suffix.
|
|
10
|
+
*
|
|
11
|
+
* A bare `渋谷` otherwise reaches only the places whose full name is `渋谷`, a Hyogo
|
|
12
|
+
* and a Chiba locality with no recorded population, and never Tokyo's `渋谷区`.
|
|
13
|
+
* The alias row includes the ward's own population, so the candidate ordering
|
|
14
|
+
* ranks it above the unmeasured exact matches.
|
|
15
|
+
*
|
|
16
|
+
* @returns The number of alias rows staged.
|
|
17
|
+
*/
|
|
18
|
+
export declare function stageBareAdminNames(ctx: {
|
|
19
|
+
attrs: Map<number, PlaceAttrs>;
|
|
20
|
+
iso2ByID: Map<number, string>;
|
|
21
|
+
stageRow: StageRow;
|
|
22
|
+
tx: {
|
|
23
|
+
exec(sql: string): void;
|
|
24
|
+
};
|
|
25
|
+
}): number;
|
|
26
|
+
//# sourceMappingURL=bare-admin-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bare-admin-names.d.ts","sourceRoot":"","sources":["../../lib/candidate/bare-admin-names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGlE;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IACxC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC9B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,EAAE,EAAE;QAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;CAC/B,GAAG,MAAM,CA0BT"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
* @file A candidate build pass that keys each admin place under its bare name as well as its full one.
|
|
6
|
+
*/
|
|
7
|
+
import { bareAdminName } from "@mailwoman/codex/country/bare-admin-names";
|
|
8
|
+
import { normalizeLocalityForKey } from "#street/normalize";
|
|
9
|
+
/**
|
|
10
|
+
* Stages an alias row under the bare form of every place name a country writes with an admin-unit suffix.
|
|
11
|
+
*
|
|
12
|
+
* A bare `渋谷` otherwise reaches only the places whose full name is `渋谷`, a Hyogo
|
|
13
|
+
* and a Chiba locality with no recorded population, and never Tokyo's `渋谷区`.
|
|
14
|
+
* The alias row includes the ward's own population, so the candidate ordering
|
|
15
|
+
* ranks it above the unmeasured exact matches.
|
|
16
|
+
*
|
|
17
|
+
* @returns The number of alias rows staged.
|
|
18
|
+
*/
|
|
19
|
+
export function stageBareAdminNames(ctx) {
|
|
20
|
+
let staged = 0;
|
|
21
|
+
ctx.tx.exec("BEGIN");
|
|
22
|
+
for (const [sid, a] of ctx.attrs) {
|
|
23
|
+
const iso2 = ctx.iso2ByID.get(a.cid);
|
|
24
|
+
if (!iso2)
|
|
25
|
+
continue;
|
|
26
|
+
const bare = bareAdminName(iso2, a.name);
|
|
27
|
+
if (!bare)
|
|
28
|
+
continue;
|
|
29
|
+
const key = normalizeLocalityForKey(bare);
|
|
30
|
+
if (!key || key === a.pkey)
|
|
31
|
+
continue;
|
|
32
|
+
ctx.stageRow(key, a, sid, 0);
|
|
33
|
+
staged++;
|
|
34
|
+
}
|
|
35
|
+
ctx.tx.exec("COMMIT");
|
|
36
|
+
return staged;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=bare-admin-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bare-admin-names.js","sourceRoot":"","sources":["../../lib/candidate/bare-admin-names.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAA;AAGzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAKnC;IACA,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAEpB,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAEpC,IAAI,CAAC,IAAI;YAAE,SAAQ;QAEnB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;QAExC,IAAI,CAAC,IAAI;YAAE,SAAQ;QAEnB,MAAM,GAAG,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAEzC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI;YAAE,SAAQ;QAEpC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAE5B,MAAM,EAAE,CAAA;IACT,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAErB,OAAO,MAAM,CAAA;AACd,CAAC"}
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
* The consumer (`resolver/toponym-prior.ts`) leaves an unmeasured candidate at the position
|
|
29
29
|
* population assigned it.
|
|
30
30
|
*/
|
|
31
|
-
import {
|
|
31
|
+
import { haversine } from "@mailwoman/spatial/geometries/point/distance";
|
|
32
32
|
import { DatabaseClient } from "@mailwoman/sqlite/client";
|
|
33
33
|
import { normalizeLocalityForKey } from "#street/normalize";
|
|
34
34
|
/**
|
|
@@ -101,7 +101,7 @@ export class ImportanceIndex {
|
|
|
101
101
|
let best = null;
|
|
102
102
|
let bestKm = Infinity;
|
|
103
103
|
for (const place of group) {
|
|
104
|
-
const km =
|
|
104
|
+
const km = haversine(lat, lon, place.lat, place.lon);
|
|
105
105
|
if (km < bestKm) {
|
|
106
106
|
bestKm = km;
|
|
107
107
|
best = place;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"importance.js","sourceRoot":"","sources":["../../lib/candidate/importance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"importance.js","sourceRoot":"","sources":["../../lib/candidate/importance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../lib/candidate/lookup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,yBAAyB,EAA6B,MAAM,0BAA0B,CAAA;AAMnH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAUjF,OAAO,KAAK,EAAE,iBAAiB,EAAwD,MAAM,mBAAmB,CAAA;AAQhH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAEvF;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC1F;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;CAC7C;
|
|
1
|
+
{"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../lib/candidate/lookup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,yBAAyB,EAA6B,MAAM,0BAA0B,CAAA;AAMnH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAUjF,OAAO,KAAK,EAAE,iBAAiB,EAAwD,MAAM,mBAAmB,CAAA;AAQhH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAgB,MAAM,QAAQ,CAAA;AAEvF;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB,CAAC,iBAAiB,CAAC;IAC1F;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;CAC7C;AAyDD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY,CAAC,iBAAiB,CAAE,YAAW,WAAW;;IAclG,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAgB3D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAA;IAErE,YAAY,IAAI,EAAE,2BAA2B,EA0D5C;IAyNK,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAkShE;CACD"}
|
package/out/candidate/lookup.js
CHANGED
|
@@ -8,7 +8,7 @@ import { referentialFromPopulation } from "@mailwoman/core/resolver";
|
|
|
8
8
|
import { allRows } from "@mailwoman/core/utils";
|
|
9
9
|
import { jaroWinkler, levenshteinSimilarity } from "@mailwoman/match/comparators";
|
|
10
10
|
import { partitionByContainment } from "@mailwoman/resolver";
|
|
11
|
-
import {
|
|
11
|
+
import { haversine } from "@mailwoman/spatial/geometries/point/distance";
|
|
12
12
|
import { SQLiteLookup } from "@mailwoman/sqlite/lookup";
|
|
13
13
|
import { CANDIDATE_ANCESTOR_TABLE, CANDIDATE_INTERVAL_TABLE, intervalContains, } from "#candidate/ancestors/schema";
|
|
14
14
|
import { CANDIDATE_FTS_TABLE } from "#candidate/fts";
|
|
@@ -95,7 +95,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
95
95
|
this.#intervalProbe = this.database.prepare(`SELECT pre, post FROM ${CANDIDATE_INTERVAL_TABLE} WHERE spr_id = ?`);
|
|
96
96
|
const bandIDs = [...REGION_CLASS_PLACETYPES, "country"]
|
|
97
97
|
.map((placetype) => this.#placetypeToID.get(placetype))
|
|
98
|
-
.filter((id) => id
|
|
98
|
+
.filter((id) => typeof id === "number");
|
|
99
99
|
if (bandIDs.length) {
|
|
100
100
|
this.#qualifierProbe = this.database.prepare(`SELECT DISTINCT spr_id FROM candidate WHERE name_key = ? AND placetype_id IN (${bandIDs.join(",")}) LIMIT 8`);
|
|
101
101
|
}
|
|
@@ -122,7 +122,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
122
122
|
if (!this.#intervalProbe)
|
|
123
123
|
return null;
|
|
124
124
|
const cached = this.#intervalCache.get(sprID);
|
|
125
|
-
if (cached
|
|
125
|
+
if (cached)
|
|
126
126
|
return cached;
|
|
127
127
|
const row = this.#intervalProbe.get(sprID);
|
|
128
128
|
const label = row ? { pre: Number(row.pre), post: Number(row.post) } : null;
|
|
@@ -155,11 +155,20 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
155
155
|
return this.#ancestorLineage(sprID).some((ancestor) => qualifierIDs.has(Number(ancestor.id)));
|
|
156
156
|
}
|
|
157
157
|
/**
|
|
158
|
-
* Apply admin-containment re-rank
|
|
159
|
-
* then
|
|
158
|
+
* Apply admin-containment re-rank for a parsed region qualifier: resolve the
|
|
159
|
+
* qualifier's region rows, then {@linkcode #applyContainment}.
|
|
160
160
|
*/
|
|
161
161
|
#applyAdminContainment(rows, qualifier, country, opts) {
|
|
162
|
-
|
|
162
|
+
return this.#applyContainment(rows, this.#qualifierRegionIDs(qualifier, country), opts);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Stamp containment in the qualifier rows, inject contained misses, then partition contained-first.
|
|
166
|
+
*
|
|
167
|
+
* The qualifier rows are a parsed region's rows or one resolved parent place (#2804).
|
|
168
|
+
* The injection reads the same name key under the shape filters and under the sub-locality placetypes,
|
|
169
|
+
* so a dependent locality the locality band excludes re-enters the list when its parent contains it.
|
|
170
|
+
*/
|
|
171
|
+
#applyContainment(rows, qualifierIDs, opts) {
|
|
163
172
|
if (!qualifierIDs.size) {
|
|
164
173
|
for (const row of rows) {
|
|
165
174
|
row.containedByQualifier = false;
|
|
@@ -192,7 +201,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
192
201
|
// Also inject contained neighborhood-band namesakes (primary-keyed only).
|
|
193
202
|
const bandIDs = ["neighbourhood", "macrohood", "microhood"]
|
|
194
203
|
.map((placetype) => this.#placetypeToID.get(placetype))
|
|
195
|
-
.filter((id) => id
|
|
204
|
+
.filter((id) => typeof id === "number");
|
|
196
205
|
if (bandIDs.length) {
|
|
197
206
|
const bandSQL = "SELECT spr_id, name, country_id, placetype_id, latitude, longitude, min_lat, min_lon, max_lat, max_lon, neg_rank, is_primary, population" +
|
|
198
207
|
`${this.#importanceSelect} FROM candidate WHERE name_key = ? AND placetype_id IN (${bandIDs.map(() => "?").join(",")}) AND is_primary = 1 ` +
|
|
@@ -225,13 +234,13 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
225
234
|
}
|
|
226
235
|
#postcodeAnchor(postcode, country) {
|
|
227
236
|
const placetypeID = this.#placetypeToID.get("postalcode");
|
|
228
|
-
if (placetypeID
|
|
237
|
+
if (typeof placetypeID !== "number")
|
|
229
238
|
return null;
|
|
230
239
|
const conds = ["name_key = ?", "placetype_id = ?"];
|
|
231
240
|
const params = [postcode.replaceAll(/\s+/g, ""), placetypeID];
|
|
232
241
|
if (country) {
|
|
233
242
|
const countryID = this.#countryToID.get(country.toUpperCase());
|
|
234
|
-
if (countryID
|
|
243
|
+
if (typeof countryID !== "number")
|
|
235
244
|
return null; // Unknown country in this artifact.
|
|
236
245
|
conds.push("country_id = ?");
|
|
237
246
|
params.push(countryID);
|
|
@@ -292,7 +301,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
292
301
|
const shapeParams = [];
|
|
293
302
|
if (query.country) {
|
|
294
303
|
const cid = this.#countryToID.get(query.country.toUpperCase());
|
|
295
|
-
if (cid
|
|
304
|
+
if (typeof cid !== "number")
|
|
296
305
|
return []; // Unknown country in this artifact.
|
|
297
306
|
filters.push("country_id = ?");
|
|
298
307
|
filterParams.push(cid);
|
|
@@ -302,7 +311,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
302
311
|
const want = Array.isArray(query.placetype) ? query.placetype : [query.placetype];
|
|
303
312
|
const ids = expandPlacetypeFilter(want)
|
|
304
313
|
.map((t) => this.#placetypeToID.get(t))
|
|
305
|
-
.filter((v) => v
|
|
314
|
+
.filter((v) => typeof v === "number");
|
|
306
315
|
if (!ids.length)
|
|
307
316
|
return [];
|
|
308
317
|
shapeFilters.push(`placetype_id IN (${ids.map(() => "?").join(",")})`);
|
|
@@ -398,7 +407,7 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
398
407
|
const insideThreshold = [];
|
|
399
408
|
const outsideThreshold = [];
|
|
400
409
|
for (const row of rows) {
|
|
401
|
-
const distanceKm =
|
|
410
|
+
const distanceKm = haversine(anchor.lat, anchor.lon, Number(row.latitude), Number(row.longitude));
|
|
402
411
|
if (distanceKm <= POSTCODE_CONTAINMENT_THRESHOLD_KM) {
|
|
403
412
|
insideThreshold.push({ row, distanceKm });
|
|
404
413
|
}
|
|
@@ -414,14 +423,21 @@ export class WOFCandidateTableLookup extends SQLiteLookup {
|
|
|
414
423
|
}
|
|
415
424
|
}
|
|
416
425
|
// Admin-containment re-rank runs last.
|
|
426
|
+
const containmentOptions = {
|
|
427
|
+
nameKey,
|
|
428
|
+
strippedKey: normalizeLocalityForKey(stripLocalityQualifier(text)),
|
|
429
|
+
shapeFilters,
|
|
430
|
+
shapeParams,
|
|
431
|
+
limit,
|
|
432
|
+
};
|
|
417
433
|
if (query.regionQualifier?.trim() && this.#qualifierProbe && this.#wantsLocality(query.placetype)) {
|
|
418
|
-
rows = this.#applyAdminContainment(rows, query.regionQualifier.trim(), query.country ?? null,
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
434
|
+
rows = this.#applyAdminContainment(rows, query.regionQualifier.trim(), query.country ?? null, containmentOptions);
|
|
435
|
+
}
|
|
436
|
+
else if (typeof query.parentQualifierID === "number" &&
|
|
437
|
+
this.#ancestorsProbe &&
|
|
438
|
+
this.#wantsLocality(query.placetype)) {
|
|
439
|
+
// A resolved parent qualifies by id, so no name probe runs (#2804).
|
|
440
|
+
rows = this.#applyContainment(rows, new Set([query.parentQualifierID]), containmentOptions);
|
|
425
441
|
}
|
|
426
442
|
const candidates = rows.map((row) => {
|
|
427
443
|
const hasBbox = row.min_lat != null && row.max_lat != null && row.min_lon != null && row.max_lon != null;
|