IP Library › Granted Patent US 10,417,037
Granted Patent B2
US 10,417,037 · App. 13/894,350 · Granted Sep 17, 2019

Systems and methods for integrating third party services with a digital assistant

Inventors: Thomas R. Gruber (Emerald Hills, CA); Christopher D. Brigham (San Jose, CA); Adam J. Cheyer (Oakland, CA); Daniel Keen (San Jose, CA); Kenneth Kocienda (San Jose, CA)
Assignee: Apple Inc.
G06F9/46G06F9/4843G06F9/4856G06Q10/10H04W4/00H04W4/029
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,417,037
App. No.
13/894,350
Filed
May 14, 2013
Granted
Sep 17, 2019
Kind
B2
Art Unit
2199
USPC
718/102
Abstract

The electronic device with one or more processors and memory receives an input of a user. The electronic device, in accordance with the input, identifies a respective task type from a plurality of predefined task types associated with a plurality of third party service providers. The respective task type is associated with at least one third party service provider for which the user is authorized and at least one third party service provider for which the user is not authorized. In response to identifying the respective task type, the electronic device sends a request to perform at least a portion of a task to a third party service provider of the plurality of third party service providers that is associated with the respective task type.

Claims (100)

1. An electronic device for processing a user input, the device comprising:

at least one processor; and

memory storing one or more programs for execution by the at least one processor, the one or more programs including instructions for:

receiving an input of a user;

determining a context of the electronic device;

identifying, based on the received user input and the determined context of the electronic device, a respective template from a plurality of templates, wherein each template of the plurality of templates is associated with a respective context of the electronic device, wherein the identified respective template is from a third party service provider to be associated with a task type based on a first request sent by the third party service provider, wherein the first request corresponds to the task type, and wherein the task type is part of a task flow model having a default model of tasks of task types;

in response to identifying the respective template, determining, using the task flow model, a task associated with the respective template; and

sending a second request to perform at least a portion of the task to the third party service provider.

2. The device of claim 1 , wherein the input is a voice input of the user that has been converted to text.

3. The device of claim 1 , wherein:

the electronic device is a portable electronic device of the user; and the electronic device stores a software application associated with the third party service provider.

4. The device of claim 3 , the one or more programs further comprising instructions for:

executing the software application for sending the second request.

5. The device of claim 3 , the one or more programs further comprising instructions for:

sending the second request without executing the software application.

6. The device of claim 1 , the one or more programs further comprising instructions for:

receiving results from the third party service provider.

7. The device of claim 6 , the one or more programs further comprising instructions for:

displaying at least a portion of the results to the user through a graphical user interface associated with the software application.

8. The device of claim 6 , the one or more programs further comprising instructions for:

presenting at least a portion of the results to the user through a graphical user interface other than a graphical user interface associated with the software application.

9. The device of claim 1 , wherein the first request is sent prior to receiving the input and includes the respective template

associated with at least one task that the third party service provider can perform.

10. The device of claim 1 , wherein the context is the location of the electronic device.

11. The device of claim 1 , wherein at least one third party service provider is associated with less than all of the plurality of templates.

12. The device of claim 1 , wherein each of the plurality of templates comprises a linguistic pattern, and wherein identifying the respective template from the plurality of templates comprises:

identifying one or more matches between words in the linguistic pattern and words in a text string corresponding to the input.

13. The device of claim 1 , wherein the identified respective template includes a word not included in any other template of the plurality of templates.

14. The device of claim 13 , wherein the identified respective template further includes one or more synonyms for the word.

15. The device of claim 1 , wherein the first request includes a third party domain.

16. The device of claim 1 , wherein the user input is received while displaying an application corresponding to the third party service provider.

17. The device of claim 1 , the one or more programs further comprising instructions for:

determining whether the user input corresponds to a predefined template and the respective template;

in accordance with a determination that the user input corresponds to the predefined template and the respective template, sending a third request to perform at least a portion of the task to a default service provider associated with the predefined template.

18. The device of claim 1 , wherein the third party service provider is selected from a plurality of third party service providers based on a preference of the user.

19. A method for processing a user input, performed at an electronic device with one or more processors and memory, the method comprising:

at the electronic device:

receiving an input of a user;

determining a context of the electronic device;

identifying, based on the received user input and the determined context of the electronic device, a respective template from a plurality of templates, wherein each template of the plurality of templates is associated with a respective context of the electronic device, wherein the identified respective template is from a third party service provider to be associated with a task type based on a first request sent by the third party service provider, wherein the first request corresponds to the task type, and wherein the task type is part of a task flow model having a default model of tasks of task types;

in response to identifying the respective template, determining, using the task flow model, a task associated with the respective template; and

sending a second request to perform at least a portion of the task to the third party service provider.

20. The method of claim 19 , wherein the input is a voice input of the user that has been converted to text.

21. The method of claim 19 , further comprising receiving results from the third party service provider.

22. The method of claim 19 , wherein the first request is sent prior to receiving the input and includes the respective template associated with at least one task that the third party service provider can perform.

23. The method of claim 19 , wherein:

the electronic device is a portable electronic device of the user; and the electronic device stores a software application associated with the third party service provider.

24. The method of claim 23 , further comprising:

executing the software application for sending the second request.

25. The method of claim 23 , further comprising:

sending the second request without executing the software application.

26. The method of claim 19 , further comprising:

receiving results from the third party service provider.

27. The method of claim 26 , further comprising:

displaying at least a portion of the results to the user through a graphical user interface associated with the software application.

