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