Underdefined phonology: provisional definitions, and analysis-side membership of featureless segments
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
This issue is a discussion about analysis-side unification for featureless segments and where provisional definitions should live; it does not identify files or tests. Start by locating HermitCrab's analysis rule-unapplication and the environment/class matching paths, then compare their behavior with synthesis. Done means establishing whether the extra mupa analysis is intended and giving a reasoned recommendation on the policy's proper home.
由索引模型根据 Issue 内容生成。
描述
HermitCrab needs a fully defined phonology. When a FieldWorks project leaves a letter or a natural class undefined, FieldWorks' HCLoader drops the affected allomorphs and environments (with diagnostics), so a project that parses under XAMPLE loses words, or gains wrong parses, when it switches to HermitCrab. AcceptUnspecifiedGraphemes recovers many of these forms, but not all.
PanGloss (a Rust port of HermitCrab) has decided to run such "underdefined" projects anyway, by supplying a provisional definition for each undefined thing and reporting each one to the author as an informational finding. A fully defined project still parses exactly as HermitCrab does. We'd like to know whether this belongs in HermitCrab itself, in HCLoader, or nowhere upstream, and to raise one likely HermitCrab inconsistency we found along the way.
What we measured
12 synthetic project families, run through native XAMPLE 3.12.23.21, FieldWorks HCLoader 9.3.10.1452 (LCModel 11.0.0.55173) and Machine HermitCrab 3.8.2.0:
- Undefined letters in roots and affixes. XAMPLE keeps the words. HermitCrab with
AcceptUnspecifiedGraphemesoff drops them; with it on, the tested forms come back. - A multigraph exemplar (
{ch}in the LDML) that is not a phoneme. XAMPLE returns both rootchumaand prefixc-+ roothuma. HermitCrab withAcceptUnspecifiedGraphemeson segmentschas one unit and loses the second analysis. - An environment naming a class that does not exist (
/ [V] _, no V). FieldWorks omits the restriction before XAMPLE sees it, and HermitCrab discards it too; both accept the affix unrestricted. - A featureless phoneme and a feature-defined class. In environments and forward rules, HermitCrab does not treat a featureless
xas a member ofV = [voc +](subsumption). When unapplying a phonological rule during analysis, it does (unification), and that yields an extra root analysis that synthesis would never produce (mupagets a second root). This looks like an inconsistency in HermitCrab itself.
What PanGloss does
- An undefined letter becomes a provisional segment, one visible character at a time. It belongs to no class that names letters or requires a feature value; a class with no conditions still matches it.
- A phoneme with no features belongs to no class that requires a feature value, in every path, including analysis. That removes the extra analysis above, which is the one place PanGloss now differs from HermitCrab for these segments.
- Phonological rules the author wrote still apply, even though XAMPLE ignored them.
Questions
- Is the analysis-side unification behaviour for featureless segments intended? If not, should analysis use subsumption, matching environments and synthesis?
- Would a provisional-definition policy be welcome in HermitCrab or HCLoader, or should it stay in PanGloss?
The raw outputs, full analysis identities, controls and errors for every case are available. This is a discussion, not a bug-fix claim.
- 主要语言
- C#
- 星标
- 29
- 派生
- 16
- 平均合并
- 6 天 6 小时
- 30 天内合并 PR
- 10
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
sillsdev/machine 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 45/100
sillsdev/machine#524 · 4 条评论 ·
维护者通常 1 天内回复
-
Hermit Crab
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 1 天内回复
-
Environment matchers pay for captures they never read; key the traversal on what the caller consumes未关闭Hermit Crab
难度 5/5 一周以上 新手友好度 45/100
sillsdev/machine#515 · 1 条评论 ·
维护者通常 1 天内回复
-
enhancement Hermit Crab
难度 5/5 一周以上 新手友好度 35/100
维护者通常 1 天内回复
相似的 Issue
-
clawsweeper:fix-shape-clear clawsweeper:needs-maintainer-review clawsweeper:no-new-fix-pr clawsweeper:not-repro-on-main impact:ux-release-blocker issue-rating: 🦪 silver shellfish P0
难度 2/5 1-3 小时 新手友好度 72/100
openclaw/openclaw-windows-node#1843 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 66/100
-
kind:ux size:S type:bug
难度 2/5 1-3 小时 新手友好度 78/100
elsa-workflows/elsa-foundation#3256 ·
维护者通常 1 天内回复
-
[Bug]: Revit selector reads process ids 2000-2099 as years (flaky AgentClientTests.AYearOrAProcessIdSelectsTheHost)可能已有人在做 @Wurschdhaud 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 83/100
pyrevitlabs/pyRevit#3817 ·
维护者通常 1 天内回复
-
bug effort:S P2
难度 2/5 1-3 小时 新手友好度 76/100
nightscout/nocturne#2449 ·
维护者通常 1 天内回复