Declarative analysis in information engineering