Udapi: Universal API for Universal Dependencies
Summary
As UD and the CoNLL-U format spread, ad hoc scripts for processing treebanks became a common source of subtle bugs, such as forgetting to renumber nodes after a deletion. Udapi is an open-source framework with an object-oriented API for UD data, implemented in Python (the main version), Perl and Java. Processing is organised as a scenario of sequential blocks over a document–bundle–tree–node hierarchy, usable from code or from the udapy command line. It supports visualisation (terminal, HTML, LaTeX), format conversion, querying with arbitrary Python conditions, editing, content validation that goes beyond the official online checks, parsing through UDPipe, and UAS/LAS evaluation. In the authors' benchmark all three implementations were many times faster and far less memory-hungry than the older Treex framework. Blocks from Udapi were used to convert several treebanks to UD v2.
How Mova uses it
coref/src/score.rsandcoref/src/corefud.rs— the head of a mention span is computed as in Udapi'scorefud.MoveHeadblock: the word whose own head lies outside the span; among several candidates, the highest in the tree, then non-punctuation, then the first. This head is the key for head-based mention matching in the coreference scorer.- The rule is reimplemented in Rust rather than calling Udapi, so scoring stays self-contained and deterministic.
Effectiveness in Mova
Not measured separately. The head definition is a small but load-bearing convention: it determines which mentions count as matching in every reported coreference score (for example CoNLL F1 60.31 on GUM test with gold trees, without singletons). Following the shared-task tooling keeps Mova's numbers comparable in method to the CRAC evaluations.
👨🔬💥
Cite
@inproceedings{popel2017udapi,
title = {{Udapi: Universal API for Universal Dependencies}},
author = {Popel, Martin and Žabokrtský, Zdeněk and Vojtek, Martin},
booktitle = {Proceedings of the NoDaLiDa 2017 Workshop on Universal Dependencies (UDW 2017)},
year = {2017},
url = {https://aclanthology.org/W17-0412/}
}References
- Eduard Bejček, Eva Hajičová, Jan Hajič, Pavlína Jínová, Václava Kettnerová, Veronika Kolářová, Marie Mikulová, Jiří Mírovský, Anna Nedoluzhko, Jarmila Panevová, Lucie Poláková, Magda Ševčíková, Jan Štěpánek, and Šárka Zikánová. 2013. Prague Dependency Treebank 3.0. LINDAT/CLARIN digital libra… find
- Steven Bird, Ewan Klein, and Edward Loper. 2009. Natural Language Processing with Python. O’Reilly Media, Inc., 1st edition. find
- Ondřej Bojar, Ondřej Dušek, Tom Kocmi, Jindřich Libovický, Michal Novák, Martin Popel, Roman Sudarikov, and Dušan Variš. 2016. CzEng 1.6: Enlarged Czech-English Parallel Corpus with Processing Tools Dockered. In Petr Sojka, Aleš Horák, Ivan Kopeček, and Karel Pala, editors, Text, Speech, and Dia… find
- Hamish Cunningham, Diana Maynard, Kalina Bontcheva, Valentin Tablan, Niraj Aswani, Ian Roberts, Genevieve Gorrell, Adam Funk, Angus Roberts, Danica Damljanovic, Thomas Heitz, Mark A. Greenwood, Horacio Saggion, Johann Petrak, Yaoyong Li, and Wim Peters. 2011. Text Processing with GATE (Version 6). find
- Joakim Nivre and Jens Nilsson. 2005. Pseudo-projective dependency parsing. In Proceedings of the 43rd Annual Meeting on Association for Computational Linguistics, ACL ’05, pages 99–106, Stroudsburg, PA, USA. Association for Computational Linguistics. find
- Martin Popel and Zdeněk Žabokrtský. 2010. TectoMT: modular NLP framework. Advances in Natural Language Processing, pages 293–304. find
- Pontus Stenetorp, Sampo Pyysalo, Goran Topić, Tomoko Ohta, Sophia Ananiadou, and Jun’ichi Tsujii. 2012. brat: a web-based tool for nlp-assisted text annotation. In Proceedings of the Demonstrations at the 13th Conference of the European Chapter of the Association for Computational Linguistics, page… find
- Milan Straka, Jan Hajič, and Jana Straková. 2016. UDPipe: trainable pipeline for processing CoNLL-U files performing tokenization, morphological analysis, pos tagging and parsing. In Proceedings of the Tenth International Conference on Language Resources and Evaluation (LREC’16), Paris, France, May… find our card
This page in Markdown → https://md.mova.elamur.ai/free/en/docs/papers/popel-2017-udapi-universal-api-universal-dependencies/