udgraph_projectivize/
lib.rs

1//! This crate provides (de)projectivizers for universal dependency graphs.
2//!
3//! A non-projective graph is a graph with crossing edges when the
4//! words/vertices are laid out in sentence order. A projective graph
5//! does not have crossing edges. This crate provides projectivizers,
6//! which can rewrite non-projective graphs into a projective graphs.
7//! The corresponding deprojectivizers can be used to reverse this
8//! transformation.
9
10mod error;
11pub use error::Error;
12
13mod graph_algo;
14pub(crate) use crate::graph_algo::BfsWithDepth;
15
16mod proj;
17pub use proj::{Deprojectivize, HeadProjectivizer, Projectivize};
18
19#[cfg(test)]
20mod tests;