Mova0.6 pre-release⌕
☰
home / docs / repo-docs / Open parsers: witnesses and tests

Open parsers: witnesses and tests

This page covers the open parsers Mova uses as witnesses and test references: for English, French, Ukrainian, Latin, Ancient Greek, Biblical Hebrew and Modern Hebrew. It says which licences allow what, how the parsers are used, and which parser serves which role. The papers behind the parsers are in the library.

What it is

Open parsers and their models are supplied separately; Mova does not ship them. They serve three purposes:

A witness runner is configured through CYCLE_NEURAL (tools/cycle). Its inputs and outputs must keep token alignment, and each model's licence is checked apart from its code's licence.

Licences: build vs test

By the data-licence rule (Data and model licences), share-alike, non-commercial and research-only models are for tests and measurements only, never built into Mova or shipped. A permissive code licence does not settle it: a model trained on restricted treebanks needs a data-licence check before any build use.

parsertreemodel licenceuse
UDPipe 1 (UD 2.5), UDPipe 2 (UD 2.15; straka-2018)UDCC BY-NC-SA 4.0tests only
UDifyUD (multilingual BERT)LINDAT, NCtests only
Stanza (qi-2020)UD; PTB constituentsApache-2.0 code; models trained on UD/PTB (some UD treebanks NC: grc/hbo PTNK, he HTB)tests; build only after a data-licence check
Trankit (XLM-R; nguyen-2021)UDApache-2.0; trained on UDtests
spaCy en_core_web_*ClearNLP-style dependenciesMIT (trained on OntoNotes)tests; build only after a data-licence check
spaCy fr_core_news_*, fr_dep_news_trf (honnibal-2020)UD-style, Sequoia labelsLGPL-3.0tests
hopsparser (code) + almanach CamemBERT 2.0 models camembertv2-base-{gsd,sequoia,rhapsodie}, camembertav2-base-{gsd,sequoia,rhapsodie}UD (biaffine over CamemBERT/CamemBERTa encoders; grobol-2021, antoun-2024)MIT code; weights MIT per model card; trained on French GSD (CC BY-SA 4.0), Sequoia (LGPL-LR), Rhapsodie (CC BY-SA 4.0)tests; build only after a data-licence check
COMBO combo-nlp French (XLM-R base, GSD, UD 2.17)UD (klimaszewski-2021)GPL-3.0 code; model CC BY-SA 4.0tests only
Trankit ukrainian (XLM-R base)UD (nguyen-2021)Apache-2.0 code; weights licence not stated; trained on UD Ukrainian IU 2.5 (CC BY-NC-SA 4.0)tests only
COMBO combo-nlp Ukrainian IU / ParlaMint (XLM-R base, UD 2.17)UD (klimaszewski-2021)GPL-3.0 code; IU model CC BY-NC-SA 4.0, ParlaMint model CC BY-SA 4.0tests only
Stanza uk packages iu_*, parlamint_*UD (qi-2020)Apache-2.0 code; weights licence not stated; trained on UD Ukrainian IU (CC BY-NC-SA 4.0) or ParlaMint (CC BY-SA 4.0)tests only
spaCy uk_core_news_lg, uk_core_news_trf (honnibal-2020)UD-styleMIT; trained on the silver Ukr-Synth (MIT) with CC0 vectors; encoder ukr-models/xlm-roberta-base-uktests; build only after a data-licence check of Ukr-Synth
Yasuoka *-ukrainian-ud-goeswith (ModernBERT large and base, RoBERTa large WECHSEL)UD (POS and goeswith subword merging)card says CC BY 4.0 / MIT; trained on all Ukrainian UD treebanks, so NC-SA appliestests only
UDPipe 2 uk_all (UD 2.15)UDCC BY-NC-SA 4.0tests only; not run (needs the embedding service)
LatinCy la_core_web_*UD (harmonised)MITtests
OdyCy grc_odycy_joint_*UD (Perseus/PROIEL)MITtests
GreCy grc_dep_*_trfUDnot statedtests only
DictaBERT joint (he)UD (HTB or IAHLT style)CC BY 4.0; training data not checkedtests
YAP (he)SPMRL labelsApache-2.0 code; MILA models and lexicontests only
Stanford CoreNLPStanford/UD dependencies, PTB constituentsGPL-3.0tests only
Berkeley Neural Parser (benepar)PTB constituentsMIT (trained on PTB)tests
SuPardependencies, constituents, semantic dependenciesMIT (trained on PTB/UD/SDP)tests
MaltParser + engmaltStanford-basic dependenciesBSD code; maltparser.org model termstests
AllenNLP, EasyCCG, depccgdependencies, constituents, CCGApache-2.0 / MIT (trained on PTB, CCGbank)tests
BLLIP (Charniak–Johnson)PTB constituentsunclear (trained on PTB/LDC)tests only
Link Grammarlinks (hand-written rules)LGPL-2.1candidate for build: transparent rules
ACE + ERG 2018HPSG + MRS semanticsMIT-likecandidate for build: transparent rules
Grammatical Framework + RGL + gf-wordnetabstract syntax treesLGPL/BSDcandidate for build: real ASTs
syntaxdot (Rust)dependenciesMIT/Apache-2.0code to read; no English model published

Code only, no pretrained English model: Enju (HPSG), TurboParser, Hexatagger, DiaParser. CLTK has no parser of its own (it wraps Stanza or a large model) and is not set up.

How they are used

Which parser serves which role:

languagewitness for in-treebank stylefair witness (other treebank)notes
EnglishStanza, TrankitspaCy trf (after head-rule differences)constituency: Stanza, benepar, SuPar
French (GSD)hopsparser camembertav2-base-gsd, COMBO, Stanza gsd; UDPipe 2, Trankit frenchStanza sequoia (other treebank)spaCy labels in Sequoia style; measurements in «French witnesses»
Ukrainian (IU)Trankit ukrainian, COMBO IU, spaCy trf (silver Ukr-Synth), Stanza iu_charlmCOMBO ParlaMint, Stanza parlamint_charlm (other treebank); Yasuoka modernbert-large (both)measurements in «Ukrainian witnesses»; ParlaMint is a second convention, not a better one
Latin (LLCT)Stanza llct, UDPipe 2, LatinCynone goodLLCT is medieval with its own conventions; for other text compare across treebanks
Ancient Greek (PTNK)Stanza ptnk, UDPipe 2 grc_allStanza/Trankit proiel, OdyCyPerseus/PROIEL models show the register gap of the Greek Pentateuch
Biblical Hebrew (PTNK)Stanza hbo, UDPipe 2 hbo_ptnknone (the only treebank)vowel points and cantillation fed as they are
Modern HebrewUDPipe 2 he_all; Stanza htb (HTB style), Stanza combined and DictaBERT iahlt_ud (IAHLT style)across the two conventionsYAP only after a label mapping

Not measured here: raw-text parsing with multiword-token recovery.

French witnesses (measured 2026-11-06)

Dev sets of UD 2.18 French GSD (1476 sentences, 35721 words) and Sequoia (412 sentences, 9999 words), gold tokens (multiword tokens split into syntactic words, tokenizer off), LAS and UAS over all words, punctuation included, on each parser's own output. Speed is sentences per second on the RTX 4000 SFF Ada (GSD dev, model already loaded, one warm-up batch excluded; batch 500 sentences for Stanza and Trankit, 64 for hopsparser, 1 for COMBO). GPU is the peak of the process as seen by nvidia-smi (it includes the allocator cache, so it overstates the need). spaCy lg runs on the CPU. Runner: tools/treeagree/bridge/fr_neural.py; raw results results.jsonl in the run directory fr-parsers-2026-11-06. One run per parser, not repeated; the numbers are deterministic up to GPU arithmetic.

Bold marks a model trained on the treebank of that column (in-treebank style; a development set may have been used for model selection, so these are slightly optimistic); the rest are fair witnesses that carry the convention gap of another treebank. Sorted by the sum of the two LAS.

parserGSD LAS / UASSequoia LAS / UASsent/s (GSD)GPU MiB
COMBO combo-nlp (GSD)94.7 / 96.690.5 / 94.3233548
hopsparser camembertav2-base-gsd94.5 / 96.690.1 / 94.411610140
hopsparser camembertv2-base-gsd94.3 / 96.590.1 / 94.5979740
Stanza combined93.3 / 95.690.7 / 94.0648100
Stanza gsd93.7 / 95.988.8 / 93.3687604
Trankit french (GSD)91.0 / 95.588.2 / 93.74882588
Stanza sequoia87.0 / 92.691.6 / 94.1587376
hopsparser camembertv2-base-sequoia83.8 / 89.787.3 / 90.91888786
hopsparser camembertav2-base-sequoia84.0 / 89.587.2 / 90.81189206
Trankit french-sequoia83.3 / 89.086.6 / 90.24592606
spaCy fr_dep_news_trf83.2 / 88.985.5 / 89.41561788
spaCy fr_core_news_lg74.9 / 81.579.7 / 84.7182CPU
hopsparser camembertav2-base-rhapsodie76.6 / 87.276.0 / 86.21079206
hopsparser camembertv2-base-rhapsodie75.8 / 87.474.9 / 86.31238786
Stanza rhapsodie75.3 / 84.674.5 / 82.9577498
Trankit french-partut75.4 / 86.774.0 / 84.53412600
Stanza partut74.5 / 87.674.9 / 86.7536658
Stanza parisstories72.2 / 82.272.1 / 81.5327188
Trankit french-spoken67.8 / 83.667.9 / 83.43752526

Reading the table:

Models, revisions and checksums of the hopsparser downloads are in hops/manifest.tsv in the parsers directory of the data tree (outside Git; its own environment with hopsparser 0.8.0; COMBO has another). The COMBO batch mode fails on pretokenized input with combo-nlp 4.0.14 (a lemma-head size mismatch), so the runner parses one sentence at a time.

Recommended French witness set for the Eel's agreement step. GPU pair: hopsparser camembertav2-base-gsd (fast, 94.5 LAS on GSD) and COMBO (94.7); a third GSD-style vote from Stanza gsd if three are wanted. Fair witness: Stanza sequoia (other treebank, 87.0 LAS / 92.6 UAS on GSD dev, and the best Sequoia-style model at 91.6); Trankit french is the fast cheap alternative (488 sent/s, 2.6 GB). Agreement with a participating witness is not independent accuracy evidence (see above); the table says which witnesses carry the GSD convention and which carry another one.

Sources: hopsparser (grobol-2021), CamemBERT 2.0 (antoun-2024), Stanza (qi-2020), Trankit (nguyen-2021), spaCy (honnibal-2020), UDPipe 2 (straka-2018), COMBO (klimaszewski-2021), Universal Dependencies v2 (nivre-2020); GSD (guillaume-2019), Sequoia (candito-2012), Rhapsodie (lacheret-2014).

Ukrainian witnesses (measured 2026-11-06)

Treebanks: UD 2.18 Ukrainian IU (dev 673 sentences, 12606 words; CC BY-NC-SA 4.0 by its README and LICENSE.txt: tests and counts only; the README offers a commercial licence on request) and ParlaMint (dev 739 sentences, 10842 words; CC BY-SA 4.0: tests, as little as possible). Both are the r2.18 tags of UniversalDependencies/UD_Ukrainian-IU and UD_Ukrainian-ParlaMint, the only Ukrainian treebanks in that release, kept outside Git in the research raw-data tree (raw/uk-ud/ud-treebanks-v2.18/). Measured as in the French section: gold tokens (Ukrainian has no multiword tokens), tokenizer off, LAS and UAS over all words, punctuation included, each parser on its own output. Speed is sentences per second on the RTX 4000 SFF Ada (IU dev, model already loaded, one warm-up batch excluded; batch 500 for Stanza and Trankit, 64 for spaCy trf, 1 for COMBO and the goeswith models). GPU is the process peak seen by nvidia-smi (it includes the allocator cache, so it overstates the need). spaCy lg runs on the CPU. Runner: tools/treeagree/bridge/uk_neural.py; raw results results.jsonl in the run directory uk-parsers-2026-11-06. One run per parser, not repeated; the numbers are deterministic up to GPU arithmetic.

Bold marks a model trained on the treebank of that column (in-treebank style; a development set may have been used for model selection, so these are slightly optimistic); the rest are fair witnesses that carry the convention gap of another treebank. Sorted by the sum of the two LAS.

parserIU LAS / UASParlaMint LAS / UASUPOS IU / PMsent/s (IU)GPU MiB
Trankit ukrainian (XLM-R base; IU, UD 2.5)91.98 / 94.1584.74 / 92.7798.4 / 98.13063044
Yasuoka modernbert-large-ukrainian-ud-goeswith88.56 / 91.6387.38 / 91.4695.8 / 95.73.35216
COMBO combo-nlp IU (XLM-R base; UD 2.17)91.95 / 94.0183.86 / 91.5798.5 / 97.814.73546
spaCy uk_core_news_trf91.91 / 94.1583.62 / 91.6397.9 / 97.51341994
COMBO combo-nlp ParlaMint83.91 / 90.8591.02 / 94.3997.2 / 98.922.63546
Yasuoka roberta-large-wechsel-ukrainian-ud-goeswith87.82 / 91.3986.66 / 91.0996.0 / 94.93.53822
Stanza iu_charlm87.74 / 90.8380.49 / 88.6898.0 / 97.9449148
Yasuoka modernbert-base-ukrainian-ud-goeswith84.18 / 88.5583.67 / 87.7796.4 / 94.42.62814
Stanza parlamint_charlm78.38 / 85.7888.47 / 92.1196.7 / 99.0439036
spaCy uk_core_news_lg86.49 / 89.1080.29 / 88.6297.4 / 97.7176CPU
Stanza iu_nocharlm85.40 / 88.8878.56 / 86.6497.1 / 97.6457682
Stanza parlamint_nocharlm74.68 / 82.2487.25 / 91.4195.1 / 98.7607566
Mova en parser, own tags (train → dev after en xpos-fill)73.33 / 79.6079.28 / 83.48n/aCPU, about 20000 words/sCPU
Mova en parser, gold tags78.17 / 83.0281.34 / 85.01n/asameCPU

Reading the table:

Models, revisions, licences, training data and checksums are in uk/manifest.tsv in the parsers directory of the data tree (outside Git; Stanza and Trankit are under stanza/resources/uk and trankit/cache, COMBO under combo/hf, the Yasuoka models under uk/hf). The Hugging Face search for 2023 to 2026 Ukrainian UD parsers found the COMBO models (October 2026) and Yasuoka's families (2025) used above, and only encoders otherwise (lang-uk/electra-base-ukrainian-*, Goader/modern-liberta-*), which are not parsers.

Recommended Ukrainian witness set for the Eel's agreement step. GPU trio in the IU convention: Trankit ukrainian (92.0 LAS, 306 sent/s, 3 GB), COMBO IU (92.0, 15 sent/s, 3.5 GB) and spaCy uk_core_news_trf (91.9, 134 sent/s, 2 GB; the only one with an MIT licence on the weights); their mutual UAS is 94 to 95, but they share the IU convention. For a second convention add COMBO ParlaMint (91.0 on ParlaMint; UAS 90.9 on IU) or the faster Stanza parlamint_charlm (88.5), and, when a slow vote is acceptable, Yasuoka modernbert-large (another architecture, trained on both treebanks). The fast cheap pair is Trankit plus spaCy trf. All are tests-only: the IU-trained models and Yasuoka's carry the NC-SA data, and the silver data of spaCy is unchecked for build use. Agreement with a witness that shares the training treebank is not independent accuracy evidence.

Sources: Stanza (qi-2020), Trankit (nguyen-2021), spaCy (honnibal-2020), COMBO (klimaszewski-2021), UDPipe 2 (straka-2018), Universal Dependencies v2 (nivre-2020); the Ukrainian treebanks, Ukr-Synth and Yasuoka's models are listed in docs/usage.tsv.

Teacher and dispute interfaces

The annotation teacher is Codex CLI through mova-teacher (training). treeagree also has a dispute mode (dispute-ask, dispute-apply): only the words whose head the parsers dispute are sent, as short multiple-choice questions. The teacher uses the full mode (a little world context, the sentence, and the SLM's tree and pragmatics); dispute mode stays available. Neither interface establishes annotation quality or authorizes a teacher run.

This page in Markdown → https://md.mova.elamur.ai/free/en/docs/repo-docs/parsers/