Previous approaches usually rely on dynamic programming to resolve nonoverlapping/embedding constraints (i.e., Constraint 4) when the constraint structure is sequential.
they are not able to handle more expressive constraints such as those that take long-distance dependencies and counting dependencies into account (Roth and Yih 2005).