# US 2017/0286543 A1 · Method and system for determining an answer to a query

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286543 A1
- Document ID: US20170286543A1
- Status: Published application
- Kind: A1
- Application number: 15/625,769
- Filed: 2017-06-16
- Published: 2017-10-05
- Earliest claimed: 2006-09-07
- Assignees: Wolfram Alpha LLC
- Applicants: Wolfram Alpha LLC
- Inventors: Stephen WOLFRAM
- Web page: https://patentgrep.com/patent/US20170286543A1

## CPC

- G06F 16/951: Indexing; Web crawling techniques
- G06F 3/01: Input arrangements or combined input and output arrangements for interaction between user and computer (G06F3/16 takes precedence)
- G06F 8/30: Creation or generation of source code
- G06F 16/9538: Presentation of query results
- G06F 40/111: Mathematical or scientific formatting; Subscripts; Superscripts
- G10L 15/22: Procedures used during a speech recognition process, e.g. man-machine dialogue
- G16C 20/70: Machine learning, data mining or chemometrics
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G16C: COMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE

## Abstract

User input in an imprecise syntax (e.g., expressed using natural language and/or informal terminology) is received, the user input including a query requesting information determinable by a formula and one or more indications of parameter values corresponding to the formula. The user input is analyzed to determine the formula with the one or more parameter values integrated into the formula. An answer to the query is calculated using the determined formula, and electronic display information is generated that, when displayed by a display device, renders an indication of the answer.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving, at one or more computer processors, a user input in an imprecise syntax, wherein the user input in the imprecise syntax includes at least (i) a query requesting information determinable by a formula having a plurality of mathematical or scientific parameters, and (ii) one or more indications of one or more parameter values corresponding to the formula, wherein the user input in the imprecise syntax is expressed using natural language and/or informal terminology provided by a user, and wherein receiving the user input includes at least one of:
a) receiving the user input via a communication network, and
b) receiving the user input via a user interface device;
analyzing, at one or more computer processors, the user input in the imprecise syntax to determine the formula with the one or more parameter values integrated into the formula;
calculating, at one or more computer processors, an answer to the query using the determined formula with the one or more parameter values integrated into the formula; and
generating, at one or more computer processors, electronic display information that, when displayed by a display device, renders an indication of the answer;
wherein the computer-implemented method further comprises at least one of:
i) transmitting the electronic display information via the communication network to a computer including, or coupled to, the display device, and
ii) displaying the electronic display information on the display device.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein analyzing the user input in the imprecise syntax to determine the formula with the one or more parameter values integrated into the formula comprises:
determining a plurality of possible formulas that correspond to the user input in the imprecise syntax;
at least one of (i) ranking the plurality of possible formulas, and (ii) eliminating one or more possible formulas of the plurality of possible formulas to generate a subset of possible formulas; and
determining the formula using at least one of i) the ranking, and ii) the subset of possible formulas.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
analyzing, at one or more computer processors, the user input in the imprecise syntax to determine a correspondence between (i) the one or more parameter values in the user input in the imprecise syntax and (ii) one or more parameters of the formula; and
determining, at one or more computer processors, the formula with the one or more parameter values integrated into the formula using the determined correspondence.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein receiving the user input in the imprecise syntax comprises receiving a digital representation, generated by a voice recognition system, of a query spoken by the user.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein analyzing the user input in the imprecise syntax to determine the formula with the one or more parameter values integrated into the formula comprises:
analyzing the user input in the imprecise syntax to identify a first parameter corresponding to a first parameter value in the one or more parameter values; and
determining the formula based, at least in part, on the identified first parameter.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein analyzing the user input in the imprecise syntax to determine the formula with the one or more parameter values integrated into the formula comprises:
identifying, at one or more computer processors, the formula from the user input in the imprecise syntax at least by:
parsing the user input in the imprecise syntax into a plurality of tokens,
re-arranging the plurality of tokens into a plurality of expressions in a precise syntax, and
analyzing the plurality of expressions in the precise syntax.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein analyzing the user input in the imprecise syntax to determine the formula with the one or more parameter values integrated into the formula comprises:
partitioning the user input in the imprecise syntax into a plurality of tokens, wherein each token of the plurality of tokens comprises a word, a phrase, or a numerical expression;
generating one or more expressions in a precise syntax using the plurality of tokens;
providing the one or more expressions to a plurality of modules, wherein
each module is configured to at least one of i) determine formulas corresponding to a respective subject matter category, among a plurality of different subject matter categories of formulas, by analyzing expressions provided to the module, and ii) evaluate formulas corresponding to the respective subject matter category, and each module is implemented using software executed by the one or more computer processors.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein analyzing the user input in the imprecise syntax to determine the formula with the one or more parameter values integrated into the formula further comprises:
for each module, providing an output of the module as one or more inputs to one or more other modules.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining, at one or more processors, that one or more additional parameter values are required to calculate the answer; and
causing, at one or more processors, a request, represented as electronic information, for the one or more additional parameter values to be, at least one of:
i) transmitted via the communication network, and
ii) displayed on the display device.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, further comprising generating, at one or more processors, an output that is (i) mathematically related to the formula and (ii) separate from the answer;
wherein generating the electronic display information includes generating the electronic display information such that, when the electronic display information is displayed by the display device, an indication of the output, separate from the answer, is also shown.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, generating the electronic display information comprises:
generating the electronic display information to include a graphical user interface control for facilitating adjustment of one or more parameters of the formula such that, when the electronic display information is displayed by the display device, the graphical user interface control is also shown.

