Skip to content
github-actions[bot] edited this page Jun 21, 2026 · 6 revisions

rusty-alto technical overview

rusty-alto is a Rust implementation of weighted tree automata and interpreted regular tree grammars (IRTGs), designed to consume Alto-compatible data while offering a clean compositional API and efficient parsing algorithms.

The main pieces are:

  • an oracle-style interface for bottom-up tree automata;
  • an explicit, indexed automaton representation;
  • lazy automaton combinators;
  • algebras, homomorphisms, and IRTG interpretations;
  • typed input/output codec registries and algebra-owned display codecs;
  • TAG string, TAG derived-tree, and feature-structure algebras;
  • materialization and A* algorithms that turn composed automata into parse charts or one-best derivations;
  • runners, Viterbi extraction, corpus I/O, and evaluation tools.

Start here:

  • Architecture follows data through the main modules.
  • Parsing pipeline explains how an IRTG and an input sentence become a derivation.
  • Choosing a parsing algorithm compares the user-facing strategies, their trade-offs, and cooperative cancellation.
  • Codec infrastructure explains format discovery, algebra value visualization, and the GUI integration boundary.
  • Design decisions records the abstractions and performance trade-offs that shape the implementation.
  • Development and performance describes the repository layout, testing, benchmarking, and the relationship with Alto and packed-term-arena.

For the public Rust API, see the generated cargo documentation. For command-line usage, see the README and docs/eval.md.

Clone this wiki locally