Morphology Generation Specification (Lemma-First)¶
1) Objetivo¶
Evitar cadastro manual exaustivo de todas as formas.
Princípio operacional:
- Cadastro primário em vocabulary (lemma-first).
- word_forms é preenchida por:
1. regras de geração
2. exceções irregulares (override)
Resultado esperado: consistência morfológica, velocidade editorial e rastreabilidade por features.
2) Regras por idioma (EN como prioridade)¶
2.1 Verbos¶
Gerar:
- base
- 3rd person singular (-s/-es)
- past
- past participle
- present participle (-ing)
Features mínimas por forma:
- tense, aspect, person, number, mood, is_irregular
2.2 Substantivos¶
Gerar:
- singular
- plural (-s/-es + regras ortográficas)
- plurais irregulares por override
Features:
- number, countability
2.3 Adjetivos¶
Gerar:
- base
- comparative (-er ou more)
- superlative (-est ou most)
Features:
- degree
2.4 Pronomes/Determinantes¶
Não usar gerador aberto; usar tabela fixa validada.
Features:
- person, number, case, definiteness, gender (quando aplicável)
3) Irregulars e mecanismo de override¶
Ordem de execução: 1. Aplicar regra regular. 2. Aplicar override irregular (prioridade máxima).
Fonte de override (sem migration nova):
- Preferencial: arquivo versionado docs/irregulars/en_verbs.json.
- Alternativa: tabela já existente para irregulares (somente se já existir no schema ativo).
Política:
- O gerador nunca remove forma válida já revisada manualmente.
- Overrides devem marcar is_irregular=true e source=override.
Exemplo mínimo de mapping:
{
"go": { "past": "went", "past_participle": "gone" },
"be": {
"present_1s": "am",
"present_3s": "is",
"present_plural": "are",
"past_1s": "was",
"past_3s": "was",
"past_plural": "were",
"past_participle": "been"
}
}
4) Contrato Admin: ação “Gerar formas” (Word Detail)¶
A ação no painel de detalhe deve:
1. Ler lemma, pos, base_lang.
2. Sugerir formas + features (preview).
3. Permitir edição manual antes do persist.
4. Salvar em word_forms (upsert por word_id + form + feature_signature).
4.1 Request conceitual¶
{
"word_id": "uuid",
"mode": "suggest|save",
"language": "en",
"overwrite_policy": "keep_manual",
"forms": []
}
4.2 Response conceitual¶
{
"word_id": "uuid",
"generated": [
{
"form": "goes",
"features": { "tense": "present", "person": 3, "number": "singular" },
"is_irregular": false,
"source": "rule"
},
{
"form": "went",
"features": { "tense": "past" },
"is_irregular": true,
"source": "override"
}
],
"conflicts": [],
"saved_count": 0
}
5) Regras de qualidade¶
- Não salvar duplicatas semânticas de features idênticas.
- Sempre armazenar features estruturadas (JSON consistente).
- Sinalizar conflito quando forma existente divergir do gerador.
- Manter trilha de revisão humana para exceções editoriais.
6) Roadmap rápido¶
- v1.0: EN rule-based + overrides irregulares.
- v1.1: expansão para outros idiomas com packs de regra.
- v2.0: sugestão híbrida com ranking estatístico + validação humana.
7) Escopo implementado¶
- Implementação atual ativa para
language=enno endpoint admin de geração. - POS suportadas no gerador aberto v1:
verb,noun,adjective. pronounedeterminerretornam erro amigávelPOS not supported for generation.