1. A method for evolving a rule base of an expert system on a computer, the method comprising: populating an application rule base stored in the computer with deterministic and semantically normalized application rules, wherein each application rule is of the form f 0 , f 1 , f 2 ,. .. →p 0 , p 1 , p 2 ,. .. ; while the computer is in a dream mode, automatically populating a meta-rule base with nondeterministic meta-rules of the form f 0 , f 1 , f 2 ,. .. →p 0 , p 1 , p 2 ,. .. f′ 0 , f′ 1 , f′ 2 ,. .. →p′ 0 , p′ 1 , p′ 2 ,. .. , wherein each meta-rule maps to two distinct application rules; in response to a query regarding a given context, searching the application rule base for an application rule that has a matching context; if no application rule is found with a matching context, deriving from a sequence of meta-rules a virtual rule with a matching context and a corresponding antecedent; and adding the virtual rule to the head of the application rule base if the virtual rule does not contradict an existing application rule and the virtual rule is validated by a user, and moving each meta-rule involved in the creation of the validated virtual rule to the logical head of the meta-rule base.