IP Library › Granted Patent US 12,265,796
Granted Patent B2
US 12,265,796 · App. 17/579,028 · Granted Apr 1, 2025

Lookup source framework for a natural language understanding (NLU) framework

Inventors: Maxim Naboka (Santa Clara, CA); Edwin Sapugay (Foster City, CA); Sagar Davasam Suryanarayan (Santa Clara, CA); Anil Kumar Madamala (Sunnyvale, CA); Rammohan Narendula (San Jose, CA); Omer Anil Turkkan (Santa Clara, CA); Aniruddha Madhusudan Thakur (Saratoga, CA); Sriram Palapudi (Santa Clara, CA)
Assignee: ServiceNow, Inc.
G06F40/40G06F21/6254G06F40/284
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 12,265,796
App. No.
17/579,028
Filed
Jan 19, 2022
Granted
Apr 1, 2025
Kind
B2
Art Unit
2658
USPC
704/9
Abstract

A natural language understanding (NLU) framework includes a lookup source framework, which enables a lookup source system to be defined having one or more lookup sources. Each lookup source of the lookup source system includes a respective source data representation that is compiled from respective source data. For example, a source data representation may include source data arranged in a finite state transducer (IFST) structure as a set of finite-state automata (FSA) states, wherein each state is associated with a token that represents underlying source data. Different producers can be applied during compilation of a source data representation to derive additional states within the source data representation from the source data. Certain states of the source data representation that contain sensitive data can be selectively protected through encryption and/or obfuscation, while other portions of the source data representation that are not sensitive may remain in clear-text form.

Claims (57)

1. An agent automation system comprising a reasoning agent/behavior (RA/BE) engine and a lookup source framework, the lookup source framework comprising:

at least one computer-readable storage media configured to store a preprocessing subsystem, a producer subsystem, and a source data representation of a lookup source;

at least one processor configured to execute first stored instructions to cause the lookup source framework to compile the source data representation of the lookup source by performing actions comprising:

preprocessing, via the preprocessing subsystem, source data of a client database to identify a set of state values, each representing a token of the source data;

applying, via the producer subsystem, one or more compile-time transducers to the set of state values to generate a set of produced state values;

generating the source data representation having a plurality of states, wherein the plurality of states comprises original states having corresponding state values from the set of state values and produced states having corresponding state values from the set of produced state values;

creating a value store in the at least one computer-readable storage media that is configured to store the plurality of states of the source data representation;

creating a metadata store separate from the value store in the at least one computer-readable storage media that is configured to store corresponding metadata entries for the plurality of states of the source data representation, wherein each of the corresponding metadata entries are referred to by a respective state of the plurality of states, and wherein corresponding metadata entries for produced states include a producer score adjustment associated with a compile-time transducer of the one or more compile-time transducers applied to generate the corresponding state values of the produced state; and

performing lookup source inference of a received user utterance using the source data representation to generate one or more segments of the received user utterance, each of the one or more segments including respective matched states of the plurality of states stored in the value store and a respective producer score adjustment stored in the metadata store if the matched states include a produced state; and

the RA/BE engine comprising at least one processor configured to execute second stored instructions to cause the RA/BE engine to:

determine, based on the one or more segments, an agent response to the user utterance; and

provide the agent response to the user utterance.

2. The lookup source framework of claim 1 , wherein the source data representation comprises an inverse finite state transducer (IFST).

3. The lookup source framework of claim 1 , wherein the at least one processor is configured to execute the stored instructions to cause the lookup source framework to perform actions comprising retrieving the source data from the client database and retrieving metadata for the source data from the client database, and wherein, to preprocess the source data, the at least one processor is configured to execute the stored instructions to cause the lookup source framework to perform actions comprising cleansing the source data and removing duplicate source data and duplicate metadata.

4. The lookup source framework of claim 1 , wherein each state of the plurality of states includes a child state attribute that references, in the value store, one or more of the plurality of states that are child states of the state, or includes metadata attributes that reference, in the metadata store, the corresponding metadata of the state, or any combination thereof.

5. The lookup source framework of claim 4 , wherein the metadata attributes reference, in the metadata store, table metadata indicating a table of the client database in which the corresponding state value of the state was identified, or column metadata indicating a source column of the client database in which the corresponding state value of the state was identified, or any combination thereof.

6. The lookup source framework of claim 1 , wherein each produced state of the plurality of states comprises:

