Skip to content

G-g: an inflectional pair whose renderings differ by more than the plural marker #22

Description

@tamnd

Found while shipping M4 (#10). G-e now allows a singular to sit beside its own plural, because Vietnamese has no inflectional plural and the pair correctly shares one rendering. That relaxation is right, but it opened a hole: nothing checks that the pair actually agrees.

Vietnamese marks plural optionally, with a classifier in front, so the legitimate difference between the two renderings of an inflectional pair is at most a leading "các" or "những". Anything more than that is a defect. Three real ones survived into the v1 curation and I only caught them by reading rows:

  • type parameter against type parameters, where the plural had picked up a different head noun
  • backward compatibility against backwards compatibility
  • one comprehension row rendered a third way from its two siblings

What to build

A new rule, G-g, over the term list rather than over a catalog. For every pair of rows whose English is inflectionally related under the existing _inflected helper in glossary.py, strip a leading các or những from both renderings and fail if what is left differs.

It reuses _inflected and _bare, which already exist and are already tested, so this is a small rule. Put it beside G-e and G-f in glossary check, not in the catalog audit, since it is a statement about the contract and not about any translation.

Notes

The classifier list is exactly các and những and should not grow without evidence from the human corpus. A rule that strips anything a translator might reasonably put in front stops being a rule.

This is a check, not a fix. There is no mechanical answer to which of the two renderings is the right one, so it reports the pair and stops.

Metadata

Metadata

Assignees

No one assigned

    Labels

    deterministicNo model calls, reproducible from the corpus aloneglossaryTerminology contract and the matcher

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions