[Mova](https://md.mova.elamur.ai/free/en/) · [this page in HTML](https://mova.elamur.ai/free/en/docs/dialects/mova/seeds/xpos-not-empty/)

[home](https://md.mova.elamur.ai/free/en/) / [docs](https://md.mova.elamur.ai/free/en/docs/) / [dialects](https://md.mova.elamur.ai/free/en/docs/dialects/) / [mova](https://md.mova.elamur.ai/free/en/docs/dialects/mova/) / [seeds](https://md.mova.elamur.ai/free/en/docs/dialects/mova/seeds/) / XPOS is never empty — proposal

# XPOS is never empty — proposal

**Proposal: accept** the validator 0.2.8 rule (`empty-string-in-xpos`) as a CoNLL-U writer gate for all export targets, not only `ud-next`.

**What exactly in `mova`.** An unknown XPOS is written as `_`; an empty string is never written. This mainly concerns future languages with string XPOS ([The Mova dialect: a UD metadialect, treebanks, and converters](https://md.mova.elamur.ai/free/en/docs/docs/dialect/), section "Training on the metadialect"). In `en`, XPOS is always a PTB tag.

**Why.**

- the 2.19 validator will reject a file with an empty XPOS as a level 2 error;
- for 2.18 `_` is also correct, so there is no loss;
- right now there is no empty XPOS anywhere: EWT, 13 other English 2.18 treebanks and `corpus/mova-*-en.conllu` — 0 lines (grep).

**Check.** This cannot be expressed in the seed rule language: it does not see raw columns. The gate is in the writer code, with a negative control: a line with an empty XPOS must produce an error.

**Origin.** [XPOS cannot be an empty string (validator)](https://md.mova.elamur.ai/free/en/docs/dialects/ud-next/seeds/xpos-not-empty/).

Mova decides.

- [← previous who, whom, whose: case and the lemma who — proposal](https://md.mova.elamur.ai/free/en/docs/dialects/mova/seeds/wh-case/)
- [↑ back to dialects/mova/seeds/](https://md.mova.elamur.ai/free/en/docs/dialects/mova/seeds/)
