Repository navigation
Design: the 3.0 Lexicon surface, configuring by reading (#754, 4i decided) - #988
Merged
Merged
Conversation
…posed) Proposes the API the 2026-10-28 Lexicon-surface decision left open: add/remove by words and a reading kind, readings_of for queries, a constructor narrowed to the lists and masks, the choice recorded on the Lexicon so chained choices union, and a 2.x pickle loaded where its sets translate back to readings. Proposed, not decided; nothing is built. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The default's base holds every index row, its off readings included, so a choice can still turn them on; a 2.x lexicon with a word in both titles sets translates as a title; the caller counts leave out surnames, which stays; the field count and the ADDED_IN pointer corrected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A 2.x pickle translates as the default plus a log; a lexicon keeps its base and an ordered edit log apart; replace carries the underscore state; the default's base loads lazily; the views read the lexicon's kinds; an add that changes nothing warns; equality and | state the choice; the strict supersession is marked; name and relation are categories only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A 2.x state translates onto the nearer named base, so a 2.8 pack fragment stays empty-based; the warning is narrowed to a title made phrase-only by a given reading under no choice; bases compare by name, a snapshot by its rows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 4i-b row names the narrowed warning; the 2.x translation removes a word first only where the base holds it, so the 2.8 fixture's lexicon equals its fresh 3.0 spelling. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Logs compare as written; parser_for recompiles and refuses with the choice named; the underscore choice parameters are validated, a private exception to 3j; a 2.x chosen parser loads with no choice; the title warning fires only on a new title kind; bound_given is a fifth named kind; parser_for joins a pack fragment under the caller's lexicon. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…dings (#754) The title warning is decided, with its own entry and Standing line; it warns save a property update of a held title reading, so a re-add of dean's own kind warns again. No 2.x pickle carries a choice, so that paragraph goes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…entence (#754) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Quote 3j verbatim and treat the underscore parameters as a private route, not an exception; item 4 says the choice is set publicly only by parser_for; fragments join in pack order, a later pack winning, before the caller's lexicon; edits stored frozen; the parser_for clash offers raise (recommended) or caller-wins; the decided entry's attribution follows the file's head convention. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ry (#754) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The configure-by-reading API is decided as recommended; caller-wins at parser_for, an eager default base and refusing every 2.x pickle are declined. The chained-choices entry and 3j's dropped-listing clause are superseded, effective with 4i-c; Standing and Open lines updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The shape question no longer calls the method names open; the decision entry carries a SUPERSEDES: line; the Declined reason names the overlap rule the dean customization round-trips under. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 2, 2026
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.
Docs-only. This PR records the decided API for 3.0's
Lexiconsurface, the part the 2026-10-28 decision ("a caller configures vocabulary by reading, and the compiled sets become internal") left open. Decided on 2026-11-02 as recommended; the title warning was decided on 2026-11-01. Nothing is built.docs/design/vocabulary-model-rfc.md:Lexiconsurface: configuring by reading", with seven items and the options weighed for each;docs/design/decisions/vocabulary-model.md:Decided
Lexicon.add(*words, kind, **properties)andLexicon.remove(*words, kind=None), with kinds and properties spelled as the language files spell them.compile_readings.generation,credentialsandpatronymicviews read the kind from the lexicon; rules/R8 and rules/R9 are amended when 4i-b builds it.addwarns when agivenreading makes the title reading it adds phrase-only, namingremove(w, kind="given"). A property-only update is exempt.Lexicon.readings_of(word)returns a publicLexiconReading, and the repr counts readings by kind.parser_forvalidates a choice.|is later-wins.parser_forjoins fragments in pack order, with the caller's lexicon last.parser_for, naming the choice.Lexiconrecords its languages and strictness, set publicly only byparser_for.Reading.languagesfollows the choiceDeclined:
parser_for;add, a reading object, new method names, a publicIndexReading, per-category predicates, recording no choice, aParserfield, and a pickled base by reference.Review
deanpickle round trip;replacedropping state;|and pack order;The doc tests pass (2,186).
🤖 Generated with Claude Code