IP Library › Granted Patent US 12,288,036
Granted Patent B2
US 12,288,036 · App. 17/464,560 · Granted Apr 29, 2025

Reform input in flow execution

Inventors: Benjamin T. H. Cox (Pittsburgh, PA); Antoine R. Raux (Los Gatos, CA)
Assignee: Apple Inc.
G06F40/35G06F9/4881G06F18/2113G06V30/274G10L15/1815
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 12,288,036
App. No.
17/464,560
Filed
Sep 1, 2021
Granted
Apr 29, 2025
Kind
B2
Art Unit
2656
USPC
704/9
Abstract

Systems and processes for operating an intelligent automated assistant are provided. An example method includes, at an electronic device having one or more processors and memory, receiving an utterance including a user request, determining a natural language representation of the user request, determining a first software process associated with the natural language representation, determining whether the natural language representation can be executed by a task flow of the first software process, and in accordance with a determination that the natural language representation cannot be executed by the task flow of the first software process: determining a set of transformation instructions, determining a revised natural language representation using the set of transformation instructions, and providing the revised natural language representation to a second software process.

Claims (172)

1. A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of an electronic device, the one or more programs including instructions for:

receiving an utterance;

determining a natural language representation of the utterance;

determining a first software process associated with the natural language representation;

determining whether the natural language representation can be executed by a task flow of the first software process;

in accordance with a determination that the natural language representation cannot be executed by the task flow of the first software process:

determining a set of transformation instructions, wherein the set of transformation instructions include instructions to change the natural language representation to a revised natural language representation;

determining the revised natural language representation using the set of transformation instructions; and

providing the revised natural language representation to a second software process.

2. The non-transitory computer-readable storage medium of claim 1 , wherein the natural language representation includes a user intent.

3. The non-transitory computer-readable storage medium of claim 1 , wherein the natural language representation includes an ontology.

4. The non-transitory computer-readable storage medium of claim 1 , wherein the first software process includes an application.

5. The non-transitory computer-readable storage medium of claim 1 , wherein the first software process includes a plug-in associated with an application.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the first software process determines whether the natural language representation can be executed by a task flow of the first software process, the set of transformation instructions, and the revised natural language representation.

7. The non-transitory computer-readable storage medium of claim 1 , wherein, prior to providing the natural language representation to the first software process, determining whether the natural language representation can be executed by a task flow of the first software process, the set of transformation instructions, and the revised natural language representation.

8. The non-transitory computer-readable storage medium of claim 1 , wherein determining the set of transformation instructions further comprises:

determining a category of transformation instruction; and

retrieving the set of transformation instructions from the category of transformation instructions.

9. The non-transitory computer-readable storage medium of claim 1 , wherein the one or more programs further include instructions for:

in accordance with a determination that the natural language representation can be executed by the task flow of the first software process:

executing the task flow using the natural language representation; and

providing an output corresponding to the executed task flow.

10. The non-transitory computer-readable storage medium of claim 1 , wherein the one or more programs further include instructions for:

storing the utterance and the natural language representation in association with the transformation instructions.

11. The non-transitory computer-readable storage medium of claim 10 , wherein the utterance is a first utterance and wherein the one or more programs further include instructions for:

receiving a second utterance;

retrieving the natural language representation stored in association with the first utterance;

determining whether the natural language representation can be executed by the task flow of the first software process; and

in accordance with a determination that the natural language representation cannot be executed by the task flow of the first software process:

incrementing a count associated with the transformation instructions.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the one or more programs further include instructions for:

determining whether the count exceeds a predetermined threshold; and

in accordance with a determination that the count exceeds the predetermined threshold, training a digital assistant to automatically implement the transformation instructions.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the one or more programs further include instructions for:

after training the digital assistant to automatically implement the transformation instructions:

receiving a third utterance;

determining the revised natural language representation; and

providing the revised natural language representation to the second software process.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the transformation instructions associated with the count that exceeds the predetermined threshold are determined to be salient.

15. The non-transitory computer-readable storage medium of claim 1 , wherein the transformation instructions include instructions to change a first user intent to a second user intent.

16. The non-transitory computer-readable storage medium of claim 1 , wherein the transformation instructions include instructions to map a user intent to an ontology.

17. The non-transitory computer-readable storage medium of claim 1 , wherein the task flow is a first task flow, the set of transformation instructions is a first set of transformation instructions, and the revised natural language representation is a first revised natural language representation and wherein the one or more programs further include instructions for:

determining whether the first revised natural language representation can be executed by a second task flow of the second software process;

in accordance with a determination that the first revised natural language representation cannot be executed by the second task flow:

determining a second set of transformation instructions;

determining a second revised natural language representation using the second set of transformation instructions; and

