1. An information system executed on one or more particular machines, comprising: a user and application interface; a reasoning engine in communication with the user and application interface; a knowledge manager in communication with the user and application interface and interfaced with the reasoning engine; and a distributed information service in communication with the reasoning engine, the knowledge manager, and the user and application interface; wherein the reasoning engine is configured to work in conjunction with the knowledge manager so as to enable the reasoning engine to handle events by executing one or more specific tasks prescribed by the knowledge manager to handle the events most appropriately; and wherein the reasoning engine includes: an interaction flow engine; an inference engine; a constraint satisfaction engine; an optimization engine; a categorization engine; and a data mining engine; wherein the interaction flow engine is in communication with the categorization engine, the inference engine, the constraint satisfaction engine and the optimization engine, the interaction flow engine being configured to invoke one or more of the categorization engine, the inference engine, the constraint satisfaction engine and the optimization engine to generate recommendations based on a profile of a user, rules obtained from the knowledge manager, constraints obtained from the knowledge manager, and an ontology.