IP Library Granted Patent US 9,767,794
Granted Patent B2
US 9,767,794 · App. 14/456,652 · Granted Sep 19, 2017

Dialog flow management in hierarchical task dialogs

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 9,767,794
App. No.
14/456,652
Granted
Sep 19, 2017
Kind
B2
Abstract

Methods and systems for managing multiple tasks using a dialog are presented. In some embodiments, a processor may parse a first natural language user input received at a user device to extract task related information from the first natural language user input. In response to identifying that the first natural language user input comprises a request to perform a first task, the processor may initiate execution of the first task. The user device may receive a second natural language user input after execution of the first task has been initiated which requests execution of a second task. The processor may initiate execution of the second task before execution of the first task is complete.

Claims (59)

1. A method comprising:

identifying, by a computing device, that a first natural language user input, received at the computing device, comprises a request to perform a first dialog task;

determining a first hierarchical order for arranging execution of a first plurality of task agents corresponding to the first dialog task;

responsive to determining the first hierarchical order, initiating execution, by the computing device, of the first plurality of task agents according to the first hierarchical order;

responsive to a determination that a second natural language user input, received at the computing device during execution of the first plurality of task agents, comprises a request to perform a second dialog task, determining, by the computing device, that the second dialog task is to be executed before execution of the first plurality of task agents is completed;

determining a second hierarchical order for arranging execution of a second plurality of task agents corresponding to the second dialog task;

activating, based on a determination of whether execution of the second plurality of task agents would cause a runtime error, the second plurality of task agents;

initiating execution, by the computing device prior to completion of the execution of the first plurality of task agents, of the second plurality of task agents according to the second hierarchical order; and

resuming execution of a task agent of the first plurality of task agents, wherein the execution of the task agent comprises using, by the task agent, at least a portion of the second natural language user input.

2. The method of claim 1 , further comprising:

responsive to determining that the second natural language user input comprises the request to perform the second dialog task, suspending execution, by the computing device, of the first plurality of task agents; and

preserving, by the computing device, a state of a natural language dialog and user inputs received during execution of the first plurality of task agents.

3. The method of claim 2 , wherein resuming execution of the task agent comprises:

responsive to determining that execution of the second plurality of task agents has completed, retrieving, by the computing device, the state of the natural language dialog and user inputs received during execution of the first plurality of task agents.

4. The method of claim 1 , wherein initiating execution of the first plurality of task agents further comprises scheduling for execution, by the computing device, each task agent of the first plurality of task agents in an order based on the first hierarchical order, and wherein initiating execution of the second plurality of task agents further comprises scheduling for execution, by the computing device, each task agent of the second plurality of task agents in an order based on the second hierarchical order.

5. The method of claim 1 , further comprising:

switching, by the computing device, between different dialog task agents based on a natural language dialog between a user and the computing device.

6. The method of claim 1 , wherein execution of the first plurality of task agents comprises:

generating, by the computing device, a list of parameters that each of the first plurality of task agents is configured to identify from a natural language dialog; and

responsive to parsing the natural language dialog, associating, by the computing device, at least one user input value from the natural language dialog with each parameter in the list of parameters.

7. The method of claim 1 , further comprising:

determining, by the computing device, that the second natural language user input comprises instructions to modify the first dialog task by adding additional task agents to the first hierarchical order; and

scheduling for execution, by the computing device, the additional task agents according to the first hierarchical order.

8. The method of claim 1 , wherein determining the first hierarchical order comprises traversing a dialog task tree.

9. The method of claim 1 , wherein initiating execution of the first plurality of task agents according to the first hierarchical order comprises placing, based on the first hierarchical order, the first plurality of task agents on a stack.

10. An apparatus, comprising:

at least one processor; and

at least one memory storing computer-readable instructions that, when executed by the at least one processor, cause the apparatus to:

identify that a first natural language user input, received at the apparatus, comprises a request to perform a first dialog task;

determine a first hierarchical order for arranging execution of a first plurality of task agents corresponding to the first dialog task;

