IP Library Granted Patent US 11,748,122
Granted Patent B2
US 11,748,122 · App. 17/835,605 · Granted Sep 5, 2023

Stack-based communications systems and methods

Inventor: James Roy Bulpin (Cambridge, GB)
G06F9/451G06F9/546G06N3/004
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,748,122
App. No.
17/835,605
Granted
Sep 5, 2023
Kind
B2
Abstract

A stack-based conversation engine is provided. The conversation engine enables a voice or text based virtual assistant to create interactive, conversational experiences in an extensible manner. The conversation engine can be used to support a conversation between a user and a virtual assistant. The conversation engine can be configured to receive, from the virtual assistant, a fulfillment request specifying an intent from the virtual assistant; push an item onto a conversation stack stored, the item including an identifier of the intent; execute an action handler associated with the intent to generate instructions to manipulate the conversation stack; manipulate the conversation stack according to the instructions; and store the conversation stack for subsequent processing in support of the conversation.

Claims (54)

1. A computer system configured to support a conversation between a user and a virtual assistant, the computer system comprising:

a memory; and

at least one processor coupled to the memory and configured to

receive, from the virtual assistant, a fulfillment request specifying a first intent,

push a first item onto a conversation stack stored in the memory, the first item including an identifier of the first intent,

dispatch the first intent to an action handler registered to receive the first intent,

receive, from the action handler, one or more instructions to manipulate the conversation stack,

manipulate the conversation stack in accordance with the one or more instructions including pushing a second item onto the conversation stack, the second item including an identifier of a second intent,

peek at the second item in the conversation stack to generate a response to the user regarding the second intent;

transmit a fulfillment response to the virtual assistant, the fulfillment response comprising the response to the user; and

store the conversation stack in the memory for subsequent processing within the conversation.

2. The computer system of claim 1 , wherein the action handler is a first action handler and to peek comprises to dispatch the second intent to a second action handler associated with the second intent.

3. The computer system of claim 1 , wherein the fulfillment request comprises a full representation of the conversation stack.

4. The computer system of claim 1 , wherein the fulfillment request comprises a session identifier, and the at least one processor is further configured to store, in the memory, an association between the conversation stack and the session identifier.

5. The computer system of claim 1 , wherein the intent is a first intent, the fulfillment request is a first fulfillment request, and the at least one processor is further configured to:

receive a second fulfillment request comprising a second intent;

call the action handler with the second intent to determine whether the action handler can process the second intent; and

process a response message from the action handler.

6. The computer system of claim 5 , wherein the response message specifies a response to the user and at least one instruction to manipulate the conversation stack and the at least one processor is further configured to:

append the response to the user to another response to the user; and

manipulate the conversation stack in accordance with the at least one instruction.

7. The computer system of claim 5 , wherein the response message specifies no additional action and the at least one processor is further configured to take no additional action regarding the response message.

8. The computer system of claim 5 , wherein the item is a first item and the at least one processor is further configured to call the action handler to indicate that a second item will be placed atop the item prior to pushing the second item onto the conversation stack.

9. A method of supporting a conversation between a virtual assistant and a user, the method comprising:

receiving, from the virtual assistant, a fulfillment request specifying a first intent;

pushing a first item onto a conversation stack stored in memory, the first item including an identifier of the first intent;

dispatching the first intent to an action handler registered to receive the first intent;

receiving, from the action handler, a response message including a response to the user and one or more instructions to manipulate the conversation stack;

manipulating the conversation stack in accordance with the one or more instructions including pushing a second item onto the conversation stack, the second item including an identifier of a second intent;

peeking at the second item in the conversation stack to generate an additional response to the user regarding the second intent;

appending the additional response to the user to the response to the user;

storing the conversation stack in the memory for subsequent processing within the conversation; and

transmitting a fulfillment response to the virtual assistant to continue the conversation, the fulfillment response comprising the response to the user.

10. The method of claim 9 , wherein the action handler is a first action handler and peeking comprises dispatching the second intent to a second action handler registered to receive the second intent.

11. The method of claim 9 , wherein receiving the fulfillment request comprises receiving a full representation of the conversation stack.

12. The method of claim 9 , wherein receiving the fulfillment request comprises receiving a session identifier, and the method further comprises storing, in the memory, an association between the conversation stack and the session identifier.

13. The method of claim 9 , wherein the intent is a first intent, the response message is a first response message, the fulfillment request is a first fulfillment request, and the method further comprises:

receiving a second fulfillment request comprising a second intent;

calling the action handler with the second intent to determine whether the action handler can process the second intent; and

processing a second response message from the action handler.

14. The method of claim 13 , wherein the response to the user is a first response to the user, the second response message comprises a second response to the user and at least one instruction to manipulate the conversation stack, and the method further comprises:

appending the first response to the user to the second response to the user; and

manipulating the conversation stack in accordance with the at least one instruction.

15. The method of claim 13 , wherein the item is a first item and the method further comprises calling the action handler to indicate that a second item will be placed atop the first item prior to pushing the second item onto the conversation stack.

16. A non-transitory computer readable medium storing executable sequences of instructions to implement a conversation stack supporting a conversation between a user and a virtual assistant, the sequences of instructions comprising instructions to:

receive, from a virtual assistant, a fulfillment request specifying a first intent;

push a first item onto a conversation stack stored in a memory, the first item including an identifier of the first intent;

dispatch the intent to an action handler registered to receive the intent;

manipulate the conversation stack in accordance with one or more instructions received from the action handler including pushing a second item onto the conversation stack, the second item including an identifier of a second intent;

peek at the second item in the conversation stack to generate a response to the user regarding the second intent;

store the conversation stack in the memory for subsequent processing within the conversation;

store the response to the user in a fulfillment response; and

transmit the fulfillment response to the virtual assistant.

17. The non-transitory computer readable medium of claim 16 , wherein the action handler is a first action handler and to peek comprises to dispatch the second intent to a second action handler registered to receive the second intent.

Assignments (3)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2022
From: BULPIN, JAMES ROY
To: CITRIX SYSTEMS, INC.
Reel/Frame 060506/0654 →
Continuity (3)
Continuation 16407571 · May 9, 2019
Provisional Application 62806328 · Feb 15, 2019
Related Publication 20220300304A1 · Sep 22, 2022