1. A knowledge engineering tool comprising a computer having memory for storing a knowledge base and memory for storing predetermined instructions including means to augment and edit the knowledge base, and means for interpreting the knowledge base to run an interactive consultation with the user to determine the value of at least one predetermined goal expression, wherein said knowledge base includes rules including premises having logical operations and corresponding conclusions concluding at least one value for said goal expression, said rules including recursive rules and rules having universally quantified variables, propositions including arithmetic operations, declarations defining whether selected expressions are single-valued or multiple-valued, declarations defining questions to be asked to determine the values of selected expressions, and declarations defining legal values of selected expessions, and wherein said means for interpreting the knowledge base includes means for determining the value of said goal expression including means for invoking and chaining said rules to conclude a value for said goal expression, means for evaluating the logical operations in the premises of the invoked rules, means for evaluating said propositions, means for instantiating and deinstantiating the universally quantified variables in said rules, means for asking the user said questions to determine the values of their corresponding expressions, means for receiving from the user and checking values of said corrsponding expressions against the corresponding declared legal values, and means for explaining to the user why the user is asked for the values of said corresponding expressions, means for conveying to the user said value of said goal expression, means for explaining to the user how said value of said goal expression was determined, and means for generating a record of said consultation including a list of the rules invoked during a test consultation.