providing the second revised natural language representation to a third software process.

18. The non-transitory computer-readable storage medium of claim 1 , wherein determining the set of transformation instructions further comprises:

determining a plurality of transformation instructions associated with a plurality of software processes.

19. The non-transitory computer-readable storage medium of claim 18 , wherein determining a revised natural language representation using the set of transformation instructions further comprises:

determining a plurality of revised natural language representations corresponding to the plurality of transformer instructions;

ranking the plurality of revised natural language representations; and

selecting a highest ranked revised natural language representations as the revised natural language representation.

20. The non-transitory computer-readable storage medium of claim 19 , wherein ranking the plurality of revised natural language representations further comprises:

retrieving a plurality of natural language representations determined based on the utterance; and

ranking the plurality of natural language representations based on the transformation instructions.

21. 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 an utterance;

determining a natural language representation of the utterance;

determining a first software process associated with the natural language representation;

determining whether the natural language representation can be executed by a task flow of the first software process;

in accordance with a determination that the natural language representation cannot be executed by the task flow of the first software process:

determining a set of transformation instructions, wherein the set of transformation instructions include instructions to change the natural language representation to a revised natural language representation;

determining the revised natural language representation using the set of transformation instructions; and

providing the revised natural language representation to a second software process.

22. A method, comprising:

at an electronic device with one or more processors and memory:

receiving an utterance;

determining a natural language representation of the utterance;

determining a first software process associated with the natural language representation;

determining whether the natural language representation can be executed by a task flow of the first software process;

in accordance with a determination that the natural language representation cannot be executed by the task flow of the first software process:

determining a set of transformation instructions, wherein the set of transformation instructions include instructions to change the natural language representation to a revised natural language representation;

determining the revised natural language representation using the set of transformation instructions; and

providing the revised natural language representation to a second software process.

23. The electronic device of claim 21 , wherein the natural language representation includes a user intent.

24. The electronic device of claim 21 , wherein the natural language representation includes an ontology.

25. The electronic device of claim 21 , wherein the first software process includes an application.

26. The electronic device of claim 21 , wherein the first software process includes a plug-in associated with an application.

27. The electronic device of claim 21 , wherein the first software process determines whether the natural language representation can be executed by a task flow of the first software process, the set of transformation instructions, and the revised natural language representation.

28. The electronic device of claim 21 , wherein, prior to providing the natural language representation to the first software process, determining whether the natural language representation can be executed by a task flow of the first software process, the set of transformation instructions, and the revised natural language representation.

29. The electronic device of claim 21 , wherein determining the set of transformation instructions further comprises:

determining a category of transformation instruction; and

retrieving the set of transformation instructions from the category of transformation instructions.

30. The electronic device of claim 21 , wherein the one or more programs further include instructions for:

in accordance with a determination that the natural language representation can be executed by the task flow of the first software process:

executing the task flow using the natural language representation; and

providing an output corresponding to the executed task flow.

31. The electronic device of claim 21 , wherein the one or more programs further include instructions for:

storing the utterance and the natural language representation in association with the transformation instructions.

32. The electronic device of claim 31 , wherein the utterance is a first utterance and wherein the one or more programs further include instructions for:

receiving a second utterance;

retrieving the natural language representation stored in association with the first utterance;

determining whether the natural language representation can be executed by the task flow of the first software process; and

in accordance with a determination that the natural language representation cannot be executed by the task flow of the first software process:

incrementing a count associated with the transformation instructions.

33. The electronic device of claim 32 , wherein the one or more programs further include instructions for:

determining whether the count exceeds a predetermined threshold; and

in accordance with a determination that the count exceeds the predetermined threshold, training a digital assistant to automatically implement the transformation instructions.

34. The electronic device of claim 33 , wherein the one or more programs further include instructions for:

after training the digital assistant to automatically implement the transformation instructions:

receiving a third utterance;

determining the revised natural language representation; and

providing the revised natural language representation to the second software process.

35. The electronic device of claim 33 , wherein the transformation instructions associated with the count that exceeds the predetermined threshold are determined to be salient.

36. The electronic device of claim 21 , wherein the transformation instructions include instructions to change a first user intent to a second user intent.

37. The electronic device of claim 21 , wherein the transformation instructions include instructions to map a user intent to an ontology.

38. The electronic device of claim 21 , wherein the task flow is a first task flow, the set of transformation instructions is a first set of transformation instructions, and the revised natural language representation is a first revised natural language representation and wherein the one or more programs further include instructions for:

determining whether the first revised natural language representation can be executed by a second task flow of the second software process;

in accordance with a determination that the first revised natural language representation cannot be executed by the second task flow:

determining a second set of transformation instructions;

determining a second revised natural language representation using the second set of transformation instructions; and

