POS-scoped deletion blocks metathesis analysis of other words (ParseWord incomplete)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start with the ParseWord path and the conformance fixture languages/metathesis-phase-isolation, adding the prHDel rule to reproduce the missing parses for nui and mu+i. Trace how the optional deletion node is handled across deeper strata and compare it with rewrite-rule handling. Done means ParseWord returns NIU and MI+3SGU while forward generation and the existing fixture expectations still pass.
Written by the indexing model from the issue text.
Description
A part-of-speech-scoped deletion rule makes metathesis words of another part of speech unparseable. Forward generation still produces them, so ParseWord is incomplete.
Repro
Start from conformance fixture languages/metathesis-phase-isolation (PR #480, 34215889) and add one deletion rule to the surface Morphology stratum, scoped to a part of speech that no metathesis word uses:
<PhonologicalRule id="prHDel">
<PhoneticInput><PhoneticSequence><SimpleContext naturalClass="ncH" /></PhoneticSequence></PhoneticInput>
<PhonologicalSubrules>
<PhonologicalSubrule requiredPartsOfSpeech="posRedup">
<PhoneticOutput><PhoneticSequence /></PhoneticOutput>
<Environment>
<LeftEnvironment><PhoneticTemplate><PhoneticSequence><SimpleContext naturalClass="ncVowel" /></PhoneticSequence></PhoneticTemplate></LeftEnvironment>
<RightEnvironment><PhoneticTemplate><PhoneticSequence><SimpleContext naturalClass="ncVowel" /></PhoneticSequence></PhoneticTemplate></RightEnvironment>
</Environment>
</PhonologicalSubrule>
</PhonologicalSubrules>
</PhonologicalRule>
(ncH = <SegmentNaturalClass id="ncH"><Segment segment="cH" /></SegmentNaturalClass>; add prHDel to the Morphology stratum's phonologicalRules.)
| Word | Root stratum / POS | Expected | Got |
|---|---|---|---|
nui |
SimpleMeta / posSimpleMeta | NIU |
none |
mu+i |
ComplexMeta / posComplexMeta | MI+3SGU |
none |
Both words still generate forward (they are in the fixture's expected set, and removing prHDel restores them). The rule can never apply to either word in synthesis: wrong part of speech, and their roots live in deeper strata.
What seems to happen
Unapplying the deletion inserts an optional h between every vowel pair, before the part of speech is known, so n u (h) i. The deeper strata's metathesis rules then fail to match u–i adjacency across that optional node, so neither the (h)-present nor the (h)-absent reading reaches the metathesis unapplication. The optional node should be skippable, as it is for rewrite rules.
Notes
- Found while adding reduplication × phonology cases for #519. The fixture now uses
V _ aso it doesn't hit this. - It is independent of #519; master fails the same way.
- Scope unknown: any POS-scoped deletion in a shallower stratum may block metathesis in deeper ones.
- Dominant language
- C#
- Stars
- 29
- Forks
- 17
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 7
Getting set up
We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sillsdev/machine
-
ConvertUsfmVersificationHandler does not move headings immediately before re-versified verses to the new chapterPossibly taken @Enkidu93 claimed this 3 days ago. Open
sillsdev/machine#518 · 1 assignee ·
Maintainers usually reply within 1 day
-
ConvertUsfmVersificationHandler doesn't merge verses correctlyPossibly taken @Enkidu93 claimed this 3 days ago. Open
sillsdev/machine#517 · 1 assignee ·
Maintainers usually reply within 1 day
-
Environment matchers pay for captures they never read; key the traversal on what the caller consumesOpen
Difficulty 5/5 Over a week Newbie friendliness 45/100
sillsdev/machine#515 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
HermitCrab: Word.ExpandAlternatives discards Unify's success flag and can null the realizational FSOpen
Difficulty 5/5 Over a week Newbie friendliness 38/100
Maintainers usually reply within 1 day
All issues in sillsdev/machine
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
fluentassertions/fluentassertions#3353 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 2/5 Half a day Newbie friendliness 78/100
unoplatform/uno#24769 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
AvaloniaUI/Avalonia#22323 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
microsoft/onnxruntime-genai#2633 ·
Maintainers usually reply within 1 day