Interactive services with multiple interfaces are realized by employing a
modular approach to their implementation. Such an approach facilitates
supporting natural language understanding interaction with users through
use of interfaces that at least allow the user to provide information
beyond what is currently being requested by the service, and/or different
ordering of inputs, and/or incomplete information, and/or correction of
information, and/or the return of control to prior points in the service.
This is realized, in an embodiment of the invention, by employing an
interactive service logic that uses "reactive constraint graphs", i.e., a
form of event-driven graph in which nodes contain constraints on events,
in conjunction with a service monitor. The service monitor manages the
communication between the service logic and the multiple user interfaces.
As such it provides a communication mechanism in the form of a so-called
"look ahead" in which the user can input information beyond what is
currently required by the interactive service. Specifically, in each round
of user interaction, reactive constraint graphs report to the service
monitor the set of events that are currently enabled. These enabled events
correspond to the information the interactive service is currently
requesting (or ready to accept) from a user. The user interfaces collect
information (perhaps beyond this set) from the user and send it to the
service monitor. The service monitor then matches the received information
against the information requested by the service logic, and sends the
information one event at a time to the service logic, in a priority order
specified by the service provider. After each event is sent to the service
logic from the service monitor, the service logic reports its new set of
enabled events back to the service monitor. In turn, the service monitor
sends another event that matches the enabled events to the service logic.
The service monitor then notifies the user interfaces to send a new
collection, i.e., set, of information from the individual users only when
no current information matches the enabled events. This approach
advantageously allows a user to input information beyond what is currently
needed by the interactive service.
Des services interactifs avec les interfaces multiples sont réalisés en utilisant une approche modulaire à leur exécution. Une telle approche facilite soutenir l'interaction d'arrangement de langage naturel avec des utilisateurs par l'utilisation des interfaces qui permettent au moins à l'utilisateur de fournir des informations au delà de ce qui actuellement est demandé par le service, et/ou commande différente des entrées, et/ou information inachevée, et/ou correction d'information, et/ou le retour de la commande aux points antérieurs dans le service. Ceci est réalisé, dans un mode de réalisation de l'invention, en utilisant une logique interactive de service que les utilisations "contrainte réactive représente graphiquement", c.-à-d., une forme de graphique entraîné par les événements dans laquelle les noeuds contiennent des contraintes sur des événements, en même temps qu'un moniteur de service. Le moniteur de service contrôle la communication entre la logique de service et les interfaces utilisateur multiples. Car tel il fournit un mécanisme de communication sous forme de prétendu "look.ahead" dans ce que l'utilisateur peut entrer l'information au delà de ce qu'est actuellement exigé par l'interactif service. Spécifiquement, dans chaque rond d'interaction d'utilisateur, la contrainte réactive représente graphiquement le rapport au moniteur de service l'ensemble d'événements qui sont actuellement permis. Ces événements permis correspondent à l'information que le service interactif demande actuellement (ou préparez pour accepter) à un utilisateur. Les interfaces utilisateur rassemblent l'information (peut-être au delà de cet ensemble) de l'utilisateur et l'envoient au moniteur de service. Le moniteur de service assortit alors l'information reçue contre l'information demandée par la logique de service, et envoie à l'information un événement à la fois à la logique de service, dans un ordre prioritaire indiqué par le fournisseur de service. Après que chaque événement soit envoyé à la logique de service du moniteur de service, la logique de service fait un rapport son nouvel ensemble d'événements permis au moniteur de service. Alternativement, le moniteur de service envoie un autre événement qui assortit les événements permis à la logique de service. Le moniteur de service informe alors les interfaces utilisateur d'envoyer une nouvelle collection, c.-à-d., ensemble, d'information des différents utilisateurs seulement quand aucune information de courant n'assortit les événements permis. Cette approche permet avantageusement à un utilisateur d'entrer l'information au delà de ce qui est nécessaire actuellement par le service interactif.