The Generalized A* Architecture