a source attribute that references, in the value store, a particular state of the plurality of states from which the corresponding state value of the produced state was derived.

7. The lookup source framework of claim 1 , wherein the at least one computer-readable storage media comprises a persistent storage and a non-persistent storage, and wherein the at least one processor is configured to execute the stored instructions to cause the lookup source framework to perform actions comprising:

encrypting or obfuscating, via a security subsystem of the lookup source framework, the corresponding state values of the plurality of states of the source data representation before storing the source data representation in the persistent storage.

8. The lookup source framework of claim 7 , wherein the at least one processor is configured to execute the stored instructions to cause the lookup source framework to perform actions comprising:

implementing, via a caching subsystem of the lookup source framework, a multistage cache in the non-persistent storage, wherein a first stage of the multistage cache is configured to temporarily load, from the persistent storage, an encrypted or obfuscated state value of a particular state of the source data representation when the particular state is requested during inference of a received user utterance, and wherein a second stage of the multistage cache is configured to temporarily store an unencrypted or unobfuscated state value of the particular state of the source data representation when the particular state is requested during the inference of the received user utterance.

9. The lookup source framework of claim 1 , wherein the at least one processor is configured to execute the stored instructions to cause the lookup source framework to perform actions comprising:

performing lookup source inference of a received user utterance using the source data representation to generate the segmentation of the received user utterance, wherein the segmentation describes how tokens of the received user utterance are exactly matched or fuzzy matched to the tokens of source data of the client database.

10. A method of operating lookup source framework, comprising:

preprocessing, via a preprocessing subsystem of the lookup source framework, source data of a client database to identify a set of state values, each representing a token of the source data;

applying, via a producer subsystem of the lookup source framework, one or more compile-time transducers to the set of state values to generate a set of produced state values;

generating a source data representation having a plurality of states, wherein the plurality of states comprises original states having corresponding state values from the set of state values and produced states having corresponding state values from the set of produced state values;

creating a value store in at least one computer-readable storage media that is configured to store the plurality of states of the source data representation;

creating a metadata store separate from the value store in the at least one computer-readable storage media that is configured to store corresponding metadata entries for the plurality of states of the source data representation, wherein each of the corresponding metadata entries are referred to by a respective state of the plurality of states, and wherein corresponding metadata entries for produced states include a producer score adjustment associated with a compile-time transducer of the one or more compile-time transducers applied to generate the corresponding state values of the produced state; and

performing lookup source inference of a received user utterance using the source data representation to generate one or more segments of the received user utterance, each of the one or more segments including respective matched states of the plurality of states stored in the value store and a respective producer score adjustment stored in the metadata store if the matched states include a produced state;

determining, based on the one or more segments, an agent response to the user utterance and

providing the agent response to the user utterance.

11. The method of claim 10 , wherein the source data representation comprises an inverse finite state transducer (IFST), and wherein the value store stores the plurality of states of the IFST the metadata store stores the corresponding metadata entries for the plurality of states of the IFST.

12. The method of claim 11 , wherein, other than a root state of the IFST, each state of the plurality of states includes metadata attributes, and wherein the metadata attributes reference, in the metadata store, table metadata indicating a table of the client database in which the corresponding state value of the state was identified, or reference column metadata indicating a column of the client database in which the corresponding state value of the state was identified, or any combination thereof.

13. The method of claim 11 , wherein each produced state of the plurality of states of the IFST comprises:

a source state attribute that references, in the value store, a particular state of the plurality of states from which the corresponding state value of the produced state was derived by the one or more compile-time transducers; and

metadata attributes that reference, in the metadata store, producer metadata indicating the one or more compile-time transducers that derived the corresponding state value of the produced state.

14. The method of claim 10 , comprising:

performing lookup source inference of a received user utterance using the source data representation to generate the segmentation of the received user utterance, wherein the segmentation describes how tokens of the received user utterance are exactly matched or fuzzy matched to the tokens of source data of the client database.

15. A non-transitory, computer-readable medium storing instructions executable by a processor of a computing system, the instructions comprising instructions to:

preprocess, via a preprocessing subsystem of a lookup source framework, source data of a client database to identify a set of state values, each representing a token of the source data;

apply, via a producer subsystem of the lookup source framework, one or more compile-time transducers to the set of state values to generate a set of produced state values;

