1. A method of transforming natural language expression into formal language representation comprising the steps of: partially parsing one or more natural language expressions; and associating one or more formal expressions with each parsed fragment; and selecting an appropriate subset of said formal expressions for user review; and converting said subset into suitable form for presentation to a user; and presenting said suitable form to a user wherein the user optionally selects, rejects, adds to, logically connects, and otherwise manipulates members of said subset; and combining the resulting plurality of formal expressions into a single formal representation.