IP Library Granted Patent US 10,474,961
Granted Patent B2
US 10,474,961 · App. 14/461,903 · Granted Nov 12, 2019

Dynamically evolving cognitive architecture system based on prompting for additional user input

Inventors: Christopher Brigham (San Jose, CA); Mark Gabel (San Jose, CA); Adam Cheyer (San Jose, CA)
Assignee: Viv Labs, Inc.
G06N20/00G06N5/02
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,474,961
App. No.
14/461,903
Granted
Nov 12, 2019
Kind
B2
Abstract

A dynamically evolving cognitive architecture system based on prompting for additional user input is described. A system forms an intent based on a user input, and creates a plan based on the intent. The plan includes a first action object that transforms a first concept object associated with the intent into a second concept object and also includes a second action object that transforms the second concept object into a third concept object associated with a goal of the intent. The first action object and the second action object are selected from multiple action objects. The system executes the plan, and outputs a value associated with the third concept object.

Claims (56)

1. A system for a dynamically evolving cognitive architecture based on prompting for additional user input, the system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

provide access to a concept action network comprising a plurality of concept objects representing a corresponding plurality of real world entities and a plurality of action objects which transform a corresponding input concept object from the concept action network into a corresponding output concept object from the concept action network;

form an intent based on a single user input, the intent comprising a source signal representing data provided by the single user input, and a goal representing what the inputting user wants to accomplish;

match a concept object with the source signal and another concept object with the goal;

create a plan based on the intent, the plan being created by one of:

i) identifying, an action object that transforms an input concept object into the concept object matched with the goal of the intent, and in response to a determination that the input concept object is not the concept object matched with the source signal, identifying any number of action objects that transform a corresponding input concept into a corresponding output concept object until a sequence of action objects and concept objects are identified that transform the concept object matched with the source signal into the concept object matched with the goal of the intent, or

ii) identifying, an action object that transforms the concept object matched with the source signal into an output concept object, and in response to a determination the output concept object is not the concept object matched with the goal of the intent, identifying any number of action objects that transform a corresponding input concept object into a corresponding output concept object until a sequence of action objects and concept objects are identified that transform the concept object matched with the source signal of the intent into the concept object matched with the goal of the intent;

the plan being configured to generate a value of the concept object matched with the goal of the user intent based on the single user input;

output a prompt, based on the plan created from the single user input, which requests an additional user input;

execute the plan to generate the value of the output concept object matched with the goal of the user intent based on the single user input and enhance the value to generate an output value of the output concept object matched with the goal of the user intent based on the additional user input; and

output the output value.

2. The system of claim 1 , wherein outputting the prompt, based on the plan, which requests the additional user input, is based on an interpretation confidence score which falls below a threshold.

3. The system of claim 1 , wherein at least one of the user input, the prompt, and the additional user input are provided via at least one of typed entry of text via a keyboard, touch gestures, mouse gestures, and speech.

4. The system of claim 1 , wherein at least one of the plurality of input action objects is provided by a first third-party developer and at least one other of the plurality of action objects is provided by a second third-party developer.

5. The system of claim 1 , wherein the plurality of instructions, when executed, will further cause the one or more processors to receive a span of natural language annotated with an object from a third-party developer, wherein creating the pan is based on the annotated span of natural language, and wherein the annotating object comprises one or more of the identified action objects, one or more of the corresponding concept objects, or one of the concept objects matched with the source signal or the goal.

6. The system of claim 5 , wherein the plurality of instructions, when executed, will further cause the one or more processors to:

create another plan based on the intent, wherein the other plan differs from the plan by at least one concept object and by at least one action object; and

select the plan for execution based on at least one of an action object cost, an action object quality, a number of planned action objects, and a confidence score associated with the annotated span of natural language.

7. A computer-implemented method for a dynamically evolving cognitive architecture system based on prompting for additional user input, the method comprising:

providing access to a concept action network comprising a plurality of concept objects representing a corresponding plurality of real world entities and a plurality of action objects which transform a corresponding input concept object from the concept action network into a corresponding output concept object from the concept action network;

forming an intent based on a single user input, the intent comprising a source signal representing data provided by the single user input, and a goal representing what the inputting user wants to accomplish;

matching a concept object with the source signal and another concept object with the goal;

creating a plan based on the intent, the plan being created by one of:

i) identifying, an action object that transforms an input concept object into the concept object matched with the goal of the intent, and in response to a determination that the input concept object is not the concept object matched with the source signal, identifying any number of action objects that transform a corresponding input concept into a corresponding output concept object until a sequence of action objects and concept objects are identified that transform the concept object matched with the source signal into the concept object matched with the goal of the intent, or

ii) identifying, an action object that transforms the concept object matched with the source signal into an output concept object, and in response to a determination the output concept object is not the concept object matched with the goal of the intent, identifying any number of action objects that transform a corresponding input concept object into a corresponding output concept object until a sequence of action objects and concept objects are identified that transform the concept object matched with the source signal of the intent into the concept object matched with the goal of the intent;

the plan being configured to generate a value of the concept object matched with the goal of the user intent based on the single user input;