generate a source data representation having a plurality of states, wherein the plurality of states comprises original states having corresponding state values from the set of state values and produced states having corresponding state values from the set of produced state values;

create a value store in at least one computer-readable storage media that is configured to store the plurality of states of the source data representation;

create a metadata store separate from the value store in the at least one computer-readable storage media that is configured to store corresponding metadata entries for the plurality of states of the source data representation, wherein each of the corresponding metadata entries are referred to by a respective state of the plurality of states, and wherein corresponding metadata entries for produced states include a producer score adjustment associated with a compile-time transducer of the one or more compile-time transducers applied to generate the corresponding state values of the produced state;

perform lookup source inference of a received user utterance using the source data representation to generate one or more segments of the received user utterance, each of the one or more segments including respective matched states of the plurality of states stored in the value store and a respective producer score adjustment stored in the metadata store if the matched states include a produced state;

determine, based on the one or more segments, an agent response to the user utterance; and

provide the agent response to the user utterance.

16. The medium of claim 15 , wherein the source data representation comprises an inverse finite state transducer (IFST), and wherein the value store stores the plurality of states of the IFST; and the metadata store stores the corresponding metadata entries for the plurality of states of the IFST, wherein each of the plurality of states comprise attributes that reference other states in the value store, that reference the corresponding metadata in the metadata store, or any combination thereof.

17. The medium of claim 15 , wherein the instructions comprise instructions to:

encrypt or obfuscate, via a security subsystem of the lookup source framework, the corresponding state values of the plurality of states of the source data representation before storing the source data representation in persistent storage.

18. The medium of claim 17 , wherein the instructions comprise instructions to:

perform lookup source inference of a received user utterance using the source data representation to generate the segmentation of the received user utterance by combining the one or more segments.

19. The medium of claim 18 , wherein the instructions comprise instructions to:

implement, via a caching subsystem of the lookup source framework, a multistage cache in non-persistent storage, wherein a first stage of the multistage cache temporarily loads, from the persistent storage, an encrypted or obfuscated state value of a particular state of the source data representation when the particular state is requested during the lookup source inference of the received user utterance, and wherein a second stage of the multistage cache temporarily stores an unencrypted or unobfuscated state value of the particular state that is returned in response to the particular state being requested during the lookup source inference of the received user utterance.