providing the second revised natural language representation to a third software process.

39. The electronic device of claim 21 , wherein determining the set of transformation instructions further comprises:

determining a plurality of transformation instructions associated with a plurality of software processes.

40. The electronic device of claim 39 , wherein determining a revised natural language representation using the set of transformation instructions further comprises:

determining a plurality of revised natural language representations corresponding to the plurality of transformer instructions;

ranking the plurality of revised natural language representations; and

selecting a highest ranked revised natural language representations as the revised natural language representation.

41. The electronic device of claim 40 , wherein ranking the plurality of revised natural language representations further comprises:

retrieving a plurality of natural language representations determined based on the utterance; and

ranking the plurality of natural language representations based on the transformation instructions.

42. The method of claim 22 , wherein the natural language representation includes a user intent.

43. The method of claim 22 , wherein the natural language representation includes an ontology.

44. The method of claim 22 , wherein the first software process includes an application.

45. The method of claim 22 , wherein the first software process includes a plug-in associated with an application.

46. The method of claim 22 , wherein the first software process determines whether the natural language representation can be executed by a task flow of the first software process, the set of transformation instructions, and the revised natural language representation.

47. The method of claim 22 , wherein, prior to providing the natural language representation to the first software process, determining whether the natural language representation can be executed by a task flow of the first software process, the set of transformation instructions, and the revised natural language representation.

48. The method of claim 22 , wherein determining the set of transformation instructions further comprises:

determining a category of transformation instruction; and

retrieving the set of transformation instructions from the category of transformation instructions.

49. The method of claim 22 , further comprising:

in accordance with a determination that the natural language representation can be executed by the task flow of the first software process:

executing the task flow using the natural language representation; and

providing an output corresponding to the executed task flow.

50. The method of claim 22 , further comprising:

storing the utterance and the natural language representation in association with the transformation instructions.

51. The method of claim 50 , wherein the utterance is a first utterance, the method further comprising:

receiving a second utterance;

retrieving the natural language representation stored in association with the first utterance;

determining whether the natural language representation can be executed by the task flow of the first software process; and

in accordance with a determination that the natural language representation cannot be executed by the task flow of the first software process:

incrementing a count associated with the transformation instructions.

52. The method of claim 51 , further comprising:

determining whether the count exceeds a predetermined threshold; and

in accordance with a determination that the count exceeds the predetermined threshold, training a digital assistant to automatically implement the transformation instructions.

53. The method of claim 52 , further comprising:

after training the digital assistant to automatically implement the transformation instructions:

receiving a third utterance;

determining the revised natural language representation; and

providing the revised natural language representation to the second software process.

54. The method of claim 52 , wherein the transformation instructions associated with the count that exceeds the predetermined threshold are determined to be salient.

55. The method of claim 22 , wherein the transformation instructions include instructions to change a first user intent to a second user intent.

56. The method of claim 22 , wherein the transformation instructions include instructions to map a user intent to an ontology.

57. The method of claim 22 , wherein the task flow is a first task flow, the set of transformation instructions is a first set of transformation instructions, and the revised natural language representation is a first revised natural language representation, the method further comprising:

determining whether the first revised natural language representation can be executed by a second task flow of the second software process;

in accordance with a determination that the first revised natural language representation cannot be executed by the second task flow:

determining a second set of transformation instructions;

determining a second revised natural language representation using the second set of transformation instructions; and

providing the second revised natural language representation to a third software process.

58. The method of claim 22 , wherein determining the set of transformation instructions further comprises:

determining a plurality of transformation instructions associated with a plurality of software processes.

59. The method of claim 58 , wherein determining a revised natural language representation using the set of transformation instructions further comprises:

determining a plurality of revised natural language representations corresponding to the plurality of transformer instructions;

ranking the plurality of revised natural language representations; and

selecting a highest ranked revised natural language representations as the revised natural language representation.

60. The method of claim 59 , wherein ranking the plurality of revised natural language representations further comprises:

retrieving a plurality of natural language representations determined based on the utterance; and

