IP Library Granted Patent US 11,157,704
Granted Patent B2
US 11,157,704 · App. 16/441,915 · Granted Oct 26, 2021

Constrained natural language processing

Inventors: Jignesh Patel (Madison, WI); Navneet Sankara Potty (Madison, WI)
Assignee: DataChat.ai
G06F40/30G06F40/211G06F40/253G06F40/295
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,157,704
App. No.
16/441,915
Granted
Oct 26, 2021
Kind
B2
Abstract

In general, techniques are described by which to provide constrained natural language processing. A device comprising a processor and a memory may be configured to perform the techniques. The processor may expose a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of language sub-surfaces. The processor may also receive the data indicative of the input that conforms with the portion of the language provided by the exposed language sub-surface, and process the data indicative of the input to identify an intent of the user from a plurality of intents associated with the portion of the language. The processor may next execute a process associated with the identified intent to perform an operation. The memory may store the data indicative of the input.

Claims (120)

1. A device configured to process data indicative of an input, the device comprising:

one or more processors configured to:

expose a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of a plurality of language sub-surfaces, each of the language sub-surfaces specifying a corresponding set of syntax rules and strings permitted for the natural language with which a user may interface to enter the data indicative of the input;

receive the data indicative of the input that conforms with a portion of the natural language provided by the exposed language sub-surface;

process the data indicative of the input to identify an intent of the user from a plurality of intents associated with the portion of the natural language; and

execute a process associated with the identified intent to perform an operation; and

a memory configured to store the data indicative of the input.

2. The device of claim 1 , wherein the one or more processors are configured to expose only the language sub-surface of the plurality of language sub-surfaces.

3. The device of claim 1 , wherein the one or more processors are further configured to:

determine that the user is able to successfully invoke the plurality of intents associated with the portion of the natural language within a threshold, and

expose, responsive to determining that the user is able to successfully invoke the plurality of intents, a second language sub-surface of the plurality of language sub-surfaces, the second language sub-surface providing a second portion of the natural language with which a user may interface to enter second data indicative of a second input;

receive the second data indicative of the second input that conforms with the second portion of the natural language provided by the exposed second language sub-surface;

process the second data indicative of the second input to identify a second intent of the user from a second plurality of intents associated with the second portion of the natural language; and

execute a second process associated with the identified second intent to perform a second operation.

4. The device of claim 1 , wherein the one or more processors are further configured to present an interface that includes a text entry field that automatically provides one or more suggestions to expose the language sub-surface.

5. The device of claim 1 , wherein the one or more processors are further configured to present an interface that includes a text entry field that automatically performs an autocomplete operation to expose the language sub-surface.

6. The device of claim 1 ,

wherein the language sub-surface comprises a first language sub-surface,

wherein the first language sub-surface specifies a transition to a second language sub-surface of the plurality of language sub-surfaces, and

wherein the one or more processors are further configured to expose, responsive to second data from the user identifying the transition, the second language sub-surface of the plurality of language sub-surfaces, the second language sub-surface providing a second portion of the natural language with which a user may interface to enter second data indicative of a second input.

7. The device of claim 6 , wherein the one or more processors are further configured to present an interface that includes a text entry field that automatically performs an autocomplete operation facilitate entry of the data identifying the transition.

8. The device of claim 6 , wherein the one or more processors are further configured to:

receive the second data indicative of the second input that conforms with the second portion of the natural language provided by the exposed second language sub-surface;

process the second data indicative of the second input to identify a second intent of the user from a second plurality of intents associated with the second portion of the natural language; and

execute a second process associated with the identified second intent to perform a second operation.

9. The device of claim 1 , wherein the one or more processors are configured to:

process the data indicative of the input to identify a pattern from a plurality of patterns associated with the language, each of the plurality of patterns associated with a different one of the plurality of intents; and

identify, based on the identified pattern, the intent of the user from the plurality of intents associated with the portion of the natural language.

10. The device of claim 9 ,

wherein the pattern includes an identifier, and