initiate execution of the first plurality of task agents according to the first hierarchical order;

responsive to a determination that a second natural language user input, received during execution of the first plurality of task agents, comprises a request to perform a second dialog task, determine that the second dialog task is to be executed before execution of the first plurality of task agents is completed;

determine a second hierarchical order for arranging execution of a second plurality of task agents corresponding to the second dialog task;

initiate execution, prior to completion of the execution of the first plurality of task agents, of the second plurality of task agents according to the second hierarchical order;

suspend, based on a determination that a task agent of the second plurality of task agents would cause a runtime error, the second dialog task; and

resume execution of a task agent of the first plurality of task agents.

11. The apparatus of claim 10 , wherein the instructions, when executed by the at least one processor, further cause the apparatus to:

suspend execution of the first plurality of task agents in response to the determination that the second natural language user input comprises the request to perform the second dialog task; and

preserve a state of a natural language dialog and user inputs received during execution of the first plurality of task agents.

12. The apparatus of claim 11 , wherein the instructions that cause the apparatus to resume execution of the task agent comprise instructions that cause the apparatus to retrieve the state of the natural language dialog and user inputs received during execution of the first plurality of task agents.

13. The apparatus of claim 10 , wherein the instructions that cause the apparatus to initiate execution of the first plurality of task agents comprise instructions that cause the apparatus to schedule execution of each task agent of the first plurality of task agents in an order based on the first hierarchical order, and wherein the instructions that cause the apparatus to initiate execution of the second plurality of task agents comprise instructions that cause the apparatus to schedule execution of each task agent of the second plurality of task agents in an order based on the second hierarchical order.

14. The apparatus of claim 10 , wherein the instructions, when executed by the at least one processor, further cause the apparatus to switch between different dialog task agents based on a natural language dialog between a user and the apparatus.

15. The apparatus of claim 14 , wherein the instructions, when executed by the at least one processor, further cause the apparatus to:

generate a list of parameters that each of the first plurality of task agents is configured to identify from a natural language dialog user input received at the apparatus; and

associate at least one user input value from the natural language dialog user input with each parameter in the list of parameters upon parsing the natural language dialog user input.

16. The apparatus of claim 10 , wherein the instructions, when executed by the at least one processor, further cause the apparatus to:

determine that a natural language dialog user input, received at the apparatus, comprises instructions to modify the first dialog task by adding additional task agents to the first hierarchical order; and

schedule, for execution, the additional task agents according to the first hierarchical order.

17. A method comprising:

identifying, by a computing device, that a first natural language user input, received at the computing device, comprises a request to perform a first dialog task;

determining a first hierarchical order for arranging execution of a first plurality of task agents corresponding to the first dialog task;

initiating execution, by the computing device and based on the first hierarchical order, of the first plurality of task agents;

responsive to a determination that a second natural language user input, received at the computing device during execution of the first plurality of task agents, comprises a request to perform a second dialog task, determining, by the computing device, that the second dialog task is to be executed before execution of the first plurality of task agents is completed;

determining a second hierarchical order for arranging execution of a second plurality of task agents corresponding to the second dialog task;

initiating execution, by the computing device, prior to completion of the execution of the first plurality of task agents, and based on the second hierarchical order, of the second plurality of task agents; and

preventing, based on a determination that execution of a task agent of the second plurality of task agents would cause a runtime error, execution of the task agent.

18. The method of claim 17 , wherein determining the first hierarchical order comprises traversing a tree.

19. The method of claim 17 , wherein initiating execution of the first plurality of task agents comprises placing the first plurality of task agents on a stack.

20. The method of claim 17 , further comprising retrieving user inputs received during execution of the first plurality of task agents.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2023
From: NUANCE COMMUNICATIONS, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065578/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2014
From: VIBBERT, MITCHELL; GOUSSARD, JACQUES-OLIVIER; BEAUFORT, RICHARD J.; MONNAHAN, BENJAMIN P.
To: NUANCE COMMUNICATIONS, INC.
Reel/Frame 033513/0505 →