@mailwoman/corpus 10.3.0 → 10.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -17
- package/data/PROVENANCE.md +273 -273
- package/data/address-source-register.json +517 -23
- package/data/license-decisions.json +120 -0
- package/data/licenses/PROVENANCE.md +5 -5
- package/data/licenses/cdla-permissive-2.0.md +6 -6
- package/data/licenses/geonames-publication.md +5 -5
- package/data/licenses/licence-ouverte-2.0.md +3 -3
- package/data/licenses/national-address-database.md +12 -12
- package/data/licenses/nlod-2.0.md +3 -3
- package/data/licenses/sirene-publication.md +13 -6
- package/data/licenses/whosonfirst-licenses.md +4 -4
- package/data/source-resolutions.json +11 -0
- package/lib/adapters/cordis/adapter.ts +8 -8
- package/lib/adapters/gleif/adapter.ts +7 -8
- package/lib/adapters/po-box/adapter.ts +1 -1
- package/lib/adapters/source-id.ts +1 -1
- package/lib/adapters.ts +2 -2
- package/lib/au/adapters/gnaf/adapter.ts +1 -1
- package/lib/be/adapters/brussels/adapter.ts +2 -2
- package/lib/be/adapters/vlaanderen/adapter.ts +1 -1
- package/lib/build.ts +1 -1
- package/lib/cz/adapters/cuzk/adapter.ts +1 -1
- package/lib/cz/tools/fetch/cuzk.ts +4 -4
- package/lib/de/recipes/locale.ts +1 -1
- package/lib/dk/adapters/inspire/adapter.ts +1 -1
- package/lib/ee/tools/fetch/ads.ts +2 -2
- package/lib/es/adapters/bizkaia/adapter.ts +1 -1
- package/lib/es/adapters/navarra/adapter.ts +2 -2
- package/lib/es/cadastre.ts +2 -2
- package/lib/es/tools/fetch/bizkaia.ts +7 -7
- package/lib/es/tools/fetch/catastro.ts +6 -6
- package/lib/es/tools/fetch/navarra.ts +4 -4
- package/lib/fingerprints.ts +3 -3
- package/lib/fr/adapters/finess/adapter.ts +6 -5
- package/lib/fr/adapters/finess/voie-type.ts +1 -1
- package/lib/fr/tools/fetch/annuaire-education.ts +3 -3
- package/lib/gb/constituent-country.ts +52 -0
- package/lib/inspire/address.ts +3 -3
- package/lib/international/recipes/locale.ts +41 -7
- package/lib/it/adapters/anac/adapter.ts +4 -3
- package/lib/jp/adapters/wof-admin/adapter.ts +2 -2
- package/lib/kr/adapters/juso/label-rows.ts +1 -1
- package/lib/kr/adapters/localdata/key-index.ts +2 -1
- package/lib/lu/adapters/bd-adresses/adapter.ts +1 -1
- package/lib/nl/adapters/kadaster/adapter.ts +2 -2
- package/lib/nl/tools/fetch/kadaster.ts +1 -1
- package/lib/parquet/shuffle.ts +2 -2
- package/lib/parquet/span-sql.ts +8 -6
- package/lib/parquet/streams.ts +1 -1
- package/lib/parquet/writers.ts +2 -2
- package/lib/pl/tools/fetch/emuia.ts +2 -2
- package/lib/recipes/scaffold.ts +2 -2
- package/lib/recipes/sources.ts +3 -3
- package/lib/recipes/sub/venue/render.ts +1 -1
- package/lib/recipes/sub/venue/sources.ts +4 -3
- package/lib/recipes/sub/venue.ts +4 -3
- package/lib/recipes/venue.ts +11 -11
- package/lib/ro/adapters/retea-scolara/adapter.ts +2 -2
- package/lib/runner.ts +3 -3
- package/lib/sk/tools/fetch/inspire.ts +3 -3
- package/lib/source-register/effective-manifest.ts +2 -2
- package/lib/source-register/types.ts +2 -2
- package/lib/subvenue/harvest.ts +6 -5
- package/lib/subvenue/promotions.ts +3 -3
- package/lib/subvenue/table.ts +6 -6
- package/lib/surfaces/locale.ts +1 -1
- package/lib/synthesizers/anchor-absorption.ts +1 -1
- package/lib/synthesizers/boundary-stress.ts +3 -2
- package/lib/synthesizers/no-street.ts +1 -1
- package/lib/synthesizers/po-box.ts +1 -1
- package/lib/synthesizers/tail.ts +2 -2
- package/lib/test-kit/corpus-recipe.ts +1 -1
- package/lib/tools/align-canonical.ts +3 -2
- package/lib/tools/audit.ts +1 -1
- package/lib/tools/corpus-stats.ts +1 -1
- package/lib/tools/fetch/download/network.ts +1 -1
- package/lib/tools/fetch/geonames/dump.ts +1 -1
- package/lib/tools/fetch/gleif.ts +1 -1
- package/lib/tools/fetch/header.ts +1 -1
- package/lib/tools/fetch/inspire-addresses.ts +1 -1
- package/lib/tools/fetch/vlaanderen-ad.ts +1 -1
- package/lib/tools/fetch/wfs-harvest.ts +6 -6
- package/lib/tools/fetch/zip-archive.ts +2 -2
- package/lib/tools/golden/expand.ts +1 -1
- package/lib/tools/golden/promote.ts +3 -3
- package/lib/tools/golden/relabel-street/directory.ts +2 -1
- package/lib/tools/lint/recipe-output/vocab.ts +2 -2
- package/lib/tools/overlay/manifest.ts +62 -10
- package/lib/tools/overlay/split-slice.ts +2 -10
- package/lib/tools/postcode-triples.ts +2 -2
- package/lib/tools/sub/venue/head-nouns.ts +4 -3
- package/lib/types.ts +3 -3
- package/lib/us/adapters/state/tx-notaries/adapter.ts +1 -1
- package/lib/us/adapters/usgov/irs-bmf/adapter.ts +2 -2
- package/lib/us/adapters/usgov/nppes/adapter.ts +1 -1
- package/lib/us/synthesizers/intersection.ts +4 -4
- package/lib/us/synthesizers/street.ts +3 -3
- package/lib/us/tools/fetch/nad.ts +2 -2
- package/lib/utils/split.ts +59 -6
- package/lib/utils/wof-json.ts +1 -1
- package/out/adapters/cordis/adapter.d.ts +7 -7
- package/out/adapters/cordis/adapter.js +8 -8
- package/out/adapters/cordis/adapter.js.map +1 -1
- package/out/adapters/gleif/adapter.d.ts +7 -8
- package/out/adapters/gleif/adapter.d.ts.map +1 -1
- package/out/adapters/gleif/adapter.js +7 -8
- package/out/adapters/gleif/adapter.js.map +1 -1
- package/out/adapters/po-box/adapter.d.ts +1 -1
- package/out/adapters/source-id.d.ts +1 -1
- package/out/adapters/source-id.js +1 -1
- package/out/adapters.d.ts +2 -2
- package/out/adapters.js +2 -2
- package/out/au/adapters/gnaf/adapter.js +1 -1
- package/out/be/adapters/brussels/adapter.d.ts +1 -1
- package/out/be/adapters/brussels/adapter.js +2 -2
- package/out/be/adapters/vlaanderen/adapter.d.ts +1 -1
- package/out/build.js +1 -1
- package/out/build.js.map +1 -1
- package/out/cz/adapters/cuzk/adapter.d.ts +1 -1
- package/out/cz/adapters/cuzk/adapter.js +1 -1
- package/out/cz/tools/fetch/cuzk.d.ts +2 -2
- package/out/cz/tools/fetch/cuzk.js +2 -2
- package/out/de/recipes/locale.d.ts +1 -1
- package/out/de/recipes/locale.js +1 -1
- package/out/dk/adapters/inspire/adapter.js +1 -1
- package/out/ee/tools/fetch/ads.d.ts +2 -2
- package/out/ee/tools/fetch/ads.js +1 -1
- package/out/es/adapters/bizkaia/adapter.js +1 -1
- package/out/es/adapters/navarra/adapter.d.ts +2 -2
- package/out/es/adapters/navarra/adapter.js +2 -2
- package/out/es/cadastre.d.ts +2 -2
- package/out/es/cadastre.js +2 -2
- package/out/es/tools/fetch/bizkaia.d.ts +5 -5
- package/out/es/tools/fetch/bizkaia.js +5 -5
- package/out/es/tools/fetch/catastro.d.ts +4 -4
- package/out/es/tools/fetch/catastro.js +2 -2
- package/out/es/tools/fetch/navarra.d.ts +2 -2
- package/out/es/tools/fetch/navarra.js +2 -2
- package/out/fingerprints.d.ts +3 -3
- package/out/fingerprints.js +3 -3
- package/out/fr/adapters/finess/adapter.d.ts +6 -5
- package/out/fr/adapters/finess/adapter.d.ts.map +1 -1
- package/out/fr/adapters/finess/adapter.js +6 -5
- package/out/fr/adapters/finess/adapter.js.map +1 -1
- package/out/fr/adapters/finess/voie-type.d.ts +1 -1
- package/out/fr/adapters/finess/voie-type.js +1 -1
- package/out/fr/tools/fetch/annuaire-education.d.ts +3 -3
- package/out/fr/tools/fetch/annuaire-education.js +3 -3
- package/out/gb/constituent-country.d.ts +36 -0
- package/out/gb/constituent-country.d.ts.map +1 -0
- package/out/gb/constituent-country.js +30 -0
- package/out/gb/constituent-country.js.map +1 -0
- package/out/inspire/address.d.ts +3 -3
- package/out/inspire/address.js +3 -3
- package/out/international/recipes/locale.d.ts +6 -0
- package/out/international/recipes/locale.d.ts.map +1 -1
- package/out/international/recipes/locale.js +29 -7
- package/out/international/recipes/locale.js.map +1 -1
- package/out/it/adapters/anac/adapter.d.ts +1 -1
- package/out/it/adapters/anac/adapter.d.ts.map +1 -1
- package/out/it/adapters/anac/adapter.js +4 -3
- package/out/it/adapters/anac/adapter.js.map +1 -1
- package/out/jp/adapters/wof-admin/adapter.d.ts +2 -2
- package/out/jp/adapters/wof-admin/adapter.js +2 -2
- package/out/kr/adapters/juso/label-rows.d.ts +1 -1
- package/out/kr/adapters/localdata/key-index.d.ts +2 -1
- package/out/kr/adapters/localdata/key-index.d.ts.map +1 -1
- package/out/kr/adapters/localdata/key-index.js +2 -1
- package/out/kr/adapters/localdata/key-index.js.map +1 -1
- package/out/lu/adapters/bd-adresses/adapter.d.ts +1 -1
- package/out/lu/adapters/bd-adresses/adapter.js +1 -1
- package/out/nl/adapters/kadaster/adapter.js +2 -2
- package/out/nl/tools/fetch/kadaster.d.ts +1 -1
- package/out/nl/tools/fetch/kadaster.js +1 -1
- package/out/parquet/shuffle.d.ts +2 -2
- package/out/parquet/shuffle.js +2 -2
- package/out/parquet/span-sql.d.ts +8 -6
- package/out/parquet/span-sql.d.ts.map +1 -1
- package/out/parquet/span-sql.js +8 -6
- package/out/parquet/span-sql.js.map +1 -1
- package/out/parquet/streams.d.ts +1 -1
- package/out/parquet/writers.d.ts +2 -2
- package/out/parquet/writers.js +1 -1
- package/out/pl/tools/fetch/emuia.d.ts +2 -2
- package/out/recipes/scaffold.d.ts +2 -2
- package/out/recipes/sources.d.ts +2 -2
- package/out/recipes/sources.js +3 -3
- package/out/recipes/sources.js.map +1 -1
- package/out/recipes/sub/venue/render.d.ts +1 -1
- package/out/recipes/sub/venue/render.js +1 -1
- package/out/recipes/sub/venue/sources.d.ts +4 -3
- package/out/recipes/sub/venue/sources.d.ts.map +1 -1
- package/out/recipes/sub/venue/sources.js +4 -3
- package/out/recipes/sub/venue/sources.js.map +1 -1
- package/out/recipes/sub/venue.d.ts +3 -2
- package/out/recipes/sub/venue.d.ts.map +1 -1
- package/out/recipes/sub/venue.js +2 -2
- package/out/recipes/sub/venue.js.map +1 -1
- package/out/recipes/venue.d.ts +7 -6
- package/out/recipes/venue.d.ts.map +1 -1
- package/out/recipes/venue.js +11 -10
- package/out/recipes/venue.js.map +1 -1
- package/out/ro/adapters/retea-scolara/adapter.d.ts +2 -2
- package/out/ro/adapters/retea-scolara/adapter.js +2 -2
- package/out/runner.d.ts +3 -3
- package/out/runner.js +2 -2
- package/out/sk/tools/fetch/inspire.d.ts +3 -3
- package/out/sk/tools/fetch/inspire.js +1 -1
- package/out/source-register/effective-manifest.d.ts +2 -2
- package/out/source-register/types.d.ts +2 -2
- package/out/subvenue/harvest.d.ts +4 -3
- package/out/subvenue/harvest.d.ts.map +1 -1
- package/out/subvenue/harvest.js +6 -5
- package/out/subvenue/harvest.js.map +1 -1
- package/out/subvenue/promotions.d.ts +2 -2
- package/out/subvenue/promotions.js +3 -3
- package/out/subvenue/promotions.js.map +1 -1
- package/out/subvenue/table.d.ts +6 -6
- package/out/subvenue/table.js +1 -1
- package/out/surfaces/locale.d.ts +1 -1
- package/out/surfaces/locale.js +1 -1
- package/out/synthesizers/boundary-stress.d.ts.map +1 -1
- package/out/synthesizers/boundary-stress.js +2 -1
- package/out/synthesizers/boundary-stress.js.map +1 -1
- package/out/synthesizers/tail.d.ts +2 -2
- package/out/synthesizers/tail.js +2 -2
- package/out/test-kit/corpus-recipe.d.ts +1 -1
- package/out/test-kit/corpus-recipe.js +1 -1
- package/out/tools/align-canonical.d.ts.map +1 -1
- package/out/tools/align-canonical.js +3 -2
- package/out/tools/align-canonical.js.map +1 -1
- package/out/tools/audit.js +1 -1
- package/out/tools/corpus-stats.d.ts +1 -1
- package/out/tools/fetch/download/network.d.ts +1 -1
- package/out/tools/fetch/download/network.js +1 -1
- package/out/tools/fetch/geonames/dump.d.ts +1 -1
- package/out/tools/fetch/geonames/dump.js +1 -1
- package/out/tools/fetch/gleif.d.ts +1 -1
- package/out/tools/fetch/gleif.js +1 -1
- package/out/tools/fetch/header.d.ts +1 -1
- package/out/tools/fetch/header.js +1 -1
- package/out/tools/fetch/inspire-addresses.d.ts +1 -1
- package/out/tools/fetch/vlaanderen-ad.d.ts +1 -1
- package/out/tools/fetch/wfs-harvest.d.ts +3 -3
- package/out/tools/fetch/wfs-harvest.js +4 -4
- package/out/tools/fetch/wfs-harvest.js.map +1 -1
- package/out/tools/fetch/zip-archive.d.ts +2 -2
- package/out/tools/fetch/zip-archive.js +2 -2
- package/out/tools/golden/expand.js +1 -1
- package/out/tools/golden/expand.js.map +1 -1
- package/out/tools/golden/promote.d.ts +1 -1
- package/out/tools/golden/promote.js +3 -3
- package/out/tools/golden/promote.js.map +1 -1
- package/out/tools/golden/relabel-street/directory.d.ts +2 -1
- package/out/tools/golden/relabel-street/directory.d.ts.map +1 -1
- package/out/tools/golden/relabel-street/directory.js.map +1 -1
- package/out/tools/lint/recipe-output/vocab.js +2 -2
- package/out/tools/overlay/manifest.d.ts +15 -2
- package/out/tools/overlay/manifest.d.ts.map +1 -1
- package/out/tools/overlay/manifest.js +41 -10
- package/out/tools/overlay/manifest.js.map +1 -1
- package/out/tools/overlay/split-slice.d.ts.map +1 -1
- package/out/tools/overlay/split-slice.js +2 -9
- package/out/tools/overlay/split-slice.js.map +1 -1
- package/out/tools/postcode-triples.d.ts +1 -1
- package/out/tools/postcode-triples.js +2 -2
- package/out/tools/postcode-triples.js.map +1 -1
- package/out/tools/sub/venue/head-nouns.d.ts +1 -1
- package/out/tools/sub/venue/head-nouns.d.ts.map +1 -1
- package/out/tools/sub/venue/head-nouns.js +4 -3
- package/out/tools/sub/venue/head-nouns.js.map +1 -1
- package/out/types.d.ts +3 -3
- package/out/types.js +1 -1
- package/out/us/adapters/state/tx-notaries/adapter.d.ts +1 -1
- package/out/us/adapters/state/tx-notaries/adapter.js +1 -1
- package/out/us/adapters/usgov/irs-bmf/adapter.d.ts +1 -1
- package/out/us/adapters/usgov/irs-bmf/adapter.js +2 -2
- package/out/us/synthesizers/intersection.js +4 -4
- package/out/us/synthesizers/intersection.js.map +1 -1
- package/out/us/synthesizers/street.js +3 -3
- package/out/us/synthesizers/street.js.map +1 -1
- package/out/us/tools/fetch/nad.d.ts +2 -2
- package/out/us/tools/fetch/nad.js +2 -2
- package/out/utils/split.d.ts +21 -0
- package/out/utils/split.d.ts.map +1 -1
- package/out/utils/split.js +49 -5
- package/out/utils/split.js.map +1 -1
- package/out/utils/wof-json.d.ts +1 -1
- package/out/utils/wof-json.js +1 -1
- package/package.json +14 -14
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ import type { CanonicalRow, LabeledRow } from "@mailwoman/corpus/types"
|
|
|
14
14
|
import { alignRow } from "@mailwoman/corpus/utils"
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
`alignRow` lives on `./utils` rather than the barrel
|
|
17
|
+
`alignRow` lives on `./utils` rather than the barrel. The barrel re-exports `#adapters`,
|
|
18
18
|
`#build`, `#runner`, `#recipes/index` and `#types` only.
|
|
19
19
|
|
|
20
20
|
## What it produces
|
|
@@ -38,7 +38,7 @@ training pipeline (`corpus-python/`).
|
|
|
38
38
|
| Module | Purpose |
|
|
39
39
|
| --------------------------- | ---------------------------------------------------------------------- |
|
|
40
40
|
| **`types.ts`** | `CanonicalRow`, `LabeledRow`, `SourceProvenance`, `CorpusAdapter` |
|
|
41
|
-
| **`utils/align.ts`** | Tokenize raw address → BIO label sequence
|
|
41
|
+
| **`utils/align.ts`** | Tokenize raw address → BIO label sequence, and quarantine what refuses |
|
|
42
42
|
| **`build.ts`** | Drive the end-to-end build, write `labeled.jsonl` + `quarantine.jsonl` |
|
|
43
43
|
| **`runner.ts`** | Run one adapter or all of them, and emit the run manifest |
|
|
44
44
|
| **`synthesizers/*.ts`** | Synthetic row generators (boundary stress, order variants, etc.) |
|
|
@@ -89,15 +89,15 @@ mailwoman corpus fetch geonames-postal
|
|
|
89
89
|
require thirteen before a source enters the training set. Read what follows before writing an
|
|
90
90
|
adapter ([#2323](https://github.com/sister-software/mailwoman/issues/2323)).
|
|
91
91
|
|
|
92
|
-
**Address role.** `CanonicalRow.addressRole`
|
|
92
|
+
**Address role.** `CanonicalRow.addressRole` records what an address is the address of, from the
|
|
93
93
|
`AddressRole` vocabulary in `lib/types.ts`. Every adapter declares one and `runner.ts` stamps it on
|
|
94
|
-
each row the adapter leaves unset
|
|
94
|
+
each row the adapter leaves unset. An adapter over a source with more than one address column sets
|
|
95
95
|
the field per row instead. Taiwan's company register is that case — the registered company address
|
|
96
96
|
(公司地址) and the business address the economic ministry records for companies (營業地址) sit in
|
|
97
97
|
separate columns of one row, and reading the file without the role field teaches the premise parser
|
|
98
98
|
registered-office grammar.
|
|
99
99
|
|
|
100
|
-
The field is required on `CorpusAdapter` and
|
|
100
|
+
The field is required on `CorpusAdapter` and has no default, because the answer is a property of
|
|
101
101
|
the source that only the adapter's author has read. Ten of the 23 adapters here emit a non-premise
|
|
102
102
|
role: four facility (`state-hi-schools`, `usgov-hrsa-fqhc`, `usgov-imls-pls`,
|
|
103
103
|
`usgov-samhsa-treatment-locator`), three mailing (`invented-po-box`, `state-tx-notaries`,
|
|
@@ -108,8 +108,8 @@ role: four facility (`state-hi-schools`, `usgov-hrsa-fqhc`, `usgov-imls-pls`,
|
|
|
108
108
|
[`@mailwoman/evidence`](../evidence/lib/status.ts) records what a publisher asserts, per field, in
|
|
109
109
|
six values: `identity`, `address`, `geometry`, `observation`, `grammar`, `routing`. A company
|
|
110
110
|
register is an authority on the identifier it issues while the registered-office string on the same
|
|
111
|
-
row is an `observation` somebody filed. One verdict for the whole source cannot
|
|
112
|
-
|
|
111
|
+
row is an `observation` somebody filed. One verdict for the whole source cannot state both. For that
|
|
112
|
+
reason `lib/tools/fetch/index.ts` names the assertion and the role per entry rather than grading each
|
|
113
113
|
source once. The Korean permit registry (지방행정인허가데이터) is the worked example: it grants
|
|
114
114
|
permit identity, and its address string is what a clerk typed in two address systems with no
|
|
115
115
|
validation.
|
|
@@ -117,9 +117,9 @@ validation.
|
|
|
117
117
|
**A label the build reads for obligations.** `license` holds a string, and `utils/license.ts` reads it
|
|
118
118
|
through `readLicenseRecord` in `@mailwoman/core/license/record`, which resolves it to an SPDX expression
|
|
119
119
|
and looks up that expression's recorded obligations. `--license-policy share-alike-free` refuses a row
|
|
120
|
-
whose expression
|
|
121
|
-
stating no grant of its own. Until 2026-09-27 the decision was an anchored prefix match over the column
|
|
122
|
-
|
|
120
|
+
whose expression includes share-alike, and separately a row whose text cites a share-alike license while
|
|
121
|
+
stating no grant of its own. Until 2026-09-27 the decision was an anchored prefix match over the column.
|
|
122
|
+
That match admitted the second class.
|
|
123
123
|
|
|
124
124
|
Which terms the build elects for a dual-licensed source still sits in a docstring rather than in the data.
|
|
125
125
|
BAN is `Licence Ouverte` or ODbL, and the `ban` adapter stamps the former. Still open.
|
|
@@ -137,12 +137,12 @@ terms. It is a backlog made checkable: **twenty-nine rows of 426 are ingest-elig
|
|
|
137
137
|
`ingestEligibilityProblems()` answers for the other 397 with the reasons rather than a bare `false`.
|
|
138
138
|
|
|
139
139
|
Two tables. The jurisdiction table enumerates all 250 — every ISO 3166-1 alpha-2 code plus the
|
|
140
|
-
operational `XK` — whether or not anybody found a source
|
|
141
|
-
of them. A jurisdiction with no sources states `researchState` and a `stateReason`, so "
|
|
142
|
-
|
|
140
|
+
operational `XK` — whether or not anybody found a source. The source table holds 426 rows across 240
|
|
141
|
+
of them. A jurisdiction with no sources states `researchState` and a `stateReason`, so "not yet
|
|
142
|
+
researched" is written down rather than inferred from an empty list.
|
|
143
143
|
|
|
144
144
|
`readAddressSourceRegister()` refuses a register that fails its audit. Regenerate it with
|
|
145
|
-
`mailwoman corpus source-register
|
|
145
|
+
`mailwoman corpus source-register`. `data/PROVENANCE.md` records the command, the input row counts,
|
|
146
146
|
and the three fields no row resolved.
|
|
147
147
|
|
|
148
148
|
### When a jurisdiction has no row yet
|
|
@@ -154,7 +154,7 @@ jurisdiction the register calls `unexamined`, and promote what you resolve into
|
|
|
154
154
|
|
|
155
155
|
| Sector | Lookup |
|
|
156
156
|
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
157
|
-
| business/legal | GLEIF Global LEI Index, the jurisdiction's own
|
|
157
|
+
| business/legal | GLEIF Global LEI Index, filtered to the jurisdiction's own records |
|
|
158
158
|
| business register | GLEIF Registration Authorities List, for the local official register |
|
|
159
159
|
| health | the national Health Facility Master List, discovered or validated through the WHO's geolocated health-facility data |
|
|
160
160
|
| education | the national school register or EMIS, with Giga Maps' government-sourced records as a discovery layer |
|
|
@@ -163,10 +163,10 @@ jurisdiction the register calls `unexamined`, and promote what you resolve into
|
|
|
163
163
|
| procurement/grants | the national e-procurement, supplier or award register, and the Open Contracting Partnership's data registry where the country publishes to it |
|
|
164
164
|
| environment/industry | the national pollutant-release register or industrial permit register, located through PRTR.net or the OECD |
|
|
165
165
|
|
|
166
|
-
A global aggregator is a locator, never the source. When one
|
|
166
|
+
A global aggregator is a locator, never the source. When one republishes a national official record,
|
|
167
167
|
keep the national publisher's provenance — the register has `publisher` and `sourceURL` fields for
|
|
168
168
|
exactly that, and the one `verified-corpus-stale` row is what happens when an aggregator's copy
|
|
169
|
-
stops and
|
|
169
|
+
stops updating and no researcher checked the national portal behind it.
|
|
170
170
|
|
|
171
171
|
## Related
|
|
172
172
|
|