IP Library Granted Patent US 11,138,205
Granted Patent B1
US 11,138,205 · App. 16/292,190 · Granted Oct 5, 2021

Framework for identifying distinct questions in a composite natural language query

Inventors: Keyvan Mohajer (Los Gatos, CA); Bernard Mont-Reynaud (Sunnyvale, CA); Philipp Hubert (Toronto, CA)
Assignee: Soundhound, Inc.
G06F16/2457G06F16/2455G06F40/40
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 11,138,205
App. No.
16/292,190
Granted
Oct 5, 2021
Kind
B1
Abstract

A query-processing server provides natural language services to applications. More specifically, the query-processing server receives and stores domain knowledge information from application developers, the domain knowledge information comprising a linguistic description of the natural language user queries that application developers wish their applications to support. A first portion of the domain knowledge information is applied to transform a natural language query received from an application to an ordered sequence of question elements. A second portion of the domain knowledge information is applied to group the ordered sequence of question elements into a plurality of distinct structured questions posed by the natural language query. The distinct structured questions may then be provided to the application, which may then execute them and obtain the corresponding data referenced by the questions.

Claims (53)

1. A computer-implemented method comprising:

storing a semantic grammar for a domain, the semantic grammar identifying question elements within valid queries;

storing grouping data for the domain, the grouping data describing what types of question elements are projectable onto each other, wherein projectable question elements may be grouped together within a question comprising a set of question elements;

receiving, from an application, a natural language query;

transforming, using the semantic grammar, the natural language query to an ordered sequence of question elements;

using the grouping data to transform the ordered sequence of question elements to a plurality of distinct questions;

maintaining a set of existing questions for the natural language query including at least a first existing question comprising a first set of question elements, each existing question comprising a subset of question elements of the sequence of question elements;

processing question elements of the sequence of question elements in sequence order, by:

responsive to a current question element of the sequence of question elements being projectable onto all question elements of the first existing question, extending the first existing question by adding the current question element to the first set of question elements;

responsive to the current question element not being projectable onto a question element of the first existing question, adding a new question to the set of existing questions, the new question comprising a second set of question elements derived from a copy of the first set of question elements by:

removing, from the second set of question elements, any question element that is not projectable onto the current question element; and

adding the current question element to the second set of question elements.

2. The computer-implemented method of claim 1 , wherein the question elements are tuples with elements comprising: a class of the question element, and a value corresponding to the class.

3. The computer-implemented method of claim 2 , wherein the class is one from the group consisting of: an object, an attribute of the object, and a qualifier of the attribute.

4. The computer-implemented method of claim 1 , wherein the questions specify: an object to which the natural language query applies, an attribute of the object, and one or more qualifiers of the attribute.

5. The computer-implemented method of claim 1 , wherein the grouping data is domain-specific, and transforming the ordered sequence of question elements to the plurality of questions is accomplished with grouping logic that is domain-independent.

6. A non-transitory computer-readable storage medium comprising:

a code repository storing, in association with an application:

a semantic grammar for a domain, the semantic grammar identifying question elements within valid queries, and

grouping data for the domain, the grouping data describing what types of question elements are projectable onto each other, wherein projectable question elements may be grouped together within a question comprising a set of question elements; and

instructions executable by a computer processor, the instructions comprising:

instructions for receiving from the application a natural language query;

instructions for transforming, using the semantic grammar, the natural language query to an ordered sequence of question elements;

instructions for using the grouping data to transform the ordered sequence of question elements to a plurality of distinct questions;

instructions for maintaining a set of existing questions for the natural language query including at least a first existing question comprising a first set of question elements, each existing question comprising a subset of question elements of the sequence of question elements;

instructions for processing question elements of the sequence of question elements in sequence order, by:

responsive to a current question element of the sequence of question elements being projectable onto all question elements of the first existing question, extending the first existing question by adding the current question element to the first set of question elements;

responsive to the current question element not being projectable onto a question element of the first existing question, adding a new question to the set of existing questions, the new question comprising a second set of question elements derived from a copy of the first set of question elements by:

removing, from the second set of question elements, any question element that is not projectable onto the current question element; and

adding the current question element to the second set of question elements.

7. The non-transitory computer-readable storage medium of claim 6 , wherein the question elements are tuples with elements comprising: a class of the question element, and a value corresponding to the class.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the class is one from the group consisting of: an object, an attribute of the object, and a qualifier of the attribute.

9. The non-transitory computer-readable storage medium of claim 6 , wherein the questions specify: an object to which the natural language query applies, an attribute of the object, and one or more qualifiers of the attribute.

10. The non-transitory computer-readable storage medium of claim 6 , wherein the grouping data is domain-specific, and transforming the ordered sequence of question elements to the plurality of questions is accomplished with grouping logic that is domain-independent.

11. A computer system comprising:

a computer processor; and

a non-transitory computer-readable storage medium storing:

a code repository storing, in association with an application:

a semantic grammar for a domain, the semantic grammar and identifying question elements within valid queries, and

grouping data for the domain, the grouping data describing what types of question elements are projectable onto each other, wherein projectable question elements may be grouped together within a question comprising a set of question elements; and

instructions executable by the computer processor, the instructions comprising:

instructions for receiving from the application a natural language query;

instructions for transforming, using the semantic grammar, the natural language query to an ordered sequence of question elements;

instructions for using the grouping data to transform the ordered sequence of question elements to a plurality of distinct questions;

instructions for maintaining a set of existing questions for the natural language query including at least a first existing question comprising a first set of question elements, each existing question comprising a subset of question elements of the sequence of question elements;

instructions for processing question elements of the sequence of question elements in sequence order, by:

responsive to a current question element of the sequence of question elements being projectable onto all question elements of the first existing question, extending the first existing question by adding the current question element to the first set of question elements;

responsive to the current question element not being projectable onto a question element of the first existing question, adding a new question to the set of existing questions, the new question comprising a second set of question elements derived from a copy of the first set of question elements by:

removing, from the second set of question elements, any question element that is not projectable onto the current question element; and

adding the current question element to the second set of question elements.

12. The computer system of claim 11 , wherein the question elements are tuples with elements comprising: a class of the question element, and a value corresponding to the class.

13. The computer system of claim 12 , wherein the class is one from the group consisting of: an object, an attribute of the object, and a qualifier of the attribute.

14. The computer system of claim 11 , wherein the questions specify: an object to which the natural language query applies, an attribute of the object, and one or more qualifiers of the attribute.

Assignments (7)
SECURITY INTEREST Recorded Aug 9, 2024
From: SOUNDHOUND, INC.
To: MONROE CAPITAL MANAGEMENT ADVISORS, LLC, AS COLLATERAL AGENT
Reel/Frame 068526/0413 →
RELEASE OF SECURITY INTEREST Recorded Jun 11, 2024
From: ACP POST OAK CREDIT II LLC, AS COLLATERAL AGENT
To: SOUNDHOUND, INC.; SOUNDHOUND AI IP, LLC
Reel/Frame 067698/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2023
From: SOUNDHOUND AI IP HOLDING, LLC
To: SOUNDHOUND AI IP, LLC
Reel/Frame 064205/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2023
From: SOUNDHOUND, INC.
To: SOUNDHOUND AI IP HOLDING, LLC
Reel/Frame 064083/0484 →
SECURITY INTEREST Recorded Apr 17, 2023
From: SOUNDHOUND, INC.; SOUNDHOUND AI IP, LLC
To: ACP POST OAK CREDIT II LLC
Reel/Frame 063349/0355 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2019
From: HUBERT, PHILIPP
To: SOUNDHOUND, INC.
Reel/Frame 049425/0607 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2019
From: MOHAJER, KEYVAN; MONT-REYNAUD, BERNARD
To: SOUNDHOUND, INC.
Reel/Frame 049398/0952 →
Continuity (2)
Continuation 14622098 · Feb 13, 2015
Provisional Application 62095693 · Dec 22, 2014
Cited By (2)
US 12,306,874 US 12,573,405