### Claim 12 (depends on 1)

The computer-implemented method of claim 1, further comprising:
dynamically generating, at one or more computer processors, software programming language code, in a precise syntax, for evaluating the formula; and
at least one of:
i) transmitting the software programming language code via the communication network, and
ii) displaying the software programming language code on the display device.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, wherein the software programming language code includes code that can be evaluated by a spreadsheet software application.

### Claim 14 (depends on 12)

The computer-implemented method of claim 12, wherein:
the electronic display information is generated to include the software programming language code; and
at least one of:
i) transmitting the electronic information via the communication network includes transmitting the software programming language code, and
ii) displaying the electronic display information on the display device includes displaying the software programming language code on the display device.

### Claim 15 (depends on 12)

The computer-implemented method of claim 12, further comprising at least one of:
i) transmitting a graphical user interface via the communication network, and
ii) displaying the graphical user interface on the display device;
wherein the graphical user interface is configured to insert the software programming language code in a file in response to user manipulation of the graphical user interface.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, wherein:
the electronic display information is generated to include the graphical user interface; and
at least one of:
i) transmitting the electronic information via the communication network includes transmitting the graphical user interface, and
ii) displaying the electronic display information on the display device includes displaying the graphical user interface on the display device.

### Claim 17 (depends on 15)

The computer-implemented method of claim 15, wherein:
the software programming language code includes code that can be evaluated by a spreadsheet software application; and
the graphical user interface is configured to insert the software programming language code in a spreadsheet file in response to user manipulation of the graphical user interface.

### Claim 18 (depends on 17)

The computer-implemented method of claim 17, wherein the graphical user interface is configured to insert the software programming language code in a spreadsheet cell selected by the user.

### Claim 19

A system comprising:
a computing system having one or more processors communicatively coupled to at least one of: i) a communication network, and ii) a user interface device and a display device;
one or more memory devices coupled to the computing system, wherein the one or more memory devices store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
analyze user input in an imprecise syntax to determine a formula with one or more parameter values, corresponding to the formula, integrated into the formula, wherein:
the user input in the imprecise syntax includes at least (i) a query requesting information determinable by the formula having a plurality of mathematical or scientific parameters, and (ii) one or more indications of the one or more parameter values corresponding to the formula,
the user input in the imprecise syntax is expressed using natural language and/or informal terminology provided by a user, and
at least one of:
a) the user input was received via the communication network, and
b) the user input was received via the user interface device;
the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
calculate an answer to the query using the determined formula with the one or more parameter values integrated into the formula, and
generate electronic display information that, when displayed by the display device, renders an indication of the answer;
the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to, at least one of:
i) prompt the one or more processors to transmit the electronic display information via the communication network, and
ii) control the display device to display the electronic display information on the display device.

### Claim 20 (depends on 19)

The system of claim 19, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
determine a plurality of possible formulas that correspond to the user input in the imprecise syntax;
at least one of (i) rank the plurality of possible formulas, and (ii) eliminate one or more possible formulas of the plurality of possible formulas to determine a subset of possible formulas; and
determine the formula using at least one of i) the ranking, and ii) the subset of possible formulas.

### Claim 21 (depends on 19)

