CA2633458C

Method and system for extending keyword searching to syntactically and semantically annotated data

Abstract

Methods and systems for extending keyword searching techniques to syntactically and semantically annotated data are provided. Example embodiments provide a Syntactic Query Engine ("SQE") that parses, indexes, and stores a data set as an enhanced document index with document terms as well as information pertaining to the grammatical roles of the terms and ontological and other semantic information. In one embodiment, the enhanced document index is a form of term-clause index, that indexes terms and syntactic and semantic annotations at the clause level. The enhanced document index permits the use of a traditional keyword search engine to process relationship queries as well as to process standard document level keyword searches. In one embodiment, the SQE comprises a Query Processor, a Data Set Preprocessor, a Keyword Search Engine, a Data Set Indexer, an Enhanced Natural Language Parser ("ENLP"), a data set repository, and, in some embodiments, a user interface or an application programming interface.

CA2633458C, drawing sheet 1
Sheet 1 of 164

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Granted
  4. Today

165 claims: 87 independent, 78 dependent

  1. 1
    CA 02633458 2014-01-13 What is claimed is:1. A method in a computer system for preparing a corpus of documents for performing electronic searches, each document having at least one sentence, each sentence having a plurality of terms, comprising: for each sentence of each document, parsing the sentence under the control of the computer system to generate a parse structure having a plurality of syntactic elements that correspond to the terms of the sentence;determining from the structure of the parse structure and the plurality of syntactic elements a corresponding grammatical role for each of a plurality of the terms of the sentence, each grammatical role being at least one of a subject, an object, a governing verb, a modifier, or a part of a prepositional phrase;normalizing the plurality of terms of the sentence having corresponding grammatical roles to a plurality of tagged terms, each tagged term indicating an association between the term of the sentence that corresponds to the grammatical role and an associated tag type that specifies the corresponding grammatical role, wherein at least one of the tagged terms has an associated tag type that specifies that the associated term of the sentence is a subject or an object of the sentence, wherein at least one of the tagged terms has an associated tag type that specifies that the associated term of the sentence is a modifier of another term of the sentence that has an associated tag type that specifies that the another term is a subject, object, or verb of the sentence, and wherein at least one of the tagged terms has an associated tag type that additionally specifies semantic information that refers to an entity type that identifies the associated term of the sentence as a type of person, location, or thing;and transforming each sentence to an enhanced data structure of terms stored as one or more inverted indexes of terms annotated with relationship information, wherein the plurality of the tagged terms are stored therein and indexed as additional terms of the sentence, each additional term including the term of the sentence and the associated tag type, thereby enabling a search engine to perform relationship searches by determining from the enhanced 111 CA 02633458 2014-01-13 data structure whether a designated search term having an associated tag type that specifies a grammatical role or an entity type is present in the sentence in a same role, in a manner similar to the manner the search engine uses to determine whether a designated term is present in the sentence, at least one of the relationship searches capable of returning a plurality of relationships between at least two entities as a result of a single specification.
  2. 4
    The method of any one of claims 1 to 3 wherein the search engine performs pattern matching to determine whether the designated term having the associated tag type is present in the sentence in the same role.
  3. 5
    The method of any one of claims 1 to 4 wherein the one or more inverted indexes of terms is an augmented term-document matrix configured to be searched using pattern matching or string matching to determine sentences that are similar to a designated relationship query.
  4. 6
    The method of any one of claims 1 to 5 wherein the transforming each sentence to the enhanced data structure is performed for each clause of each sentence such that the tagged terms are treated as additional terms of each clause of the sentence and the search engine determines whether the designated syntactic term having the associated tag type is present in each clause. 112 CA 02633458 2014-10-01
  5. 7
    The method of any one of claims 1 to 6 wherein the at least one of the tagged terms that has the associated tag type that specifies semantic information specifies an action attribute tag.
  6. 9
    The method of any one of claims 1 to 8 wherein the normalizing the plurality of terms of the sentence having corresponding grammatical roles to the plurality of tagged items comprises applying linguistic normalization techniques to the plurality of terms of the sentence having corresponding grammatical roles to generate the plurality of tagged terms.
  7. 13
    The method of any one of claims 10 to 12 wherein the coreference resolution rule is applied to at least one of a noun, a pronoun, a noun phrase, a pronoun phrase, alias, abbreviation, or acronym.
  8. 14
    The method of any one of claims 9 to 13 wherein the linguistic normalization techniques include applying at least one rule that normalizes a set of synonyms or acronyms to a standard term or phrase. 113 CA 02633458 2014-01-13
  9. 15
    The method of any one of claims 9 to 14 wherein the linguistic normalization techniques comprise identifying and generating tagged terms that include hypernyms and hyponyms.
  10. 16
    The method of any one of claims 9 to 15 wherein the linguistic normalization techniques comprise identifying and generating tagged terms that include action attributes.
  11. 19
    The method of any one of claims 16 to 18 wherein the action attributes comprise similar verbs.
  12. 20
    The method of any one of claims 16 to 18 wherein the action attributes comprise troponyms, verb entailments, or hypernyms.
  13. 21
    The method of any one of claims 1 to 20, further comprising:receiving a query that specifies a relationship search that designates at least one of a term and an indication of a grammatical relationship associated with the designated term or a tag type that specifies a type of grammatical role, person, location or thing;translating the query to a set of Boolean expressions;executing a search engine that evaluates the Boolean expressions against the enhanced data structures of the sentences to determine a set of sentence clauses that match the query;and returning indications to the set of matching sentence clauses. 114 CA 02633458 2014-01-13
  14. 24
    The method of any one of claims 21 to 23 wherein the received query specifies a relationship search that is constrained by an expression that indicates a keyword search of the documents for at least one search term.
  15. 25
    The method of any one of claims 21 to 24 wherein the received query specifies a relationship search that is constrained by a meta-data tag expression.
  16. 26
    The method of any one of claims 21 to 25 wherein the received query specifies a relationship search that is constrained by an expression that indicates a value of a prepositional phrase.
  17. 27
    The method of any one of claims 21 to 26 wherein the tag type specifies at least one of a an entity specification, or a path in an ontology.
  18. 28
    The method of any one of claims 21 to 27 wherein the tag type specifies a subject, an object, or a verb.
  19. 29
    The method of any one of claims 21 to 28 wherein the relationship search specifies a search term using a wildcard.
  20. 31
    The method of any one of claims 21 to 27 and 30 wherein the relationship search designates a value of at least one of a subject, an object, or a verb and the search engine determines all clauses in the corpus of documents where a grammatical relationship exists that satisfies the designated value of the at least one subject, object, or verb.
  21. 34
    The method of any one of claims 31 to 33 wherein the relationship search designates a value of a verb and the search engine determines a corresponding subject and a corresponding object of all clauses that contain a verb having the designated value or a similar verb to the designated value.
  22. 35
    The method of any one of claims 31 to 34 wherein the relationship search designates a wildcard for at least one of the values of the designated at least one subject, object, or verb.
  23. 36
    The method of any one of claims 31 to 35 wherein the search engine considers the presence in a corpus sentence clause of a term used in a modifier grammatical role as a modifier of the designated value of the subject, object, or verb as a match to the designated value of the subject, object, or verb.
  24. 37
    The method of any one of claims 21 to 36 wherein the search engine is an off-the-shelf keyword search engine. 116 CA 02633458 2014-01-13
  25. 49
    The method of any one of claims 46 to 48 wherein the returning the indication of each matching object that encompasses the desired relationship returns indications to objects that contain verbs of a similar classification to the designated verb.
  26. 51
    The method of any one of claims 40 to 50 wherein the first entity is any term that matches a specified entity type or ontology path specification.
  27. 52
    The method of any one of claims 40 to 51 wherein the receiving the search query that designates the desired grammatical relationship between a first entity and at least one of a second entity or an action specifies at least one of a prepositional constraint, a document keyword constraint, or a document metadata constraint.
  28. 53
    The method of any one of claims 40 to 52 wherein the search query includes a Boolean operation.
  29. 55
    The method of any one of claims 40 to 54 wherein the search query includes an operator that specifies at least one of a proximity, a range, a wildcard, a weighted search based upon frequency, or a weighted keyword search operation.
  30. 56
    The method of any one of claims 50 to 55 wherein the search query includes a designation of at least one entity type.
  31. 59
    The method of any one of claims 40 to 58 wherein the search query includes a wildcard specification in the designation of the desired grammatical relationship. 119 CA 02633458 2014-01-13
  32. 61
    The method of any one of claims 40 to 60, wherein the search query designates a desired grammatical relationship between the first entity and the second entity, the search query further designating a link entity specification that used to link the first entity and the second entity.
  33. 64
    The method of any one of claims 40 to 63 wherein the transforming the search query to generate a Boolean expression incorporates transformational grammar rules to generate related grammatical relationships to search for.
  34. 65
    The method of any one of claims 40 to 64 wherein the generated Boolean expression includes an expression that causes a search for the desired grammatical relationship using at least one modifier.
  35. 68
    The method of any one of claims 65 to 66 wherein the expression that causes a search for the desired grammatical relationship using the at least one modifier specifies an expression in which the modifier acts as a part of the action.
  36. 86
    A computing system that is configured to index a corpus of documents for electronic searching, each document having at least one sentence, each sentence having a plurality of terms, comprising:a parser that is configured, when executed, to parse each sentence of each document to generate a dependency structure that specifies a plurality of syntactic elements that correspond to a plurality of the terms of the sentence and their grammatical relationship to each other;a post processing module that is configured, when executed, to normalize the dependency structure to a plurality of tagged terms, each tagged term indicating an association between the term that corresponds to the syntactic element and an associated tag type, the associated tag type specifying a grammatical role of the corresponding term as used in the sentence, the grammatical role designating at least one of a subject, an object, a governing verb, a modifier, or a part of a prepositional phrase, wherein at least one of the tagged terms has an associated tag type that that specifies that the corresponding term is a subject or an object of the sentence, wherein at least one of the tagged terms has an associated tag type that specifies that the associated term of the sentence is a modifier of another term of the sentence that has an associated tag type that specifies that the another term is a subject, object, or verb of 123 CA 02633458 2014-01-13 the sentence, and wherein at least one of the tagged terms has an associated tag type that additionally refers to an entity type that identifies the corresponding term as a type of person, place, or thing;and a sentence transformation module that is configured, when executed, to transform the plurality of tagged terms to an enhanced data structure that stores and treats each tagged term as an encoded additional term of the sentence in one or more inverted indexes of terms annotated with relationship information, thereby enabling a search engine, to perform relationship searches by determining from the enhanced data structure whether a designated term having an associated tag type that specifies a desired grammatical role and/or a desired entity type is present in the sentence in a same role, in a manner similar to the manner the search engine uses to determine whether a designated term is present in the sentence, at least one of the relationship searches capable of returning a plurality of relationships between at least two entities as a result of a single search specification.
  37. 89
    The system of any one of claims 86 to 88 wherein the search engine performs pattern matching to determine whether the designated term having the associated tag type is present in the sentence in the same role.
  38. 90
    The system of any one of claims 86 to 89 wherein the one or more inverted indexes of terms is an augmented term-document matrix configured to be searched using pattern matching or string matching to determine sentences that match a specified relationship query. 124 CA 02633458 2014-01-13
  39. 91
    The system of any one of claims 86 to 90 wherein the transformation of each sentence to the enhanced data structure is performed for each clause of each sentence such that the tagged terms are treated as additional terms of each clause of the sentence and the search engine determines, for each clause, whether the designated syntactic term having the associated tag type is present.
  40. 92
    The system of any one of claims 86 to 91 wherein the at least one of the tagged terms that has the associated tag type that additionally refers to the entity type specifies an ontology path.
  41. 93
    The system of any one of claims 86 to 92 wherein the post processing module is configured, when executed, to normalize the dependency structure by applying linguistic normalization techniques to the plurality of syntactic elements to generate the plurality of tagged terms.
  42. 96
    The system of any one of claims 93 to 95 wherein the linguistic normalization techniques comprise identifying and generating tagged terms that include hypernyms and hyponyms.
  43. 97
    The system of any one of claims 86 to 96, further comprising:a query interface module that is configured, when executed, to 125 CA 02633458 2014-01-13 receive a query that specifies a relationship search that designates at least one of a term and a grammatical relationship associated with the designated term or a tag type that specifies a type of grammatical role, person, place, or thing;translate the query to at least one Boolean expression;execute a search engine that evaluates the at least one Boolean expression against the enhanced data structures of the sentences to determine a set of objects that match the query;and return indications to the set of matching objects in the corpus.
  44. 100
    The system of any one of claims 97 to 99 wherein the relationship search is indicative of at least one syntactically or semantically annotated term.
  45. 102
    The any one of claims 97 to 101 wherein the returned indications indicate at least one of clauses, sentences, paragraphs, or documents.
  46. 103
    The system of any one of claims 97 to 102 wherein the received query specifies the relationship search by means of a natural language query that is transformed to the designated at least one of the term or the tag type. 126 CA 02633458 2014-01-13
  47. 104
    The system of any one of claims 97 to 103 wherein the received query specifies a relationship search in combination with a document level Boolean search for at least one keyword to be located in each matching document.
  48. 105
    The system of any one of claims 97 to 104 wherein the received query specifies a relationship search that indicates a prepositional constraint, a document keyword constraint, or a document metadata constraint.
  49. 106
    The system of any one of claims 97 to 105 wherein the relationship search includes a wildcard specification.
  50. 107
    The system of any one of claims 97 to 106 wherein the relationship search includes a Boolean operation.
  51. 108
    The system of any one of claims 97 to 107 wherein the relationship search includes an operator that specifies at least one of a proximity, a range, a weighted search based upon frequency, or a weighted keyword search operation.
  52. 109
    The system of any one of claims 97 to 108 wherein the relationship search specifies at least one entity type or path specification in a classification system.
  53. 110
    The system of any one of claims 97 to 109 wherein the relationship search designates a value of at least one of a subject, an object, or a verb and the search engine determines all clauses in the corpus of documents where a grammatical relationship exists that satisfies the designated value of the at least one subject, object, or verb.
  54. 111
    The system of any one of claims 97 to 110 wherein the search engine considers the presence in a sentence clause of a term used in a modifier grammatical role as a modifier of the designated value of the subject, object, or verb as a match to the designated value of the subject, object, or verb. 127 CA 02633458 2014-01-13
  55. 112
    The system of any one of claims 97 to 111 wherein the relationship search specifies a desired grammatical relationship between a first entity and at least one of a second entity or an action.
  56. 115
    The system of any claims 112 to 114 wherein the specified at least one second entity or the action indicates a desire to match any action.
  57. 116
    The system of any claims 112 to 115 wherein the specified at least one second entity or the action is a verb.
  58. 117
    The system of any claims 112 to 116 wherein the specified at least one second entity or the action indicates a desire to match any action and a desire to match any second entity.
  59. 118
    The system of any claims 112 to 117, the relationship search specifying a desired action, wherein the returned indications of each matching object of the set of matching objects returns indications to objects that contain similar verbs to a verb indicated by the desired action, the same verb as the verb indicated by the desired action, or a verb of a classification related to the verb indicated by the desired action.
  60. 119
    The system of any claims 97 to 118, wherein the relationship search includes a link entity specification. 128 CA 02633458 2014-01-13
  61. 120
    The system of any claims 97 to 119 wherein the transformed query incorporates transformational grammar rules.
  62. 121
    The system of any claims 97 to 120 wherein the transformed query includes an expression that causes a search using at least one modifier.
  63. 122
    The system of any one of claims 86 to 96, further comprising:a query interface module that is configured, when executed, to receive a script that specifies a plurality of queries in a script language, each query specifying a relationship search that designates at least one of a term and an indication of a grammatical relationship that encompasses the term or a tag type that specifies a type of grammatical role, person, place, or thing;translate the plurality of queries to a set of Boolean expressions;execute a search engine that evaluates the Boolean expressions against the enhanced data structures of the sentences to determine a set of sentence clauses that match the Boolean expressions according to the script.
  64. 124
    The system of any one of claims 86 to 123 wherein the one or more inverted indexes of terms is a matrix that tracks occurrences of the terms across the corpus of documents.
  65. 127
    The system of any one of claims 86 to 126 wherein each indexed term and additional term is associated with a location that corresponds to a particular clause, sentence, and document.
  66. 128
    The system of any one of claims 86 to 126 wherein the enhanced data structures comprise a reverse index of terms that indexes at least one of documents, sentences, or clauses.
  67. 131
    The system of any one of claims 86 to 130, the enhanced data structures that indexes and stores terms of the documents storing and indexing the additional terms across a plurality of storage repositories, and wherein the search engine performs pattern match searches against each storage repository that contains a portion of the index and merges the results of the pattern match searches to return the indication of each matching object in the corpus.
  68. 133
    A computer-readable memory medium containing structured data that stores a syntactic query, the query executed by a computer processor under the control of a search engine to search a corpus of objects for objects that match the query, comprising:a base component that specifies values for desired relationship parameters, the relationship parameters comprising one or more entity parameters, at least one action parameter, and at least one directional operator parameter that specifies a direction of relationship between one of the one or more entity parameters and the at least one action parameter;a prepositional constraint component that specifies a desired value for a prepositional phrase;a keyword constraint component that specifies desired keyword values separately from and in addition to the values for the desired relationship parameters;and a metadata constraint component that specifies desired values of metadata associated with each matching object, whereby, when the search engine causes the search to be executed, objects that match the constraints specified by the base component, the prepositional constraint component, the keyword constraint component, and the metadata constraint component are determined to satisfy the query.
  69. 136
    The memory medium of any one of claims 133 to 135 wherein at least one of the components of the syntactic query contains a Boolean expression. 131 CA 02633458 2014-01-13
  70. 137
    The memory medium of any one of claims 133 to 135 wherein the base component specifies the desired relationship parameters in a general syntactic form:Entity 1 Directional-operator 1 Action Directional-operator2 Entity2 wherein at least one of Entity 1, Entity2, and Action parameters contains a non null value that indicates a search term, the Directional-operatorl parameter specifies the direction of the relationship between the Entity 1 and the Action parameters, and the Directional-operator2 parameter specifies the direction of the relationship between the Entity2 and the Action parameters.
  71. 140
    The memory medium of any one of claims 137 to 139 wherein a specification of a value of “<” or “<-” for Directional-operatorl parameter indicates that the value indicated by the Entityl parameter is an object of the value indicated by the Action parameter.
  72. 141
    The memory medium of any one of claims 137 to 140 wherein a specification of a value of “>” or “->” for Directional-operator2 parameter indicates that the value indicated by the Entity2 parameter is an object of the value indicated by the Action parameter.
  73. 142
    The memory medium of any one of claims 137 to 141 wherein a specification of a value of “<” or “<-” for Directional-operator2 parameter indicates that that 132 CA 02633458 2014-01-13 the value indicated by the Entity2 parameter is a subject of the value indicated by the Action parameter.
  74. 143
    The memory medium of any one of claims 137 to 142 wherein a value for the Action parameter indicates a search term that represents at least one of a particular verb, similar verbs, or an action type.
  75. 144
    The memory medium of any one of claims 137 to 143 wherein a value for the Action parameter that is in the form of a quoted verb indicates a particular verb;a value for the Action parameter that in the form of an unquoted verb indicates similar verbs to that which is specified;and a value for the Action parameter that is in the form of a bracketed verb indicates an action type.
  76. 145
    The memory medium of any one of claims 137 to 144 wherein a value for the Entityl or the Entity2 parameter is a noun or noun phrase.
  77. 146
    The memory medium of any one of claims 137 to 145 wherein a value for the Entityl or the Entity2 parameter is a modifier.
  78. 147
    The memory medium of any one of claims 137 to 146 wherein the prepositional constraint component comprises the phrase “PREP CONTAINS” or the character “Λ” followed by at least one search term.
  79. 148
    The memory medium of claim any one of claims 144 to 147 wherein the keyword constraint component comprises the phrase “DOCUMENT CONTAINS” or the character followed by at least one search term.
  80. 149
    The memory medium of claim any one of claims 137 to 148 wherein the metadata constraint component comprises the phrase “METADATA CONTAINS” or the 133 CA 02633458 2014-10-01 character “#” followed by at least one expression that specifies a desired value for a metadata variable.
  81. 150
    The memory medium of any one of claims 137 to 149 wherein a wildcard can be specified as the value of a search term or a parameter of the base component.
  82. 152
    The memory medium of any one of claims 137 to 151 wherein curly braces are used to indicate indirect link searches.
  83. 153
    The memory medium of any one of claims 137 to 152 wherein square brackets are used to indicate an action type or an entity classification.
  84. 156
    A computer-readable memory medium that contains a reverse index for storing a corpus of documents according to terms present in the documents, the index configured to be accessed by a computer processor that is controlled by search engine to match a relationship query against the corpus of documents using pattern or string matching, the index comprising:a plurality of terms, each term of the plurality of terms indicating at least one sentence in which the term occurs;and 134 CA 02633458 2014-01-13 a plurality of tagged terms, each tagged term specifying a grammatical role that indicates a grammatical relationship of an associated term in the at least one sentence to other terms in the at least one sentence, each tagged term indicating the at least one sentence in which the associated term occurs, at least one of the tagged terms specifying a grammatical role that indicates that the associated term is a subject or an object, at least one of the tagged terms having an associated tag type that specifies that the associated term of the sentence is a modifier of another term of the sentence that has an associated tag type that specifies that the another term is a subject, object, or verb of the sentence, and at least one of the tagged terms additionally specifying a semantic tag that specifies that the associated term is a type of person, location, or thing;such that the search engine can determine, by pattern matching query terms against the terms and tagged terms of the reverse index, a set of sentences that match a relationship indicated by the query.
  85. 159
    The memory medium of any one of claims 156 to 158 wherein the semantic tag is at least one of an entity tag or a path specification in a classification structure.
  86. 160
    The memory medium of any one of claims 156 to 159 wherein the reverse index is a term-clause index wherein each term indicates a clause within the indicated at least one sentence in which the term occurs. 135 CA 02633458 2014-01-13
  87. 161
    The memory medium of any one of claims 156 to 160 wherein the reverse index is a term-clause index wherein each tagged term indicates a clause within the indicated at least one sentence in which the associated term occurs.
Independent claims87