1. A contextual user engagement system for automatically engaging in a conversation with a user comprising: a context manager that manages, with at least one processor, the context of the conversation with a user, wherein the context manager receives a user utterance, wherein the context manager calls the other modules of the contextual user engagement system to obtain information with respect to the user utterance, wherein the context manager maintains a context object for a conversation with a user, wherein the context manager automatically updates the context object based on an information detected by the other modules of contextual user engagement system; a content knowledge database to store a content knowledge of the contextual user engagement system, wherein the content knowledge comprises a history of interactions with the user; an information extraction engine that extracts information from a specified source based on a set of rules; a contextual topic engine that extracts topics and entities from text provided by a user based on a specified semantic model; a discourse manager that provide an interactive dialog with the user; a natural language generation module that generates an explanation for results and appropriate utterances to be communicated to the user; and an inference engine that infers a facts or a user intent based on at least one of an inference rules, the specified semantic model or a set of information in the context object.