Methods, apparatus and data structures for facilitating a natural language interface to stored information
First Claim
1. A method for preprocessing a natural language database query, the method comprising:
- a) accepting an alphanumeric string related to the query;
b) parsing the alphanumeric string to generate query words;
c) determining whether any of the query words, or any phases formed by at least two adjacent query words, match any of a plurality of indexed annotations;
d) if a query word or phrase matches one or more of the plurality of indexed annotations, for each of the plurality of indexed annotations, adding a pattern associated with the indexed annotation to a group associated with the query word or phrase;
e) selecting a pattern from each group of patterns to generate a selection of patterns; and
f) combining the patterns of the selection of patterns to generate a single, connected, lowest cost pattern.
2 Assignments
0 Petitions
Accused Products
Abstract
An authoring tool (or process) to facilitate the performance of an annotation function and an indexing function. The annotation function may generate informational annotations and word annotations to a database design schema (e.g., an entity-relationship diagram or “ERD”). The indexing function may analyze the words of the annotations by classifying the words in accordance with a concordance and dictionary, and assign a normalized weight to each word of each of the annotations based on the classification(s) of the word(s) of the annotation.
A query translator (or query translation process) to (i) accept a natural language query from a user interface process, (ii) convert the natural language query to a formal command query (e.g., an SQL query) using the indexed annotations generated by the authoring tool and the database design schema, and (iii) present the formal command query to a database management process for interrogating the relational database.
37 Citations
20 Claims
-
1. A method for preprocessing a natural language database query, the method comprising:
-
a) accepting an alphanumeric string related to the query; b) parsing the alphanumeric string to generate query words; c) determining whether any of the query words, or any phases formed by at least two adjacent query words, match any of a plurality of indexed annotations; d) if a query word or phrase matches one or more of the plurality of indexed annotations, for each of the plurality of indexed annotations, adding a pattern associated with the indexed annotation to a group associated with the query word or phrase; e) selecting a pattern from each group of patterns to generate a selection of patterns; and f) combining the patterns of the selection of patterns to generate a single, connected, lowest cost pattern. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus for preprocessing natural language database queries, the apparatus comprising:
-
a) an input for accepting an alphanumeric string related to the query; b) a parser for parsing the alphanumeric string to generate query words; c) a matcher for determining whether any of the query words, or any phrases formed by at least two adjacent query words, match any of a plurality of indexed annotations; d) a facility for adding, if a query word or phrase matches one or more of the plurality of indexed annotations, for each of the plurality of indexed annotations, adding a pattern associated with the indexed annotation to a group associated with the query word or phrase; e) a facility for selecting a pattern from each group of patterns to generate a selection of patterns; and f) a facility for combining the patterns of the selection of patterns to generate a single, connected, lowest cost pattern. - View Dependent Claims (20)
-
Specification