The system of claim 19, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
analyze the user input in the imprecise syntax to determine a correspondence between (i) the one or more parameter values in the user input in the imprecise syntax and (ii) one or more parameters of the formula; and
determine the formula with the one or more parameter values integrated into the formula using the determined correspondence.

### Claim 22 (depends on 19)

The system of claim 19, wherein the user input in the imprecise syntax includes a digital representation, generated by a voice recognition system, of a query spoken by the user.

### Claim 23 (depends on 22)

The system of claim 22, wherein the computing system includes the voice recognition system.

### Claim 24 (depends on 19)

The system of claim 19, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
identify the formula from the user input in the imprecise syntax at least by:
parsing the user input in the imprecise syntax into a plurality of tokens,
re-arranging the plurality of tokens into a plurality of expressions in a precise syntax, and
analyzing the plurality of expressions in the precise syntax.

### Claim 25 (depends on 19)

The system of claim 19, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
partition the user input in the imprecise syntax into a plurality of tokens, wherein each token of the plurality of tokens comprises a word, a phrase, or a numerical expression;
generate one or more expressions in a precise syntax using the plurality of tokens;
provide the one or more expressions to a plurality of modules, wherein
each module is configured to at least one of i) determine formulas corresponding to a respective subject matter category, among a plurality of different subject matter categories of formulas, by analyzing expressions provided to the module, and ii) evaluate formulas corresponding to the respective subject matter category, and
each module is implemented using software executed by the one or more processors;
wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to determine the formula with the one or more parameter values integrated into the formula based on outputs of the plurality of modules.

### Claim 26 (depends on 25)

The system of claim 25, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
for each module, providing an output of the module as one or more inputs to one or more other modules.

### Claim 27 (depends on 19)

The system of claim 19, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
determine that one or more additional parameter values are required to calculate the answer; and
at least one of:
i) transmit a request, represented as electronic information, for the one or more additional parameter values via the communication network, and
ii) control the display device to display the request.

### Claim 28 (depends on 19)

The system of claim 19, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
generate the electronic display information to include a graphical user interface control for facilitating adjustment of one or more parameters of the formula such that, when the electronic display information is displayed by the display device, the graphical user interface control is also shown.

### Claim 29 (depends on 19)

The system of claim 19, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
dynamically generate software programming language code, in a precise syntax, for evaluating the formula; and
at least one of:
i) transmit the software programming language code via the communication network, and
ii) control the display device to display the software programming language code.

### Claim 30 (depends on 29)

The system of claim 29, wherein the software programming language code includes code that can be evaluated by a spreadsheet software application.

### Claim 31 (depends on 29)

The system of claim 29, wherein:
the electronic display information is generated to include the software programming language code.

### Claim 32 (depends on 29)

The system of claim 29, wherein the one or more memory devices further store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to at least one of:
i) transmit a graphical user interface via the communication network, and
ii) control the display device to display the graphical user interface;
wherein the graphical user interface is configured to insert the software programming language code in a file in response to user manipulation of the graphical user interface.

### Claim 33 (depends on 32)

The system of claim 32, wherein:
the electronic display information is generated to include the graphical user interface.

### Claim 33 (depends on 32)

The system of claim 32, wherein:
the software programming language code includes code that can be evaluated by a spreadsheet software application; and
the graphical user interface is configured to insert the software programming language code in a spreadsheet file in response to user manipulation of the graphical user interface.

### Claim 34 (depends on 33)

The system of claim 33, wherein the graphical user interface is configured to insert the software programming language code in a spreadsheet cell selected by the user.

### Claim 35 (depends on 19)

The system of claim 19, further comprising:
the user interface device; and
the display device;
wherein:
the user input was received via the user interface device, and
the one or more memory devices store machine readable instructions that, when executed by the one or more processors, cause the one or more processors to control the display device to display the electronic display information on the display device.

### Claim 36 (depends on 35)

