Parsimony: an allomorph form repeated on one entry with different environments is not flagged

Open
#156 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
54/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
csharp
Domain
tooling

Research direction

Start by reading DecideDuplicateAllomorphs in MeasureRunner.cs and its grouping and limitation text to understand the current finding identities and disposition behavior. Then inspect the Grammar-group Measure patterns and the seeded-defect fixture setup. Done means the new Measure reports repeated forms with differing environment lists, identifies empty or subset lists, and passes both the seeded-defect fixture and clean control.

Written by the indexing model from the issue text.

Description

P-allo-duplicate-form misses an allomorph listed twice on one entry when the two copies have different environment lists. A 25,000-entry grammar has one suffix form listed once with no environment and once with / [V] _; the conditioned copy adds nothing, and Parsimony reported 0 of 25,920 allomorphs. Three nasal-prefix entries show the same shape.

What we know:

  • DecideDuplicateAllomorphs (MeasureRunner.cs) groups by entry, morph type, forms and the ordered environment list, so differing lists never group. Its limitation text says so.
  • Changing that Measure's grouping would change its finding identities and orphan recorded Dispositions.

Proposed change: a separate Grammar-group Measure P-allo-repeated-form, one finding per entry whose allomorphs repeat a form with different environment lists, saying whether one list is empty or a subset of the other (the copy is then subsumed). Static; under 1 s at 25,000 entries.

Next: build it with a seeded-defect fixture and a clean control.

Dominant language
C#
Stars
1
Forks
0
Avg merge
3h 55m
Merged PRs (30d)
36

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sillsdev/motif

All issues in sillsdev/motif

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.