IP Library › Granted Patent US 10,706,841
Granted Patent B2
US 10,706,841 · App. 15/394,162 · Granted Jul 7, 2020

Task flow identification based on user intent

Inventors: Thomas Robert Gruber (Emerald Hills, CA); Adam John Cheyer (Oakland, CA); Dag Kittlaus (Cupertino, CA); Didier Rene Guzzoni (Mont sur-Rolle, CH); Christopher Dean Brigham (San Jose, CA); Richard Donald Giuli (Arroyo Grande, CA); Marcello Bastea-Forte (Cupertino, CA); Harry Joseph Saddler (Berkeley, CA)
Assignee: Apple Inc.
G10L15/1815B60K35/00G06F3/167G06F9/54G06F16/3329G06F16/3344G06F16/9537G06F40/279G06F40/30G06F40/40G10L13/02G10L13/08G10L15/183G10L15/22G10L15/26G10L15/265G10L21/06H04M1/6091H04M1/72547H04M1/72563H04M1/72597G10L13/00G10L15/1822
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 10,706,841
App. No.
15/394,162
Granted
Jul 7, 2020
Kind
B2
Abstract

The intelligent automated assistant system engages with the user in an integrated, conversational manner using natural language dialog, and invokes external services when appropriate to obtain information or perform various actions. The system can be implemented using any of a number of different platforms, such as the web, email, smartphone, and the like, or any combination thereof. In one embodiment, the system is based on sets of interrelated domains and tasks, and employs additional functionally powered by external services with which the system can interact.

Claims (134)

1. A method for operating a digital assistant, comprising:

at an electronic device comprising a processor and memory storing instructions for execution by the processor:

receiving a speech input indicative of a user request;

obtaining context information associated with a user of the electronic device;

processing the user request to obtain a representation of user intent, wherein the representation of user intent associates the user request with a task flow operationalizing a requested task, and wherein the task flow is operable to invoke one or more services of a plurality of services, each service of the plurality of services supporting one or more functions according to a respective set of one or more service parameters;

based on the representation of user intent, identifying a plurality of relevant task parameters for the task flow;

determining, by the automated assistant, a subset of the plurality of services in accordance with the context information and the plurality of relevant task parameters;

executing the task flow by invoking the subset of the plurality of services;

after an unsuccessful attempt to complete the requested task, selecting one or more task parameters from the plurality of relevant task parameters; and

relaxing the selected parameters in an additional attempt to complete the requested task.

2. The method of claim 1 , wherein the context information comprises long-term personal memory.

3. The method of claim 1 , wherein obtaining the context information further comprises:

prior to receiving the speech input, receiving another speech input through the conversational interface; and

processing the another speech input obtain the context information.

4. The method of claim 1 , wherein obtaining the context information further comprises:

prior to receiving the speech input, receiving a non-speech input from the user; and

processing the non-speech input to obtain the context information.

5. The method of claim 1 , wherein at least one service of the plurality of services is associated with a service capability model comprising declarative descriptions of capabilities and properties of the service.

6. The method of claim 1 , wherein at least one service of the plurality of services is associated with metadata, wherein the metadata includes:

a performance rating;

a property quality rating;

an overall quality rating; or

one or more classes of parameters supported by the service.

7. The method of claim 1 , wherein determining the subset of the plurality of services comprises:

comparing, by the digital assistant, the plurality of relevant task parameters with service capability models associated with the subset of the plurality of services.

8. The method of claim 1 , further comprising:

based on the context information, assessing relative abilities of multiple subsets of the plurality of services to respond to the user request, each of the multiple subsets of the plurality of services operable to execute the task flow based on the identified plurality of relevant task parameters.

9. The method of claim 1 , wherein the subset of the plurality of services comprises overlapping services, wherein each of the overlapping services of the subset has a same declarative description of a capability.

10. The method of claim 1 , wherein the plurality of services comprises a web service, an application on the electronic device, an application remote from the electronic device, or a function of an operating system.

11. The method of claim 1 , further comprising:

transforming a task parameter of the plurality of relevant task parameters based on an API associated with the subset of the plurality of services.

12. The method of claim 1 , wherein invoking the subset of the plurality of services comprises executing the task flow.

13. The method of claim 1 , wherein the context information comprises short-term personal memory.

14. The method of claim 13 , wherein the short-term personal memory comprises a history of recent interactions between the user and the digital assistant.

15. The method of claim 1 , wherein the context information comprises information available from a runtime environment of the digital assistant.

16. The method of claim 15 , wherein the information comprises information corresponding to one or more instantiated elements of an ontology of the digital assistant.

17. The method of claim 1 , further comprising:

after invoking the subset of plurality of services, merging, by the digital assistant,

results returned by the subset of the plurality of services to obtain a merged result.

18. The method of claim 17 , further comprising:

presenting the merged result within the digital assistant.

19. The method of claim 17 , wherein the subset of the plurality of services is a first subset, the method further comprising,

determining, by the digital assistant, a second subset of the plurality of services to annotate one or more properties of the merged result; and

invoking the second subset of the plurality of services.

20. The method of claim 19 , wherein the second subset of the plurality of services is determined based on a property policy function.

21. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by one or more processors of an electronic device, cause the device to:

receive a speech input indicative of a user request;

obtain context information associated with a user of the electronic device;

process the user request to obtain a representation of user intent, wherein the representation of user intent associates the user request with a task flow operationalizing a requested task, and wherein the task flow is operable to invoke one or more services of a plurality of services, each service of the plurality of services supporting one or more functions according to a respective set of one or more service parameters;

based on the representation of user intent, identify a plurality of relevant task parameters for the task flow;

determine, by the automated assistant, a subset of the plurality of services in accordance with the context information and the plurality of relevant task parameters; and

execute the task flow by invoking the subset of the plurality of services;

after an unsuccessful attempt to complete the requested task, select one or more task parameters from the plurality of relevant task parameters; and

relax the selected parameters in an additional attempt to complete the requested task.

22. The computer readable storage medium of claim 21 , wherein the context information comprises long-term personal memory.

23. The computer readable storage medium of claim 21 , wherein obtaining the context information further comprises:

prior to receiving the speech input, receiving another speech input through the conversational interface; and

processing the another speech input to obtain the context information.

24. The computer readable storage medium of claim 21 , wherein obtaining the context information further comprises:

prior to receiving the speech input, receiving a non-speech input from the user; and

processing the non-speech input to obtain the context information.

25. The computer readable storage medium of claim 21 , wherein at least one service of the plurality of services is associated with a service capability model comprising declarative descriptions of capabilities and properties of the service.

26. The computer readable storage medium of claim 21 , wherein at least one service of the plurality of services is associated with metadata, wherein the metadata includes:

a performance rating;

a property quality rating;

an overall quality rating; or

one or more classes of parameters supported by the service.

27. The computer readable storage medium of claim 21 , wherein determining the subset of the plurality of services comprises:

comparing, by the digital assistant, the plurality of relevant task parameters with service capability models associated with the subset of the plurality of services.

28. The computer readable storage medium of claim 21 , wherein the subset of the plurality of services comprises overlapping services, wherein each of the overlapping services of the subset has a same declarative description of a capability.

29. The computer readable storage medium of claim 21 , wherein the plurality of services comprises a web service, an application on the electronic device, an application remote from the electronic device, or a function of an operating system.

30. The computer readable storage medium of claim 21 , wherein the instructions further cause the device to:

transform a task parameter of the plurality of relevant task parameters based on an API associated with the subset of the plurality of services.

31. The computer readable storage medium of claim 21 , wherein invoking the subset of the plurality of services comprises executing the task flow.

32. The computer readable storage medium of claim 21 , wherein the context information comprises short-term personal memory.

33. The computer readable storage medium of claim 32 , wherein the short-term personal memory comprises a history of recent interactions between the user and the digital assistant.

34. The computer readable storage medium of claim 21 , wherein the context information comprises information available from a runtime environment of the digital assistant.

35. The computer readable storage medium of claim 34 , wherein the information comprises information corresponding to one or more instantiated elements of an ontology of the digital assistant.

36. The computer readable storage medium of claim 21 , wherein the instructions further cause the device to:

based on the context information, assess relative abilities of multiple subsets of the plurality of services to respond to the user request, each of the multiple subsets of the plurality of services operable to execute the task flow based on the identified plurality of relevant task parameters.

37. The computer readable storage medium of claim 21 , wherein the instructions further cause the device to:

after invoking the subset of plurality of services, merge, by the digital assistant, results returned by the subset of the plurality of services to obtain a merged result.

38. The computer readable storage medium of claim 37 , wherein the instructions further cause the device to:

present the merged result within the digital assistant.

39. The computer readable storage medium of claim 38 , wherein the subset of the plurality of services is a first subset, and wherein the instructions further cause the device to:

determine, by the digital assistant, a second subset of the plurality of services to annotate one or more properties of the merged result; and

invoke the second subset of the plurality of services.

40. The computer readable storage medium of claim 39 , wherein the second subset of the plurality of services is determined based on a property policy function.

41. An electronic device, comprising:

one or more processors;

a memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

receiving a speech input indicative of a user request;

obtaining context information associated with a user of the electronic device;