The system of claim 35, further comprising:
a remote computer communicatively coupled to the communication network;
wherein the remote computer includes, or is coupled to, i) the user interface device, and ii) the display device;
wherein the one or more processors includes i) a first set of one or more processors, and ii) a second set of one or more processors;
wherein the one or more memory devices includes i) a first set of one or more memory devices coupled to the first set of one or more processors, and ii) a second set of one or more memory devices coupled to the second set of one or more processors;
wherein the remote computer includes:
the second set of one or more processors, and
the second set of one or more memory devices;
wherein the first set of one or more memory devices store machine readable instructions that, when executed by the first set of one or more processors, cause the first set of one or more processors to:
receive the user input via the communication network, and
transmit the electronic display information via the communication network; and
wherein the second set of one or more memory devices store machine readable instructions that, when executed by the second set of one or more processors, cause the second set of one or more processors to:
receive the user input via the user interface device,
transmit the user input to the first set of one or more processors via the communication network,
receive the electronic display information from the first set of one or more processors via the communication network, and
control the display device to display the electronic display information on the display device.

### Claim 37

A tangible, non-transitory, computer readable medium, or media, storing machine readable instructions that, when executed by one or more processors, cause the one or more processors to:
analyze user input in an imprecise syntax to determine a formula with one or more parameter values, corresponding to the formula, integrated into the formula, wherein:
the user input in the imprecise syntax includes at least (i) a query requesting information determinable by the formula having a plurality of mathematical or scientific parameters, and (ii) one or more indications of the one or more parameter values corresponding to the formula,
the user input in the imprecise syntax is expressed using natural language and/or informal terminology provided by a user, and
at least one of:
a) the user input was received via a communication network, and
b) the user input was received via a user interface device;
wherein the computer readable medium, or media, further stores machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
calculate an answer to the query using the determined formula with the one or more parameter values integrated into the formula, and
generate electronic display information that, when displayed by a display device, renders an indication of the answer;
wherein the computer readable medium, or media, further stores machine readable instructions that, when executed by the one or more processors, cause the one or more processors to, at least one of:
i) prompt the one or more processors to transmit the electronic display information via the communication network, and
ii) control the display device to display the electronic display information on the display device.

### Claim 38 (depends on 37)

The computer readable medium, or media, of claim 37, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
analyze the user input in the imprecise syntax to determine a correspondence between (i) the one or more parameter values in the user input in the imprecise syntax and (ii) one or more parameters of the formula; and
determine the formula with the one or more parameter values integrated into the formula using the determined correspondence.

### Claim 39 (depends on 37)

The computer readable medium, or media, of claim 37, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
analyze the user input in the imprecise syntax to identify a first parameter corresponding to a first parameter value in the one or more parameter values; and
determine the formula based, at least in part, on the identified first parameter.

### Claim 40 (depends on 37)

The computer readable medium, or media, of claim 37, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
parse the user input in the imprecise syntax into a plurality of tokens,
re-arrange the plurality of tokens into a plurality of expressions in a precise syntax, and
determine the formula with the one or more parameter values integrated into the formula based on analyzing the plurality of expressions in the precise syntax.

### Claim 41 (depends on 37)

The computer readable medium, or media, of claim 37, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
partition the user input in the imprecise syntax into a plurality of tokens, wherein each token of the plurality of tokens comprises a word, a phrase, or a numerical expression;
generate one or more expressions in a precise syntax using the plurality of tokens;
provide the one or more expressions to a plurality of modules, wherein
each module is configured to at least one of i) determine formulas corresponding to a respective subject matter category, among a plurality of different subject matter categories of formulas, by analyzing expressions provided to the module, and ii) evaluate formulas corresponding to the respective subject matter category, and
each module is implemented using software executed by the one or more computer processors; and
determine the formula with the one or more parameter values integrated into the formula based on one or more outputs of the plurality of modules.

### Claim 42 (depends on 41)

The computer readable medium, or media, of claim 41, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
for each module, provide an output of the module as one or more inputs to one or more other modules.

### Claim 43 (depends on 37)

The computer readable medium, or media, of claim 37, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
generate the electronic display information to include a graphical user interface control for facilitating adjustment of one or more parameters of the formula such that, when the electronic display information is displayed by the display device, the graphical user interface control is also shown.

### Claim 44 (depends on 37)

The computer readable medium, or media, of claim 37, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:
dynamically generate software programming language code, in a precise syntax, for evaluating the formula; and
at least one of:
i) prompt the one or more processors to transmit the software programming language code via the communication network, and
ii) control the display device to display the software programming language code on the display device.

### Claim 45 (depends on 44)

The computer readable medium, or media, of claim 44, further storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to, at least one of:
i) transmit a graphical user interface via the communication network, and
ii) control the display device to display the graphical user interface;
wherein the graphical user interface is configured to insert the software programming language code in a file in response to user manipulation of the graphical user interface.
