Apply the rulings, and stop a groupsign swallowing a whole run - #205
Merged
Merged
Conversation
added 3 commits
September 20, 2026 20:24
Article 10.9.3 lets only braille, great, children, blind, first, friend, good, letter, little and quick stand inside a word that is not itself on the shortform list. A capitalised letters-sequence can therefore collide only through those ten: GDP keeps its grade-1 symbol because goodp may take the good shortform, while ACS, NEIS and ALS lose theirs because accordings, neithers and alsos cannot be written at all. National Institute of Korean Language, 2026-09-17.
With no recorded pronunciation the stress has to be read from the word's structure. An ever that opens the word and leaves a word of its own behind is a compound's first component and carries the stress, so EVERGLOW takes the contraction; eversion keeps its letters because sion is not a word. National Institute of Korean Language, 2026-09-17.
The corpus is not the answer key where the National Institute of Korean Language has ruled against it: severity and reverse are spelled out, the bracket pair around a Roman gloss is the transcriber's choice, and Article 37 reaches only the word the Roman indicator stands in front of. Also write down how a candidate is chosen. Both rejected attempts this round were picked from failing words alone, and both reversed under a full census.
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
Contributor
Braillify testcase report
Command: |
Contributor
Changepacksbraillify@2.2.0 → 2.2.1 - libs/braillify/Cargo.tomlPatch
braillify-c@0.2.0 → 0.2.1 - packages/c/Cargo.tomlPatch
Braillify@2.2.0 → 2.2.1 - packages/dotnet/Braillify/Braillify.csprojPatch
BraillifyNet@2.2.0 → 2.2.1 - packages/dotnet/BraillifyNet/BraillifyNet.csprojPatch
braillify-go@2.0.1 → 2.0.2 - packages/go/Cargo.tomlPatch
braillify@2.2.0 → 2.2.1 - packages/node/package.jsonPatch
braillify@2.2.0 → 2.2.1 - packages/python/pyproject.tomlPatch
braillify_rb@0.1.0 → 0.1.1 - packages/ruby/Cargo.tomlPatch
|
Article 10.9.5 adds s to every shortform on the list, not only to the ten that Article 10.9.3 lets stand inside another word, so ACS, NEIS and ALS collide with accordings, neithers and alsos exactly as SDS does with saids. The grade-1 symbol goes in front of all of them. This reads 74 corpus sentences differently from the reference, which omits the symbol 583 times where the rule calls for it. The rules are the answer key, not the corpus. National Institute of Korean Language, 2026-09-20.
added 3 commits
September 20, 2026 23:11
Counting only the letters-sequences that take the symbol at a space, the corpus keeps it after a hyphen 55 times against 3 and drops it after a digit 96 times against 3, after a slash 9 against 3, and after a plus 5 against 0. That is what permits_grade1_boundary_after_run already does. The 42 places where the corpus writes the symbol and we do not are its own inconsistency, so leave the boundary alone.
Article 10.4.2 spells ch, sh, th, wh, ou and st out when they make up a whole run, because the one-cell groupsign reads as the wordsign there: ST would be still, SH would be shall. The rule was already here but it only fired next to a digit and away from a word start, so the corpus shapes that actually occur — (ST, (SH), 80Wh, Th17, Ch.1 — kept the groupsign. 80 more corpus sentences read correctly.
added 5 commits
September 21, 2026 01:24
Article 10.12.1 reads an all-capitals letters-sequence in Korean text as letters, so a groupsign must not swallow the whole run: AR is the two cells for a and r, not the one cell for ar. The corpus agrees on every sign this touches — ar 1157 spelled against 2, gh 552 against 0, en 18 against 0, be 86 against 0 — while the same signs in lower case keep their groupsign, er 6 contracted against 0 and be 27 against 0. in stays out of the set: that one cell is also its lower wordsign, which Article 37's addendum governs. 53 more corpus sentences read correctly.
Article 10.12.1 spells the letters of an abbreviation, which is why the rule's own examples write DAR as the three cells for d, a and r rather than the one cell for ar, and EST as e, s, t rather than e plus st. A standing ST therefore may not be the one cell that reads as the capitalised wordsign "still". The short-acronym heuristic that was measured and rejected here is a different rule: it asked whether a whole word should lose contractions. This asks only whether the word IS a groupsign. THE, SHE and OUT are words and keep theirs; ordinals stay digit-adjacent and are untouched. The corpus is Korean prose and holds almost no English-only sentence, so its count does not move: 455,730 before and after.
Article 49 defers to the Hangul orthography, which writes a hyphen joined to the words on both sides, and KoreanHyphenSpacingRule already does that. A dash standing alone at the head of the text and pulling Korean behind it is not that hyphen — it opens the item, so the braille separates it. Counted over the whole corpus, a dash that starts the text is followed by a blank 50 times against 14, while the same dash anywhere else is joined 10 times against 0 at the head of a later word and 4,619 times against 0 inside one. Only the first of those three changes. 39 more corpus sentences read correctly.
added 4 commits
September 21, 2026 10:31
Article 49 defers to the Hangul orthography, which joins a hyphen to what stands on either side, and the rule already did that — but only when Korean stood on both sides. The exception it meant to carve out is Article 46's subtraction sign, whose operands are Roman letters or digits, so the test belongs on the operands, not on Korean. Counted over the whole corpus, a hyphen written with a space on each side is joined by the reference in every neighbourhood except that one: closing bracket then Korean 47 against 3, other then Korean 26 against 0, Korean then digit 9 against 0, Korean then Roman 7 against 2 — while digit against digit is spaced 8 times against 0. 59 more corpus sentences read correctly. The marker bench reads 837 / 146 / 304 / 395 against 838 / 148 / 307 / 388: three fall, one rises, because joining lets 12 more sentences line up word-for-word and enter the comparison at all (8,554 to 8,566). On the shared sentences the markers improve.
The coverage gate found one line it could not reach, and it was right to: a word token never carries an empty character list, so the arm that asked what to do when a hyphen had nothing on one side of it was dead. Asking the two ends directly whether they are alphanumeric says the same thing without the arm. The leading-dash rule had the same shape for a different reason. Its first question, whether the index is zero, and its second, whether the first token is a word, can be asked together, and merging them leaves a single exit that ordinary input walks through constantly. Neither changes what the encoder emits: the corpus still reads 455,828 and the marker bench still reads 837 / 146 / 304 / 395.
Article 49 defers to the Hangul orthography, which writes a bracket against what it encloses. Print sometimes sets `확인 ( 가나 ) 다라` with the brackets held off their contents, and the braille was copying that spacing instead of the rule. Counted over the whole corpus, the reference closes that gap every time it occurs and never once opens it: 78 after an opening paren, 57 before a closing one, 24 around the double angle brackets. The outer faces are ordinary word spacing and are left alone — after a closing bracket the reference keeps the space 257,108 times. Two neighbourhoods look like this but are not. A slash reads as the same kind of hugging punctuation and the corpus joins it 86 times to 3, but six rule fixtures write it spaced even between Korean words, so the rules decide it and the slash stays out. An opening bracket standing directly against its closing partner is naming the bracket rather than wrapping anything — article 49's own `『 』 안에는` — so that seam stays open too. 147 more corpus sentences read correctly, 455,975 of 467,121. The marker bench reads 837 / 145 / 305 / 398 against 837 / 146 / 304 / 395, three more errors over six more sentences that now line up word-for-word and enter the comparison at all (8,566 to 8,572). The one snapshot that moved, `# ( A )`, moved the way it should.
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.
국립국어원 회신(2026-09-17, 2026-09-20)을 반영하고, 그 과정에서 찾은 규정 위반 셋을 고친다. 말뭉치 455,573 → 455,769 (+196), 규정 fixture 5141/5141 유지, 로마자 구간 표지 4수치(838 / 148 / 307 / 388) 불변.
1. 1급 점자 기호의 판정을 규정대로 정리한다
longer_use_allowed의 지름길 때문에 판정이 느슨했다. 회신이 준 두 조문으로 갈래를 셋으로 좁혔다.CD= could → ⠰sSDS·ACS·NEIS·ALS→ ⠰GDP= good+p → ⠰about·almost·him은 §10.9.5 자체의 예외다. 규정 fixtureLLC·Blvd·Grtsamada는 ⠰ 를 유지하고llama·Llanelli는 뒤가 모음이라 붙지 않는다.2. 사전에 없는 낱말의 ever 는 어원으로 쪼개 강세를 본다
ever로 시작하고 남은 글자가 그대로 한 낱말이면 합성어의 앞 요소여서 첫e가 강세를 받는다.EVERGLOW= ever + glow → ⠐⠑ /eversion은sion이 낱말이 아니라 철자(규정 fixture 유지).3. 묶음약자가 낱말 전체를 삼키지 못하게 한다 (+133)
§10.4.2 —
ch·sh·th·wh·ou·st가 run 전체면 철자다. 한 칸 묶음약자가 그 자리에서 낱말표로 읽히기 때문이다(⠌ = still, ⠩ = shall). 규칙은 있었으나 "숫자에 닿고 낱말 첫머리가 아닐 때"로 좁아 실제 꼴((ST·(SH)·80Wh·Th17·Ch.1)이 전부 빠져 있었다.§10.12.1 — 대문자 run 전체는 글자로 읽는다. 판별자는 약자 종류가 아니라 대문자 여부였다.
ARGH·EN·BE·EDer·bein만 제외 — ⠔ 가 §10.5 낱말표 겸용이라 제37항 붙임이 따로 다스린다(측정도 35:20 으로 제외를 지지).같은 것을 영어 문맥에도 적용했다.
ST.가⠠⠠⠌= 대문자 "Still." 로 읽히고 있었다. 근거는 §10.12.1 fixture 자신이다 —DAR→⠠⠠⠙⠁⠗(≠⠠⠠⠙⠜),EST→⠠⠠⠑⠎⠞(≠⠠⠠⠑⠌),TEN/gh→⠛⠓. 이 자리에 "짧은 두문자어 휴리스틱은 9 얻고 11 잃어 기각"이라는 주석이 있었는데, 이번 조건은 그보다 좁다(run 전체가 정확히 묶음약자).THE.·SHE.·OUT.은 실제 낱말이라 약자를 유지하고, 서수1ST·4TH는 숫자 인접이라 무관하다.4. 글머리 붙임표 뒤를 띄운다 (+39)
제49항이 붙여 쓰게 하는 붙임표는 낱말과 낱말 사이의 것이다. 글 첫머리에 홀로 서서 한글을 끌고 오는 붙임표는 그 항목을 여는 표지다.
5. 말뭉치를 따라가면 안 되는 자리를 문서로 남긴다
severity·reverse는 철자가 맞다. 말뭉치 12건이 검수에서 놓친 오류다.Yes, I can.의can은 약자 ⠉ 를 쓴다.아울러 개선 후보를 고르는 법을 적었다. 이번 세션에 기각한 시도는 모두 실패한 어절만 세어 골랐고 전수 교차표에서 뒤집혔다.
측정
남은 것
Weverse부류 64건은 회신이 "음성 정보나 음운 관련 정보가 없다면 자동변환으로 정답을 낼 수 없다"고 확인해 주었다. 쫓지 않는다.