An event composing and monitoring system that allows high-level events to be created from combinations of low-level events. An event specification tool, contained in the system, allows for rapidly developing a general event processor that creates high-level events from combinations of user actions. An event system, in combination with an inference system, monitors and infers, for various purposes, about several classes of events including: current program context; state of key data structures; user input sequences, including actions with a mouse-controlled cursor while interacting with a graphical user interface; words typed in free-text help queries; visual user information, such as gaze and gesture information; and user speech information. Additionally, an intelligent user interface is provided by constructing a reasoning model that computes probability of alternative user intentions, goals or information needs through analyzing information regarding program state, and that user's actions and free-text query words. Specifically, the interface monitors user interaction with a program and probabilistically reasons to sense that a user may need assistance in using a particular feature or to accomplish a specific task. This interface accepts a free-text help query from the user and combines the inference analysis of user actions and the program state with an inference analysis of the query. The inference system, using an updateable user profile, continually checks for user competencies and, based on such competencies, changes assistance that is offered.