wherein the one or more processors are configured to:

parse the data indicative of the input to identify the identifier; and

identify, based on the identifier, the pattern.

11. The device of claim 10 ,

wherein the pattern includes both the identifier and a position entity, and

wherein the one or more processors are configured to:

parse the data indicative of the input to identify the positional entity; and

identify, based on the identifier and the positional identity, the pattern.

12. The device of claim 9 ,

wherein the pattern includes a keyword, and

wherein the one or more processors are configured to:

parse the data indicative of the input to identify the keyword; and

identify, based on the keyword, the pattern.

13. The device of claim 9 ,

wherein the pattern includes an entity, and

wherein the one or more processors are configured to:

determine that the data indicative of the input corresponds to the pattern but does not include the entity; and

output, based on the determination that the data indicative of the input corresponds to the pattern but does not include the entity, a prompt requesting data indicative of additional input specifying the entity.

14. The device of claim 13 , wherein the one or more processors are configured to:

receive the data indicative of the additional input specifying the entity; and

identify, based on the data indicative of the input and the data indicative of the additional input, the pattern.

15. The device of claim 1 , wherein the one or more processors are further configured to:

obtain a result of performing the operation; and

provide the result, via an interface, to a client interfacing with the device to enter the data indicative of the input.

16. A method of processing data indicative of an input, the method comprising:

exposing a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of a plurality of language sub-surfaces, each of the language sub-surfaces specifying a corresponding set of syntax rules and strings permitted for the natural language with which a user may interface to enter the data indicative of the input;

receiving the data indicative of the input that conforms with a portion of the natural language provided by the exposed language sub-surface;

processing the data indicative of the input to identify an intent of the user from a plurality of intents associated with the portion of the natural language; and

executing a process associated with the identified intent to perform an operation.

17. The method of claim 16 , wherein exposing the language sub-surface comprises exposing only the language sub-surface of the plurality of language sub-surfaces.

18. The method of claim 16 , further comprising:

determining that the user is able to successfully invoke the plurality of intents associated with the portion of the natural language within a threshold, and

exposing, responsive to determining that the user is able to successfully invoke the plurality of intents, a second language sub-surface of the plurality of language sub-surfaces, the second language sub-surface providing a second portion of the natural language with which a user may interface to enter second data indicative of a second input;

receiving the second data indicative of the second input that conforms with the second portion of the natural language provided by the exposed second language sub-surface;

processing the second data indicative of the second input to identify a second intent of the user from a second plurality of intents associated with the second portion of the natural language; and

executing a second process associated with the identified second intent to perform a second operation.

19. The method of claim 16 , further comprising presenting an interface that includes a text entry field that automatically provides one or more suggestions to expose the language sub-surface.

20. The method of claim 16 , further comprising presenting an interface that includes a text entry field that automatically performs an autocomplete operation to expose the language sub-surface.

21. The method of claim 16 ,

wherein the language sub-surface comprises a first language sub-surface,

wherein the first language sub-surface specifies a transition to a second language sub-surface of the plurality of language sub-surfaces, and

wherein the method further comprises exposing, responsive to second data from the user identifying the transition, the second language sub-surface of the plurality of language sub-surfaces, the second language sub-surface providing a second portion of the natural language with which a user may interface to enter second data indicative of a second input.

22. The method of claim 21 , further comprising presenting an interface that includes a text entry field that automatically performs an autocomplete operation facilitate entry of the data identifying the transition.

23. The method of claim 21 , further comprising:

receiving the second data indicative of the second input that conforms with the second portion of the natural language provided by the exposed second language sub-surface;

processing the second data indicative of the second input to identify a second intent of the user from a second plurality of intents associated with the second portion of the natural language; and

executing a second process associated with the identified second intent to perform a second operation.

24. The method of claim 16 , wherein processing the data indicative of the input comprises:

processing the data indicative of the input to identify a pattern from a plurality of patterns associated with the language, each of the plurality of patterns associated with a different one of the plurality of intents; and