outputting a prompt, based on the plan created from the single user input, which requests an additional user input;

executing the plan to generate the value of the output concept object matched with the goal of the user intent based on the single user input and enhance the value to generate an output value of the output concept object matched with the goal of the user intent based on the additional user input; and

outputting the output value.

8. The computer-implemented method of claim 7 , wherein outputting the prompt, based on the plan, which requests the additional user input, is based on an interpretation confidence score which falls below a threshold.

9. The computer-implemented method of claim 7 , wherein at least one of the user input, the prompt, and the additional user input are provided via at least one of typed entry of text via a keyboard, touch gestures, mouse gestures, and speech.

10. The computer-implemented method of claim 7 , wherein at least one of the plurality of input action objects is provided by a first third-party developer and at least one other of the plurality of action objects is provided by a second third-party developer.

11. The computer-implemented method of claim 7 , wherein the method further comprises:

receiving a span of natural language annotated with an object from a third-party developer, wherein creating the plan is based on the annotated span of natural language, and wherein the annotating object comprises one or more of the identified action objects, one or more of the corresponding concept objects, or one of the concept objects matched with the source signal or the goal;

creating another plan based on the intent, wherein the other plan differs from the plan by at least one concept object and by at least one action object; and

selecting the plan for execution based on at least one of an action object cost, an action object quality, a number of planned action objects, and a confidence score associated with the annotated span of natural language.

12. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:

provide access to a concept action network comprising a plurality of concept objects representing a corresponding plurality of real world entities and a plurality of action objects which transform a corresponding input concept object from the concept action network into a corresponding output concept object from the concept action network;

form an intent based on a single user input, the intent comprising a source signal representing data provided by the single user input, and a goal representing what the inputting user wants to accomplish;

match a concept object with the source signal and another concept object with the goal;

create a plan based on the intent, the plan being created by one of:

i) identifying, an action object that transforms an input concept object into the concept object matched with the goal of the intent, and in response to a determination that the input concept object is not the concept object matched with the source signal, identifying any number of action objects that transform a corresponding input concept into a corresponding output concept object until a sequence of action objects and concept objects are identified that transform the concept object matched with the source signal into the concept object matched with the goal of the intent, or

ii) identifying, an action object that transforms the concept object matched with the source signal into an output concept object, and in response to a determination the output concept object is not the concept object matched with the goal of the intent, identifying any number of action objects that transform a corresponding input concept object into a corresponding output concept object until a sequence of action objects and concept objects are identified that transform the concept object matched with the source signal of the intent into the concept object matched with the goal of the intent;

the plan being configured to generate a value of the concept object matched with the goal of the user intent based on the single user input;

output a prompt, based on the plan created from the single user input, which requests an additional user input;

execute the plan to generate the value of the output concept object matched with the goal of the user intent based on the single user input and enhance the value to generate an output value of the output concept object matched with the goal of the user intent based on the additional user input; and

output the output value.

13. The computer program product of claim 12 , wherein outputting the prompt, based on the plan, which requests the additional user input, is based on an interpretation confidence score which falls below a threshold.

14. The computer program product of claim 12 , wherein at least one of the user input, the prompt, and the additional user input are provided via at least one of typed entry of text via a keyboard, touch gestures, mouse gestures, and speech.

15. The computer program product of claim 12 , wherein at least one of the plurality of action objects is provided by a first third-party developer and at least one other of the plurality of action objects is provided by a second third-party developer.

16. The computer program product of claim 12 , wherein the program code includes further instructions to receive a span of natural language annotated with an object from a third-party developer, wherein creating the plan is based on the annotated span of natural language, and wherein the annotating object comprises one or more of the identified action objects, one or more of the corresponding concept objects, or one of the concept objects matched with the source signal or the goal.

17. The computer program product of claim 16 , wherein the program code includes further instructions to:

create another plan based on the intent, wherein the other plan differs from the plan by at least one concept object and by at least one action object; and

select the plan for execution based on at least one of an action object cost, an action object quality, a number of planned action objects, and a confidence score associated with the annotated span of natural language.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2021
From: VIV LABS, INC.
To: SAMSUNG ELECTRONICS CO., LTD
Reel/Frame 055432/0711 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2014
From: BRIGHAM, CHRISTOPHER; GABEL, MARK; CHEYER, ADAM
To: VIV LABS, INC.
Reel/Frame 033724/0214 →
Continuity (5)
Continuation In Part 14306856 · Jun 17, 2014
Provisional Application 61837354 · Jun 20, 2013
Provisional Application 61888907 · Oct 9, 2013
Provisional Application 61917541 · Dec 18, 2013
Related Publication 20140379615A1 · Dec 25, 2014
Cited By (31)
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,008 US 12,254,887 US 12,260,234 US 12,277,954 US 12,293,763 US 12,301,635 US 12,333,404 US 12,361,943 US 12,367,879 US 12,386,434 US 12,386,491 US 12,417,242 US 12,431,128 US 12,475,331 US 12,477,470 US 12,498,836 US 12,556,890 US 12,608,171 US 12,613,730 US 12,619,452 US 12,632,032 US 12,688,428