28. The method of claim 26 , further comprising:

presenting at least a portion of the results to the user through a graphical user interface other than a graphical user interface associated with the software application.

29. The method of claim 19 , wherein each of the plurality of templates comprises a linguistic pattern, and wherein identifying the respective template from the plurality of templates comprises:

identifying one or more matches between words in the linguistic pattern and words in a text string corresponding to the input.

30. The method of claim 19 , wherein the identified respective template includes a word not included in any other template of the plurality of templates.

31. The method of claim 30 , wherein the identified respective template further includes one or more synonyms for the word.

32. The method of claim 19 , wherein the first request includes a third party domain.

33. The method of claim 19 , wherein the user input is received while displaying an application corresponding to the third party service provider.

34. The method of claim 19 , further comprising:

determining whether the user input corresponds to a predefined template and the respective template;

in accordance with a determination that the user input corresponds to the predefined template and the respective template, sending a third request to perform at least a portion of the task to a default service provider associated with the predefined template.

35. The method of claim 19 , wherein the third party service provider is selected from a plurality of third party service providers based on a preference of the user.

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

receive an input of a user;

determine a context of the electronic device;

identify, based on the received user input and the determined context of the electronic device, a respective template from a plurality of templates, wherein each template of the plurality of templates is associated with a respective context of the electronic device, wherein the identified respective template is from a third party service provider to be associated with a task type based on a first request sent by the third party service provider, wherein the first request corresponds to the task type, and wherein the task type is part of a task flow model having a default model of tasks of task types;

in response to identifying the respective template, determine, using the task flow model, a task associated with the respective template; and

send a second request to perform at least a portion of the task to the third party service provider.

37. The computer readable storage medium of claim 36 , wherein the input is a voice input of the user that has been converted to text.

38. The computer readable storage medium of claim 36 , wherein the one or more programs further comprise instructions, which when executed by the one or more processors, cause the electronic device to:

receive results from the third party service provider.

39. The computer readable storage medium of claim 36 , wherein the first request is sent prior to receiving the input and includes the respective template

associated with at least one task that the third party service provider can perform.

40. The computer readable storage medium of claim 36 , wherein:

the electronic device is a portable electronic device of the user; and the electronic device stores a software application associated with the third party service provider.

41. The computer readable storage medium of claim 40 , wherein the one or more programs further comprise instructions, which when executed by the one or more processors, cause the electronic device to:

execute the software application for sending the second request.

42. The computer readable storage medium of claim 40 , wherein the one or more programs further comprise instructions, which when executed by the one or more processors, cause the electronic device to:

send the second request without executing the software application.

43. The computer readable storage medium of claim 36 , wherein the one or more programs further comprise instructions, which when executed by the one or more processors, cause the electronic device to:

receive results from the third party service provider.

44. The computer readable storage medium of claim 43 , wherein the one or more programs further comprise instructions, which when executed by the one or more processors, cause the electronic device to:

display at least a portion of the results to the user through a graphical user interface associated with the software application.

45. The computer readable storage medium of claim 43 , wherein the one or more programs further comprise instructions, which when executed by the one or more processors, cause the electronic device to:

present at least a portion of the results to the user through a graphical user interface other than a graphical user interface associated with the software application.

46. The computer readable storage medium of claim 36 , wherein each of the plurality of templates comprises a linguistic pattern, and wherein identifying the respective template from the plurality of templates comprises:

identifying one or more matches between words in the linguistic pattern and words in a text string corresponding to the input.

47. The computer readable storage medium of claim 36 , wherein the identified respective template includes a word not included in any other template of the plurality of templates.

48. The computer readable storage medium of claim 47 , wherein the identified respective template further includes one or more synonyms for the word.

49. The computer readable storage medium of claim 36 , wherein the first request includes a third party domain.

50. The computer readable storage medium of claim 36 , wherein the user input is received while displaying an application corresponding to the third party service provider.

51. The computer readable storage medium of claim 36 , wherein the one or more programs further comprise instructions, which when executed by the one or more processors, cause the electronic device to:

determine whether the user input corresponds to a predefined template and the respective template;

in accordance with a determination that the user input corresponds to the predefined template and the respective template, send a third request to perform at least a portion of the task to a default service provider associated with the predefined template.

52. The computer readable storage medium of claim 36 , wherein the third party service provider is selected from a plurality of third party service providers based on a preference of the user.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2013
From: GRUBER, THOMAS R.; BRIGHAM, CHRISTOPHER D.; CHEYER, ADAM J.; KEEN, DANIEL; KOCIENDA, KENNETH
To: APPLE INC.
Reel/Frame 031367/0254 →
Continuity (3)
Provisional Application 61799916 · Mar 15, 2013
Provisional Application 61647434 · May 15, 2012
Related Publication 20130311997A1 · Nov 21, 2013
Cited By (43)
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,228 US 12,223,282 US 12,236,952 US 12,244,755 US 12,254,887 US 12,260,234 US 12,277,954 US 12,293,203 US 12,293,763 US 12,293,764 US 12,299,263 US 12,301,635 US 12,333,404 US 12,361,943 US 12,363,505 US 12,367,348 US 12,367,879 US 12,386,434 US 12,386,491 US 12,394,412 US 12,423,052 US 12,424,218 US 12,431,128 US 12,477,470 US 12,526,361 US 12,556,890 US 12,563,299 US 12,567,415 US 12,578,757 US 12,608,171 US 12,613,730 US 12,615,491 US 12,619,452 US 12,620,179 US 12,640,151 US 12,676,927