processing the user request to obtain a representation of user intent, wherein the representation of user intent associates the user request with a task flow operationalizing a requested task, and wherein the task flow is operable to invoke one or more services of a plurality of services, each service of the plurality of services supporting one or more functions according to a respective set of one or more service parameters;

based on the representation of user intent, identifying a plurality of relevant task parameters for the task flow;

determining, by the automated assistant, a subset of the plurality of services in accordance with the context information and the plurality of relevant task parameters; and

executing the task flow by invoking the subset of the plurality of services;

after an unsuccessful attempt to complete the requested task, selecting one or more task parameters from the plurality of relevant task parameters; and

relaxing the selected parameters in an additional attempt to complete the requested task.

42. The device of claim 41 , wherein the context information comprises long-term personal memory.

43. The device of claim 41 , wherein obtaining the context information further comprises:

prior to receiving the speech input, receiving another speech input through the conversational interface; and

processing the another speech input to obtain the context information.

44. The device of claim 41 , wherein obtaining the context information further comprises:

prior to receiving the speech input, receiving a non-speech input from the user; and

processing the non-speech input to obtain the context information.

45. The device of claim 41 , wherein at least one service of the plurality of services is associated with a service capability model comprising declarative descriptions of capabilities and properties of the service.

46. The device of claim 41 , wherein at least one service of the plurality of services is associated with metadata, wherein the metadata includes:

a performance rating;

a property quality rating;

an overall quality rating; or

one or more classes of parameters supported by the service.

47. The device of claim 41 , wherein determining the subset of the plurality of services comprises:

comparing, by the digital assistant, the plurality of relevant task parameters with service capability models associated with the subset of the plurality of services.

48. The device of claim 41 , wherein the programs further include instructions for:

based on the context information, assessing relative abilities of multiple subsets of the plurality of services to respond to the user request, each of the multiple subsets of the plurality of services operable to execute the task flow based on the identified plurality of relevant task parameters.

49. The device of claim 41 , wherein the programs further include instructions for:

after invoking the subset of plurality of services, merging, by the digital assistant, results returned by the subset of the plurality of services to obtain a merged result.

50. The device of claim 41 , wherein the subset of the plurality of services comprises overlapping services, wherein each of the overlapping services of the subset has a same declarative description of a capability.

51. The device of claim 41 , wherein the plurality of services comprises a web service, an application on the electronic device, an application remote from the electronic device, or a function of an operating system.

52. The device of claim 41 , wherein the programs further include instructions for:

transforming a task parameter of the plurality of relevant task parameters based on an API associated with the subset of the plurality of services.

53. The device of claim 41 , wherein invoking the subset of the plurality of services comprises executing the task flow.

54. The device of claim 41 , wherein the context information comprises short-term personal memory.

55. The device of claim 54 , wherein the short-term personal memory comprises a history of recent interactions between the user and the digital assistant.

56. The device of claim 41 , wherein the context information comprises information available from a runtime environment of the digital assistant.

57. The device of claim 56 , wherein the information comprises information corresponding to one or more instantiated elements of an ontology of the digital assistant.

58. The device of claim 49 , wherein the programs further include instructions for:

presenting the merged result within the digital assistant.

59. The device of claim 49 , wherein the subset of the plurality of services is a first subset, and wherein the programs further include instructions for:

determining, by the digital assistant, a second subset of the plurality of services to annotate one or more properties of the merged result; and

invoking the second subset of the plurality of services.

60. The device of claim 59 , wherein thy: second subset of the plurality of services is determined based on a property policy function.

Continuity (4)
Continuation 13492809 · Jun 9, 2012
Continuation 12987982 · Jan 10, 2011
Provisional Application 61295774 · Jan 18, 2010
Related Publication 20170178626A1 · Jun 22, 2017
Cited By (45)
US 12,190,906 US 12,197,712 US 12,197,817 US 12,200,297 US 12,204,932 US 12,211,502 US 12,216,894 US 12,219,314 US 12,223,282 US 12,236,952 US 12,254,887 US 12,260,234 US 12,266,365 US 12,266,380 US 12,277,954 US 12,293,203 US 12,293,763 US 12,293,764 US 12,301,635 US 12,333,404 US 12,361,943 US 12,367,879 US 12,379,894 US 12,380,281 US 12,380,876 US 12,386,434 US 12,386,491 US 12,400,082 US 12,413,663 US 12,431,128 US 12,477,470 US 12,536,041 US 12,556,890 US 12,567,415 US 12,608,171 US 12,608,411 US 12,613,621 US 12,613,730 US 12,619,452 US 12,620,179 US 12,640,151 US 12,670,639 US 12,675,839 US 12,711,315 US 12,743,626