Natural language interface for searching database
First Claim
1. A method for searching a target database using a natural language, comprising the steps of:
- receiving a user formulated search request in the natural language;
converting the search request into a list of search words, the list of search words including most restrictive search words having essential words from the search request, the list further including additional search words derived from the essential words from the search request;
converting the search words into a string of bytes;
searching a datasoup with the string of bytes, the datasoup being a subset of the target database and having data and a plurality of records, each of the plurality of records having a link by which corresponding records in the target database are accessed;
matching the string of bytes with the data in the datasoup;
retrieving results from the target database;
creating an individual preference file for each user;
storing information about the user in the preference file, the information selected from the group consisting of;
information relating to the user'"'"'s identification, the user'"'"'s queries, and information regarding the user'"'"'s vocabulary, use of synonyms, common spelling errors, and unique writing style, said information being automatically created for each new user and updated at each access of said user as new information is automatically obtained from said user; and
retrieving stored information from the preference file to analyze the user'"'"'s search request without regard to stored information from preference files of other users.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and method for searching information from a database using a natural language. In one embodiment, the system analyzes a natural language search request and converts the search request into one or more search words. The search words are further converted into a string of bytes, and a subset of a target database, referred to as the datasoup, is searched. If there is a match between the bytes and raw data in the datasoup, the searched data is retrieved from the target database. The searched data is then formatted and provided to a user. Optionally, the searched data can be provided to the user unformatted. In another embodiment, the system includes a system server configured to receive a natural language search request, a core engine coupled to the system server and to the target database, and a system database coupled to the core engine, where the core engine accesses the system database to analyze the search request. The system database stores global rules, one or more preference files, and one or more dictionaries, and the preference file stores information about the user.
-
Citations
24 Claims
-
1. A method for searching a target database using a natural language, comprising the steps of:
-
receiving a user formulated search request in the natural language;
converting the search request into a list of search words, the list of search words including most restrictive search words having essential words from the search request, the list further including additional search words derived from the essential words from the search request;
converting the search words into a string of bytes;
searching a datasoup with the string of bytes, the datasoup being a subset of the target database and having data and a plurality of records, each of the plurality of records having a link by which corresponding records in the target database are accessed;
matching the string of bytes with the data in the datasoup;
retrieving results from the target database;
creating an individual preference file for each user;
storing information about the user in the preference file, the information selected from the group consisting of;
information relating to the user'"'"'s identification, the user'"'"'s queries, and information regarding the user'"'"'s vocabulary, use of synonyms, common spelling errors, and unique writing style, said information being automatically created for each new user and updated at each access of said user as new information is automatically obtained from said user; and
retrieving stored information from the preference file to analyze the user'"'"'s search request without regard to stored information from preference files of other users. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
accessing a system database, the system database storing global rules, one or more dictionaries, and the preference file for each user; and
analyzing the search request using the global rules, one or more dictionaries, and the preference file for each user.
-
-
3. The method as recited in claim 1, further comprising the steps of:
-
identifying the essential words in the search request;
extracting the essential words from the search request in order to generate the most restrictive search words; and
generating the additional search words from the essential words using synonyms, phonetically similar words, and spelling corrections.
-
-
4. The method as recited in claim 3, further comprising the steps of:
-
searching the target database using the most restrictive search words; and
searching the target database using the additional search words in a predetermined order.
-
-
5. The method as recited in claim 1, further comprising the steps of:
-
retrieving local rules from the preference file during post-analysis; and
modifying global rules from the local rules, wherein the global and local rules are utilized in analyzing the search request.
-
-
6. The method as recited in claim 1, further comprising the steps of:
-
creating a plurality of log files, each representing a search session with a user;
reviewing the log files during post-analysis; and
retrieving information from the log files to update a knowledge database, the knowledge database being implemented in a system database; and
updating global rules by the information retrieved from the log files.
-
-
7. The method as recited in claim 1, further comprising the steps of:
-
assigning a coefficient to each of the additional search words, the essential words of the search request having the highest coefficient; and
prioritizing the additional search words.
-
-
8. The method as recited in claim 1, further comprising the step of formatting the results from the target database into a preselected format.
-
9. The method as recited in claim 1, further comprising the step of storing relevant information retrieved from the database.
-
10. A system for searching a target database using a natural language, comprising:
-
a system server for receiving a search request formulated by a user in the natural language;
a core engine for processing the search request, the core engine being coupled to the system server and to the target database;
a system database coupled to the core engine, wherein the core engine accesses the system database to analyze the search request; and
a datasoup having data and a plurality of records, the datasoup being a subset of the target database, each record in the datasoup having a link by which a corresponding record in the target database is accessed, wherein the system database stores an individual preference file for each user, and wherein the preference file stores information about the user, said information selected from the group consisting of;
information related to the user'"'"'s identification, the user'"'"'s queries, and information regarding the user'"'"'s own vocabulary, use of synonyms, common spelling errors, and unique writing style, said information being automatically created for each new user and updated at each access of said user as new information is automatically obtained from said user, and said stored information is retrieved from the preference file to analyze the user'"'"'s search request without regard to stored information from preference files of other users.- View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
a master engine (ME) for processing the user formulated search request; and
a meta engine transcription automata (META) coupled to the ME, wherein the META post-processes the search request in the ME during off-line and provides rules to the ME regarding the processing of the search request, construction of a knowledge database in the system database, and searches within the knowledge database.
-
-
13. The system as recited in claim 12, further comprising a plurality of log files implemented in the system database, each of the plurality of log files representing a search session with the user, wherein the log files are reviewed by the META during post-analysis, and wherein the information retrieved from the log files are used to update the knowledge database and the global rules.
-
14. The system according to claim 11, the core engine comprising:
-
a master engine (ME) for processing user formulated search request; and
a meta engine transcription automata (META) coupled to the ME, wherein the META post-processes the search request in the ME during off-line and provides, rules to the ME regarding the processing of the search request, construction of a knowledge database in the system database, and searches within the knowledge database.
-
-
15. The system as recited in claim 14, further comprising a datasoup, the datasoup being a subset of the target database, wherein the ME converts the list of search words into a string of bytes, and wherein the datasoup is searched using the bytes.
-
16. The system as recited in claim 12, wherein a plurality of MEs are connected to the system server, each of the plurality of MEs being connected to the system database, wherein a plurality of search requests are distributed among the MEs depending on the load faced by each of the plurality of MEs.
-
17. The system as recited in claim 12, wherein the ME is connected to wire services for continuously receiving current news and for analyzing the news as a plurality of search requests, wherein the analysis of the news upgrades the knowledge database.
-
18. The system according to claim 12, wherein the system database stores a preference file for each user, the system further comprising a user language automata (ULA) coupled to the ME and the META, the ULA configured to analyze language in the preference file, the ULA retrieving user specific information from the preference file and providing the information to the ME, wherein the information is subsequently processed by the META during post-analysis.
-
19. The system as recited in claim 11, wherein the target database is accessible via any network protocol.
-
20. The method as recited in claim 10, further comprising the step of storing relevant information retrieved from the database.
-
21. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps of searching a target database using a natural language, the method comprising the steps of:
-
receiving a user formulated search request in the natural language;
converting the search request into a list of search words, the list of search words including most restrictive search words having essential words from the search request, the list further including additional search words derived from the essential words from the search request;
converting the search words into a string of bytes;
searching a datasoup with the string of bytes, the datasoup being a subset of the target database and having data;
matching the string of bytes with the data in the datasoup; and
retrieving results from the target database;
creating an individual preference file for each user;
storing information about the user in the individual preference file, said information selected from the group consisting of;
the user'"'"'s identification, the user'"'"'s queries, the user'"'"'s own vocabulary, use of synonyms, common spelling errors, and unique writing style, said information being automatically created for each new user and updated at each access of said user as new information is automatically obtained from said user; and
retrieving information from the preference file to analyze the user'"'"'s search request without regard to stored information from preference files of other users. - View Dependent Claims (22, 23, 24)
identifying essential words in the search request;
extracting essential words from the search request in order to generate most restrictive search words; and
generating the additional search words from the essential words using synonyms, phonetically similar words, and spelling corrections.
-
-
24. The program storage device as recited in claim 23, further comprising the steps of:
-
searching the target database using the most restrictive search words; and
searching the target database using the additional search words in a predetermined order.
-
Specification