C-i needs a positional qualifier, and the never-given particles get evidence records - #392
Merged
Merged
Conversation
C-i as first recorded asked whether a word is borne as an ordinary name
in some tradition. Applied to this set's most load-bearing member it
self-destructs: "De" is a borne Bengali and Odia surname
(parse("Bimal De").family == "De"), so the criterion said mark `de`
AMBIGUOUS -- which would break "de la Vega" and every leading-particle
reading.
The qualifier the existing set was already obeying: P1 acts on the
LEADING position, or a lone particle in the GIVEN role, so what matters
is whether the naming use occupies THAT position. van/bar/do collide
there and are ambiguous; "De" is a trailing surname and never reaches
the rule.
Consequence rather than tidying: `das` was called ambiguous on #360
under the old reading. Measured, "Anjali Das" and "Bimal Das" are
unchanged by never-given `das`, while "Maria das Neves" GAINS its
particle -- family="Neves" today, family="das Neves" with it. The old
reading would have declined a fix. Corrected on #360, which carried the
wrong table publicly.
Caught by writing a per-word evidence record for `de`. A verdict alone
hides its reasoning; a record has to state why, which forces the
collision question. The criterion had survived three review agents and
a merge because nothing tested it against `de`, and the error pointed
at the safe side so it could never surface as a misparse.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Comments only -- membership is byte-identical, 28 never-given members before and after, 3459 tests green. #360's grievance is that only 9 of the 39 ambiguous members were ever individually justified. The never-given side had the same gap and is the side that matters: it is the falsifiable claim, since one attested bearer in the acting position overturns it, while "ambiguous" is the safe default and needs no argument. Each entry now states what the word IS -- article, preposition, or patronymic marker -- because that is the only form a never-given record can take. One bearer settles the ambiguous side; no amount of searching settles absence. The convention, and the reason it costs nothing: a BARE entry means nobody has examined it. Absence of a comment is the audit record, so #360's remaining work is visible at a glance rather than needing a ledger. Following the #269 Arabic/Hebrew blocks' style, which already did this for their own members. Two entries carry the interesting cases. `de` records that "De" is a borne Bengali/Odia surname but a trailing one, which is what forced C-i's positional qualifier. `vd` records that both its readings are non-names, so C-ii decides it on frequency. Not included: the ambiguous members #360 lists as candidates to move (mc, ste, aan, aen, heer, te, tho, thoe, vel, vande). Their records are their judgments, and #360 has not made them -- writing a comment now would pre-judge the issue. They stay bare, which the convention already reads as unexamined. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #392 +/- ##
=======================================
Coverage 98.51% 98.51%
=======================================
Files 44 44
Lines 2895 2895
=======================================
Hits 2852 2852
Misses 43 43 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Two commits. Comments and one criterion correction — membership is
byte-identical, 28 never-given members before and after, 3459 tests
green.
C-i was wrong on
deC-i as recorded yesterday asked whether a word is borne as an ordinary
name in some tradition. Applied to this set's most load-bearing member
it self-destructs:
So C-i said mark
deambiguous, which would breakde la Vegaandevery leading-particle reading.
The missing qualifier is position, and the existing set was already
obeying it. P1 acts on the leading position or a lone particle in the
given role, so what matters is whether the naming use occupies that
position:
It reverses a verdict, and the old reading would have declined a fix
daswas called ambiguous on #360 under the old reading. Measured:The surname is trailing, the rule acts leading. #360's table is
corrected in a comment there, since it was public.
The records
The never-given side is the falsifiable claim — one attested bearer in
the acting position overturns it — so it is the side worth recording.
"Ambiguous" is the safe default and needs no argument.
Each entry now states what the word is (article, preposition,
patronymic marker), because that is the only form a never-given record
can take: one bearer settles the ambiguous side, no amount of searching
settles absence.
A bare entry means nobody has examined it. Absence of a comment is
the audit record, so #360's remaining work is visible at a glance
without a separate ledger. Style follows the #269 Arabic/Hebrew blocks,
which already did this for their own members.
Deliberately not included: the ambiguous members #360 lists as
candidates to move (
mc,ste,aan,aen,heer,te,tho,thoe,vel,vande). Their records are their judgments, and #360hasn't made them — a comment now would pre-judge the issue. They stay
bare.
How the flaw was caught
Writing a per-word record for
deis what falsified the criterion. Averdict alone hides its reasoning; a record has to state why, which
forces the collision question. C-i had survived three review agents and
a merge because nothing tested it against
de— and the error pointedat the safe side, so it could never have surfaced as a misparse.
That is the argument for the records existing, one word into writing
them.
Verification
uv run --frozen pytest— 3459 passed, 20 skipped, 11 xfailed. ruffclean.
len(particles - particles_ambiguous) == 28before and after.Note these are plain
#comments, not#:doc-comments, so they areinternal and do not reach the rendered API reference.
🤖 Generated with Claude Code