identifying, based on the identified pattern, the intent of the user from the plurality of intents associated with the portion of the natural language.

25. The method of claim 24 ,

wherein the pattern includes an identifier, and

wherein processing the data indicative of the input to identify the pattern comprises:

parsing the data indicative of the input to identify the identifier; and

identifying, based on the identifier, the pattern.

26. The method of claim 25 ,

wherein the pattern includes both the identifier and a position entity, and

wherein parsing the data indicative of the input to identify the identifier comprises:

parsing the data indicative of the input to identify the positional entity; and

identifying, based on the identifier and the positional identity, the pattern.

27. The method of claim 24 ,

wherein the pattern includes a keyword, and

wherein parsing the data indicative of the input to identify the identifier comprises:

parsing the data indicative of the input to identify the keyword; and

identifying, based on the keyword, the pattern.

28. The method of claim 24 ,

wherein the pattern includes an entity, and

wherein parsing the data indicative of the input to identify the identifier comprises:

determining that the data indicative of the input corresponds to the pattern but does not include the entity; and

outputting, based on the determination that the data indicative of the input corresponds to the pattern but does not include the entity, a prompt requesting data indicative of additional input specifying the entity.

29. The method of claim 28 ,

wherein receiving the data indicative of the input comprises receiving the data indicative of the additional input specifying the entity, and

wherein processing the data indicative of the input further comprises identifying, based on the data indicative of the input and the data indicative of the additional input, the pattern.

30. The method of claim 16 , further comprising:

obtaining a result of performing the operation; and

providing the result, via an interface, to a client interfacing with the device to enter the data indicative of the input.

31. A non-transitory computer-readable medium having stored thereon instructions that, when executed, cause one or more processors to:

expose a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of a plurality of language sub-surfaces, each of the language sub-surfaces specifying a corresponding set of syntax rules and strings permitted for the natural language with which a user may interface to enter data indicative of an input;

receive the data indicative of the input that conforms with a portion of the natural language provided by the exposed language sub-surface;

process the data indicative of the input to identify an intent of the user from a plurality of intents associated with the portion of the natural language; and

execute a process associated with the identified intent to perform an operation.

32. A system configured to process data indicative of an input, the system comprising:

a host device comprising one or more processors configured to:

expose a language sub-surface specifying a natural language containment hierarchy defining a grammar for a natural language as a hierarchical arrangement of a plurality of language sub-surfaces, each of the language sub-surfaces specifying a corresponding set of syntax rules and strings permitted for the natural language with which a user may interface to enter the data indicative of the input; and

a client device comprising one or more processors configured to:

receiving the data indicative of the input that conforms with a portion of the natural language provided by the exposed language sub-surface; and

output the data indicative of the input to the host device,

wherein the one or more processors of the host device are further configured to:

process the data indicative of the input to identify an intent of the user from a plurality of intents associated with the portion of the natural language; and

execute a process associated with the identified intent to perform an operation.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2026
From: DATACHAT INC.
To: MEWS SYSTEMS B.V.
Reel/Frame 075363/0177 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2026
From: MEWS SYSTEMS B.V.
To: MEWS SYSTEMS OPCO B.V.
Reel/Frame 075363/0417 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2026
From: PATEL, JIGNESH; POTTY, NAVNEET SANKARA
To: DATACHAT INC.
Reel/Frame 075363/0511 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2026
From: DATACHAT INC.
To: MEWS SYSTEMS B.V.
Reel/Frame 075363/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2026
From: MEWS SYSTEMS B.V.
To: MEWS SYSTEMS OPCO B.V.
Reel/Frame 075364/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2019
From: PATEL, JIGNESH; POTTY, NAVNEET SANKARA
To: DATACHAT.AI
Reel/Frame 049475/0204 →
Continuity (2)
Provisional Application 62686331 · Jun 18, 2018
Related Publication 20190384815A1 · Dec 19, 2019
Cited By (1)
US 12,204,532