Context-dependent renderings: English, French, Ukrainian
Most words and many constructions have several valid renderings, and which one is right depends on the context. This folder documents those choices for the three pairs of the translation manuals, in both directions: English and French: renderings by context, English and Ukrainian: renderings by context, French and Ukrainian: renderings by context, with the machine-readable lists en-fr.tsv, en-uk.tsv, fr-uk.tsv. It is the companion of the false-friend lists: a false friend is a rendering that is wrong because it only looks right; a context entry is a choice among renderings that are each right somewhere. A partial false friend (control / contrôler, питання / question) usually has entries in both.
1. The model
A rendering is chosen by a small set of coordinates, the same ones the general manual uses for register (general.md §3):
sense × register coordinate (language + variety + style of speech) × domain × collocation × text type × reader → preferred rendering
- Sense. The source word's meaning in this sentence: issue "problem", "edition", "emission of shares"; справа "matter", "case", "deed", "the right side". The sense comes from the sentence, the paragraph and the world (who acts, on what).
- Register coordinate. The target's language, its variety (France or Quebec French; standard Ukrainian or surzhyk in a character's speech) and its style of speech (official, neutral written, colloquial, slang, a song, a house style). Get is obtenir in a regulation and avoir or choper in a chat.
- Domain. Law, EU, economy, medicine, IT, science, news, military: each fixes terms (case law is jurisprudence; case in medicine is cas, in law affaire, справа).
- Collocation and syntactic frame. The words around it: raise an issue / soulever une question; address a problem / s'attaquer à un problème; звернутися до суду / saisir le tribunal. The frame decides function words too: should in a recommendation, in a condition, in a law.
- Text type. A regulation, a contract, a news report, a manual, a novel's dialogue, a subtitle, a song.
- Reader. The specialist, the general public, a child; and the relation of speaker and addressee, which decides tu/vous and ти/ви/Ви and the forms of address that English does not mark.
Each row of a list is one source word or construction in one context (context_feature: domain: …, register: …, collocate: …, frame: …, text type: …, reader: …), with the preferred rendering (tgt_preferred), the acceptable alternatives (tgt_alternatives), what is wrong in that context (avoid), a verified corpus example where one exists and a note with a constructed ✗ rendering and the ✓ one. A polysemous word therefore has several rows.
The literature describes the same task as lexical selection: one source concept, several target variants, and the context decides which is most appropriate, which native speakers can label and models can be tested on (barua-2024-language-models-disambiguate-lexical-choices). Sentence-level translation is not enough for some of these choices: in a study of English–Russian subtitles, sentences that were good alone were wrong together in 7% of pairs, mostly through deixis (the T–V distinction and the speaker's or addressee's gender), ellipsis and lexical cohesion (voita-2019-when-good-translation-is-wrong). The T–V choice cannot be read from English at all; it has to come from outside the sentence, as a side constraint in a model (sennrich-2016-controlling-politeness-neural-machine-translation) or, in a human translation, from the brief and the relation of the characters.
2. Deciding by measured usage
The lists are measured with the same tool as the false friends, parallel choices. A row's src_match names the source word, ctx_match (optional) a context the source sentence must also contain (a collocate, a preposition, a frame word), good_match the preferred rendering and bad_match the one to avoid. For each row the tool counts the sentence pairs with the source word in that context (n_src), and among them those with the preferred rendering (n_good) and those with the avoided one (n_bad), per corpus too. So issue + raise in Europarl shows how often soulever une question, soulever un problème or ✗ soulever une issue appear.
What the counts can and cannot say:
- Co-occurrence, not alignment. A rendering in the same sentence pair is evidence, not proof, that it translates the word. Read the rows before concluding.
- Context by collocate only.
ctx_matchconditions on a word in the source sentence; register, text type and reader are given by the corpus itself (Europarl and DGT are EU institutional language; Tatoeba short everyday sentences, often with several translations in different registers and with ти and ви versions; the Bibles old literary language). A context that no corpus represents (slang, songs, IT manuals in Ukrainian) is described, not measured, and the entry says so. - Living corpora (<lang>, described in its README: news, web, Wikipedia, parliamentary and, for Ukrainian, the Brown-UK sample) and the Wikipedia counts of the one-sided manuals measure the target side alone: which of two renderings the target language uses more in a register. They are the check for the
registerrows; they were not used for the counts in these lists. - Two runs, same bytes. The tool is deterministic.
Rows are sorted by n_src (frequency_rank 1 = the most frequent source word in its context), so the choices met most often come first.
3. How Mova will pick a variant
Mova does not translate French or Ukrainian today (translation README). The lists are written so that it can:
- Parse the source: the Universal Dependencies tree gives the word's lemma, part of speech and its dependents, which match
ctx_matchand the frame (raise → obj → issue). - Pragmatics and frames give the sense and the participants: an issue that is debated is a question, an issue of a journal is a number; a case with a court is a legal case. The frame also gives the speaker–addressee relation for tu/vous, ти/ви.
- The register coordinate comes from the text's metadata and the brief (the document's house style, the reader), not from the sentence.
- A row whose features all hold gives its
tgt_preferred; several rows are ranked by how specific they are (a collocate beats a domain, a domain beats the default) and by their measuredn_good / n_src. Theavoidcolumn becomes a check on the output, like the false-friend check, with a negative control: a row must stay silent outside its context.
None of these steps runs on these lists yet; the parse exists for English and, through mapped treebank tags, for French; Ukrainian has no Mova parser baseline.
4. Examples we make
Where no corpus row shows a context (most legal, IT and register rows for Ukrainian), and for popular words where a better example teaches more, parallel tr-run has the Codex teachers write our own source sentence for the context and its translation through mova-teacher: Terra for difficulty = plain, Sol for hard:<reason>. The gates are those of the false-friend lists (the translation must use a preferred or acceptable rendering and never the avoided one; a second call judges the hard ones; Mova's parse of the English and French sides is recorded as findings). Accepted pairs get ids ours-tr:<pair>:<n>, live in <pair>.ours.tsv and become the row's example (example_status = constructed). On 2026-11-06, 345 context rows were queued: 335 got a pair, 10 were rejected by the gates and stay needs_example. The queue is languages/translation/examples-queue.tsv.
5. Files and columns
| file | what it is | licence |
|---|---|---|
<pair>.md | the pair manual: prose per domain and per kind of choice, then the rows, both directions | Elamur Cosmic License |
<pair>.tsv | the list, one row per word in one context | Elamur Cosmic License: our own, hand-made data |
<pair>.examples.tsv | the corpus rows quoted as examples | the corpus licences (Tatoeba CC BY 2.0 FR with authors; Europarl and DGT-TM EU re-use with attribution; the Bibles and Gutenberg public domain) |
List columns: src_lang, src_lemma_or_pattern, context_feature, tgt_preferred, tgt_alternatives, avoid, example_id, note, then domain (the false-friend domains plus function, register, collocation), src_match, ctx_match, good_match, bad_match, difficulty, and the measured n_src, n_good, n_bad, by_corpus, example_ok, frequency_rank, example_status. The rebuild commands are those of the false-friend README §5, with the context lists.
Counts (2026-11-06).
| pair | rows | from the first language | from the second | with a verified corpus example | needing an example | marked hard |
|---|---|---|---|---|---|---|
| en-fr | 495 | 317 (en) | 178 (fr) | 487 | 8 | 190 |
| en-uk | 462 | 337 (en) | 125 (uk) | 368 | 94 | 153 |
| fr-uk | 537 | 295 (fr) | 242 (uk) | 294 | 243 | 189 |
| total | 1 494 | 1 149 | 345 | 532 |
Every picked example was read by eye by the list's author on 2026-11-06; each manual's Data and method section gives how many picks were replaced or removed. Every example id was then checked again by a separate scan of the corpus files: all ids exist, with the same two texts.
6. Limits
- The counts condition on one collocate at most and say nothing about register beyond the corpus's own; many register, slang and song rows are judgements, marked as unmeasured.
- The Ukrainian corpora are small; the French–Ukrainian Tatoeba set is 34 310 pairs.
- The lists are a selection of the most frequent and most instructive choices, not a dictionary.
- Mova's selection from parse and frames is designed here, not built.
The Elamur team
This page in Markdown → https://md.mova.elamur.ai/free/en/docs/languages/translation/context/