Extensible Framework for Facilitating Interaction with Devices
First Claim
1. A method, comprising:
- receiving, by an assistant application executed by a processor of a device, natural language input;
evaluating, by the assistant application, the natural language input to identify a plurality of applications available to the device, wherein the plurality of applications comprise at least one application that is not presented while the natural language input is received;
determining, by the assistant application, a plurality of suggested commands available to the device based on evaluating the natural language input, wherein each command of the plurality of suggested commands is executable by at least one respective application of the plurality of applications, wherein the plurality of suggested commands comprises at least one command for execution by the at least one application that is not presented while the natural language input is received; and
providing, by the assistant application, output at the device comprising at least one suggested command from the plurality of suggested commands.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments include a method of providing an assistant application that identifies a plurality of applications available to a device and receiving, via the device, natural language input. The natural language input can be evaluated to identify a subset of the plurality of applications in order to provide output comprising one or more suggested commands. Each suggested command can correspond to one of the subset of identified applications. In response to selection of a suggested command, the corresponding application can be invoked. Prior to invoking the application, the context for invoking the application and/or the context of the input may be evaluated in order to determine one or more parameters associated with the application. The natural language input can be used to suggest commands that include one or more suggested parameter values to pass to when invoking the application. Similar techniques can be used for accessing data services.
221 Citations
29 Claims
-
1. A method, comprising:
-
receiving, by an assistant application executed by a processor of a device, natural language input; evaluating, by the assistant application, the natural language input to identify a plurality of applications available to the device, wherein the plurality of applications comprise at least one application that is not presented while the natural language input is received; determining, by the assistant application, a plurality of suggested commands available to the device based on evaluating the natural language input, wherein each command of the plurality of suggested commands is executable by at least one respective application of the plurality of applications, wherein the plurality of suggested commands comprises at least one command for execution by the at least one application that is not presented while the natural language input is received; and providing, by the assistant application, output at the device comprising at least one suggested command from the plurality of suggested commands. - View Dependent Claims (2, 3, 5, 8, 9, 10, 26, 27, 28, 29)
-
-
4. (canceled)
-
6-7. -7. (canceled)
-
11. A system comprising:
-
a processor; and a non-transitory computer-readable medium communicatively coupled to the processor; wherein the processor is configured to execute program components tangibly embodied in the non-transitory computer-readable medium to perform operations comprising; receiving natural language input; evaluating the natural language input to identify a plurality of applications available to the system, wherein the plurality of applications comprise at least one application that is not presented while the natural language input is received; determining a plurality of suggested commands available to the system based on evaluating the natural language input, wherein each command of the plurality of suggested commands is executable by at least one respective application of the plurality of applications, wherein the plurality of suggested commands comprises at least one command for execution by the at least one application that is not presented while the natural language input is received; and providing output comprising at least one suggested command from the plurality of suggested commands. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable medium tangibly embodying program code, the program code comprising:
-
program code for receiving natural language input at a device; program code for evaluating the natural language input to identify a plurality of applications available to the device, wherein the plurality of applications comprise at least one application that is not presented while the natural language input is received; program code for determining a plurality of suggested commands available to the device based on evaluating the natural language input, wherein each command of the plurality of suggested commands is executable by at least one respective application of the plurality of applications, wherein the plurality of suggested commands comprises at least one command for execution by the at least one application that is not presented while the natural language input is received; program code for providing output at the device comprising at least one suggested command from the plurality of suggested commands; and program code for receiving selection of a suggested command and invoking the resource corresponding to the selected suggested command. - View Dependent Claims (21, 22, 23, 24)
-
-
25. (canceled)
Specification