20. The medium of claim 18 , wherein the instructions comprise instructions to rank or score the segmentation based on the respective producer score adjustment included in a segment of the one or more segments.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2022
From: NABOKA, MAXIM; SAPUGAY, EDWIN; DAVASAM SURYANARAYAN, SAGAR; MADAMALA, ANIL KUMAR; NARENDULA, RAMMOHAN; TURKKAN, OMER ANIL; THAKUR, ANIRUDDHA MADHUSUDAN; PALAPUDI, SRIRAM
To: SERVICENOW, INC.
Reel/Frame 058710/0538 →
Continuity (2)
Provisional Application 63139922 · Jan 21, 2021
Related Publication 20220229998A1 · Jul 21, 2022
References Cited (71)
US 6609122B1 · Ensor · 2003 [cited by applicant]
US 7020706B2 · Cates · 2006 [cited by applicant]
US 7028301B2 · Ding · 2006 [cited by applicant]
US 7062683B2 · Warpenburg · 2006 [cited by applicant]
US 7131037B1 · LeFaive · 2006 [cited by applicant]
US 7170864B2 · Matharu · 2007 [cited by applicant]
US 7240004B1 · Allauzen · 2007 [cited by examiner]
US 7350209B2 · Shum · 2008 [cited by applicant]
US 7610512B2 · Gerber · 2009 [cited by applicant]
US 7617073B2 · Trinon · 2009 [cited by applicant]
US 7689628B2 · Garg · 2010 [cited by applicant]
US 7783744B2 · Garg · 2010 [cited by applicant]
US 7890802B2 · Gerber · 2011 [cited by applicant]
US 7930396B2 · Trinon · 2011 [cited by applicant]
US 7945860B2 · Vambenepe · 2011 [cited by applicant]
US 7966398B2 · Wiles · 2011 [cited by applicant]
US 8051164B2 · Peuter · 2011 [cited by applicant]
US 8224683B2 · Manos · 2012 [cited by applicant]
US 8266096B2 · Navarrete · 2012 [cited by applicant]
US 8457928B2 · Dang · 2013 [cited by applicant]
US 8478569B2 · Scarpelli · 2013 [cited by applicant]
US 8674992B2 · Poston · 2014 [cited by applicant]
US 8689241B2 · Naik · 2014 [cited by applicant]
US 8743121B2 · De Peuter · 2014 [cited by applicant]
US 8887133B2 · Behnia · 2014 [cited by applicant]
US 9065683B2 · Ding · 2015 [cited by applicant]
US 9122552B2 · Whitney · 2015 [cited by applicant]
US 9239857B2 · Trinon · 2016 [cited by applicant]
US 9460088B1 · Sak · 2016 [cited by examiner]
US 9535737B2 · Joy · 2017 [cited by applicant]
US 9557969B2 · Sharma · 2017 [cited by applicant]
US 9792387B2 · George · 2017 [cited by applicant]
US 10339441B2 · Jayaraman et al. · 2019 [cited by applicant]
US 10380504B2 · Bendre et al. · 2019 [cited by applicant]
US 10445170B1 · Subramanian · 2019 [cited by examiner]
US 10445661B2 · Bendre et al. · 2019 [cited by applicant]
US 10497366B2 · Sapugay et al. · 2019 [cited by applicant]
US 10713441B2 · Sapugay et al. · 2020 [cited by applicant]
US 10740566B2 · Sapugay et al. · 2020 [cited by applicant]
US 10949807B2 · Jayaraman et al. · 2021 [cited by applicant]
US 10956683B2 · Sapugay et al. · 2021 [cited by applicant]
US 10970487B2 · Sapugay et al. · 2021 [cited by applicant]
US 11080588B2 · Jayaraman et al. · 2021 [cited by applicant]
US 11087090B2 · Sapugay et al. · 2021 [cited by applicant]
US 11151325B2 · Turkkan et al. · 2021 [cited by applicant]
US 11205052B2 · Sapugay et al. · 2021 [cited by applicant]
US 11361764B1 · Zhao · 2022 [cited by examiner]
US 20190043494A1 · Czyryba · 2019 [cited by examiner]
US 20190179606A1 · Thangarathnam · 2019 [cited by examiner]
US 20190294676A1 · Sapugay et al. · 2019 [cited by applicant]
US 20200005187A1 · Bendre et al. · 2020 [cited by applicant]
US 20200234162A1 · Jayaraman et al. · 2020 [cited by applicant]
US 20200234177A1 · Matcha et al. · 2020 [cited by applicant]
US 20200327284A1 · Sapugay et al. · 2020 [cited by applicant]
US 20200349325A1 · Sapugay et al. · 2020 [cited by applicant]
US 20200351383A1 · Jayaraman et al. · 2020 [cited by applicant]
US 20210004442A1 · Sapugay et al. · 2021 [cited by applicant]
US 20210004443A1 · Sapugay et al. · 2021 [cited by applicant]
US 20210004537A1 · Sapugay et al. · 2021 [cited by applicant]
US 20210081615A1 · McRitchie · 2021 [cited by examiner]
US 20210200960A1 · Sapugay et al. · 2021 [cited by applicant]
US 20210224485A1 · Sapugay et al. · 2021 [cited by applicant]
US 20210342547A1 · Sapugay et al. · 2021 [cited by applicant]
US 20220171868A1 · McCuen · 2022 [cited by examiner]
Harwath, D., & Glass, J. R. (2014). Speech recognition without a lexicon—bridging the gap between graphemic and phonetic systems. In Fifteenth Annual Conference of the International Speech Communication Association. [cited by examiner]
Macherey, K. (2009). Statistical methods in natural language understanding and spoken dialogue systems (Doctoral dissertation, Aachen, Techn. Hochsch., Diss., 2009). [cited by examiner]
U.S. Appl. No. 16/421,202, filed May 23, 2019, Baskar Jayaraman. [cited by applicant]
U.S. Appl. No. 16/682,992, filed Nov. 13, 2019, Edwin Sapugay. [cited by applicant]
U.S. Appl. No. 17/448,667, filed Sep. 23, 2021, Omer Anil Turkkan. [cited by applicant]
U.S. Appl. No. 17/451,405, filed Oct. 19, 2021, Edwin Sapugay. [cited by applicant]
U.S. Appl. No. 17/453,446, filed Nov. 3, 2021, Edwin Sapugay. [cited by applicant]