ranking the plurality of natural language representations based on the transformation instructions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2021
From: COX, BENJAMIN T.H.; RAUX, ANTOINE R.
To: APPLE INC.
Reel/Frame 057806/0318 →
Continuity (2)
Provisional Application 63195525 · Jun 1, 2021
Related Publication 20220382994A1 · Dec 1, 2022
References Cited (47)
US 7546382B2 · Healey et al. · 2009 [cited by applicant]
US 8515736B1 · Duta · 2013 [cited by examiner]
US 8676583B2 · Gupta et al. · 2014 [cited by applicant]
US 8838454B1 · Thenthiruperai · 2014 [cited by examiner]
US 9858925B2 · Gruber et al. · 2018 [cited by applicant]
US 11481559B1 · Asefi · 2022 [cited by examiner]
US 11763092B2 · Duong · 2023 [cited by examiner]
US 20080162471A1 · Bernard · 2008 [cited by examiner]
US 20120265528A1 · Gruber · 2012 [cited by examiner]
US 20140136212A1 · Kwon · 2014 [cited by examiner]
US 20140316764A1 · Ayan · 2014 [cited by examiner]
US 20140337814A1 · Kalns · 2014 [cited by examiner]
US 20150149182A1 · Kalns · 2015 [cited by examiner]
US 20190042561A1 · Kakirwar · 2019 [cited by examiner]
US 20190251960A1 · Maker · 2019 [cited by examiner]
US 20200349415A1 · Raju · 2020 [cited by examiner]
US 20210026896A1 · Lecaros Easton · 2021 [cited by examiner]
US 20210067470A1 · Freed · 2021 [cited by examiner]
US 20210158814A1 · Hussain · 2021 [cited by examiner]
US 20210182324A1 · Raju · 2021 [cited by examiner]
US 20210303798A1 · Duong · 2021 [cited by examiner]
US 20220180857A1 · Aharoni · 2022 [cited by examiner]
US 20220230000A1 · Jalaluddin · 2022 [cited by examiner]
US 20220255885A1 · Aharoni · 2022 [cited by examiner]
US 20220374209A1 · Shek · 2022 [cited by examiner]
US 20240075944A1 · Sahoo · 2024 [cited by examiner]
EP 2575128A2 · 2013 [cited by applicant]
IN 2011MU01369A · 2011 [cited by applicant]
IN 2011MU01537A · 2011 [cited by applicant]
IN 2011MU00868A · 2011 [cited by applicant]
IN 2011MU03716A · 2012 [cited by applicant]
IN 2012MU01227A · 2012 [cited by applicant]
JP 201380476A · 2013 [cited by applicant]
Lin, Bor-shen, Hsin-min Wang, and Lin-shan Lee. “A distributed architecture for cooperative spoken dialogue agents with coherent dialogue state and history.” (1999). (Year: 1999). [cited by examiner]
Ashbrook Daniell, “Enabling Mobile Microinteractions”, Retrieved from the Internet: URL: http://danielashbrook.com/wp-content/uploads/2012/06/2009-Ashbrook-Thesis.pdf, May 2010, 186 pages. [cited by applicant]
Bell Jason, “Machine Learning Hands-On for Developers and Technical Professionals”, Wiley, Nov. 3, 2014, 82 pages. [cited by applicant]
Coulouris et al., “Distributed Systems: Concepts and Design (Fifth Edition)”, Addison-Wesley, May 7, 2011, 391 pages. [cited by applicant]
Gupta Naresh, “Inside Bluetooth Low Energy”, Artech House, Mar. 1, 2013, 274 pages. [cited by applicant]
Jefford et al., “Professional BizTalk Server 2006”, Wrox, May 7, 2007, 398 pages. [cited by applicant]
Lin Luyuan, “An Assistive Handwashing System with Emotional Intelligence”, Using Emotional Intelligence in Cognitive Intelligent Assistant Systems, 2014, 101 pages. [cited by applicant]
Nakamura Satoshi, “Overcoming the Language Barrier with Speech Translation Technology”, Science & Technology Trends, Quarterly Review No. 31, Apr. 2009, pp. 36-49. [cited by applicant]
Phoenix Solutions, Inc., “Declaration of Christopher Schmandt Regarding the MIT Galaxy System”, West Interactive Corp., A Delaware Corporation, Document 40, Jul. 2, 2010, 162 pages. [cited by applicant]
Ross et al., “Epidemiology as a Framework for Large-Scale Mobile Application Accessibility Assessment”, In Proceedings of the 19th International ACM SIGACCESS Conference on Computers and Accessibility (ASSETS '17), Balt… [cited by applicant]
Rowland et al., “Designing Connected Products: UX for the Consumer Internet of Things”, O'Reilly, May 31, 2015, 452 pages. [cited by applicant]
Seroter et al., “SOA Patterns with BizTalk Server 2013 and Microsoft Azure”, Second Edition, Packt Publishing, Jun. 30, 2015, 454 pages. [cited by applicant]
Young et al., “POMDP-Based Statistical Spoken Dialog Systems: A Review”, Proceedings of the IEEE, vol. 101, No. 5, 2013, 18 pages. [cited by applicant]
Zheng et al., “Intent Detection and Semantic Parsing for Navigation Dialogue Language Processing”, 2017 IEEE 20th International Conference on Intelligent Transportation Systems (ITSC), 2017, 6 pages. [cited by applicant]