Claims
- 1. Apparatus for use in providing an interactive user service comprising:a service logic unit for providing data and logic to a plurality of user interfaces, wherein at least one of said user interfaces has natural language understanding; and wherein said logic includes a service logic for facilitating effecting at least one or more of different functions from a set of functions including at least different ordering of inputs from any of said user interfaces, incomplete information from any of said user inputs from any of said user interfaces, incomplete information from any of said user interfaces, correction of information from any of said user interfaces by enabling a user to change previously provided inputs, returning of control to prior points in said interactive service in response to a request from at least one of said user interfaces, without having to restart the interactive user service application, said service logic further implements reactive constraint graphs having a plurality of nodes, wherein each of said nodes contains a set of constraints on execution of events of said node, and said service logic further evaluates whether enabled constraints in said set of constraints for a node have been satisfied.
- 2. The invention as defined in claim 1 wherein said service logic provides natural language understanding interaction with at least one user through said at least one user interface having natural language understanding.
- 3. The invention as defined in claim 2 wherein said service logic passes control from a first node to a second mode in accordance with prescribed criteria of said enabled constraints.
- 4. The invention as defined in claim 3 wherein said second node is a derivative node from said first node.
- 5. The invention as defined in claim 3 wherein said service logic passes control from said first node to said second node only when all of said enabled constraints in said set of constraints on said first node have been satisfied.
- 6. The invention as defined in claim 3 wherein said service logic passes control from said first node to said second node upon a determination that an enabled constraint has been violated.
- 7. The invention as defined in claim 2 wherein said service logic support a set of constraints allowing a significant number of possible different ordering of inputs to said service logic unit.
- 8. The invention as defined in claim 2 wherein said service logic causes evaluation of enabled constraints in said set of constraints prior to all of said constraints being enabled, whereby use of incomplete information is supported.
- 9. The invention as defined in claim 2 wherein said service logic supports correction of information by updating information in said constraint set upon receiving any new information.
- 10. The invention as defined in claim 2 wherein said service logic supports labeling of said nodes, whereby control is allowed to revert back to prior labeled nodes in the process when a current labeled node is a derivative node of a prior labeled node.
- 11. The invention as defined in claim 2 wherein said service logic further implements reactive constraint graphs having a plurality of nodes, wherein said plurality of nodes includes one or more constraint nodes, choice nodes, action nodes.
- 12. The invention as defined in claim 11 wherein said choice nodes represent a disjunction of information to be received from a user interface.
- 13. The invention as defined in claim 12 wherein each of said choice nodes is either event based or data based.
- 14. The invention as defined in claim 13 wherein each of said event based choice nodes has a specified set of events.
- 15. The invention as defined in claim 13 wherein each of said data based choice nodes has a specified set of preconditions on data.
- 16. The invention as defined in claim 11 wherein each of said constraint nodes has an associated set of constraints on events.
- 17. The invention as defined in claim 16 wherein each constraint has at least a signature component and an evaluation component.
- 18. The invention as defined in claim 17 wherein said signature component includes a set of events occurring in an associated constraint.
- 19. The invention as defined in claim 18 wherein said evaluation component includes a boolean function on said events in said signature.
- 20. The invention as defined in claim 1 further including a service monitor unit for controlling communication of inputs between said service logic unit and said user interfaces.
- 21. The invention as defined in claim 20 wherein said communication is of events.
- 22. The invention as defined in claim 21 wherein said service monitor unit receives a set of events from at least one user interface and controllably supplies said received events in a prescribed order to said service logic unit.
- 23. The invention as defined in claim 22 wherein said service monitor unit supplies said events in said set of events one at a time in said prescribed order to said service logic unit.
- 24. The invention as defined in claim 23 wherein said service logic in response to said supplied events controllably generates enabled events.
- 25. The invention as defined in claim 24 wherein said enabled events are supplied to said service monitor unit and wherein said service monitor unit supplies said enabled events in a prescribed fashion to all appropriate ones of said user interfaces.
- 26. A system for providing an interactive user service comprising:a plurality of user interfaces, wherein at least one of said user interfaces has natural language understanding; and a service logic unit for providing data and logic to said plurality of user interfaces, wherein said logic includes a service logic for facilitating effecting at least one or more of different functions from a set of functions including at least different ordering of inputs from any of said user interfaces, incomplete information from any of said user interfaces, correction of information from any of said user interfaces by enabling a user to change previously provided inputs, returning of control to prior points in said interactive service in response to a request from at least one of said user interfaces, without having to restart the interactive user service application, said service logic further implements reactive constraint graphs having a plurality of nodes, wherein each of said nodes contains a set of constraints on execution of events of said node, and said service logic further evaluates whether enabled constraints in said set of constraints for a node have been satisfied.
- 27. The system as defined in claim 26 further including a service monitor unit for controlling communication of inputs between said service logic unit and said user interfaces.
- 28. The system as defined in claim 27 wherein said communication is of events.
- 29. The system as defined in claim 28 wherein said service logic provides natural language understanding interaction with at least one user through said at least one user interface having natural language understanding.
- 30. The system as defined in claim 29 wherein said service logic passes control from a first node to a second node in accordance with prescribed criteria of said enabled constraints.
- 31. The system as defined in claim 30 wherein said second node is a derivative node from said first node.
- 32. The system as defined in claim 30 wherein said service logic passes control from said first node to said second node only when all of said enabled constraints in said set of constraints on said first node have been satisfied.
- 33. The system as defined in claim 30 wherein said service logic passes control from said first node to said second node upon a determination that an enabled constraint has been violated.
- 34. The system as defined in claim 29 wherein said service logic supports a single set of constraints allowing a significant number of possible different ordering of inputs to said service logic unit.
- 35. The system as defined in claim 29 wherein said service logic causes evaluation of enabled constraints in said set of constraints prior to all of said constraints being enabled, whereby use of incomplete information is supported.
- 36. The system as defined in claim 29 wherein said service logic supports correction of information by updating information in said constraint set upon receiving any new information.
- 37. The system as defined in claim 29 wherein said service logic supports labeling of said nodes, whereby control is allowed to revert back to prior labeled nodes in the process when a current labeled node is a derivative node of a prior labeled node.
- 38. The system as defined in claim 29 wherein said service monitor unit receives a set of events from at least one user interface and controllably supplies said received events in a prescribed order to said service logic unit.
- 39. The system as defined in claim 38 wherein said service monitor unit supplies said events in said set of events one at a time in said prescribed order to said service logic unit.
- 40. The system as defined in claim 39 wherein said service logic in response to said supplied events controllably generates enabled events.
- 41. The system as defined in claim 40 wherein said enabled events are supplied to said service monitor unit and wherein said service monitor unit supplies said enabled events in a prescribed fashion to all appropriate ones of said user interfaces.
- 42. A method for providing an interactive user service comprising the steps of:providing data and logic from a service logic unit to a plurality of user interfaces, wherein at least one of said user interfaces has natural language understanding; facilitating effecting at least one or more of different functions from a set of functions including at least different ordering of inputs from any of said user interfaces, incomplete information from any of said user interfaces, correction of information from any of said user interfaces by enabling a user to change previously provided inputs, returning of control to prior points in said interactive service in response to a request from at least one of said user interfaces, without having to restart the interactive user service application, without having to restart the interactive user service application; implementing reactive constraint graphs having a plurality of nodes, wherein each of said nodes contains a set of constraints on execution of events of said node; evaluating whether enabled constraints in said set for a node have been satisfied.
- 43. The method as defined in claim 42 further including a step of controlling communication of inputs between said service logic unit and said user interfaces.
- 44. The method as defined in claim 43 wherein said communication is of events.
- 45. The method as defined in claim 44 wherein said step of providing further includes a step of providing natural language understanding interaction with at least one user through said at least one interface having natural language understanding.
- 46. The method as defined in claim 45 wherein said step of evaluating includes a step of passing control from a first node to a second node in accordance with prescribed criteria of said enabled constraints.
- 47. The method as defined in claim 46 wherein said second node is a derivative node from said first node.
- 48. The method as defined in claim 46 wherein said step of passing control from said first node to said second node includes a step of determining whether all of said enabled constraints in said set of constraints on said first node have been satisfied and a step of passing said control from said first node to said second node only when all of said enabled constraints have been satisfied.
- 49. The method as defined in claim 46 wherein said step of passing control from said first node to said second node includes a step of determining whether an enabled constraint has been violated and a step of passing control from said first node to said second node upon a determination that an enabled constraint has been violated.
- 50. The method as defined in claim 45 wherein said step of providing logic further includes a step of allowing a significant number of possible different ordering of inputs to said service logic unit by supporting a single set of constraints.
- 51. The method as defined in claim 45 wherein said step of providing logic further includes a step of evaluating enabled constraints in said set of constraints prior to all of said constraints being enabled, whereby use of incomplete information is supported.
- 52. The method as defined in claim 45 wherein said step of providing logic further includes a step of updating information in said constraint set upon receiving any new information, whereby correction of information is supported.
- 53. The method as defined in claim 45 wherein said step of providing logic includes a step of supporting labeling of said nodes, whereby control is allowed to revert back to prior labeled nodes in the process when a current labeled node is a derivative node of a prior labeled node.
- 54. The method as defined in claim 44 wherein said step of communicating includes steps of receiving a set of events from at least one user interface and controllably supplying said received events in a prescribed order to said service logic unit.
- 55. The method as defined in claim 54 wherein said step of supplying further includes a step of supplying said events in said set of events one at a time in said prescribed order to said service logic unit.
- 56. The method as defined in claim 55 wherein said step of providing further includes a step responsive to said supplied events for controllably generating enabled events.
- 57. The method as defined in claim 56 wherein said step of providing further includes a step of supplying said enabled events in a prescribed fashion to all appropriate ones of said user interfaces.
- 58. Apparatus for use in providing an interactive user service comprising:means for providing data and logic to a plurality of user interfaces, wherein at least one of said user interfaces has natural language understanding; and wherein said mean for providing logic includes service logic means for facilitating effecting at least one or more of different functions from a set of functions including at least different ordering of inputs from any of said user interfaces, incomplete information from any of said user interfaces, correction of information from said any of said interfaces by enabling a user to change previously provided inputs, returning of control to prior points in said interactive service in response to a request from at least one of said user interfaces, without having to restart the interactive user service application, wherein said service logic means includes means for implementing reactive constraint graphs having a plurality of nodes, wherein each of said nodes contains a set of constraints on execution of events of said node, wherein said service logic means includes service logic means for evaluating whether enabled constraints in said set for a node have been satisfied, wherein said service logic means includes means for implementing reactive constraint graphs having a plurality of nodes, wherein each of said nodes contains a set of constraints on execution of events of said node, and wherein said service logic means includes means for evaluating whether enabled constraints in said set of constraints for a node have been satisfied.
- 59. The invention as defined in claim 58 wherein said service logic means includes means for providing natural language understanding interaction with at least one user through said at least one interface having natural language understanding.
- 60. The invention as defined in claim 59 wherein said means for evaluating includes means for passing control from a first node to a second node in accordance with prescribed criteria of said enabled constraints.
- 61. The invention as defined in claim 60 wherein said second node is a derivative node from said first node.
- 62. The invention as defined in claim 60 wherein said means for passing control from said first node to said second node includes means for determining whether all of said enabled constraints in said set of constraints on said first node have been satisfied and means for passing said control from said first node to said second node only when all of said enabled constraints have been satisfied.
- 63. The invention as defined in claim 60 wherein said means for passing control from said first node to said second node includes means for determining whether an enabled constraint has been violated and means for passing control from said first node to said second node upon a determination that an enabled constraint has been violated.
- 64. The invention as defined in claim 59 wherein said service logic means further includes means for allowing a significant number of possible different ordering of inputs to said service logic unit by supporting a single set of constraints.
- 65. The invention as defined in claim 58 wherein said service logic means further includes means for evaluating enabled constraints in said set of constraints prior to all of said constraints being enabled, whereby use of incomplete information is supported.
- 66. The invention as defined in claim 59 wherein said service logic means further includes means for updating information in said constraints set upon receiving any new information, whereby correction of information is supported.
- 67. The invention as defined in claim 60 wherein said service logic means further includes means for supporting labeling of said nodes, whereby control is allowed to revert back to prior labeled nodes in the process when a current labeled node is a derivative node of a prior labeled node.
- 68. The invention as defined in claim 59 further including service monitor means for controlling communication of inputs between said service logic means and said plurality of user interfaces.
- 69. The invention as defined in claim 68 wherein said communication is of events.
- 70. The invention as defined in claim 69 wherein said service monitor means includes means for receiving a set of events from at least one user interface and means for controllably supplying said received events in a prescribed order to said service logic means.
- 71. The invention as defined in claim 70 wherein said means for supplying includes means for supplying said events in said set of events one at a time in said prescribed order to said service logic means.
- 72. The invention as defined in claim 71 wherein said means for providing further includes means responsive to said supplied events for controllably generating enabled events.
- 73. The invention as defined in claim 72 wherein said service monitor means further includes means for supplying said enabled events in a prescribed fashion to all appropriate ones of said user interfaces.
RELATED APPLICATIONS
U.S. patent application Ser. No. 09/386,093 (T. J. Ball et al.) was filed concurrently herewith.
US Referenced Citations (8)