HermitCrab conformance: 26 fixtures flagged fieldworks_producible still use a slot-rule outputPartOfSpeech FieldWorks never writes

Chiusa
#612 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
28/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp, xml
Ambito
testing

Direzione di ricerca

Start with the counting method in the issue, then look at HermitCrabInput.dtd line 244 for the default linear order and XmlLanguageWriter.cs line 586 for when the attribute is written. Check HCLoader's Morphology and Clitics strata, then the grammar.xml fixtures and edge-cases/morphotactic-attribute-breadth. Done means the fieldworks_producible flags agree with the fixtures, and a check fails if a slot rule with outputPartOfSpeech is flagged true. The issue is still open, so confirm scope with maintainers first.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

18 of 127 conformance fixtures and 8 of 16 stress fixtures are flagged fieldworks_producible: true but give a slot rule an outputPartOfSpeech, which FieldWorks never writes. The flag overclaims. A reader cannot yet trust it to mean that a real project can produce the grammar.

Status: open. The first retirement pass only acted on fixtures flagged false; it is on #480, and the stress half is on #578.

What we know, at e9569ec0:

  • Identity outputPartOfSpeech on a slot rule: 18 conformance fixtures. Dropping it changed no parse in the fixtures already converted.
  • edge-cases/morphotactic-attribute-breadth also has a partial="true" entry with a part of speech, a partial rule in a slot, and a partial rule with outputPartOfSpeech.
  • 52 conformance fixtures have a linear stratum: 5 explicit and 47 by the DTD default of linear.
  • HCLoader builds its Morphology and Clitics strata as Unordered. Surface sets no order, so a linear Surface stratum with no rules may be legitimate.

Not known: how many of the 52 have morphological rules in a linear stratum, and whether flipping them to unordered changes any parse.

Proposed change: a one-line drop in each slot-rule fixture, one rebuild of morphotactic-attribute-breadth, and a per-stratum count for linear, then convert or delete. Expected parses come from the engine. A check that fails on these patterns when a fixture is flagged true would stop them coming back.

Related: #480 (open), #578 (open), #552 (open).

Next: count the linear strata that hold morphological rules, then convert the fixtures.


Counting method

Parsed every grammar.xml at e9569ec0: a fixture counts when a rule named in a Slot morphologicalRules attribute has outputPartOfSpeech, and a linear count when any Stratum has morphologicalRuleOrder="linear" or omits the attribute. HermitCrabInput.dtd:244 sets the default. XmlLanguageWriter.cs:586 writes the attribute only for unordered. MPR feature groups were reviewed and match the groups HCLoader hardcodes, so they are not in this list.

🤖 Generated with Claude Code

Lingua principale
C#
Stelle
29
Fork
16
Merge medio
5g 20h
PR unite (30g)
11

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di sillsdev/machine

Tutte le issue di sillsdev/machine

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.