Merged
Conversation
…iscriminators
A matching decision is made per verbatim NAME (the registry's names.yml
keys are names), so the review surface gains a name-grained board mode
(nabu place mine report SOURCE --board): one row per mined name, its
candidate places listed with the discriminators that separate homonym
identities — parent administrative unit, feature type, year span,
coordinates — plus 1-2 attestation snippets in context and both exits.
Names already decided in the registry, or ruled onto the hand stop list
after the mine ran, leave the board censused, never silently.
The parent unit was in the TGAZ dump (parent_vn/parent_tr) but dropped
at derive: migration 035 adds place_index.parent, ChgisIndex carries
the display form ("顺天府 (Shuntian Fu)") beside the kept sys_id, and
the derive persists it for any gazetteer whose rows respond to #parent.
…ccmh dating, batch ticks a) The owner-notes and lemma shelves census their own grains: CensusRow gains notes (urn_notes rows) and lemma_rows (tier-silver fulltext rows), Query::List takes an optional fulltext handle, and both the axis-page holdings cells and the nabu list line render them — two live shelves no longer read as empty. b) local-library manifest languages project into the facet lane (every manifest is multi-language but only the first code becomes the doc language; the trailing claims — ett under 22 facsimile editions, xum, xfa… — were invisible). c) ccmh gains its curated witness-dating overlay: the five codices' standard paleographic century bands ride parse metadata and project through the :bounds_keys timeline shape; the two vitae stay deliberately undated (9th-c. compositions on much later unnamed witnesses — declared, never silent). Posture undatable → partial. d) The fts+lemma index slice ticks per passage batch on both rebuild and refresh paths (the 8.75M-passage silence read as a hang), and rake output is unbuffered so ticks reach background logs as written.
The unmapped-kind worklist (4,048 values / 14,695 docs at the 2026-09-26 census) drains its defensible head: papyri-ddbdp's next HGV tier (~35 values, orders/petitions/contract offers/notes/surveys, plus four reviewed non-claims), elephantine's composite-borne heads (contract, debt instrument), edh prayer, edr's either-or and cetera magica, six iip function labels, isicily's cannot-determine/seat/decree, ogham's cannot-determine, cdli's other-pointer, five oracc labels plus one object-description non-claim, dta's academic-subject tier, and aozora NDC patterns (9x9 literature shelves, Asian history, geography/travel, natural science, folktales, ethnography; four more arts shelves as reviewed non-claims). The standing stay-visible rulings (openiti theology buckets, tlhdig 758-829) are untouched; one representative pin per source guards the round.
… names The top-50 review board (document-spread ranked) resolves: 40 names are ordinary classical vocabulary wearing 1911 cun-zhen village clothes — idiom and quotation crossings (富有之謂大業, 仁者安仁, 歲寒松柏, 自我西郊), fanqie gloss crossings (古木), sentence-boundary artifacts (矣文, 元三), person names (康王, 晏子), prince-title crossings (南王, 西王), and four dominant-reading judgments (清水, 嘉禾, 百丈, plus the 田中-class line crossings). The board's 10 real-geography names go to the nabu-places registry as matched/region/rejected decisions, not the stop list.
…n edges Registry-MATCHED mined names promote their place-candidate edges to ruled attestation edges: kind "place", producer "place-link", scope source×gazetteer, supersede on rerun, the ruled identity ONLY (a homonym candidate the decision does not cite gets nothing; region/ rejected decisions promote nothing — they exist to drain the review board). The materialization deliberately stays in the links journal at the passage grain: a text MENTIONING a place is not FROM it, so document_axes.place_ref (the provenance ladder) is never touched. CLI: nabu place link SOURCE [GAZETTEER]; read back via nabu links. The live run waits for the registry's kanripo rows to reach canonical.
Architecture 15's producer roster never recorded the P96-3 place miner; it and the new promotion seam enter together as the mining pair, with the passage-grain stance (mention is not provenance) stated where the ladder is defined.
Two full-suite failures the packet runs missed: (1) the new fts+lemma batch tick fired on partial batches too, so a fresh tiny corpus's sync fell through to the full index rebuild and stamped its passage count onto the still-open parse+load stage (the non-tty one-close-line contract broke); ticks now fire on FULL batches only, small corpora stay silent, and both behaviors are pinned. (2) The round-6 stop list now carries 清水, which silently emptied the report test's homonym fixture through PlaceMine's default hand-stop read — the mine fixtures pin explicit empty stop/allow lists.
…atalog The shelves table now censuses the owner-notes (2 notes) and silver- lemma (30,999,504 lemma rows) shelves; kind shares restamped after the fold round (unmapped 14,695 → 11,491 docs).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this phase delivers
The place-review verdict board (
nabu place mine report SOURCE --board): the mine's review surface graduates to the decision grain — one row per mined NAME (matching decisions are per verbatim name), its candidate places listed with the discriminators that separate homonym identities (parent administrative unit, feature type, year span, coordinates) plus 1–2 attestation snippets in context and both exits. Names already decided in the nabu-places registry, or ruled onto the hand stop list after the mine ran, leave the board censused. The parent unit was in the TGAZ dump but dropped at derive: migration 035 addsplace_index.parent, ChgisIndex carries the display form, the chgis slice re-derived (81,292 places, 3.3s).The verdict batch (top-50 board by document spread, 3,255,179 candidate edges / 9,906 undecided names): 40 stop-list entries (config/place_stop_names.yml round 6 — idiom/quotation crossings, fanqie glosses, person names, prince-title crossings, dominant-reading judgments), and 10 real-geography decisions minted into nabu-places (PR arvicco/nabu-places#2): 1 matched (杜陵 → chgis:hvd_70633, the Han county under 京兆尹, 23–264), 4 region (江北 · 西江 · 天竺 · 三江), 5 rejected wrong-identities with the real referent named.
The promotion seam (
nabu place link SOURCE,Nabu::PlaceLink): registry-MATCHED names promote their candidate edges to ruled attestation edges (kindplace, producerplace-link, ruled identity only, supersede on rerun). Passage-grain in the links journal by design — a text MENTIONING a place is not FROM it, sodocument_axes.place_refis never touched. The live run follows the registry merge. Architecture §15's producer roster gains the mining pair (the miner itself was never documented).Hygiene riders: (a) the owner-notes and silver-lemma shelves census their own grains (CensusRow notes/lemma_rows;
nabu list+ axis-page holdings cells; live: 2 notes / 30,999,504 lemma rows — both read "empty" before); (b) local-library manifest languages project into the facet lane (141 rows; ett now visible on 30 docs — invisible before); (c) ccmh gains its curated witness-dating overlay (five codices' paleographic century bands via :bounds_keys, 17/19 docs, envelope 950–1100; the vitae declared undated; posture undatable → partial); (d) the fts+lemma index slice ticks per full passage batch on both rebuild and refresh paths (the 8.75M-passage silence read as a hang) and rake output is unbuffered.The fold round: the unmapped-kind worklist head drains across ten sources (papyri-ddbdp HGV tier 2, elephantine composites, edh/edr/iip/isicily/ogham/cdli/oracc labels, dta academic subjects, aozora NDC patterns + reviewed non-claims) — unmapped 14,695 → 11,491 docs (4,048 → 3,821 values), each fold pinned.
Verification round
bin/nabu sync chgis --parse-only— 81,292 places re-derived with parents (3.3s)bin/nabu place mine report kanripo --board --limit 50— 9,906 undecided names, 16m13sbin/nabu sync ccmh --parse-only— 17 updated / 2 skipped; 17 timeline rows, 950–1100rake builders:refresh— timeline → place apply → facets (3,931,569 rows) → kind axis (~19m)bin/nabu kind census --unmapped— 11,491 docs (was 14,695)bin/nabu sync nabu-places:bin/nabu place link kanripothenbin/nabu place mine kanripofor the next board