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.

Term
No projected expiry on record.
- Priority
- Filed
- Granted
- Today
165 claims: 87 independent, 78 dependent
- 1CA 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.
- 6The 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
- 9The 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.
- 21The 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
- 31The 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.
- 36The 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.
- 52The 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.
- 86A 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.
- 91The 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.
- 97The 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.
- 110The 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.
- 111The 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
- 118The 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.
- 122The 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.
- 131The 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.
- 133A 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.
- 137The 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.
- 144The 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.
- 156A 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.
Independent claims87
1,291 paragraphs in 282 sections, as filed
CA 02633458 2014-01-13
METHOD AND SYSTEM FOR EXTENDING KEYWORD SEARCHING TO SYNTACTICALLY AND SEMANTICALLY ANNOTATED DATA
BACKGROUND OF THE INVENTION
Field of the Invention
The present invention relates to a method and system for searching for information in a data set, and, in particular, to enhanced methods and systems for syntactically indexing and performing syntactic searching of data sets using relationship queries to achieve greater search result accuracy.
Background
Often times it is desirable to search large sets of data, such as collections of millions of documents, only some of which may pertain to the information being sought. In such instances it is difficult to either identify a subset of data to search or to search all data yet return only meaningful results. The techniques that have been traditionally applied to support searching large sets of data have fallen short of expectations, because they have not been able to achieve a high degree of accuracy of search results due to inherent limitations.
One common technique, implemented by traditional keyword search engines, matches words expected to found in a set of documents through pattern matching techniques. Thus, the more that is known in advance about the documents including their content, format, layout, etc., the better the search terms that can be provided to elicit a more accurate result. Data is searched and results are generated based on matching one or more words or terms that are designated as a query. Results such as documents are returned when they contain a word or term that matches all or a portion of one or more
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 keywords that were submitted to the search engine as the query. Some keyword search engines additionally support the use of modifiers, operators, or a control language that specifies how the keywords should be combined when performing a search. For example, a query might specify a date filter to be 5 used to filter the returned results. In many traditional keyword search engines, the results are returned ordered, based on the number of matches found within the data. For example, a keyword search against Internet websites typically returns a list of sites that contain one or more of the submitted keywords, with the sites with the most matches appearing at the top of the list. Accuracy of 10 search results in these systems is thus presumed to be associated with frequency of occurrence.
One drawback to traditional keyword search engines is that they do not return data that fails to match the submitted keywords, even though the data may be relevant. For example, if a user is searching for information on 15 what products a particular country imports, data that refers to the country as a “customer” instead of using the term “import” would be missed if the submitted query specifies “import” as one of the keywords, but doesn’t specify the term “customer.” For example, a sentence such as “Argentina has been the main customer for Bolivia’s natural gas” would be missed, because no forms of the 20 word “import” are present in the sentence. Ideally, a user would be able to submit a query and receive back a set of results that were accurate based on the meaning of the query - not just on the specific keywords used in submitting in the query.
Natural language parsing provides technology that attempts to 25 understand and identify the syntactical structure of a language. Natural language parsers (“NLPs”) have been used to identify the parts of speech of each term in a submitted sentence to support the use of sentences as natural language queries against data. However, systems that have used NLPs to parse and process queries against data, even when the data is highly 30 structured, suffer from severe performance problems and extensive storage requirements.
Natural language parsing techniques have also been applied to extracting and indexing information from large corpora of documents. By their nature, such systems are incredibly inefficient in that they require excessive 35 storage and intensive computer processing power. The ultimate challenge with such systems has been to find solutions to reduce these inefficiencies in order to create viable consumer products. Several systems have taken an approach
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 to reducing inefficiencies by subsetting the amount of information that is extracted and subsequently retained as structured data (that is only extracting a portion of the available information). For example, NLPs have been used with Information Extraction engines that extract particular information from 5 documents that follow predetermined grammar rules or when a predefined term or rule is recognized, hoping to capture and provide a structured view of potentially relevant information for the kind of searches that are expected on that particular corpus. Such systems typically identify text sentences in a document that follow a particular part-of-speech pattern or other patterns 10 inherent in the document domain, such as “trigger terms that are expected to appear when particular types of events are present. The trigger terms serve as “triggers” for detecting such events. Other systems may use other formulations for specified patterns to be recognized in the data set, such as predefined sets of events or other types of descriptions of events or relationships based upon 15 predefined rules, templates, etc. that identify the information to be extracted.
However, these techniques may fall short of being able to produce meaningful results when the documents do not follow the specified patterns or when the rules or templates are difficult to generate. The probability of a sentence falling into a class of predefined sentence templates or the probability of a phrase 20 occurring literally is sometimes too low to produce the desired level of recall.
Failure to account for semantic and syntactic variations across a data set, especially heterogeneous data sets, has led to inconsistent results in some situations.
BRIEF SUMMARY OF THE INVENTION
Embodiments of the present invention provide enhanced methods and systems for syntactically indexing and searching data sets to achieve more accurate search results with greater flexibility and efficiency than previously available. Techniques of the present invention provide enhanced indexing techniques that extend the use of traditional keyword searching techniques to 30 relationship and event searching of data sets. In summary, the syntactic and/or semantic information that is gleaned from an enhanced natural language parsing process is stored in an enhanced document index, for example, a termclause matrix, that is amenable to processing by the pattern (string) matching capabilities of keyword search engines. Traditional keyword search engines, 35 including existing or even off-the-shelf search engines, can be utilized to discover information by pattern (or string) matching the terms of a relationship
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 query, which are associated with syntactic and semantic information, against the syntactically and/or semantically annotated terms of sentence clauses (of documents) that are stored in the enhanced document index. In this manner, the relationship information of an entire corpus can be searched using a 5 keyword search engine without needing to limit a priori the types or number of relationships that are stored.
Example embodiments of the present invention provide an enhanced Syntactic Query Engine (“SQE) that parses, indexes, and stores a data set, as well as performs syntactic searching in response to queries 10 subsequently submitted against the data set. In one embodiment, the SQE includes, among other components, a data set repository and an Enhanced Natural Language Parser (“ENLP”). The ENLP parses each object in the data set and transforms it into a canonical form that can be searched efficiently using techniques of the present invention. To perform this transformation, the ENLP 15 determines the syntactic structure of the data by parsing (or decomposing) each data object into syntactic units, determines the grammatical roles and relationships of the syntactic units, associates recognized entity types and/or ontology paths if configured to do so, and represents these relationships in a normalized form. The normalized data are then stored and/or indexed as 20 appropriate in an enhanced document index.
In one aspect, a corpus of documents is prepared for electronic searching by parsing each sentence into syntactic elements, normalizing the parsed structure to a plurality of tagged terms, each of which indicate an association between the term and a type of tag, and then transforming each 25 sentence into a data structure that treats the tagged terms as additional terms of the sentence to be searched by a keyword search engine. In some embodiments, the tags include a grammatical role tag, a part-of-speech tag, an entity tag, an ontology path specification, or an action attribute. Other tags that indicate syntactic and semantic annotations are also supported. In some 30 embodiments, linguistic normalization is performed to transform the sentence.
In another aspect, the SQE supports a syntax and a grammar for specifying relationship searches that can be carried out using keyword search engines. In one embodiment, the syntax supports a base component that specifies a syntactic search, a prepositional constraint component, a keyword 35 (e.g., a document level keyword) constraint component, and a meta-data constraint component. One or more of the components may be optional. In
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 another embodiment, the components are combined using directional operators that identify which query term has a desired grammatical role.
In yet another aspect, the SQE receives a query that specifies a relationship query using a term, tag type, or tag value. The SQE transforms the query into a set of Boolean expressions that are executed by a keyword search engine against the data structure that has been enhanced to include syntactic and/or semantic annotations. Indicators to matching objects, such as clause, sentences, or documents are returned. In one embodiment, the data structure comprises a term-clause index, a sentence index, and a document index.
In another aspect, the SQE performs corpus ingestion and executes queries using parallel processing. According to one embodiment, each query is performed in parallel on a plurality of partition indexes, which each include one or more portions of the entire enhanced document index.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows a relationship query and the results returned by an example embodiment of the InFact® 2.5 search engine.
Figure 2 is an example block diagram that conceptually represents a term-clause matrix that stores terms and enhanced indexing information for syntactic searching.
Figure 3 is an example block diagram that conceptually represents a traditional term-document index.
Figure 4 is an example block diagram of an example Syntactic Query Engine.
Figure 5 is an overview of the steps performed by a Syntactic Query Engine to process data sets and relationship queries.
Figures 6A-6G are example screen displays that illustrate the general capabilities of the example user interface and the types of queries that can be executed by an example Syntactic Query Engine.
Figures 7A-7F are example display screens of the progression of an example RQL query submitted to a Syntactic Query Engine.
Figures 8A-8F are example screen displays of an interface associated with browsing ontology paths, viewing corpus metadata, and finding synonyms.
Figure 9 is an example screen display of an interface associated with setting preferences for constraining relationship searches.
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
Figure 10 is an example screen display of an interface associated with displaying SQE query history.
Figures 11A-11F are example screen displays from an alternate graphical based interface for displaying and discovering genetic relationships.
Figure 12 is a conceptual block diagram of the components of an example embodiment of a Syntactic Query Engine.
Figure 13 is a block diagram of the components of an Enhanced Natural Language Parser of an example embodiment of a Syntactic Query Engine.
Figure 14 is a block diagram of the processing performed by an example Enhanced Natural Language Parser.
Figure 15 is a block diagram illustrating a graphical representation of an example syntactic structure generated by the natural language parser component of an Enhanced Natural Language Parser.
Figure 16 is a table that conceptually illustrates normalized data that has been annotated with syntactic and semantic tags by the postprocessor component of an Enhanced Natural Language Parser.
Figure 17 is an example block diagram of data set processing performed by a Syntactic Query Engine.
Figure 18 is a block diagram of query processing performed by an
Syntactic Query Engine.
Figure 19 is an example flow diagram of relationship query processing steps performed by an example Query Processor of Syntactic Query Engine.
Figure 20 is an example block diagram of a general purpose computer system for practicing embodiments of a Syntactic Query Engine.
Figure 21 is an example block diagram of a distributed architecture for practicing embodiments of a Syntactic Query Engine.
Figure 22 is a block diagram overview of parallel processing 30 architecture that supports indexing a corpus of documents.
Figure 23 is a block diagram overview of parallel processing architecture that supports relationship queries.
Figure 24 is an example block diagram that shows parallel searching of an enhanced document index.
Figure 25 is an example block diagram of an architecture of the partition indexes that supports incremental updates and data redundancy.
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
Figure 26 is an example conceptual diagram of the transformation of a relationship search into component portions that are executed using a parallel architecture.
Figure 27 is an example flow diagram of the steps performed by a 5 build_file routine within the Data Set Preprocessor component of a Syntactic Query Engine.
Figure 28 illustrates an example format of a tagged file built by the build _file routine of the Data Set Preprocessor component of a Syntactic Query Engine.
Figure 29 is an example flow diagram of the steps performed by the dissect_file routine of the Data Set Preprocessor component of a Syntactic Query Engine.
Figure 30 is an example conceptual block diagram of a sentence that has been indexed and stored in a term-clause index of a Syntactic Query 15 Engine.
Figure 31 is an example conceptual block diagram of sample contents of a document index of a Syntactic Query Engine.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
DETAILED DESCRIPTION OF THE INVENTION
It is often desirable to search large sets of unstructured data, such as collections of millions of documents, only some of which may pertain to the information being sought. Traditional search engines approach such data 5 mining typically by offering interactive searches that match the data to one or more keywords (terms) using classical pattern matching or string matching techniques. At the other extreme, information extraction engines typically approach the unstructured data mining problem by extracting subsets of the data, based upon formulations of predefined rules, and then converting the 10 extracted data into structured data that can be more easily searched. Typically, the extracted structured data is stored in a relational database management system and accessed by database languages and tools. Other techniques, such as those offered by Insightful Corporation’s InFact® products, offer greater accuracy and truer information discovery tools, because they employ 15 generalized syntactic indexing with the ability to interactively search for relationships and events in the data, including latent relationships, across the entire data set and not just upon predetermined extracted data that follows particular syntactic patterns. lnFact®’s syntactic indexing and relationship searching uses natural language parsing techniques to grammatically analyze 20 sentences to attempt to understand the meaning of sentences and then applies queries in a manner that takes into account the grammatical information to locate relationships in the data that correspond to the query. Some of these embodiments support a natural language query interface, which parses natural language queries in much the same manner as the underlying data, in addition 25 to a streamlined relationship and event searching interface that focuses on retrieving information associated with particular grammatical roles. Other interfaces for relationship and event searching can be generated using an application programming interface (“API”). Insightful’s syntactic searching techniques are described in detail in U.S. Provisional Application Nos. 30 60/312,385 and 60/620,550, and U.S. Application Nos. 10/007,299, and 10/371,399. The techniques described in these patent applications have typically employed the use of complex data bases with a proprietary search technology for performing relationship and event searching.
Embodiments of the present invention provide enhanced methods 35 and systems for syntactically indexing and searching data sets to achieve more accurate search results with greater flexibility and efficiency than previously
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 available. Techniques of the present invention provide enhanced indexing techniques that extend the use of traditional keyword search engines to relationship and event searching of data sets. In summary, the syntactic and semantic information that is gleaned from an enhanced natural language 5 parsing process is stored in an enhanced document index, for example, a form of a term-clause matrix, that is amenable to processing by the more efficient pattern (string) matching capabilities of keyword search engines. Thus, traditional keyword search engines, including existing or even off-the-shelf search engines, can be utilized to discover information by pattern (or string) 10 matching the terms of a relationship query, which are inherently associated with syntactic and semantic information, against the syntactically and semantically annotated terms of sentence clauses (of documents) stored in the enhanced document index. As another benefit, the additional capabilities of such search engines, such as the availability of Boolean operations, and other filtering tools, 15 are automatically extended to relationship and event searching.
Relationship and event searching, also described as “syntactic searching” in U.S. Application Nos. 60/312,385, 10/007,299, 10/371,399, and 60/620,550, supports the ability to search a corpus of documents (or other objects) for places, people, or things as they relate to other places, people, or 20 things, for example, through actions or events. Such relationships can be inferred or derived from the corpus based upon one or more “roles” that each term occupies in a clause, sentence, paragraph, document, or corpus. These roles may comprise grammatical roles, such as “subject,” “object,” “modifier,” or “verb;” or, these roles may comprise other types of syntactic or semantic 25 information such as an entity type of “location,” “date,” “organization,” or “person,” etc. The role of a specified term or phrase (e.g., subject, object, verb, place, person, thing, action, or event, etc.) is used as an approximation of the meaning and significance of that term in the context of the sentence (or clause). In this way, a relationship or syntactic search engine attempts to “understand” 30 the sentence when a query is applied to the corpus by determining whether the terms in sentences of the corpus are associated with the roles specified in the corresponding query. For example, if a user of the search engine desires to determine all events in which “Hillary Clinton” participated in as a speaker, then the user might specify a relationship query that instructs a search engine to 35 locate all sentences/documents in which “Hillary Clinton” is a source entity and “speak” is an action. In response, the syntactic search engine will determine and return indicators to all sentences/clauses in which “Hillary Clinton” has the
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 role of a subject and with some form of the word “speak” (e.g., speaking, spoke) or a similar word in the role of a verb.
For example, Figure 1 shows a relationship query and the results returned by an example embodiment of the InFact® 2.5 search engine. In the 5 InFact® 2.5 product, a user of the search engine can specify a search for a known “source” or “target” entity (or both) looking for actions or events that involve that entity. The user can also specify a second entity and look for actions or events that involve both the first and second entity. The user can specify a particular action or may specify a type of action or any action. An 10 entity specified as a source entity typically refers to the corresponding term’s role as a subject (or subject-related modifier) of a clause or sentence, whereas an entity specified as a target typically refers to the corresponding term’s role as an object (or object-related modifier) of a clause or sentence. An action or event typically refers to a term’s role as a verb, related verb, or verb-related 15 modifier. Moreover, instead of a specific entity, the user can specify an entity type, which refers to a tag such as an item in a classification scheme such as a taxonomy. A user can also specify a known action or action type and look for one or more entities, or entity types that are related through the specified action or action type. Many other types and combinations of relationship searches are 20 possible and supported as described in the above-mentioned co-pending patent applications.
In the example user interface shown in Figure 1, a value for the first known entity is specified in entity field 102, a value for a known action is specified in action field 105, and a value for the type of the second entity is 25 specified in entity type field 107. The source field 103 and target field 104 indicate whether the first known entity is to be a source of the action or a recipient (target) of the action. The particular query displayed instructs the search engine to look for sentence clauses that describe any person that drives a jeep when the Find Relationships button 106 is pressed. The results are 30 returned in result field 110, which is shown sorted by similarity to the query.
Example embodiments of the present invention provide an enhanced Syntactic Query Engine (“SQE”) that parses, indexes, and stores a data set, as well as performs syntactic searching in response to queries subsequently submitted against the data set. In one embodiment, the SQE 35 includes, among other components, a data set repository and an Enhanced Natural Language Parser (“ENLP”). The ENLP parses each object in the data set (typically a document) and transforms it into a canonical form that can be
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 searched efficiently using techniques of the present invention. To perform this transformation, the ENLP determines the syntactic structure of the data by parsing (or decomposing) each data object into syntactic units, determines the grammatical roles and relationships of the syntactic units, associates recognized entity types if configured to do so, and represents these relationships in a normalized form. The normalized data are then stored and/or indexed as appropriate.
In one set of example embodiments, which were described in U.S. Application Nos. 60/312,385, 60/620,550 10/007,299, and 10/371,399, normalized data structures are generated by an enhanced natural language parser and are indexed and stored as relational data base tables. The SQE stores the grammatical relationships that exist between the syntactic units and uses a set of heuristics to determine which additional relationships to encode in the normalized data structure in order to yield greater accuracy in results subsequently returned in response to queries. For example, the SQE may generate relationship representations in the normalized data structure that correspond to more “standard” ways to relate terms, such as the relationship represented by the tuple (subject, verb, object), but may also generate relationships that treat terms with corresponding certain grammatical roles in a non-standard fashion, such as generating a relationship representation that treats a term that is a modifier of the subject as the subject of the sentence itself. This allows the SQE to search for a user specified entity (as a subject) even in sentences that contain the specified entity as a modifier instead of as the subject of the sentence. For example, the clause:
“the young boy bought a dog” may be parsed and assigned the following grammatical roles:
<td> boy =</td><td> subject</td>
<td> young -</td><td> modifier</td>
<td> bought =</td><td> verb</td>
<td> dog</td><td> object</td>
Relationship representations that correspond to (boy, bought, dog), as well as a relationship representations that corresponds to (young, bought, dog) may be generated and stored by the SQE. Once the relationship representations are generated, they are stored in a variety of as relational data base tables to facilitate retrieval.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
In the example embodiments of the SQE that are described herein, the normalized data, including the grammatical role and other tag information that can be used to discover relationships, are integrated into enhanced versions of document indexes that are typically used by traditional 5 keyword search engines to index the terms of each document in a corpus. A traditional keyword search engine can then search the enhanced indexing information that is stored in these document indexes for matching relationships in the same way the search engine searches for keywords. That is, the search engine looks for pattern/string matches to terms associated with the desired tag 10 information as specified (explicitly or implicitly) in a query. In one such example system, the SQE stores the relationship information that is extracted during the parsing and data object transformation process (the normalized data) in an annotated “term-clause matrix,” which stores the terms of each clause along with “tagged terms, which include the syntactic and semantic information that 15 embodies relationship information. Other example embodiments may provide different levels of organizing the enhanced indexing information, such as an annotated “term-sentence matrix” or an annotated “term-document matrix.” One skilled in the art will recognize that other variations of storage organization are possible, including that each matrix may be comprised of a plurality of other 20 data structures or matrices.
Figure 2 is an example block diagram that conceptually represents a term-clause matrix that stores terms and enhanced indexing information for syntactic searching. The term-clause matrix 201 is an inverted index of tagged terms. That is, the matrix is indexed by the terms of each 25 clause of each sentence of each document and indicates which clauses contain which terms. The diagram is conceptual in that it doesn’t imply that what is represented is stored in the SQE precisely in that matter. Different implementations may store the term separate from its annotations and may be stored as a plurality of data structures that together comprise the term-clause 30 index. For example, terms that correspond to a particular grammatical role, for example, a “subject” may be stored separately than terms that correspond to a different grammatical role, for example an “object.” For example, in Figure 2, each row 202 is indexed by a (tagged) term, e.g., “,../COUNTRY/China_subj” 206, and each column, e.g., columns 203, 204, and 205, represents a clause 35 and contains a value that represents the number of times (e.g., a word count) that the clause contains the indexed term. The diagram is conceptual in that it doesn’t imply that what is represented is stored in the SQE precisely in that
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 matter. Different implementations may store the term separate from its annotations and may be stored as a plurality of data structures that together comprise the term-clause index. For example, terms that correspond to a particular grammatical role, for example, a “subject may be stored separately than terms that correspond to a different grammatical role, for example an “object.”
For illustrative purposes, Figure 2 shows a partial term-clause index that corresponds to the text of a given Document D1 that includes:
The president of France visited the capital of China in 1948. From 1949 to 1960 China was in alliance with the Soviet Union, although this relationship was already under severe strain in the late 1950s.” From 1972 China aligned itself with the US against perceived Soviet expansionism.
The portion shown corresponds to the second and third sentences of the text, which together contain three clauses. (The indexing of the first clause is not shown.) The rows 202 each contain a term from one of these clauses, tag information that has been associated with the term during the data object parsing and transformation phase, and an indication of whether the clause contains the term in the role that is indicated by the associated tag information. That is, the terms are annotated with syntactic (e.g., grammatical role) and semantic (e.g., entity/ontology tag) information. For example, the tagged term “(ontology root node)/ENTITY/LOCATION/COUNTRY/China_subj” 206 consists of the term from the associated text “China,” a grammatical role tag “subj” that indicates use of the term “China” as a subject, and an ontology path to the an entity tag “COUNTRY,” that indicates that the term “China” is known to have an entity type of “COUNTRY” as determined from an ontology, database, dictionary, or similar structure associated with the SQE. The string “(ontology root node)” is a placeholder in the figure for the real indicator (e.g., name) of the root node of whatever ontology is being used. Also, depending upon the particular ontology being used, there may be a series of different nodes that contain the type “COUNTRY” (other than “ENTITY/LOCATION”) and the SQE is programmed to take multiple nodes into account, when ingesting the documents and when searching for terms/tags in a relationship query that may be ambiguously expressed. The tagged terms
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 “(ontology root node)/ENTITY/LOCATION/COUNTRY/Soviet Union_obj”
207 and “(ontology root node)/ENTITY/LOCATION/COUNTRY/Soviet Union_prep”
208 associated with the same document term Soviet Union” indicate that the term is present in the document in two different grammatical roles - the first clause contains the term as an object and the third clause contains the term as a complement of a prepositional phrase. Note also that several linguistic normalizations have been performed during the data object transformation process to the normalized data. For example, the tense of the verb “was” has been changed to “be” (passive to active) and the verb phrase “was in alliance” has been changed to the verb “ally” (verbalization).
Several additional aspects are also notable with respect to the conceptual term-clause index illustrated in Figure 2. The index illustrates the use of custom specified portions of an ontology. In this case, in order to add verb sense information for a set of verbs (/.e., group a set of verbs together), a “VERB” node that indicates different types of verb sense information has been added to the ontology. Additional ontology information could be configured by a system administrator, or, alternatively, a user interface for dynamically modifying the ontology could be provided. In the particular portion of the ontology shown, two verb senses “VERB_CHANGE” and “VERB_STATIVE” are present. When the SQE ingests a verb that has not been categorized by the ontology, the verb is simply added to the index without a semantic annotation, such as the verb “ally,” which has been indexed as “ally_verb. The same is true for other terms that correspond to other parts of speech that have not been classified (yet) by the ontology. For example, the nouns “relationship,” “strain” and “expansionism” have been indexed with syntactic annotations for their respective grammatical roles, but do not have any associated semantic (ontology path) annotations. One skilled in the art will recognize that a variety of combinations could be represented in the term-clause index. Also note that the concepts of wildcard interpretation can be implemented a variety of ways, including explicitly putting “generic” nodes that correspond to particular types of wildcards (e.g., entity wildcards, physical_object wildcards, verb wildcards, etc.) depending upon the nodes in the ontology.
<img file="CA2633458C_D0001.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
The integration of the enhanced indexing information into traditional search engine type document indexes (for example, an inverted index) is what supports the use a standard keyword search techniques to find a new type of document information - that is, relationship information - easily and 5 quickly. An end user, such as a researcher, can pose simple Boolean style queries to the SQE yielding results that are based upon an approximation of the meaning of the indexed data objects. Because traditional search engines do not pay attention to the actual contents of the indexed information (they just perform string matching or pattern matching operations without regard to the 10 meaning of the content), the SQE can store all kinds of relationship information in the indexed information and use a keyword search engine to quickly retrieve it.
The SQE processes each query by translating or transforming the query into component keyword searches that can be performed against the 15 indexed data set using, for example, an “off-the-shelf’ or existing keyword search engine. These searches are referred to herein for ease of description as keyword searches, keyword-style searches, or pattern matching or string matching searches, to emphasize their ability to match relationship information the same way search terms can be string- or pattern-matched against a data 20 set using a keyword search engine. The SQE then combines the results from each keyword-style search into a cohesive whole that is presented to the user.
For example, suppose a researcher is attempting to discover something about China’s relationships. In particular, suppose that the researcher would like to know China’s attitude toward other countries. The 25 researcher accordingly enters a relationship query to the SQE, for example, China_subj AND *_verbAND COUNTRY_obj (query 209) which instructs the SQE to find all clauses (sentences and/or documents) in which China is a source entity (used as a subject) along with any action (any verb) and a second entity of entity type “COUNTRY is the recipient 30 of the action. Note that the syntax of this query is a conceptual example of a specification of a relationship query using the SQE of the present invention. The SQE will automatically determine that for this particular ontology the node “COUNTRY is part of a full ontology pathname of “(ontology root node)/ENTITY/LOCATION/COUNTRY. Many different language specifications 35 and user interfaces can be used to effectively communicate this same instruction to the SQE, and one skilled in the art will recognize that other alternatives are contemplated for use with the SQE. (The query specification
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 matches the way the information is stored in the term-clause and other indexes.) Using the example term-clause index shown in Figure 2, the SQE would respond with at least indicators to the second and third sentences of the Document D1 as they both contain clauses with the term “China” as the subject 5 Moreover, the results returned indicate several different relationships, allowing the researcher quickly to discover a lot about China’s foreign policy. For example, the following relationships would be quickly discovered:
China (is) ally of the Soviet Union China aligns itself with the United States which upon first glance may appear contradictory. By further drilling down to look at the returned clauses or sentences, the researcher can quickly discover that China’s alliance with the Soviet Union ended in 1960.
In contrast to the term-clause index, the document index of a traditional keyword search engine system simply stores each term that is 15 present in the document, along with an indication of the number of times the term appears in each document. Figure 3 is an example block diagram that conceptually represents a traditional term-document index. The term document index 301 includes rows indexed by the terms 302 of the document. Each column, for example columns 303-305, indicates the number of times the 20 indexed term (in each row) appears in the document. In order to pose a query to find out the same information against this document index, the researcher needs to be much smarter about the content of the documents being searched, or, alternatively, willing to end up with a lot of potentially random information to search through. For example, the researcher could search for documents that 25 contain “China or documents that contain “China” and a list of alternative countries to look for. In any case, because much of the information concerning China’s role in each document is lost when stored in this type of traditional document index, the results provided would tend to be less informative.
Figure 4 is an example block diagram of an example Syntactic 30 Query Engine. A document administrator 402 adds and removes data sets (for example, sets of documents), which are indexed and stored within a data set repository 404 of the SQE 401. When used with keyword style searching techniques, the data set repository 404 stores an enhanced document index as described above. In the example shown in Figure 4, a subscriber 403 to a 35 document service submits queries to the SQE 401, typically using a visual interface. The queries are then processed by the SQE 401 against the data sets indexed in the data set repository 404. The query results are then returned
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 to the subscriber 403. In this example, the SQE 401 is shown implemented as part of a subscription document service, although one skilled in the art will recognize that the SQE may be made available in many other forms, including as a separate application/tool, integrated into other software or hardware, for 5 example, cell phones, personal digital assistants (“PDA”), or handheld computers, or associated with other types of existing or yet to be defined services. Additionally, although the example embodiment is shown and described as processing data sets and queries that are in the English language, one skilled in the art will recognize that the SQE can be implemented to 10 process data sets and queries in any language, or any combination of languages.
Figure 5 is an overview of the steps performed by a Syntactic Query Engine to process data sets and relationship queries. Steps 501-505 address the indexing (also known as the ingestion) process, and steps 506-509 15 address the query process. Note that although much of the discussion herein focuses on ingestion of an entire data set prior to searching, the SQE also handles incremental document ingestion and is described below with respect to an example embodiment of the SQE architecture. Also, the configuration process that permits an administrator to set up ontologies, dictionaries, sizing 20 preferences for indexes and other configuration and processing parameters is not shown.
Specifically, in step 501, the SQE receives a data set, for example, a set of documents. The documents may be received electronically, scanned in, or communicated by any reasonable means. In step 502, the SQE 25 preprocesses the data set to ensure a consistent data format. In step 503, the SQE parses the data set, identifying entity type tags and the syntax and grammatical roles of terms within the data set as appropriate to the configured parsing level. For the purpose of extending keyword searching to syntactically and semantically annotated data, parsing sufficient to determine at least the 30 subject, object, and verb of each clause is desirable to perform syntactic searches in relationship queries. However, one skilled in the art will recognize that subsets of the capabilities of the SQE could be provided in trade for shorter corpus ingestion times if full syntactic searching is not desired. For example, as described in U.S. Patent Publication No. 2003/0233224 (U.S. Patent Application 35 No. 10/371,399), the parsing level may be configured using a range of parsing levels, from “deep” parsing to “shallow” parsing. Deep parsing decomposes a data object into syntactic and grammatical units using sophisticated syntactic
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 and grammatical roles and heuristics. Shallow parsing decomposes a data object to recognize “attributes” of a portion or all of a data object (e.g., a sentence, clause, etc), such as entity types specified by a default or custom ontology associated with the corpus or the SQE. In step 504, the SQE 5 transforms the each parsed clause (or sentence) into normalized data by applying various linguistic normalizations and transformations to map complex linguistic constructs into equivalent structures. Linguistic normalizations include lexical normalizations (e.g., synonyms), syntactic normalizations (e.g., verbalization), and semantic normalizations (e.g., reducing different sentence 10 styles to a standard form). These heuristics and rules are applied when ingesting documents and are important to determining how well the stored sentences eventually will be “understood” by the system.
For example, the SQE may apply one or more of transformational grammar rules, lexical normalizations (e.g., normalizing synonyms, acronyms, 15 hypernyms, and hyponyms to canonical or standard terms), semantic modeling of actions (e.g., verb similarity), anaphora resolution (e.g., noun and pronoun coreferencing resolution) and multivariate statistical modeling of semantic attributes. Multivariate statistical modeling of semantic attributes refers to applying the techniques used to determine similar verbs to other parts of 20 speech, such as nouns and adjectives. These techniques as applied to verbs include such determinations as the frequency weight of the primary sense of the verb; the set of troponyms associated to this verb sense (other ways to perform this verb, e.g., “sweep,” “carry, and “prevail” are all troponyms of the verb “win” because they express ways to win); the set of hypernyms associated 25 to this verb sense (more generic classes of which this verb is a part, e.g., “win” is one way to “gain, “get,” or “acquire”); and the set of entailments associated with this verb sense (other verbs that must be done before this verb sense can be done, e.g., “winning” entails “competing,” “trying,” “attempting, “contending, etc.). The ability to transform a term to alternatives so that similar actions and 30 entities will also be searched for provides one important way to increase the ability of the SQE to “understand a search query and retrieve more relevant results. Many transformational grammar rules also can be incorporated into the SQE. The transformational grammar rules may take many forms, including, for example, noun, pronoun, adjective, and adverb verbalization transformations. 35 Verbalization rules convert the designated part of speech to a verb. For example, the clause “X is a producer of Tungsten can be simplified to the clause “X produces Tungsten. Another example transformation rule is to
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 simplify a clause by changing it from passive to active voice. For example, the clause “the chart was created by Y” can be transformed to the clause Ύ created the chart.”
In step 505, the SQE stores the parsed and transformed sentences in a data set repository. As described above, when the SQE is used with a keyword search engine, the normalized data is stored in (used to populate) an enhanced document index such as the term-clause matrix shown in Figure 2. After storing the data set, the SQE can process relationship queries against the data set. In step 506, the SQE receives a relationship query, for 10 example, through a user interface such as that shown in Figures 6A-6G below.
Alternatively, one skilled in the art will recognize that the query may be transmitted through a function call, batch process, or translated from some other type of interface. In step 507, if necessary (depending upon the interface) the SQE preprocesses the received relation query and transforms it into the 15 relationship query language understood by the system. For example, if natural language queries are supported, then the natural language query is parsed into syntactic units with grammatical roles, and the relevant entity and action terms are transformed into the query language formulations understood by the SQE. In step 508, the SQE executes the received query against the data set stored in 20 the data set repository. The SQE transforms the query internally into subqueries as appropriate to the organization of the data in the indexes and executes a traditional keyword search engine (or its own version of keyword style searching) to process the query. In step 509, the SQE returns the results of the relationship query, for example, by displaying them through a user 25 interface such as the summary information shown in Figure 6B.
One skilled in the art will recognize that, although the techniques are described primarily with reference to text-based languages and collections of documents, similar techniques may be applied to any collection of terms, phrases, units, images, or other objects that can be represented in syntactical 30 units and that follow a grammar that defines and assigns roles to the syntactical units, even if the data object may not traditionally be thought of in that fashion. Examples include written or spoken languages, for example, English or French, computer programming languages, graphical images, bitmaps, music, video data, and audio data. Sentences that comprise multiple words are only one 35 example of a phrase or collection of terms that can be analyzed, indexed, and searched using the techniques described herein. One skilled in the art will recognize how to modify the structures and program flow exemplified herein to
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 account for differences in types of data being indexed and retrieved. Essentially, the concepts and techniques described are applicable to any environment where the keyword style searching is contemplated.
Also, although certain terms are used primarily herein, one skilled in the art will recognize that other terms could be used interchangeably to yield equivalent embodiments and examples. In addition, terms may have alternate spellings which may or may not be explicitly mentioned, and one skilled in the art will recognize that all such variations of terms are intended to be included. Also, when referring to various data, aspects, or elements in the alternative, the 10 term “or” is used in its plain English sense, unless otherwise specified, to mean one or more of the listed alternatives. For example, the terms “matrix” and “index” are used interchangeably and are not meant to imply a particular storage implementation. Also, a document may be a single term, clause, sentence, or paragraph or a collection of one or more such objects.
For example, the term query is used herein to include any form of specifying a desired relationship query, including a specialized syntax for entering query information, a menu driven interface, a graphical interface, a natural language query, batch query processing, or any other input (including API function calls) that can be transformed into a Boolean expression of terms 20 and annotated terms. Annotated terms are terms associated with syntactic or semantic tag information, and are equivalently referred to as “tagged terms.” Semantic tags include, for example, indicators to a particular node or path in an ontology or other classification hierarchy. “Entity tags” are examples of one type of semantic tag that points, for example, to a type of ENTITY node in an 25 ontology. In addition, although the description is oriented towards parsing and maintaining information at the clause level, it is to be understood that the SQE is able to parse and maintain information in larger units, such as sentences, paragraphs, sections, chapters, documents, etc., and the routines and data structures are modified accordingly. Thus, for ease of description, the 30 techniques are described as they are applied to a term-clause matrix. One skilled in the art will recognize that these techniques can be equivalently applied to a term-sentence matrix and a term-document matrix.
In the following description, numerous specific details are set forth, such as data formats and code sequences, etc., in order to provide a 35 thorough understanding of the techniques of the methods and systems of the present invention. One skilled in the art will recognize, however, that the present invention also can be practiced without some of the specific details
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 described herein, or with other specific details, such as changes with respect to the ordering of the code flow.
The Syntactic Query Engine is useful in a multitude of scenarios that require indexing, storage, and/or searching of, especially large, data sets, because it yields results to queries that are more contextually accurate than other search engines. An extensive relationship query language (“RQL”) is supported by the SQE. The query language is designed to be used with any SQE implementation that is capable of retrieving relationship information from an indexed data set, regardless of whether the SQE uses a relational database 10 implementation with a proprietary search engine or an enhanced document index that supports a keyword search engine. However, some of the operators may be more easily implemented in one environment versus the other, or may not be available in certain situations. One skilled in the art will recognize that variants of the query language are easily incorporated and that other symbols 15 can be equivalently substituted for operators.
In general, the syntax for a relationship query specifies “entities and “actions” that are linked via a series of “operators” with one or more constraints such as document level filters.
Entity: An Entity is a noun or noun phrase in the search query or result. It can 20 be the source (initiator of an action), the target (receiver of an action), or the complement of a prepositional phrase. Entities can be multiple words. If they are quoted, the exact phrase is preferably matched by a phrase in a document being searched. Either double quotes or single quotes may be used; if double quotes are used, then synonyms of the 25 quoted expression will not be included in a search. If single quotes are used, synonyms of the quoted expression will be included. Synonyms are typically specified as properties of an ontology related to the corpus or in a dictionary.
Source: The initiator of an action is referred to as the source. For example, in the query
[Country] > threaten > USA, Country is the source. The query instructs a search for all countries that threaten the US, but not all countries that the US threatens.
Target: The receiver of an action is referred to as the target. For example, in the query
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
USA > investigates > [organization] organization is the target of the action. The query instructs a search for all political organizations that are the target of an investigation, but not those that are initiating an investigation.
Prepositional Complement: An action is often performed with a prepositional complement. For example, in the query
Maya > visit > grandmother PREP CONTAINS Tuesday
Tuesday is the prepositional complement of the sentence. The query instructs a search for only visits that happened on Tuesdays.
Action: All relationships are based on an action, or verb. For example, in the query
Maya > visit > grandmother visit is the action.
Operators: The following example operators are supported:
• Action directionality for events: <, >, <> (or alternatively <-, ->, <->) . Boolean: AND, OR, NOT. The default operation for omitted Boolean operators is OR. Booleans do not have to be uppercase.
• Prepositional constraint: PREP CONTAINS (upper or lowercase), or<sup>w</sup> • Document keyword constraint: DOCUMENT CONTAINS (upper or lowercase), or • Metadata constraint: METADATA CONTAINS (upper or lowercase), or • Wildcards (not within quotes): *, ? (single and multicharacter) • Offset indicators: ~
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 • Curly braces {} are used for indirect link searches, to search for entities that link other entities together • Brackets [ ] are used to denote types, either an OntologyPath, or, if used with a verb, an ActionType.
Parenthesis can be used to nest portions of the query.
The general format for a relationship query comprises four components:
Syntactic query <sup>Λ</sup> Prep constraints ; Document keyword constraints # Metadata constraints
The syntactic query component is specified in the format Source Entity > Action > Target Entity. However, it is not necessary to specify all three components, nor do the directional arrows need to point to the right. For example,
Bush < *
Bush < * < * > * > Bush are all correct specifications of the entity Bush” as he related to other entities through any action, and there is no difference between the first two or the last two. Although both actions and entities can be represented by a wildcard, the position of the wildcard in the query determines what it represents. Entities preferably do not point to each other directly.
In addition to the basic syntactic search component of the query, there are three optional components that can be added to filter results (constrain the search):
• any prepositional constraints, to filter results by information found in a prepositional phrase;
• any document keyword constraints, to restrict search to documents that have certain keyword(s); (this causes a basic keyword search) • any metadata constraints, to restrict search to documents tagged with specific metadata values or ranges or values.
These clauses can be expressed in either a long or abbreviated format. In the long format, the clauses are separated by the self-explanatory terms PREP CONTAINS, DOCUMENT CONTAINS and METADATA CONTAINS. For example, broken up into several lines for easier reading, the relationship query:
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Bush > visit > [Country] AND NOT China
PREP CONTAINS plane DOCUMENT CONTAINS foreign service OR diplomat
METADATA CONTAINS Date>04/2002 specifies a syntactic search for visit relationships between the entity Bush and any country except China. The relationship query is constrained by the preposition plane, meaning that the word plane must be included in a prepositional phrase within this relationship, indicating travel by plane. The query is further constrained by the document keywords/key phrases foreign service and diplomat, meaning that only relationships from documents containing these words should be returned. Finally, the search is constrained by a date range, and instructs the search engine to only search documents written after April 2002. (This assumes that date related metadata has been associated with the documents at time of data set ingestion.) Date and numeric metadata ranges are specified with =, <, and <=. Put together, this query searches specifically for diplomatic trips that Bush took by plane since April 2002 to foreign countries with the exception of China.
Note that there are two expressions designated in the document filter above: foreign service and diplomat. When a document contains a keyword in adjective form, e.g., diplomatic, the document is included in the search results responsive to a query that designated the noun form. The SQE may be configured to automatically extract the stem of the word and search for other forms. Document level queries are also allowed by specifying a keyword or phrase (even without a syntactic search component). For example:
germanyAND france AND england will cause the SQE to search for all documents containing these keywords.
Filter clauses (/.e., constraint components) can also be entered in a more abbreviated form, in which the terms PREP CONTAINS, DOCUMENT CONTAINS, and METADATA CONTAINS are replaced by a ’<sup>Λ</sup>’, and a character respectively, as in:
Syntactic query <sup>Λ</sup> Prep constraints ; Document keyword constraints # Metadata constraints
The example relationship query described above regarding diplomatic trips that Bush took by plane can be rewritten in abbreviated form as follows:
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
Bush > visit > [Country] AND NOT China <sup>Λ</sup> plane ; foreign service OR diplomat # Date>04/2002
Also note that multiple Metadata constraints can be used with complete Boolean expressions and that Boolean expressions can be nested. For 5 example, the query hamas > act >* METADATA CONTAINS Author-'Andrew
Jackson OR price=300 and the query england AND NOT (aerospace OR airways) >abandon > * describe valid relationship queries.
RQL formulated queries can also be embedded within a scripting language to provide an ability to execute batch relationship queries, functions having multiple queries, and control flow statements. For example, it may be desirable to encode a query to be executed at certain times each day against a 15 data set that is continually updated and incrementally ingested. One skilled in the art will recognize that many scripting languages could be defined to achieve control flow of multiple relationship queries, and that the scripting language could include conditional statements.Relationship queries formulated using RQL are submitted to the SQE for execution from a variety of interfaces. For 20 example, a web-based interface, similar to that provided by default with the InFact® products, can be used to submit relationship queries. In addition, relationship queries can be submitted using a natural language interface to the SQE, which parses the natural language query into syntactic units that can be translated into an RQL formulated query and then executed. Alternatively, the 25 SQE supports an API that allows the development of other code, such as other user interfaces, that can execute relationship queries by submitting RQL formulated query strings to the SQE. Figures 11A-11F described below exemplify one such interface that provides a more graphical use of relationship queries.
Figures 6A-6G, 7A-7F, and 8A-8F are example screen displays from an example embodiment of a user interface designed to provide relationship and event searching in accordance with the techniques of the present invention. These screen displays emphasize particular features of a query language that has been designed to take advantage of combining the 35 attributes of keyword style searching with syntactic searching. Additional
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 examples of this user interface, query language, and variants thereof are included in Appendices A and B.
Figures 6A-6G are example screen displays that illustrate the general capabilities of the example user interface and the types of queries that 5 can be executed by an example Syntactic Query Engine. Figure 6A is an example initial screen display of a web-based interface for entering a relationship query to the SQE. There are five basic components of this example interface. Pressing the Search tab 6A03 displays (or generates) the page used to enter queries. The user enters an RQL formulated query into free 10 text field 6A01. When ready, a search is initiated by pressing the Search button 6A02. Alternatively, users can enter RQL syntax using a “form” or template. The Show Query Generator link 6A08 navigates to this alternative interface to build an RQL formulated query. This interface is described further below with respect to Figure BF. Pressing the Corpus tab 604 displays a page used to 15 browse available ontologies, find out more information for a particular ontology path, browse available metadata, and find synonyms that are configured in the system. These capabilities are described further below with respect to Figures 8A-8F. Pressing the Preferences tab 6A05 displays a page used to set search preferences. These capabilities are described further below with respect to 20 Figure 9. Pressing the History tab 6A06 displays a page that shows a history of prior relationship searches. The history page is described further below with respect to Figure 10. Pressing the Help tab displays a web page(s) of tutorial information and assistance. An example help file is included as Appendix A.
Figure 6B is an example screen display of the format for 25 displaying results in response to a relationship query specified using the relationship query language. The query is entered in query input field 6B01, and in this case indicates a search for everything that China buys (“china > buy > *”). A summary of the results of the search is displayed in result area 6B00. Note that each “row”, for example row 6B02, represents a particular relationship 30 that is discovered in the corpus. Instances of this relationship may be actually located in more than one sentence or document. Thus, the Action field indicates a count of the number of times the particular relationship occurs in the data currently being displayed and summarized. For example, the first row 6B02 indicates that at least 2 instances of China buying (U.S.) wheat exist in 35 the corpus. In one embodiment, the data is “chunked prior to display. Thus, when used with chunked data, the number of instances of a particular event/relationship is valid only to what is being displayed. Other embodiments
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 that calculate the entire result prior to display may indicate the number of instances a relationship appears over the entire corpus.
Figure 6C is an example screen display of a more complex query that includes a Boolean operator and a document level filter. The query 5 specified in query input field 6C01 includes two Boolean operators in a Boolean expression, “suicide AND (attack OR bombing)” as part of the syntactic search specification and includes a document level filter. Specifically, the user has specified a relationship search that will assist the user to discover all suicide attacks that have killed people in Israel. The results are shown summarized in 10 result area 6C00. Clicking on any one of the actions, for example, “kill [5]” labeled as action 6C02, will cause the SQE to display the five instances in the clauses/sentences/documents in which the corresponding relationship is found.
Figure 6D is an example screen display of a link search using an entity type. The query specified in query input field 6D01 instructs the SQE to 15 search for all people or named persons that link Bush and Thatcher. The results displayed in result area 6D00 show each 3<sup>rd</sup> person that provides a link between Bush and Thatcher. That is, the 3<sup>rd</sup> person has some relationship to Bush and has some (possibly separate) relationship to Thatcher. To discover the details of these relationships, the user navigates to one of the displayed 20 links such as link 6D02 which indicates that Ronald Reagan is the person in common in the indicated (indirect) relationship.
Figure 6E is an example screen display of a search that specifies an entity type and an action type. The query specified in query input field 6E01 instructs the SQE to search for all events in which the Pope took some action 25 involving motion (e.g., driving) to some location. As can be seen in the results displayed in result area 6E00, a variety of actions, sorted by similarity using the sort button 6E02, are displayed. Note also, that a nested search button 6E03 can be pressed to cause the next query to be applied to the results from the prior query. This supports an iterative discovery process where a user 30 progressively narrows a search based upon relationship information received at each search level.
Figure 6F is an example screen display of a search that specifies ontology paths in conjunction with a prepositional constraint. The query specified in query input field 6F01 instructs the SQE to search for all corporate 35 acquisitions, specifically as they relate to the amount of money spent. The prepositional constraint specified by “<sup>Λ</sup> money indicates that some amount of money needs be present in a prepositional phrase of each matching clause.
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
For example, the results shown in result area 6F00 show a first relationship with a target entity 6F02 in which a sawmill was bought for $2.7 million. Similarly, the results show a second relationship where the preposition phrase that included the money is associated with the action “buy” labeled 6F03.
The ontology path specified in the query, “[organization/name]” is defined by an ontology associated with the system. Ontologies are typically associated with a corpus at system configuration time, although one skilled in the art will recognize that they can be dynamically changed and the portions of the corpus that are affected by the change, re-ingested. An ontology can be a 10 default ontology associated with the SQE or a custom ontology generated for a specific corpus. Ontology paths are enclosed in brackets, as in [person] or [country]. If a bracketed term is found in a relationship query, the SQE searches the ontology[ies] for all paths matching the term. If there are multiple matches, all matches are included in the search and results are combined. For 15 example, in a search query containing the type [person], the SQE will substitute with [IF/Entity/Person] to indicate use of the default ontology provided with the system. If another path exists in a custom ontology such as MyOntology/People/Person, this path is also included in the query and the results are combined. Ontology paths can be browsed through an interface 20 provided under the “Corpus” tab, as described further below with respect to Figures 8A-8F.
Figure 6G is an example screen display of the query generator interface. The form displayed in display area 6G00 is provided to assist a user with specifying the components of a relationship query without needing intimate 25 knowledge of the RQL syntax. The fields are labeled accordingly to explain what the user can enter to create a proper RQL formulated query.
Figures 7A-7F are example display screens of the progression of an example RQL query submitted to a Syntactic Query Engine. In Figure 7A, the user submits a query “s6 kinase <> * <> in query input field 7A01. When 30 the user presses the Search button 7A02, the SQE displays results in chunked pages of relationship summary information as shown in Figure 7B. Note that the results shown in Figure 7B include relationships that have “s6 kinase” as a subject, e.g., row 7B03, and relationships that have “s6 kinase” as an object, e.g., row 7B04. By clicking on one of the displayed actions, for example the 35 “abolish action 7C01 in Figure 7C, the user can navigate to the document (sentence or clause) that shows that relationship. Figure 7D is an example screen display of a document that has been navigated to by selecting an action
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 link in a displayed relationship summary. The highlighted portion (/.e., shown as boxed herein) of the document text 7D01 is the information that has been summarized in the search results displayed in Figure 7C. Figure 7E is an example screen display that illustrates how the user might then go back and 5 modify the query based upon information gleaned while drilling down a particular search. In this case, based upon the actions retrieved in the highest level search, the user has decided to drill down and look at “s6kinase” as it blocks or regulates some other entity. Figure 7F is an example screen display that illustrates that the SQE retrieves relationships having similar verbs to the 10 verb sense specified in the query. In this case, the verb “modulate” is searched for as a similar verb to the user specified verb “regulate.”
Figures 8A-8F are example screen displays of an interface associated with browsing ontology paths, viewing corpus metadata, and finding synonyms. Figure 8A is an example screen display of navigation used to 15 browse a default ontology path. When a user types a path specification into path input field 8A01 and presses the Find Ontology Paths button 8A02, then the corresponding additional subpaths are displayed in area 8A03. The user can select the “Show Roots” link 8A04 to show the roots of other ontologies available for that particular corpus. Note that an ontology typically includes a 20 hierarchical classification system (a taxonomy) as well as properties associated with the nodes of the ontology and a dictionary.
Figures 8B-8F are example screen displays from a different version of the user interface, and are provided herein to illustrate how different ontologies may be associated with a single corpus. In Figure 8B, several links 25 to root nodes 8B02 are displayed. The user can either select one of these nodes and begin browsing or type a specific path into path input field 8B01. In the example shown, the user selects the path “LocusLink” and browses a hierarchy (not shown) by selecting a next node on the path labeled “Gene. The next ontology level below “Gene” is displayed in subpath area 8C03 of 30 Figure 8C. Note that according to this version of the interface, available metadata for the corpus is displayed in metadata display area 8C04. Figure 8D is an example screen display of an interface used to search for synonyms. Synonyms for a word specified in input field 8D01 are displayed in synonym display area 8D02. Other interfaces may provide links or other user interface 35 components for navigating to the metadata and synonym information. Figures 8E and 8F illustrate the behavior of the interface when the user inputs a specific entity classification into path input field 8E01. In this case, when the user types
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 in the term “steroids, the SQE responds by displaying indications 8F02 of all ontology paths that contain the entity type “steroids.”
Figure 9 is an example screen display of an interface associated with setting preferences for constraining relationship searches. There are a number of preference settings associated with a given search that may be customized to constrain search results or improve result display. The following options are illustrated on the Preferences page, and one skilled in the art will recognize that other options can be provided:
• Include negated actions: When this option is enabled, relationships matching both the positive and negative sense of a verb are displayed. If a user performed a search such as Clinton > visit > Russia, the sentence Due to heath reasons Clinton did not visit Russia. would only be returned if this setting was set to true. By default Show Negated Actions is disabled, and only positive actions are displayed.
• Search modifiers along with entities: This option specifies whether modifiers should be searched along with sources and/or targets (as subjects and/or objects). In the above example sentence Bill visits beautiful, green pastures outside Seattle, if this property is set to true, then a search such as Bill > visit > Seattle will return the above relationship. If this property is false, then it will not, and only the query Bill > visit > pasture would still yield this result.
• Display modifiers: In the sentence Bill visits beautiful, green pastures outside Seattle, beautiful, green is the prefix modifier for pastures, and outside Seattle is the postfix modifier. In a search like Bill > visit > *, with this property set to true the SQE will display modifiers along with pastures in the target entity summary. If this property is set to false, only the word 'pastures' will be displayed as the target in the tabular display.
• Enforce strict bi-directionality: When doing searches with bi-directional arrows, such as the search can be interpreted in two different ways. For example, with the search query Clinton <> * <> Bush, one might wish only to view
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 results in which Bush did something to Clinton XOR Clinton did something to Bush. (XOR indicates an exclusive Boolean OR operation.) Enforcing strict bi-directionality provides this result. However, one might also wish to see instances in which Bush and Clinton both did something to some other target together. These additional results are displayed if strict bi-directionality is not enforced.
• Search ontology path name as term: If a user includes an ontology path like [city] in a search query, then results with cities are returned. However, the word city is not an instance of an item in the ontology itself, and is not associated with the ontology path. Therefore, without setting this preference, one would not see results that contain the word city. This preference is set to true to include results with the term city in them as well as any terms defined by the ontology path city.
• Number of relationships per page: The user can set the number of relationships to display on a single page of relationship results. The smaller this value, the faster results will be returned.
• Number of documents per page: The user can set the number of documents to display on a single page of document results. The smaller this value, the faster results will be returned.
• Sort scheme: This setting allows users to sort results in a given chunk or batch of results according to one of several sorting schemes, and to set the default sort scheme for all future searches. Note that an individual result set can also be sorted in the result display. If results are sorted using the dropdown selection box on the results page, the setting does not persist for subsequent searches.
• Surrounding sentences to export: This option allows the user to vary how much contextual information from the document is included along with the sentences returned when the user exports a result set to HTML.
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
Figure 10 is an example screen display of an interface associated with displaying SQE query history. The history page displays a history queue 1000 of all searches performed in the current browser session. If the browser dies, if you use another browser, or if you press the Clear button 1010, the 5 history queue 1000 is reset. Clinking on one of links 1001-1002 for any query in the Query column will navigate to the results page for that particular query. Clinking on one of the links 1003-1004 in the Documents column will navigate to the set of documents that contain the results of that query. The Depends On column 1005 indicates whether a given query depends on a previous 10 query, for example as a result of executing a nested search.
Figures 11A-11F are example screen displays from an alternate graphical based interface for displaying and discovering genetic relationships. This interface could be generated, for example, using an API supported by the SQE. One skilled in the art will recognize that many different APIs can be 15 provided to support accessing the functions of an SQE from other code. In Figure 11 A, the user can select possible files that correspond to various sets of genes that can be studied to discover relationships between them. In Figure 11B, the user indicates a desire to select the entity list to be displayed. In Figure 11C, the user selects the “genes3.txt” file as the entity file to be 20 displayed. In Figure 11D, the user (optionally) selects an action list file, for displaying specific types of relationships (based upon verbs). Figure 11E and 11F show the results of the relationships between selected genes. Each dot represents a different gene and each line between two genes represents a relationship evidenced by the corpus. Selecting two genes in the graphical user 25 interface results in the specification of an RQL formulated query to the SQE.
Figure 11E illustrates the results of selecting two of the genes in order to display the specific relationships between them. In this case the user has selected the iqgapl gene 11F03 and the q02248 gene 11E03 and the possible “actions” between them are displayed in relationship results area 11E01. In this case, 30 the relationships include “interactions,” “regulation,” and “localization.” At this point, the user has gained information for further follow up. In Figure 11F, two different genes (entities) 11F02 and 1103 are selected to display relationships between them. The actions between them are displayed in relationship results area 11F01. Note that the relationship query invokes a search for both genes 35 as source and target in this example.
An SQE as described may perform multiple functions (e.g., data set parsing, data set storage, query transformation and processing, and
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 displaying results) and typically comprises a plurality of components. Figure 12 is a conceptual block diagram of the components of an example embodiment of a Syntactic Query Engine. A Syntactic Query Engine 1201 comprises a Relationship Query Processor 1210, a Data Set Preprocessor 1203, a Data Set 5 Indexer 1207, an Enhanced Natural Language Parser (“ENLP”) 1204, a data set repository 1208, and, in some embodiments, a user interface (or an Applications Programming Interface “API) 1313. The Data Set Preprocessor 1203 converts received data sets 1202 to a format that the Enhanced Natural Language Parser 1204 recognizes. The Enhanced Natural Language Parser 10 (“ENLP”) 1204, parses the preprocessed sentences, identifying the syntax and grammatical role of each meaningful term in the sentence and the ways in which the terms are related to one another and/or identifies designated entity and other ontology tag types and their associated values, and transforms the sentences into a canonical form — a normalized data representation. The Data 15 Set Indexer 1207 indexes the normalized data into the enhanced document indexes and stores them in the data set repository 1208. The Relationship Query Processor 1210 receives relationship queries and transforms them into a format that the Keyword Search Engine 1211 recognizes and can execute. (Recall that the Keyword Search Engine 1211 may be an external or 3<sup>rd</sup> party 20 keyword search engine that the SQE calls to execute queries.) The Keyword
Search Engine 1211 generates and executes keyword searches (as Boolean expressions of keywords) against the data set that is indexed and stored in the data set repository 1208. The Keyword Search Engine 1211 returns the search results through the user interface/API 1213 to the requester as Query Results 25 1212.
In operation, the SQE 1201 receives as input a data set 1202 to be indexed and stored. The Data Set Preprocessor 1203 prepares the data set for parsing by assigning a Document ID to each document that is part of the received data set (and sentence and clause IDs as appropriate), performing 30 OCR processing on any non-textual entities that are part of the received data set, and formatting each sentence according to the ENLP format requirements. The Enhanced Natural Language Parser (“ENLP”) 1204 parses the data set, identifying for each sentence, a set of terms, each term’s tags, including potentially part of speech and associated grammatical role tags and any 35 associated entity tags or ontology path information, and transforms this data into normalized data. The Data Set Indexer 1207 indexes and stores the normalized data output from the ENLP in the data set repository 1208. The
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 data set repository 1208 represents whatever type of storage along with the techniques used to store the enhanced document indexes. For example, the indexes may be stored as sparse matrix data structures, flat files, etc. and reflect whatever format corresponds to the input format expected by the 5 keyword search engine. After a data set is indexed, a Relationship Query 1209 may be submitted to the SQE 1201 for processing. The Relationship Query Processor 1210 prepares the query for parsing, for example by splitting the Relationship Query 1209 into sub-queries that are executable directly by the Keyword Search Engine 1211. As explained above, a Relationship Query 1209 10 is typically comprised of a syntactic search along with optional constraint expressions. Also, different system configuration parameters can be defined that influence and instruct the SQE to search using particular rules, for example, to include synonyms, related verbs, etc. Thus, the Relationship Query Processor 1210 is responsible for augmenting the specified Relationship 15 Query 1209 in accordance with the current SQE configured parameters. To do so, the Relationship Query Processor 1210 may access the ontology information which may be stored in Data Set Repository 1208 or some other data repository. The Relationship Query Processor 1210 splits up the query into a set of Boolean expression searches that are executed by the Keyword 20 Search engine 1211 and causes the searches to be executed. The
Relationship Query Processor 1210 then receives the result of each search from the Keyword Search Engine 1211 and combines them as indicated in the original Relationship Query 1209 (for example, using Boolean operators). One skilled in the art will recognize that the Relationship Query Processor 1210 may 25 be comprised of multiple subcomponents that each execute a portion of the work required to preprocess and execute a relationship query and combine the results for presentation. The results (in portions or as required) are sent to the User Interface/API component 1213 to produce the overall Query Result 1212. The User Interface Component 1213 may interface to a user in a manner 30 similar to that shown in the display screens of Figures 6A-6G and 7A-7F.
Figure 13 is a block diagram of the components of an Enhanced
Natural Language Parser of an example embodiment of a Syntactic Query Engine. The Enhanced Natural Language Parser (“ENLP”) 1301 comprises a natural language parser 1302 and a postprocessor 1303. The natural language 35 parser 1302 identifies, for each sentence it receives as input, the part of speech for each term in the sentence and syntactic relationships between the terms each clause of the sentence. An SQE may be implemented by integrating a
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 proprietary natural language parser into the ENLP, or by integrating an existing off-the-shelf natural language parser. The postprocessor 1303 examines the natural language parser 1302 output and, from the identified parts of speech and syntactic relationships, determines the grammatical role played by each 5 term in the sentence and the grammatical relationships between those terms.
When entity tags or other types of semantic tags (indicating nodes in an ontology path) are used in addition to or in lieu of the grammatical relationships, the postprocessor 1303 (or the natural language parser 1302 if capable of recognizing such tags) identifies, for each sentence (or clause where relevant), 10 each semantic tag type and its value. For example, the term “China” could be recognized as an entity type of “COUNTRY” having the (fully specified) ontology path indicator of “IF/ENTITY/LOCATION/COUNTRY.” The postprocessor 1303 then generates an enhanced data representation from the determined tags, including the entity tags, other ontology node tags, grammatical roles, and 15 syntactic and grammatical relationships.
Figure 14 is a block diagram of the processing performed by an example Enhanced Natural Language Parser. During document ingestion, the natural language parser 1401 receives a sentence 1403 (or portion thereof) as input, and generates a syntactic structure, such as parse tree 1404. The 20 generated parse tree 1404 identifies the part of speech for each term in each clause of the sentence and describes the relative positions of the terms within the clause. In embodiments that support the recognition of entity tags or other types of ontology path information, the parser 1401 (or postprocessor 1402 if the parser is not capable) also identifies in the parse tree (not shown) the 25 semantic tag type for each corresponding term in the sentence. The postprocessor 1402 receives the generated parse tree 1404 as input, determines the grammatical role of each term in the clause and relationships between terms in the clause, and generates a normalized version of the sentence data annotated with the grammatical role tags (syntactic tags) and 30 semantic tags 1405.
Figure 15 is a block diagram illustrating a graphical representation of an example syntactic structure generated by the natural language parser component of an Enhanced Natural Language Parser. The parse tree shown is one example of a representation that may be generated by a natural language 35 parser. The techniques of the methods and systems of the present invention, implemented in this example in the postprocessor component of the ENLP, enhance the representation generated by the natural language processor by
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 determining the grammatical role of each meaningful term, associating these terms with their determined roles and determining relationships between terms. In embodiments in which the natural language parser cannot support the recognition of semantic tags, one skilled in the art will recognize that the 5 postprocessor component (such as Postprocessor 1303 in Figure 13) can be programmed to enhance the representation with such tags. In Figure 15, the top node 1501 represents the entire sentence, “The president of France visited the capital of China in 1948.” Nodes 1502 and 1503 identify the noun phrase of the sentence, “The president of France,” and the verb phrase of the sentence, 10 “visited the capital of China in 1948,” respectively. The branches of nodes or leaves in the parse tree represent the parts of the sentence further divided until, at each leaf level, each term is singled out and associated with a part of speech. A configurable list of words are ignored by the parser as “stopwords.” The stopword list comprises words that are deemed not indicative of the 15 information being sought. Example stopwords are “a, “the,” “and,” “or,” and “but.” In one embodiment, question words (e.g., “who,” “what,” “where,” “when,” “why,” “how,” and “does”) are also ignored by the parser. In this example, after ignoring the determinant “The” (node 1504), nodes 1508 and 1509 identify the noun phrase 1505 as comprising a noun, “president” and a prepositional 20 phrase, “of France.” Nodes 1512 and 1513 divide the prepositional phrase
1509 into a preposition, “of,” and a noun, “France.” Nodes 1506 and 1507 divide the verb phrase 1503 into a verb, “visit,” (morphological form of “visited”) and a noun phrase, “the capital of China in 1948.” Nodes 1510 and 1511 divide the noun phrase 1507 ultimately after several additional steps into a 25 determinant “The” (node 1514), which may be ignored as a stopword; a noun “capital” (node 1515); a preposition “of (node 1518); a noun “China” (node 1519); a preposition “in” (node 1520); and a noun “1948” (node 1521).
Figure 16 is a table that conceptually illustrates normalized data that has been annotated with syntactic and semantic tags by the postprocessor 30 component of an Enhanced Natural Language Parser. Depending upon the implementation of the ENLP, the normalized data may or may not be stored in an intermediate data structure prior to being indexed and stored in the enhanced document indexes, such as the term-clause index. The example normalized data representation illustrates annotations applied to the sentence 35 that was illustrated in the parse tree of Figure 15. The annotations are of course dependent upon the ontology root node specified (which in this case is a default ontology root node called “IF”) and whether the SQE has been
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 configured to parse with semantic tags. Also, one skilled in the art will recognize that the selected roles and relationship information to be stored may be programmatically determined. In the example shown, row 1601 shows the indexing information for the term “president and specifies that the term is 5 associated with a grammatical role of “subject” and has been tagged as a type of person (relative to the ontology being used). The SQE also recognizes and maintains information that the subject of this clause is associated with a (suffix) modifier term “France,” which has been tagged as a type of country. The SQE maintains modifier information for subjects, objects, and prepositional phrases, 10 because, in some configurations, the SQE can search for specified subject, object, and/or prepositional constraint terms in addition as modifiers, thereby returning documents that potentially may be relevant even though the sentence clauses didn’t include the specified terms precisely as subjects, objects, or complement of a preposition. Row 1602 shows the indexing information for the 15 term “visited” and specifies that the term is associated with the grammatical role of “verb.” Note that the SQE stores the stemmed form of the verb “visit” so as to potentially match more forms of the verb. Other heuristics could be similarly incorporated. Row 1603 shows the indexing information for the term “capital,” including that the term is tagged with a grammatical role of “object” and is 20 associated with two suffix modifiers “China” and “1948,” the first of which is tagged as a country (and a location and an entity) and the second of which is tagged as a date (and a numeric value and an entity). Note that these terms are maintained by the SQE as modifiers even though they are also maintained as prepositional complements for use in relationship queries that filter based 25 upon prepositional constraints. Row 1604 shows the indexing information for the term “China,” including that the term is tagged with a grammatical role of “prepositional complement” and a semantic tag that specifies that the term is a kind of date. Similarly, row 1605 shows the indexing information for the term “1948,” including that the term is tagged with a grammatical role of 30 “prepositional complement” and a semantic tag that specifies that the term is a kind of country (and location and entity). Row 1606 shows the additional sentence/clause information, which in this case is an indication that the clause is a “temporal” one. Clause and sentence information may indicate, for example, that the clause relative to other clauses in the sentence is a 35 conditional clause, a causal clause, a prepositional clause, or a temporal clause or that the sentence is a question, a definition, or contains temporal or numerical information. One skilled in the art will recognize that other
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 classifications of interclause relationships and of sentences may also be incorporated. Also, other linguistic heuristics can be used to generate enhanced indexing information indicated by the normalized data produced by the ENLP. For example, in some implementations, the ENLP provides “coreferencing” analysis, which allows the ENLP to replace pronouns with nouns, or nouns, pronoun phrases, noun phrases, aliases, abbreviations, acronyms, etc. with a corresponding identifying noun. This capability allows greater search accuracy, especially when searching for specific entity names.
Note that the normalized data shown in Figure 16 supports many different types of relationship queries. For example, all of the following relationship queries will cause the SQE to return an indicator to the sentence that has been normalized to the data of Figure 16 (assuming modifiers are searched):
<td> * > visits > [country] countries.)</td><td> (Query for information on all visits of all</td>
<td> president <> *</td><td> (Query for anything a president does.)</td>
* > * > China (Query for any relationship with China.) (Note that the SQE returns the sentence because it searches for “China” as a modifier instead of just as an object of the sentence.) * > * > [country] (Query for any relationship with any country.)
France <> * <> China (Query for any relationship b/n France &
China.) (Note that the SQE returns the sentence because it searches for “France” and “China” as modifiers instead of just as subjects and/or objects of the sentence.)
Thus, the normalized data demonstrated by Figure 16 is supportive of and responsive to a very flexible style of specifying relationship queries.
The Syntactic Query Engine performs two functions to accomplish effective relationship query processing with syntactic searching capabilities. The first is the parsing, indexing, and storage of a data set (sometimes termed corpus ingestion). The second is the query processing, which according to the example embodiment described herein, results in the execution of keyword searches. These two functions are outlined with reference to Figures 17-19.
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
Figure 17 is an example block diagram of data set processing performed by a Syntactic Query Engine. As an example, documents that make up a data set 1701 are submitted to the Data Set Preprocessor 1702 (e.g., component 1203 in Figure 12). If the data set comprises multiple files, as 5 shown in Figure 17, in one embodiment the Data Set Preprocessor 1702 creates one tagged file containing the document set. The Data Set Preprocessor 1702 then dissects that file into individual sentences and sends each sentence to the ENLP 1704 (e.g., component 1204 in Figure 12). After the ENLP 1704 parses each received sentence, it sends the generated 10 normalized data that corresponds to each clause of each sentence (e.g., data such as that represented by Figure 16) to the Data Set Indexer 1705 (e.g., component 1207 in Figure 12). The Data Set Indexer 1705 processes the ENLP output, indexing and storing the information in a format that is dependent upon the storage representation of the enhanced document indexes (for 15 example, the term-clause, term-sentence, and term-document indexes). One skilled in the art will recognize that other methods of data set preprocessing, indexing, and storing may be implemented in place of the methods described herein, and that such modifications are contemplated by the methods and systems of the present invention. For example, the data may be indexed 20 according to a variety of schemes and distributed across a plurality of repositories.
In addition to indexing and storing a data set prior initially, in some embodiments, the SQE can incrementally index and store new documents, updating the relevant enhanced document indexes as necessary. In addition, in 25 embodiments that support dynamic changes to an existing ontology, the SQE can determine a set of affected documents and “re-ingest a portion of the corpus as needed. Other variations can be similarly accommodated.
After indexing and storing a data set, the SQE may perform its second function, processing relationship queries against the stored data set. 30 Figure 18 is a block diagram of query processing performed by an Syntactic Query Engine. A user 1801 (or program through an API) submits a relationship query 1810 to the SQE. The Query Processor 1802 component of the SQE transforms the query into one or more keyword searches 1811 with appropriate syntactic and semantic annotation information included and executes the 35 keyword searches 1811 by invoking one or more keyword search engine processes, for example, keyword search engines 1804-1807. The results of each keyword search 1811 are subsequently returned back to the invoking
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
Query Processor 1802, which then combines the results 1812 as specified in the relationship query 1810 and returns them to the user/program.
Figure 19 is an example flow diagram of relationship query processing steps performed by an example query processor of Syntactic Query 5 Engine. The query processor executes one or more of steps example 19011907 for each query that is forwarded from the user interface/API support modules. One skilled in the art will recognize that the precise behaviors of each step depend upon the heuristics and other rules that are encoded, the preferences set for search parameters, and the way the normalized data is 10 actually stored in the term-clause, term-sentence, and term-document indexes.
In step 1901, the query processor receives a relationship query. Recall that the relationship query of the example syntax described above specifies a syntactic search portion (which may be empty), prepositional constraints, document level keyword filters, and meta-data filters. Also, it is possible to specify values for 15 any one of the relationship query components without the others. Depending upon the implementation, the query processor may include a relationship query interpreter or parser (not shown) to parse the received query into its constituent parts and to produce some form of code (internally specified, using a standard programming language, or otherwise) that controls the flow of the keyword 20 searches that are invoked and the combining of the results. This approach is especially useful with a syntax as described that follows a prescribed grammar. The relationship query is than transformed as necessary in example steps 1902-1907 in accordance with the implementation.
In step 1902, the query is transformed to handle synonyms of any 25 specified subjects and/or objects. In one embodiment, synonyms are handled by searching the ontology structure for synonyms of a specified term, and, if they are present, adding keyword searches for each synonym found. In an alternative embodiment, terms having synonyms are mapped (e.g., at SQE configuration time) to a common indicator, such as a “concept identifier” 30 (concept ID). During ingestion, terms are looked up in the map to determine whether they have corresponding synonyms (hence concept IDs), and, if so, the concept IDs are stored as part of the indexing information. Upon receiving a query, a look up is performed to find a corresponding concept ID (if one exists) to a received term. The query is then transformed so that the resultant 35 keyword searches contain the corresponding concept ID as appropriate. One skilled in the art will recognize that, using either mechanism (or any other
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 implementation), the formatting of the invoked keyword searches needs to correspond to the way the data has been indexed.
In step 1903, the query processor transforms the query to handle ontology path specifications or “types if provided in the received query string.
For example, a relationship query may provide a subject and/or object list as [entity] or [person] or [location/country], etc., which is interpreted as a type of node in an ontology hierarchy. The amount of the pathname that is specified is matched to the ontology. Thus, the entity specification “[location/country] is matched to any ontology path containing that sub-path. Keyword searches are 10 thus specified for each of the matching ontology paths. Similarly, heuristics may be applied that include as additional keyword searches also searches for related terms, such as hypernyms and hyponyms (more generic and more specific classification terms, respectively), if not already accounted for using available synonym logic.
In step 1904, the query processor transforms the query to handle action types (types of verbs) if specified in the relationship query. For example, a query that specifies president < > [communication]” instructs the SQE to find all relationships that involve a president doing something by any verb that is considered to be a communication verb. Like the implementations for 20 synonyms described above, the query processor can handle this by including additional keyword searches for each verb of that action type, or can use some kind of verb concept identifier. Again, the query processor needs to match whatever form the indexed data is stored.
In step 1905, based upon the additional transformations from 25 steps 1902-1904, the query processor reformulates the relationship query into one or more keyword searches that can be executed by a keyword search engine. In step 1906, the one or more keyword searches are accordingly invoked and executed. If the enhanced document index is stored as one data structure, then it is possible to execute one keyword search. Alternatively, if the 30 indexed data is actually split between several matrices, then a keyword search is executed on each index as appropriate. For example, searches for matching “keywords” as subjects (or modifiers of subjects) are executed on the subject term-clause index. In step 1907, the results of the keyword searches are combined as expressed in the flow of control logic parsed from the relationship 35 query, and then forwarded to an interface for presentation to the user or program that invoked the relationship query. The query processor then returns to the beginning of the loop in step 1901.
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
The functions of data set processing (data object ingestion) and relationship query processing can be practiced in any number of centralized and/or distributed configurations of client - server systems. Parallel processing techniques can be applied in performing indexing and query processing to substantial increase throughput and responsiveness. Representative configurations and architectures are described below with respect to Figures 20-25; however, one skilled in the art will recognize that a variety of other configurations could equivalently perform the functions and capabilities identified herein.
Figure 20 is an example block diagram of a general purpose computer system for practicing embodiments of a Syntactic Query Engine. The computer system 2001 contains one or more central processing units (CPUs) 2002, Input/Output devices 2003, a display device 2004, and a computer memory (memory) 2005. The Syntactic Query Engine 2020, including the
Query Processor 2006, Keyword Search Engine 2007, Data Set Preprocessor 2008, Data Set Indexer 2011, Enhanced Natural Language Parser 2012, and data set repository 2015, preferably resides in memory 2005, with the operating system 2009 and other programs 2010 and executes on the one or more CPUs 2002. One skilled in the art will recognize that the SQE may be implemented using various configurations. For example, the data set repository may be implemented as one or more data repositories stored on one or more local or remote data storage devices. Furthermore, the various components comprising the SQE may be distributed across one or more computer systems including handheld devices, for example, cell phones or PDAs. Additionally, the components of the SQE may be combined differently in one or more different modules. The SQE may also be implemented across a network, for example, the Internet or may be embedded in another device.
Figure 21 is an example block diagram of a distributed architecture for practicing embodiments of a Syntactic Query Engine. This 30 architecture supports parallel processing of the indexing (ingestion) of each document as well as parallel query processing. The basic organization involves storing a portion of each (term-clause, sentence, and document) index on multiple machines (e.g., servers), with potentially multiple CPUs, in order to achieve greater throughput and accommodate the extensive storage 35 requirements of a very large corpus. For example, typically a large corpus will easily exceed the CPU and storage limits of a single server machine. Moreover, to provide commercially viable search solutions, the SQE needs to
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 respond to queries in a timely fashion. Thus, the number of servers and CPUs is typically determined by the expected size of the data set and the desired query response time, and is typically set up during SQE configuration.
The unit of organization used to support indexing and searching is termed a “partition. Thus, an enhanced document index (labeled here as a “keyword index”) comprises typically a plurality of “partition indexes,” each of which stores some portion of the total keyword index. To perform a search on the entire corpus, then, it is necessary to search each of the partition indexes (with the same keyword search string) and thereafter to combine the results as 10 if the search were performed on a single index. Note that the keyword index may be partitioned according to a variety of schemes, including, for example, a percentage of the index based upon the size of the documents indexed, documents that somehow related together by concept or other classification, schemes based upon storing portions of the index based upon a type supported 15 by the ontology, etc. Any such scheme may be implemented by the servers and may be optimized for the application for which the SQE is being deployed.
A variety of servers and services are employed to process the ingestion and searching on the backend so as to present a unified view of the term-clause, sentence, and document indexes. Figure 21 presents one such 20 embodiment, although one skilled in the art will recognize that a variety of other organizations and components can equivalently support and provide the functions and techniques of the SQE. In Figure 21, an index manager 2101 schedules document ingestion for a collection of document 2110 between a plurality of workers 2102a-2102d, each responsible for indexing a portion of the 25 corpus. The work could be divided at a variety of levels including by document, by sentence, etc., and allows the ingestion workload to be processed in parallel, thus decreasing the amount of time required to ingest a corpus. Each worker 2102a-2102d contains an instance of the SQE data set processing components (and others if necessary), including the preprocessor and an instance of the 30 ENLP. Upon parsing a sentence and annotating it with syntactic and semantic tags, the worker 2102a-2102d creates a corresponding temporary keyword index 2103a-2103d, which represents the portion of the corpus that it has processed until stored in the partition indexes 2104-2105. The index manager 2101 is responsible for distributing the temporary keyword indexes 2103a35 2103d to the partition indexes 2104 and 2105 to be merged into their respective keyword indexes 2106 and 2107. Note that the index manager 2101 and the workers 2102a-2102d may in some embodiments utilize an additional data base
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 management system 2120 to store recovery information, such as copies of documents, document metadata, sentences, parse trees and a copy of the clause tables, 2130 although this is a convenience and not necessitated by the functions of the SQE.
Figure 22 is a block diagram overview of parallel processing architecture that supports indexing a corpus of documents. This figure shows one arrangement of servers that can be used to effect the parallel processing architecture of Figure 21. Specifically, AdminClient 2201 controls invocation of an IndexManager (server) 2202 which stores working and recovery information 10 in a database 2203 (if part of a particular implementation) and distributes indexing work to one or more IndexWorkers (servers) 2204. When an IndexWorker 2204 completes indexing of an object (document, sentence, etc.), notification is returned to the IndexWorker 2202, which at appropriate times instructs a corresponding Partitionindex (server) 2205 to store the indexing 15 information in the appropriate clause, sentence, and document indexes. Each IndexWorker 2202 may also communicate with a Webserver 2206 to deliver status and error information.
Figure 23 is a block diagram overview of parallel processing architecture that supports relationship queries. The partition indexes, such as 20 Partition Index A 2104 and Partition Index B 2105 (in Figure 21), may be arranged in a hierarchy of searcher (servers), and more than one partition index may be managed by a single searcher. Typically, it is advised to have a separate partition index for each CPU present in a server machine to take advantage of inherent parallel processing opportunities in a multiple 25 CPU/parallel processor, machine; however, other arrangements are also possible. In Figure 23, a user such as a researcher using a web browser user interface 2301 or an application using the SQE APIL 2302 issues a relationship query to the SQE as described in detail in the other figures via some supported communications protocol, such as HTTP. (Note also that a server side 30 application that resides on the search service server 2311 could also issue a direct request to the search service 2304.) Webserver 2303 receives the relationship query and issues appropriate search requests to the SearchService 2304. Note that depending upon the particular implementation, the various functional components described by Figure 12 and multiple instances of the 35 same components could reside upon one or more of these servers. The query is preferably organized into a plurality of keyword and ontology searches that are distributed to be processed in parallet and then combined before returning a
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 result to the Webserver 2303. (The returned result flow is not shown.) Thus, search service 2304 invokes a “top” level search 2305 which is responsible for conducting the parallel searches to effectuate a search of the entire keyword index. Searcher 2305 is shown communicating via a remote method invocation 5 protocol to a single partition index server 2308. Searcher 2305 instructs (sub)searcher 2307 to also perform part of the search. Searcher 2307 is shown communicating with two partition indexes, 2309 and 2310. The searcher 2305 also communicates with a (possibly hierarchy of) ontology searchers 2306 as needed to search for pathnames in the ontology (and for browsing the ontology 10 as supported by other aspects of an example SQE user interface).
Figure 24 is an example block diagram that shows parallel searching of an enhanced document index. In Figure 24, a search service 2401 receives a search and distributes the requested relationship search to a top level searcher 2402. The top level searcher 2402 then, in parallel, invokes 15 the same relationship search on a plurality of searchers 2403-2405, depending upon the organization of the partition indexes and whether it is required to search all of them for a particular relationship query. For example, if the partition indexes are organized such that a percentage of the corpus is indexed on each (not by entity type or some other organization), then all of the partition 20 indexes are searched in parallel. Searcher 2403 performs the relationship search on partition index 2410, searcher 2404 performs the relationship search on partition indexes 2422 and 2423, up through searcher 2405 performs the relationship search on partition index 2424. Also, if an ontology search (for synonyms, pathnames, etc.) is required, then the top searcher 2402 invokes a 25 top level ontology searcher 2406 to perform (in parallel as required) an ontology search using one or more ontology searchers such as searcher 2407 to search one or more ontology data repositories 2408 and 2409.
As mentioned, it is sometimes desirable to support the indexing of additional corpus information even when the corpus is being searched. This 30 provides the ability to support incremental indexing of data. It is also sometimes desirable to provide fault tolerance, especially in mission critical applications. Figure 25 is an example block diagram of an architecture of the partition indexes that supports incremental updates and data redundancy. The underlying organization involves maintaining several data instances of the 35 partition index, only one of which is “active for searching at any one time and maintaining a redundant copy of the data instances that comprise the partition index. The “active partition index data instance provides the view of the data
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 that the initiator of a query believes is current. To update a partition index, the searcher redirects the indicator of the active partition index data instance to a different data instance. In Figure 25, the searcher 2501 maintains a master partition index 2502 and a clone partition index 1203, which is a replica of the master partition index. Each of the partition indexes 2502 and 2503 in turn maintain a plurality of data instances, for example data instances 2510-2512 and 2520-2522. In the diagram, partition index data instance 2511 is indicated as the active” partition index data instance. While instance 2511 is active, the searcher 2501 can update other data instances 2510 and 2512 thus providing another type of parallelism. Since clone partition index 2503 is a replica of the master partition index 2502, the data instances 2520-2522 are replicas of the information and state of data instance 2510-2512. One skilled in the art will recognize that there are other ways to provide incremental updating and that Figure 25 illustrates one of them.
The architectures described (and others) can be used to support the indexing and searching functions of an example SQE. Figure 26 is an example conceptual diagram of the transformation of a relationship search into component portions that are executed using a parallel architecture. In the example illustrated, the relationship query 2601 is a link search, however one 20 skilled in the art will recognize that the technique described can be applied and extended to a variety of searches including a plurality of relationship searches that are combined by a scripting language or other means of controlling flow. The query being processed:
Arafat <> {[organization]} <> Abu Nidal
Instructs the SQE to find all relationship where there is a 3<sup>rd</sup> entity that is an organization linking Arafat and Abu Nidal. In this case, the SQE transforms the query into two syntactic sub-searches 2602 and 2603:
Arafat <> * <> [organization] which will locate all organizations with which Arafat has any kind of relationship;
and
Abu Nidal <> * <> [organization] which will locate all organizations with which Abu Nidal has any kind of relationship. Each of these syntactic searches 2602 and 2603 are executed using, for example, the parallel architecture described with reference to Figures 35 22-25. The syntactic search 2602 is distributed to a top searcher 2604 to
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 perform one or more syntactic searches on the partition indexes that make up the corpus and one or more ontology searches as required. Note that as part of this process, the various searchers invoke one or more keyword search engines to perform the actual keyword search on the annotated indexes.
Similarly, the syntactic search 2603 is distributed to a top searcher 2605 to perform one or more syntactic searches on the partition indexes that make up the corpus and one or more ontology searches as required. Again, keyword search engines are invoked as part of this process. Once results from the subsearches are determined, the query processor, for example, one residing in a 10 search service (such as search service 2401 in Figure 24) determines based upon the initial query 2601 how to combine the results. In the example described, the intersection of the resulting clauses provides the overall query result 2607 desired. One skilled in the art will recognize that similar combinations of sub-searches can be accommodated. Those that indicated a 15 desired intersection (as from a Boolean AND operation) are easily specified.
However, to support other types of control flow operations, such as those that require a union of the resultant data, needs to be defined as to what aspects are desired to be combined especially if the sub-searches yield different types of results.
The architectures illustrated (and others) can also support the preprocessing and data storage functions of an example SQE. As described with reference to Figure 17, the Data Set Preprocessor 1702 performs two overall functions - building one or more tagged files from the received data set files and dissecting the data set into individual objects, for example, sentences.
These functions are described in detail below with respect to Figures 27-29. Although Figures 27-29 present a particular ordering of steps and are oriented to a data set of objects comprising documents, one skilled in the art will recognize that these flow diagrams, as well as all others described herein, are examples of one embodiment. Other sequences, orderings and groupings of 30 steps, and other steps that achieve similar functions, are equivalent to and contemplated by the methods and systems of the present invention. These include steps and ordering modifications oriented toward non-textual objects in a data set, such as audio or video objects.
Figure 27 is an example flow diagram of the steps performed by a build_file routine within the Data Set Preprocessor component of a Syntactic Query Engine. The build_file routine generates text for any non-textual entities within the dataset, identifies document structures (e.g., chapters or sections in a
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984 book), and generates one or more tagged files for the data set. In one embodiment, the build_file routine generates one tagged file containing the entire data set. In alternate embodiments, multiple files may be generated, for example, one file for each object (e.g., document) in the data set. In step 2701, the build_file routine creates a text file. In step 2702, the build_file routine determines the structure of the individual elements that make up the data set. This structure can be previously determined, for example, by a system administrator and indicated within the data set using, for example, HTML tags. For example, if the data set is a book, the defined structure may identify each 10 section or chapter of the book. These HTML tags can be used to define document level attributes for each document in the data set. In step 2703, the build_file routine tags the beginning and end of each document (or section, as defined by the structure of the data set). In step 2704, the routine performs OCR processing on any images so that it can create searchable text (lexical 15 units) associated with each image. In step 2705, the build_file routine creates one or more sentences for each chart, map, figure, table, or other non-textual entity. For example, for a map of China, the routine may insert a sentence of the form,
This is a map of China.
In step 2706, the build_file routine generates an object identifier (e.g., (a Document ID) and inserts a tag with the generated identifier. In step 2707, the build_file routine writes the processed document to the created text file. Steps 2702 through 2707 are repeated for each file that is submitted as part of the data set. When there are no more files to process, the build_file routine returns.
Figure 28 illustrates an example format of a tagged file built by the build_file routine of the Data Set Preprocessor component of a Syntactic Query Engine. The beginning and end of each document in the file is marked, respectively, with a <DOC> tag 2801 and a </DOC> tag 2802. The build_file routine generates a Document ID for each document in the file. The Document
ID is marked by and between a <DOCNO> tag 2803 and a </DOCNO> tag 2804. Table section 2805 shows example sentences created by the build_file routine to represent lexical units for a table embedded within the document. The first sentence for Table 2805,
This table shows the Defense forces, 1996, is generated from the title of the actual table in the document. The remaining sentences shown in Table 2805, are generated from the rows in the actual table
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 in the document. One skilled in the art will recognize that various processes and techniques may be used to identify documents within the data set and to identify entities (e.g., tables) within each document. The use of equivalent and/or alternative processes and markup techniques and formats, including
HTML, XML, and SGML and non-tagged techniques are contemplated and may be incorporated in methods and systems of the present invention.
The second function performed by the Data Set Preprocessor component of the SQE is dissecting the data set into individual objects (e.g., sentences) to be processed. Figure 29 is an example flow diagram of the steps 10 performed by the dissect_file routine of the Data Set Preprocessor component of a Syntactic Query Engine, in step 2901, the routine extracts a sentence from the tagged text file containing the data set. In step 2902, the dissect_file routine preprocesses the extracted sentence, preparing the sentence for parsing. The preprocessing step may comprise any functions necessary to prepare a 15 sentence according to the requirements of the natural language parser component of the ENLP. These functions may include, for example, spell checking, removing excessive white space, removing extraneous punctuation, and/or converting terms to lowercase, uppercase, or proper case. One skilled in the art will recognize that any preprocessing performed to put a sentence into 20 a form that is acceptable to the natural language parser can be used with techniques of the present invention. In step 2903, the routine sends the preprocessed sentence to the ENLP. In step 2904, the routine receives as output from the ENLP a normalized data representation of the sentence. In step 2905, the dissect_file routine forwards the original sentence and the 25 normalized data representation to the Data Set Indexer for further processing.
Steps 2901-2905 are repeated for each sentence in the file. When no more sentences remain, the dissect_file routine returns.
The Data Set Indexer (e.g., component 1705 in Figure 17) prepares the normalized data generated from the data set (e.g., as illustrated in 30 Figure 16) to be indexed and stored in the data set repository. One skilled in the art will recognize that the normalized data can be stored in a variety of ways and data structures, yet still achieve the abstraction of maintaining a termclause matrix, a term-sentence matrix or a term-document matrix. Any data structure that can be understood by the target keyword search engine being 35 used is operable with the techniques of the present invention. In one embodiment, separate indexes exist for each enhanced document (term-clause, term-sentence, and term-document) matrix. In addition, in some embodiments
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 the term-clause index is further divided into a separate index for each grammatical role, so as to allow more efficient keyword searches. The indexes are cross referenced by an internal identifier, which can be used to decipher a document id, sentence id, or a clause id. The tuple (document id, sentence id, 5 clause id) that uniquely identifies each clause in the document corpus. Other divisions and distributions of the data can be accommodated. Table 1 below conceptually illustrates the information that is maintained in an example termclause index of the present invention.
<td> Field Name</td><td> Type</td><td> Description</td>
<td> Id (internal)</td><td> Indexed, stored</td><td> document id, sentence id, clause id concatenated separated by</td>
<td> subject</td><td> tokenized, indexed</td><td> contains subjects(s), subject modifiers and entity type(s) for subjects and modifiers. The modifiers are preferably separated into prefix and suffix. If subject has entity type, the data indexer also stores t_entity (just once). If any modifier has entity type, the data indexer also stores tm_entity (just once). Noun phrases that were recognized by NL parser are also stored with spaces replaced by ‘\.’ The subject field order is: prefix_subject_mod subject suffix_subject_mod Entity_types NLP_noun_phrases.</td>
<td> object</td><td> tokenized, indexed</td><td> contains objects(s), object modifiers and entity type(s) for objects and modifiers The modifiers are preferably separated into prefix and suffix. If object has entity type, the data indexer stores t_entity (just once). If any modifier has entity type, the data indexer also stores tm_entity (just once). Noun phrases that were recognized by NL parser are also stored with spaces replaced by V The object</td>
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<td></td><td></td><td> field order is: prefix_object_mod object suffix_object_mod Entity_types NLP noun phrases.</td>
<td> pcomp</td><td> tokenized, indexed</td><td> contains pcomp(s), preposition(s), pcomp modifiers and entity type(s) for pcomp, modifiers. The modifiers are preferably separated into prefix and suffix. If pcomp has entity type, the data indexer also store t_entity (just once). If any modifier has entity type, the data indexer also stores tm_entity Gust once). Noun phrases that were recognized by NL parser are also stored with spaces replaced by ‘V The pcomp field order is: preposition pcomp modifiers, pcomp Entity_types NLP noun phrases</td>
<td> verb</td><td> tokenized, indexed</td><td> contains verbs(s), verb modifiers and entity type(s) for verbs and modifiers. Noun phrases that were recognized by NL parser are also stored with spaces replaced by ‘V The verb field order is: prefix__verb_mod verb suffix_ verb _mod Entityjypes NLP noun phrases.</td>
<td> parentjd</td><td> indexed, stored</td><td> clause id(10)</td>
<td> clause_rel_sent_class</td><td> tokenized, indexed</td><td> Contains inter-clause relationships such as: • conditional_c • causal_c • prepositional_c • temporale</td>
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<td></td><td></td><td> and Sentence Attributes such as: • question_s • definition_s • temporal_s • numerical s.</td>
<td> relationship</td><td> stored</td><td> (Encoded clause for display)</td>
Table 1
As can be observed from Table 1, a variety of information is indexed to correspond to the term-clause index. “Entity_types” includes whatever types are supported by the ontology. In a default system, several types of entities are 5 supported; however, one skilled in the art will recognize that other categorizations of types could also be supported. Similarly, particular exemplary sentence and inter-clause relationship types are listed, however other classifications are supported as well.
Figure 30 is an example conceptual block diagram of a sentence 10 that has been indexed and stored in a term-clause index of a Syntactic Query Engine. The example sentence illustrated is “Jane admires sunny Seattle on a busy June 3rd. The id field 3001 is an internal string that can cross-reference to the corresponding clause, sentence, and document. The subject field 3002 includes the term “Jane” (the subject), which has no modifiers, but is a member 15 of two classifications in the ontology: an individual (t_entity/person/any/individual) and a female (t_entity/person/female). The field also stores that the subject has an entity type (indicated as t_entity). The verb field 3003 includes the stemmed form of the verb term “admires” (the verb), followed by a series of suffix modifiers of the verb, which appear also as parts 20 of prepositional phrases in pcomp field 3005. The modifiers (m_on, m_busy, m_June, m_3rd) are stored in the verb field along with the information that at least one of the modifiers has an entity type (indicated by a tm_entity tag) and that the entity type in the modifier list includes a date (tm_entity/temporal/date). As illustrated, the object field 3004 includes the term “Seattle,” along with 25 annotations that it has an entity type (t_entity) of city (t_entity/location/city) and has a series of prefix and suffix modifiers (m_sunny, m_on, m_busy, m_June, m_3rd) that have entity types (tm^entity) including a date (tm_entity/temporal/date). The pcomp (prepositional complement) field 3005 includes the terms in the prepositional phrase “on a busy June 3rd” stored with 30 the phrase “June 3<sup>rd</sup>” as the prepositional complement and the other terms as
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 modifiers. The phrase is recognized as an entity, hence the pcomp field includes an entity type (t_entity) of date (t_entity/temporal/date). The parentjd field 3006 indicated the clause id of the parent clause in the sentence if there are multiple clauses. The clause_rel_sent_class field 3007 indicates any interclause relationships, such as whether the clause is a conditional phrase, and any sentence attributes such as an annotation that the sentence is, as in this case, a temporal statement. Such classifications enable keyword searching based upon classifications of sentences as well as other syntactic and semantic tags. The relationship field 3008 is used for displaying the clause and is implementation specific.
Table 2 below conceptually illustrates the information that is maintained in an example sentence index of the present invention. Since the terms with syntactic and semantic annotations are stored in the term-clause index, the enhanced indexing information can be identified by the sentence index, but is not typically stored as part of it.
<td> Field Name</td><td> Type</td><td> Description</td>
<td> sentid</td><td> indexed</td><td> Document id sentence id separated by</td>
<td> sent text</td><td> Stored</td><td> String content of the sentence</td>
Table 2
Table 2 includes an indicator to the entire content of the sentence, and an identifier that will enable cross referencing to the internal clause ids of the clauses that constitute the sentences. The identifier also cross-references to the document that contains the sentence.
Table 3 below conceptually illustrates the information that is maintained in an example document index of the present invention. Since the terms with syntactic and semantic annotations are stored in the term-clause index, the enhanced indexing information can be identified by the document index, but is not typically stored as part of it.
<td> Field Name</td><td> Type</td><td> Description</td>
<td> doc id</td><td> Indexed, stored</td><td> Document id</td>
<td> dhs doc id</td><td> stored</td><td> DHS doc id (URL in one embodiment)</td>
<td> title</td><td> Tokenized, Indexed, stored</td><td> Document title</td>
<td> creationDate</td><td> Indexed, stored</td><td> Document creation date;</td>
CA 02633458 2014-01-13
<td></td><td></td><td> format: yyyy.MM.dd-HH;mm:ss</td>
<td> metatag</td><td> Tokenized, Indexed, stored</td><td> MetatagName#MetatagValue</td>
<td> content</td><td> Tokenized, Indexed, Not Stored</td><td> String content of the document</td>
<td> document-type</td><td> stored</td><td> Document type (HTML, MSWORD)</td>
Table 3
The document index stores document tag information that is created typically during the data set preprocessing stage as well the meta-data tags and (an 5 indicator to) the full document content. The type of the document is also maintained.
Figure 31 is an example conceptual block diagram of sample contents of a document index of a Syntactic Query Engine. The docjd field 10 3101 contains a document identifier; the title filed 3102 contains a string representing the title, the creationDate field 3103 indicates the date the document was created if known. The metadata field 3104 includes a series of meta data tags, each with the metadata name followed by its value. The content field 3105 contains an indicator to the string content of the document. 15 The document_type field 3106 is an indicator of the format of document (such as an HTML file) determined typically during the data set preprocessing stage.
Specific embodiments of, and examples for, methods and systems of the present invention are described herein for illustrative purposes. The 20 scope of the claims should not be limited by the embodiments set forth in the examples, but should be given the broadest interpretation consistent with the description as a whole.
Aspects of the invention can be modified, if necessary, to employ 25 methods, systems and concepts of these various patents, applications and publications to provide yet further embodiments of the invention. In addition, those skilled in the art will understand how to make changes and modifications to the methods and systems described to meet their specific requirements or conditions. For example, the methods and systems described herein can be 30 applied to any type of search tool or indexing of a data set, and not just the
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
SQE described. In addition, the techniques described may be applied to other types of methods and systems where large data sets must be efficiently reviewed. For example, these techniques may be applied to Internet search tools implemented on a PDA, web-enabled cellular phones, or embedded in 5 other devices. Furthermore, the data sets may comprise data in any language or in any combination of languages. In addition, the user interface and API components described may be implemented to effectively support wireless and handheld devices, for example, PDAs, and other similar devices, with limited screen real estate. These and other changes may be made to the invention in 10 light of the above-detailed description. Accordingly, the invention is not limited by the disclosure.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
APPENDIX A
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0002.tif" />
φ
4-> (Λ
<img file="CA2633458C_D0003.tif" />
(A
<img file="CA2633458C_D0004.tif" />
<img file="CA2633458C_D0005.tif" />
£
<td></td><td> φ ></td>
<td> X <J</td><td> o</td>
<td> Sear</td><td> o</td>
<td></td><td> Φ p</td><td> 4-J Φ</td>
<td> X</td><td> u □</td><td> E</td>
<td> rc</td><td> O</td><td> ra</td>
<td> 4J c</td><td> ω</td><td> H</td>
<td> ></td><td> rc</td><td> ro</td>
<td> ω</td><td> ω</td><td> ω</td>
<td> £</td><td> 4J</td><td> 4-J</td>
<td> <u</td><td> ra</td><td> ra</td>
<td> □</td><td> X</td><td> X</td>
<td> o</td><td> 5</td><td> 5</td>
Φ
<img file="CA2633458C_D0006.tif" />
<img file="CA2633458C_D0007.tif" />
ooooooooooo > σ o p
<td> o 4-J</td><td colspan="2"> 4J c</td><td colspan="2"></td>
<td> ra u</td><td></td><td> Ο</td><td></td><td></td>
<td> Φ</td><td></td><td> XJ</td><td></td><td></td>
<td> C</td><td></td><td> L_</td><td></td><td></td>
<td> Φ</td><td></td><td> ro</td><td></td><td></td>
<td> 0</td><td> 4-J</td><td> g</td><td> (Λ</td><td></td>
<td> ></td><td> o</td><td> ro</td><td> t</td><td></td>
<td> u</td><td> X</td><td> 4J</td><td> o</td><td></td>
<td> <D</td><td> §</td><td> ω</td><td> Q</td><td></td>
<td> Z5 o</td><td> ω</td><td> *</td><td> O'</td><td> Φ σ</td>
<td> Φ X 4-J □</td><td> > σι ο</td><td> i£ c »—f</td><td> σ c t</td><td> ro CL V) □</td>
<td> CZ</td><td> ο</td><td> o</td><td> o</td><td> Q</td>
<td></td><td> 4-ί</td><td></td><td> Q</td><td> Ci</td>
<td> ω</td><td> c</td><td></td><td> X</td><td> O</td>
<td> Z></td><td> Ο</td><td></td><td> UJ</td><td> U</td>
<img file="CA2633458C_D0008.tif" />
<img file="CA2633458C_D0009.tif" />
£ «> n:
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0010.tif" />
<img file="CA2633458C_D0011.tif" />
<img file="CA2633458C_D0012.tif" />
<img file="CA2633458C_D0013.tif" />
<td colspan="3"> c o — -Ü</td><td> c</td>
<td></td><td> V) r-</td><td></td><td> <Λ</td>
<td></td><td> aS</td><td> 2·</td><td> CL</td>
<td></td><td> xz oi</td><td></td><td> JZ</td>
<td></td><td></td><td> c</td><td> V)</td>
<td></td><td> o Φ</td><td> Φ</td><td> c o</td>
<td> 4-/</td><td> o</td><td> LΦ x:</td><td> 4-/ J2</td>
<td> c</td><td> Φ</td><td> 4-»</td><td> φ</td>
<td> Φ</td><td> 1- 4Λ</td><td> ©</td><td> c.</td>
<td> i_ Φ</td><td> __ σ» (U -S</td><td> c ra</td><td> ra</td>
<td> je 4_j</td><td> ω 5</td><td> ></td><td> (Λ</td>
<td> o</td><td> Er</td><td></td><td> c t_</td>
<td> c</td><td> 3 o</td><td> £2</td><td> ZJ</td>
<td> rc</td><td> ·—</td><td></td><td> 4-/</td>
<td></td><td> Φ £</td><td> ©</td><td> Φ</td>
<td> S</td><td> al 5</td><td> CÛ</td><td> Qi</td>
<img file="CA2633458C_D0014.tif" />
<img file="CA2633458C_D0015.tif" />
<img file="CA2633458C_D0016.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 tf CM <u bC TO
CL,
InFact - Help
<img file="CA2633458C_D0017.tif" />
<td colspan="2"> k_ r* <sup>w </sup>C _c GJ ±J ω o X c</td><td colspan="2"> Ό c □ C £ o</td><td> Οχ ω c o</td>
<td> (Λ *° <5 > J= X5</td><td></td><td> (Λ CL JZ</td><td> c ΰ</td><td> 4-F rc £</td>
<td> £ ·=</td><td></td><td> (Λ C</td><td> £</td><td></td>
<td> Ο (Λ</td><td></td><td> o</td><td> <υ</td><td> 75</td>
<td> tiâ rc _</td><td></td><td> 4-J rc</td><td> .c 3</td><td> uo</td>
<td rowspan="2"> C o h</td><td></td><td> £ 75</td><td> ft TO &Ξ</td><td> in (0</td>
<td></td><td> (Λ</td><td> 8<sup>U</sup></td><td> (Λ</td>
<td> 0</td><td> έ 4-/</td><td> £ □ 4-/</td><td> u Φ X 4-/ 4-/ '77.</td><td> c u. □ 4-/</td>
<td> U Φ</td><td> c</td><td> Φ</td><td> V)</td><td> 0J</td>
<td> C3 CX</td><td> GJ</td><td> Cd</td><td> £ ></td><td> cd</td>
<img file="CA2633458C_D0018.tif" />
<td> Φ</td><td></td><td> C ΰ</td>
<td> V)</td><td> c</td><td> □ c</td>
<td> rc</td><td></td><td> o □</td>
<td> x</td><td> ω</td><td> U o</td>
<td> £</td><td> Q.</td><td> rc <sup>u</sup></td>
<td> a</td><td> X</td><td> *m <y</td>
<td> Q.</td><td> ω</td><td rowspan="2"> Tj r· Φ ±5</td>
<td></td><td> c</td>
<td> Φ —:</td><td> o</td><td> VI =</td>
<td> GJ</td><td> 4-» rc</td><td> ></td>
<td> TO<sup>5 </sup>XJ tn</td><td> £</td><td> C φ Q V)</td>
<img file="CA2633458C_D0019.tif" />
<img file="CA2633458C_D0020.tif" />
ro c
Λ
V K
Λ
V .c ω
□ OQ
A
4-» ft >
Λ c o 4-/ c
Ü
<img file="CA2633458C_D0021.tif" />
<img file="CA2633458C_D0022.tif" />
<img file="CA2633458C_D0023.tif" />
<img file="CA2633458C_D0024.tif" />
<img file="CA2633458C_D0025.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0026.tif" />
<img file="CA2633458C_D0027.tif" />
<td></td><td> o</td>
<td> Φ</td><td> u</td>
<td> <u</td><td> <u</td>
<td> u</td><td> TJ</td>
<td> ΧΣ</td><td> L.</td>
<td> 4-*</td><td> o</td>
<td> V) Z3 O</td><td> <u £</td>
<td> ></td><td> 4-/</td>
<td> φ</td><td> (0</td>
<td> 1_</td><td> _c</td>
<td colspan="2"> Q_</td>
<td> Φ</td><td> <u</td>
<td> x:</td><td> 4-/ o</td>
<td></td><td> z</td>
<td> o</td><td> •</td>
<td></td><td> 4-»</td><td> 4-/ p—</td><td> — I<sup>-</sup></td><td> —· J—</td><td></td>
<td> A—. (Λ □</td><td> V) c Q</td><td> c O °</td><td> Φ So</td><td> Φ 5» 20</td><td> Φ 2</td>
<td> CÛ</td><td> u</td><td> 8 u</td><td> v> u</td><td> X! (J</td><td> ,V)</td>
<td></td><td></td><td> ></td>
<td></td><td> X)</td><td> X)</td>
<td></td><td> ω</td><td> ω -</td>
<td></td><td> * ω</td><td> Φ c</td>
<td> ra 4-/</td><td> ί- φ Φ χ:</td><td> φ TJ</td>
<td> ra</td><td> □ υ</td><td> □ c</td>
<td> TJ</td><td> σ* *-</td><td> σ =<sup>3</sup></td>
<td> ra +-* φ .</td><td> φ S 4-J VI</td><td> Φ 4U C</td>
InFact - Help
<img file="CA2633458C_D0028.tif" />
TJ C c o ti ra relationships appear. The result display can be customized using the preferences page, as discussed in the Preferences section later in this document. Results can also be sorted In various ways for easier viewing using the tabs along the top of the result table. Clicking on an individual result will take you to the sentences in the document where the relationship between the entities was found.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 c
c
V
C c a
<img file="CA2633458C_D0029.tif" />
<img file="CA2633458C_D0030.tif" />
<img file="CA2633458C_D0031.tif" />
<img file="CA2633458C_D0032.tif" />
<img file="CA2633458C_D0033.tif" />
<img file="CA2633458C_D0034.tif" />
<img file="CA2633458C_D0035.tif" />
<img file="CA2633458C_D0036.tif" />
<img file="CA2633458C_D0037.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0038.tif" />
<img file="CA2633458C_D0039.tif" />
<td> <υ</td><td> *</td><td> *</td><td> X</td>
<td> > _ 0) <u</td><td> V</td><td> V</td><td> (A □</td>
<td></td><td> X</td><td> x</td><td> CQ</td>
<td> xE</td><td> V) □</td><td> σι 3</td><td> A</td>
<td></td><td> CO</td><td> CÛ</td><td> *</td>
<td> jè<sup>-</sup> Q •C 1-</td><td> •</td><td> •</td><td> •</td>
<td> .C o</td><td></td><td></td><td></td>
<td> Uj LU</td><td></td><td></td><td></td>
<img file="CA2633458C_D0040.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0041.tif" />
P-
<img file="CA2633458C_D0042.tif" />
<td> ΙΛ</td><td> c</td><td rowspan="2"> V» Φ (Λ</td><td></td>
<td> (V</td><td> o</td><td></td>
<td> «3 ></td><td> (Λ fl) 0)</td><td> □ rtj <j</td><td> u Φ ω</td>
<td> «3</td><td></td><td> <0</td><td> rc</td>
<td></td><td> 4-i</td><td> £Z</td><td> TJ Φ</td>
<td> rt)</td><td> fl)</td><td> 4-/</td><td> c *-</td>
<td> Ό fl)</td><td> ></td><td> 4-Γ</td><td> 5<s</td>
<td> Φ £</td><td> X) *o d)</td><td> «3 E 1_</td><td> 7λ V) g =</td>
<td> u</td><td> 4-/ «J</td><td> £</td><td></td>
<td> c Ό</td><td> u fl] Ô,</td><td> CD c</td><td></td>
<td> <u Q. yi XZ</td><td> <v (Λ φ</td><td> o Φ x:</td><td> ο Ϊ U δ !_ (Λ</td>
<td> 4-J</td><td> >u</td><td> w</td><td> z o</td>
<td> 5</td><td> 4-i ω □</td><td> C *—<</td><td> 111 *4 Σ -</td>
<td> Ό <U o</td><td> E</td><td> 4-/ (XJ</td><td> n o. u □</td>
<td> cn</td><td> “O</td><td> E</td><td> O c</td>
<td> (ü</td><td> CZ</td><td> u</td><td> Q (U</td>
<td> 4-*</td><td> flj</td><td> O</td><td> -</td>
<td> ω</td><td></td><td> u-</td><td> s O</td>
<td> c <v E □ o</td><td> Φ Έ o .22</td><td> Q 0J 4-J (Ό > Φ</td><td rowspan="2"> cn -a S <u z E</td>
<td> o</td><td> x:</td><td> L.</td>
<td> O -LJ</td><td> 4-/ C</td><td> .0 X) fl)</td><td> o s u s</td>
<td> o> o</td>
<td> .e xz</td>
<td> u</td>
<td> - ro</td>
<td> -p <v</td>
<td> tw</td>
<td> flj o</td>
<td> O 4^</td>
<td> Ό 4J</td>
<td> = C</td>
<td> 5 o</td>
<td> flj °-</td>
<td> > O</td>
<td> •° c</td>
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0043.tif" />
<img file="CA2633458C_D0044.tif" />
<img file="CA2633458C_D0045.tif" />
<img file="CA2633458C_D0046.tif" />
n c TO cn c Φ
<img file="CA2633458C_D0047.tif" />
<img file="CA2633458C_D0048.tif" />
<td> Φ</td><td> ω</td><td> 4-J <ϋ</td>
<td> Cl E</td><td> > Λ</td><td> -C 4-1 u</td>
<td> TO</td><td></td><td> (L></td>
<td> X</td><td> x:</td><td> XI</td>
<td> <D L_</td><td> v> 3</td><td> E</td>
<td> ZJ</td><td> CÛ</td><td> <u</td>
<td> o</td><td></td><td> E</td>
<td> c t—<</td><td></td><td> a!</td>
<img file="CA2633458C_D0049.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
CL
<img file="CA2633458C_D0050.tif" />
<img file="CA2633458C_D0051.tif" />
c <K
C σ ί c
Ο
<td> c</td><td colspan="2"> K Λ C o Ό C rc X rc A</td>
<td> V) rc</td><td></td><td></td>
<td> d</td><td> rc ></td><td></td>
<td> φ</td><td> £</td><td></td>
<td> JJ</td><td></td><td></td>
<td> (0 Φ</td><td> rc</td><td></td>
<td> c</td><td> αί</td><td></td>
<td> Φ</td><td> O</td><td></td>
<td> X)</td><td> φ</td><td> (Ô</td>
<td> c</td><td> u</td><td> rc</td>
<td> 8</td><td> rc o. (/)</td><td> TJ φ</td>
<td> (A C</td><td> 2</td><td> 4J rc 4J</td>
<td> rc</td><td> Φ</td><td> V)</td>
<td> Φ</td><td> rc</td><td> Φ</td>
<td> o o</td><td> ί-</td><td> Φ</td>
<td> X</td><td> ο</td><td> X</td>
<td> Φ</td><td> Z</td><td> o</td>
<td> X 4-J 4J</td><td> O z</td><td> rc</td>
<td> rc</td><td> <</td><td> c</td>
<td> X 4-J</td><td> Ό</td><td> ra u</td>
<td> Æ</td><td> C rc</td><td> Ê?</td>
<td> o</td><td> CD</td><td> φ</td>
<td> c</td><td> c</td><td> □</td>
<td> V</td><td> Φ</td><td> cr</td>
<td> o (Λ</td><td></td><td> φ X</td>
<td></td><td></td><td> H</td>
<img file="CA2633458C_D0052.tif" />
<img file="CA2633458C_D0053.tif" />
<td></td><td> Φ (Λ E</td><td> AJ u</td>
<td> φ</td><td> X</td><td rowspan="2"> LL c</td>
<td> X</td><td> Q.</td>
<td> □ λ</td><td> C</td><td> t—4</td>
<td> TJ</td><td> □ o</td><td> Φ X</td>
<td> Φ</td><td> c</td><td> AJ</td>
<td> TJ</td><td> L.</td><td> «></td>
<td> ’in</td><td> o</td><td> Si!</td>
<td> .Ξ</td><td> (Λ c</td><td> Φ x</td>
<td> E</td><td> □</td><td> TJ</td>
<td> u</td><td> o</td><td> o</td>
<td> <D 4-J</td><td> c l_</td><td> E</td>
<td> Φ</td><td> Φ</td><td> u.</td>
<td> X</td><td> X</td><td> O</td>
<td> 4J</td><td> 4J</td><td> i_</td>
<td> 4-J</td><td rowspan="2"> Φ</td><td> Φ</td>
<td> □</td><td> X</td>
<td> Cl</td><td> Φ X</td><td> E</td>
<td> O</td><td></td><td> □</td>
<td> 4J</td><td> c</td><td> c</td>
<td> TJ Φ</td><td> rc u</td><td> rc</td>
<td> Φ</td><td> c</td><td> V)</td>
<td> C</td><td> o</td><td> rc</td>
<td></td><td> AJ u rc</td><td> X φ V)</td>
<td> □ o</td><td> c rc</td><td> rc L. X</td>
<td> >></td><td> u_ Λ</td><td> ex</td>
<td> (Λ Φ AJ</td><td> Ct c</td><td> c X</td><td colspan="2"> 5 E ω Γ qj w X rc</td>
<td> o</td><td> «V·</td><td> AJ</td><td> Φ</td><td> CO i-</td>
<td> □ CT</td><td> V) a</td><td> 5</td><td> Δ4</td><td> >>X <0 Q.</td>
<img file="CA2633458C_D0054.tif" />
en c
TJ
C XI « z Q (Λ □ V)
C
V) rc u_ O
C o AJ c c φ
τ>
<img file="CA2633458C_D0055.tif" />
<u X H
Here the query DNA binding sequence > * would probably not return this sentence as a result, because 'DNA' and 'binding' are modifiers that are not considered part of the source of any actions. Therefore, usinj
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0056.tif" />
<img file="CA2633458C_D0057.tif" />
*
Λ
K
<img file="CA2633458C_D0058.tif" />
* Λ
<img file="CA2633458C_D0059.tif" />
<img file="CA2633458C_D0060.tif" />
<img file="CA2633458C_D0061.tif" />
Actions are defined by verbs or groups of verbs. When verbs are specified in queries in present tense, by default all forms and tenses of the verbs will be included in searches. For example, if the query includes the verb talk, results will also include relationships that contain the forms talked or talking. Additionally, similar verbs like the various forms of the word speak will also be searched. The InFact® system
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
CM o
<img file="CA2633458C_D0062.tif" />
eu Λ
<img file="CA2633458C_D0063.tif" />
<img file="CA2633458C_D0064.tif" />
<img file="CA2633458C_D0065.tif" />
<td></td><td> 'ts</td><td></td>
<td></td><td> S » \</td><td></td>
<td> Ή £ 2?</td><td> w</td><td> <υ Λ</td>
<td> ω</td><td> <Z) PH</td><td> Ο</td>
<img file="CA2633458C_D0066.tif" />
The InFact® system defines a number of default standard ActionTypes, and can be additionally customized to include additional corpus-specific ActionTypes. ActionTypes are generally created by a InFact System Administrator at the time when documents are ingested. Usually corpus-specific ActionTypes will be much more effective than the ones provided by default. The following is a table of definitions for the standard
ActionTypes:
<img file="CA2633458C_D0067.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0068.tif" />
InFact - Help
<img file="CA2633458C_D0069.tif" />
<img file="CA2633458C_D0070.tif" />
would return all instances in the corpus in which the words malignant and cancer are found within 10 words of each other. This allows users to search for specific terms that may be separated in the documents by several other words, or several lines of text. Note that besides being a valid query by itself, this would
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0071.tif" />
<img file="CA2633458C_D0072.tif" />
also be valid if appended to a Source > Action > Target relationship query (and prefixed by the
<img file="CA2633458C_D0073.tif" />
<img file="CA2633458C_D0074.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 ontology with terms such as [person] in it. Custom ontologies can also be associated with corpus data during ingestion. For more information about ontologies, see the Ontology section below.
<img file="CA2633458C_D0075.tif" />
<td> c</td><td> w</td><td> C</td><td> ,o</td><td> C</td>
<td> w</td><td> v</td><td> 0J</td><td></td><td> Φ</td>
<td> (A</td><td> Q</td><td> V)</td><td></td><td></td>
<td> (A</td><td> S</td><td> (A</td><td></td><td> ω</td>
<td> □</td><td> Éj</td><td> □</td><td> CL<</td><td> □</td>
<td> T</td><td></td><td> X</td><td> C O</td><td> X</td>
<td> E (U</td><td> ’h</td><td> E ro</td><td> a à</td><td> E</td>
<td> Ό</td><td> H</td><td> •o</td><td> g</td><td> TJ</td>
<td> TJ</td><td></td><td> T</td><td></td><td> T</td>
<td> rtJ</td><td> û</td><td></td><td> Ë</td><td></td>
<td> ω</td><td> rj</td><td></td><td> U- 3</td><td> ω</td>
Note that if you use common words or a wildcard here, many of the entities that are returned may not be particularly useful due to the commonality of the linking word. For instance, if Hussein and Al Qaeda were both linked with the term country, you would probably find that in the documents the sentences referre ’d r qC r— c c c P·
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 <4c
IT.
<img file="CA2633458C_D0076.tif" />
<img file="CA2633458C_D0077.tif" />
<td> 1</td><td> U-4</td>
<td> o</td><td> Φ</td>
<td> £</td><td></td>
<td> *4-<</td><td> a</td>
<td> Q</td><td> o</td>
<td> k-<</td><td></td>
<td></td><td> a</td>
<td> £</td><td> §</td>
<td></td><td> b</td>
<img file="CA2633458C_D0078.tif" />
<img file="CA2633458C_D0079.tif" />
<img file="CA2633458C_D0080.tif" />
The results table contains three columns: a Source column, an Action column, and a Target column in that order. The first column contains the sources of each relationship, or die entities that are performing some action. The second column contains the actions that define the relationship, and the third column contains the targets in the relationships, or the receivers of the actions. These elements are displayed in blue text, a
<img file="CA2633458C_D0081.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0082.tif" />
<img file="CA2633458C_D0083.tif" />
Setting a nested search allows users to search the results of a given search, that is, a nested search. If the results returned from a search are numerous and you wish to drill down further within your result set, you can set this feature to restrict future searches to the set of documents associated with the currently displayed result set.
<img file="CA2633458C_D0084.tif" />
<img file="CA2633458C_D0085.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0086.tif" />
<img file="CA2633458C_D0087.tif" />
<img file="CA2633458C_D0088.tif" />
<img file="CA2633458C_D0089.tif" />
M· CN
O r-
<img file="CA2633458C_D0090.tif" />
<img file="CA2633458C_D0091.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0092.tif" />
<img file="CA2633458C_D0093.tif" />
<img file="CA2633458C_D0094.tif" />
<img file="CA2633458C_D0095.tif" />
<img file="CA2633458C_D0096.tif" />
<img file="CA2633458C_D0097.tif" />
<img file="CA2633458C_D0098.tif" />
<img file="CA2633458C_D0099.tif" />
<img file="CA2633458C_D0100.tif" />
<img file="CA2633458C_D0101.tif" />
<img file="CA2633458C_D0102.tif" />
<img file="CA2633458C_D0103.tif" />
<td></td><td colspan="2"> v> V) flj</td><td> 4J</td><td> g 33 c</td><td> Ό</td><td> V u c</td>
<td></td><td> u</td><td></td><td> C</td><td> V</td><td> C</td><td rowspan="2"> > o u</td>
<td></td><td> Ό T3</td><td></td><td> 3 O</td><td> o V</td><td rowspan="2"> TO Ά</td>
<td></td><td> <</td><td> ΰ</td><td> u</td><td> ΰ</td><td> Q.</td>
<td></td><td> X</td><td> X.</td><td> •x</td><td> X.</td><td> χ.</td><td> χ</td>
<td> c</td><td> c</td><td> c</td><td> C</td><td> c</td><td> c</td><td> c</td>
<td> o</td><td> o</td><td> o</td><td> o</td><td> o</td><td> 0</td><td> o</td>
<td> 53</td><td> ‘S</td><td> *3</td><td> ♦3</td><td> *3</td><td> *3</td><td> 33</td>
<td> ra</td><td> ra</td><td> a</td><td> ra</td><td> re</td><td> re</td><td> a</td>
<td> u</td><td> u</td><td> u</td><td> u</td><td> u</td><td> u</td><td> u</td>
<td> 0</td><td> 0</td><td> 0</td><td> 0</td><td> 0</td><td> 0</td><td> o</td>
<td> _J</td><td> -J</td><td></td><td> -j</td><td> -j</td><td> -J</td><td> -j</td>
> >
£££££££
4-> «3 S3 S 35 55 33
<td> c</td><td> c</td><td> c</td><td> c</td><td> c</td><td> c</td><td> C</td>
<td> UJ</td><td> U1</td><td> IU</td><td> IU</td><td> U1</td><td> UJ</td><td> IU</td>
<td> *x</td><td></td><td> *s</td><td> s</td><td> X</td><td> X.</td><td> X.</td>
<td> u.</td><td> u.</td><td> u.</td><td> u.</td><td> u.</td><td> u.</td><td> u.</td>
<td> M</td><td> M</td><td> M</td><td> M</td><td> M</td><td> H</td><td> M</td>
<img file="CA2633458C_D0104.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Paee 19 of 24
InFact - Help
<img file="CA2633458C_D0105.tif" />
<td> c o</td><td> c o</td><td> C .2</td><td> c o</td><td> c o MW</td><td> G O</td><td colspan="2"> E ra</td><td> WI W V</td><td> v< « V> ra</td><td> w· ω ra</td><td> VI RM V) 0)</td>
<td> ra</td><td> *3 ra</td><td> *3 ra</td><td> ♦3 ra</td><td> A3</td><td> *3 ra</td><td></td><td> z</td><td> Q</td><td> a</td><td> a</td><td> a</td>
<td> N</td><td> N</td><td> N</td><td> N</td><td> N</td><td> N</td><td></td><td></td><td></td><td></td><td> V</td><td> X</td>
<td> e ra</td><td> Έ ra</td><td> MM c ra</td><td> c ra</td><td> C (Q</td><td> C ra</td><td> c 0 <A</td><td> c o v>.</td><td> G O <A</td><td> 6 O «Λ</td><td> a o (Λ</td><td> a o (A</td>
<td> O)</td><td> o</td><td> σι</td><td> G)</td><td> CD</td><td> cn</td><td> u</td><td> u</td><td> u</td><td> L*</td><td></td><td> t></td>
<td> u</td><td> u</td><td> u</td><td> u</td><td> u</td><td> u</td><td> V</td><td> V</td><td> V</td><td> «</td><td> V</td><td> V</td>
<td> o</td><td> O</td><td> 0</td><td> O</td><td> o</td><td> O</td><td> 0.</td><td> Q.</td><td> 0.</td><td> a.</td><td> a.</td><td> a.</td>
<td> c</td><td> c</td><td> G</td><td> G</td><td> c</td><td> c</td><td> c</td><td> c</td><td> a</td><td> a</td><td> a</td><td> G</td><td> W” a</td><td> c</td><td> w·* G</td><td> c</td><td> c</td><td> WW c</td><td> c</td><td> c</td><td> w· c</td><td> c</td>
<td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> Ul</td><td> IU</td><td> Ul</td>
<td> '•v</td><td></td><td></td><td></td><td></td><td> V.</td><td></td><td></td><td></td><td></td><td> ·»-.</td><td> x.</td><td></td><td></td><td> x</td><td></td><td> •x.</td><td> •*S.</td><td></td><td></td><td></td><td></td>
<td> il</td><td> IL</td><td> il</td><td> IL</td><td> IL</td><td> IL</td><td> IL</td><td> IL</td><td> IL</td><td> IL</td><td> IL</td><td> U.</td><td> IL</td><td> IL</td><td> IL</td><td> IL</td><td> U.</td><td> IL</td><td> IL</td><td> IL</td><td> IL</td><td> IL</td>
<td> M</td><td> M</td><td> l-i</td><td> M</td><td> M</td><td> M</td><td> M</td><td> H<</td><td> M</td><td> M</td><td> H</td><td> M</td><td></td><td> M</td><td> M</td><td> M</td><td> M</td><td> G</td><td></td><td> M</td><td> M</td><td> M</td>
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 o
o
C4
<img file="CA2633458C_D0106.tif" />
InFact - Help
<img file="CA2633458C_D0107.tif" />
<img file="CA2633458C_D0108.tif" />
<td colspan="2"> ÇÛ C</td>
<td></td><td> TS</td>
<td> ΰ</td><td> Ο Ό</td>
<td> .2</td><td> cl υ</td>
<td> *4—»</td><td> ω 2></td>
<td> *3</td><td> tH</td>
<td> Ό</td><td> d 11·</td>
<td> C3</td><td> Xi .(Λ</td>
<td> 5 6 o o</td><td> c cu <u a .S</td><td colspan="2"> ΕΛ (Λ $< .2 a 1 § £ rl g g 0 η q 8 « Ü3·-</td>
<td> @ U</td><td> t</td><td> g</td><td> cx< E u w α o</td>
<td></td><td> 0</td><td> 8</td><td> — 2 fi</td>
<td></td><td> cu K a</td><td> =) £</td><td> 0 tn 0 g * 3 $ a a</td>
<img file="CA2633458C_D0109.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
CM <+-( O •o u
Cm % £ © 1 <D Vl g i>» .a B i^» s o 3 1 <L> tO fr a Ή a s •g
É « ω ^3.a
I
O U3 •T* <sup>Γ</sup> L4
O i <L> to
U4 a &. © fri i?
« Ο «Λ l| _ sï 5 .2 o a ë < P>-fi 5 ë <sup>y ω </sup>υ tn a rs § ~ Ks a ° fl O CL «5 Ç; «3Û g
Ό g «s ’o
3 i tn
Ό
4>
j>
c9 *£d
Q .
□ to to α &
φ ο •a ο •g
C5 Ο f ο .8 « 3λ fr B
O <□ I <u o
O a
Ή. •a a .a
Ό § <s <υ fr ί (D *8 o g <U Î3 M S
O
Vi <sub>>w </sub>ë ΰ ri o 52 <sup>3</sup> i .o s .2-8 o
ri °i3 il T.s fi © 03 •w ,(D
S «
O 45
O
4> H _a « 5g <u
Vl .a e>û ·© § i
rO tC *2 45}
8 8 s <sup>1/1</sup> § Q <υ T3 Æ <4-4
Ρ.Ό i il
Is o
£
Q JD Ί5 to
4>
4>
vi
Φ
X
0) •g a oa ω -g vi td j3 a a a fR fr o a o
1 G a-3 ° . ’Τί 0J ^5
Q O • S 5 <U <e
Vi
Vi ’K)‘ o j Se cd <sup>1 </sup>O M
Ό ·
O d O *! vi ;
V) ' cd *
O <sup>;</sup> £
vi α *θ ΓΥ <sup>w</sup>
Φ Ο X » zz .cr3
Ό «A <υ pS >.U cd · cï< 3? vi JJ
I a cZ
O o JU to <u a q-<
© ca a 73 G_J Cd Xm 1-4 CL Q a
to g
α>
>%
I u< O i i? A§ ω 8 £ % a?
<υ I Λ
Q
S φ a
Μ to cd
Λ O g χΓ Έ td _ £ 2 45 i § eu y 57 « <z> © E £ Cd Q ca td 8 -<sup>a </sup>ω x) g 2 <o o ω l- U o <L>
fr o 1 o
£3 en
E
1> 3 a © &<sup>55</sup>
Kîa ë © 3 o l-i £ O ♦—<
S § o 43 <u c3 o X <u ’S <u 3 Vi ë'-â
I a o a
i £ Ό j> a 8 φ 45 8 >> a ’t?
a <υ
D
Vi
Vi
O cd § o
Vl © tL
4-» & a .a
TJ „ & •a è' <sup>></sup> .a ω □ Λ
Q
T·^ iS § > a a o
Vi <L>
Q
4-» ë £
Vi
I ω <Z) •s © &8 Vl <υ
Z <sup>73 </sup>q a M
S 8 δ t$
4-» to
Vi (U •a to Cd bp a Q <a λ Ê3 S a ” I o ω a .a ·© 3 © ·© I 3 .
&.a ·© © ο
Vi e o X?
Vi ’H
Vi a 8 vi 'S £
τ’ — fri ê3
121
Q
Vi i
<υ
Vi c &
o $ O _ o
O tg S 2 « 2 | H “ « 8 U O &?
U O -a <sup>Λ</sup> eu *a o to <3 ll
-4-» .i
g.<sub>s</sub> • u = u <u ·£ «3
Q ©
1-4 -w .a
4-»
Vi g
I
CÔ <c
J i co?
O A
B a 8 'a ft s
Stg o o I .a <8 ri '52 ©
«J c3 Ό g
G Φ
Ό JB to g % «o itj vl g o to | a
Vi <υ Vi <D to I i et .S Ό .a s |X4 tS
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
<img file="CA2633458C_D0110.tif" />
<img file="CA2633458C_D0111.tif" />
<img file="CA2633458C_D0112.tif" />
<img file="CA2633458C_D0113.tif" />
<img file="CA2633458C_D0114.tif" />
<img file="CA2633458C_D0115.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 o <4c r o a c c P
<img file="CA2633458C_D0116.tif" />
<img file="CA2633458C_D0117.tif" />
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
703°
<img file="CA2633458C_D0118.tif" />
s
<img file="CA2633458C_D0119.tif" />
<img file="CA2633458C_D0120.tif" />
<img file="CA2633458C_D0121.tif" />
cd
<img file="CA2633458C_D0122.tif" />
<img file="CA2633458C_D0123.tif" />
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
APPENDIX B
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
QUICK TOUR OF
INFACT® 3.0
<td> Introduction</td><td> 2</td>
<td> Note</td><td> 2</td>
<td> Acknowledgment</td><td> 3</td>
<td> The InFact® Interface</td><td> 4</td>
<td> Event Search</td><td> 6</td>
<td> Overview’</td><td> 6</td>
<td> Entity Search</td><td> 19</td>
<td> Relationship Search</td><td> 21</td>
<td> Direct Relationships</td><td> 21</td>
<td> Indirect Relationships</td><td> 22</td>
<td> Corpus page</td><td> 24</td>
<td> Ontology Search</td><td> 24</td>
<td> Synonym Search</td><td> 25</td>
<td> Corpus Information</td><td> 25</td>
<td> Preferences</td><td> 26</td>
<td> Include Negated Actions</td><td> 27</td>
<td> Search Modifiers</td><td> 27</td>
<td> Display Modifiers</td><td> 27</td>
<td> Enforce Strict Bi-directionality</td><td> 27</td>
<td> Search Ontology Path Name as Term</td><td> 27</td>
<td> Number of Relationships per Page</td><td> 27</td>
<td> Number of Documents per Page</td><td> 27</td>
<td> Number of Documents per Page</td><td> 28</td>
<td> Sort Scheme</td><td> 28</td>
<td> Surrounding Sentences to Export</td><td> 28</td>
<td> For Content Publishers</td><td> 29</td>
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
INTRODUCTION
InFact 3.0 is designed for the dedicated knowledge worker whose mission is the analysis and production of intelligence from human language or linguistically based information. InFact is not a keyword search, and it is not for casual consumers of information.
InFact’s mission is to drive the knowledge worker from keyword search to event discovery. InFact extracts events and relationships from documents, not just entities. By capturing relationships, InFact empowers the analyst with the ability to discover and track activities.
InFact can produce concept maps summarizing vast amounts of information across many documents related to a given person, place, or entity, so you can quickly zero in on what you are looking for. For the intelligence analyst who is typically overwhelmed by volumes of heterogeneous and noisy information sources, this is a new and efficient way of navigating the information sources. At a high level, InFact can provide a bird's eye view of all activities involving one or more entities. The user can narrow the search for a particular type of activity, obtain cross-document sentence summaries of particular events, and hypernavigate from the sentence summaries to the context of the documents) in which the action is originally described.
No other commercial product provides this level of accuracy, performance and capabilities. InFact features include the following:
• Discover relationships among entities.
• Discover actions involving an entity.
• Search by keywords and concepts.
• Highlight answers within paragraphs.
• Create or modify searches based on sentence structure.
For help or more information, contact search@infact.com.
Note The following pages are meant to illustrate the functionality of
InFact . This document is not a tutorial. Search engine results may vary from those presented in the screen shots contained in this document
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Acknowledgment
Quick Tour of InFact® 3.0
InFact is currently certified for use with Microsoft Internet Explorer 5.5 (or higher) and Netscape Communicator 7.0 (or higher).
The data source for all the document text is the Reuters Corpus, Volume 1, English language, 1996-08-20 to 1997-08-19 (Release date 2000-11-03, Format version 1, correction level 0).
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
THE INFACT® INTERFACE
The InFact user interface is easy to use. The different search interfaces supported by the system are all linked to the main page, as shown in Figure 1.1.
InFact
<img file="CA2633458C_D0124.tif" />
Search | Corpus | Preferences | History | Help
Sfmr Qmrv 4cn<r<tar
<img file="CA2633458C_D0125.tif" />
Figure 1.1: User interface for InFact 3.0 © Copyright 2001-2004. All rights reserved.
The InFact system supports document keyword searches, as well as more powerful and flexible searches based on specific queries. Users can enter in a keyword or key phrase for document results, or they can enter in a relationship query that conforms to InFact Query Language (IQL) syntax, and press the Search button to view results. Both types of searches are discussed in this document.
In addition, four other links are available to help you refine and improve your searches, or manage your result display. The Corpus and Preferences pages are explained in detail later in this document:
• Corpus The corpus page provides you a way to view information about the corpus of documents being searched, including any custom ontologies submitted, metadata associated with the documents, corpus-specific synonyms, and any ActionTypes defined.
• Preferences Setting preferences provides you a way to customize the user interface, and constrain your search results.
• History The history page provides you a way to view and navigate back to the results of previous queries from the same browser session.
• Help Allows you to access the help system.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
When using the interface for the first time, you can get help constructing relationship queries by clicking the Show Query Generator link. This will bring up a Query Generator component that will help you build a valid query. Once you are familiar with the syntax, you will probably find it easier to type in the queries directly. However, while getting started the Query Generator makes it easier to see how queries are constructed and how the system works. In this document we will not discuss the query syntax in detail; for more information consult the online help which contains more in depth explanations and examples.
In Fact·
Search I Corpus | Preferences | History [ Help
Hida Query Oanefetor
Query Generator - Specify Relationship:
<img file="CA2633458C_D0126.tif" />
<img file="CA2633458C_D0127.tif" />
Figure 1.2: The Query Generator component.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact 3.0
EVENT SEARCH
Overview The InFact system provides a way for you to find documents based on a keyword search, or information in the form of events or relationships between entities in a given corpus or body of documents. To see an example of how the system works, simply type a keyword into the search input field and press the Search button. For example, let's type in “china buy” and execute a search. You should see the display presented in Figure 1.3:
InFact·
<img file="CA2633458C_D0128.tif" />
Search | Corpus | Preferences | History | Help
Show Ovary G«r>«r»tor
<img file="CA2633458C_D0129.tif" />
Basic document level search results are displayed. To get reUbonships, try:
<> * <> * · returns all relationships involving cfitaa bvf thin» bnr >*>'*' - returns all relationships uhere cii»» bjf does something far < * < * · returns all relationships where something is done to cA*na btjf
Document results 1 - 50 of ebout 165:
Page 1 of 4 Hext
<img file="CA2633458C_D0130.tif" />
1) FBIS-CHI-94-101 Daily Report 1 May 1994
Oate=1971.Ol.10-05:17:14; Aiithor=Jimmy Carter; Price=285; Creation0ate=2003.04.18-18:57:09 ... In particular, they know that in order to have a share in the highly competitive global satellitelaunching market, China has to win launch contracts at a low price ...
2) Economy: Consumer Confidence Hits 17-Year Low. But Retailers Sav Fight Is Far From Lost —
Buyers Aren't Charging In. Stores Note, but Things Could Be Much Worse---Bv Lawrence
Ingaj.sia.Staff.Wirtgf of The Wall Street J
Date=1971,01.10-05:17:14; Author=3irr.m·/ Carter; Pnce=2S5; CreadonDate=2003.04.18-13:18:42 ..., specialty store for china, silver and home accessories, company President Bruce Meyer describes the sales drop as ...
3) International: Yugoslav 'Tourists' Flood Into China. Pack Their Bags After They Get There--Bv
James McGregor Staff Reporter of The Wall Street Journal
Date=l971.0l.OS-19:00:27, Auttior=Gera!d R. Ford: Pnce=284; Craation0ate=2003.04.18-18:15:16 ... BEIJING — As the centerpiece of the new $450 million World Trade Center, the China World Hotel was envisioned as an elegant refuge for refined tourists, wealthy traders and globe-trotting tycoons ...
Figure 1.3: An example of a document keyword search.
The results are presented as a list of document titles, with a description of the metadata associated with the documents, and a brief excerpt of text from the document containing your keyword or phrase. If you click on a title, you will link to the document.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
This provides a straightforward means of determining what information is contained in your corpus. However, you might get too many documents back to review efficiently. Also, note that the second result here refers to china home accessories, which is not what you want. Another alternative would be to use the InFact Query Language to specify what you want more accurately in terms of events that occurred or relationships between different entities.
To conduct an Event Search, you need to specify a query and submit it to the InFact system. This involves understanding a bit about the InFact Query Language.
The query is based on specifying a relationship between a source entity and a target entity, involving an action. The source entity is the performer of the action, and the target entity is the receiver of the action. For example, in the sentence
The United States searched Iraq for weapons of mass destruction.
The United States is the source of the action “search, and Iraq is the target The core source - action - target relationship expressed in this sentence could be represented in a query form as:
United States > search > Iraq
If you enter this query into the main search input field and press the Search button, the system displays a table with all the relationships that match the search quety. The relationships are displayed in three columns, with the sources, actions, and targets highlighted in blue text. The action is an active link, which when clicked on takes you to the sentence and the document where the relationship between the source and target was found.
As an example, lets type into the search input field:
China > buy > *
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact 3.0
Here the asterisk means that we are not specifying a target; we are interested in all target entities. Now press the Search button. You should see results displayed in the table as in Figure 1.4.
InFact’
Search | Corpus | Preferences | History | Help
Shar Qvcrr 9<nsr«W'
Xé titScflÜ e'ry -ichinasbuyÿ
.........
Relationship results 1 - 99:
<img file="CA2633458C_D0131.tif" />
china china people : in china china china travel agency of hong kong hong kong china travel agency china navigation subsidiary : of british shipping company john swire son china soviet union china china china
Chinese : airline growing i number : of well-to-do Chinese buvf2l buy buy : at will buy buy buy r at cost of pounds 37m each buy buy buy : in a few large autumn last purchase potential : buy : in world market buy buy : for private use
U.S. wheat additional ode million metric ton : of wheat various : kind : of food '60,000 : metric ton : of refined sugar stock three : of yard capesize vessel
2S0,000 : ton : of refined sugar everyone : waiting us : wheat
7S7 : boeing car
Figure 1.4: An example of an Event search.
As you can see, this search produces a list of relationships found in the documents that involve the country China buying something. In addition to the verb buy, other similar verbs (e.g., acquire) would be included, if you scrolled down the display. Also, contextual information such as modifiers are displayed. You can choose not to see this information by specifying the appropriate parameter in the Preferences page.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
You can sort your results In different ways by selecting one of the following tabs. For example, you can:
• Sort by Action - sort by action verbs in alphabetical order.
• Sort by Frequency - sort by relationship frequency.
• Sort by Similarity (the default) - sort by action verbs based on their similarity to the query action.
• Sort by Source - sort by the Source in alphabetical order.
» Sort by Target - sort by the Target in alphabetical order.
• Sort by Date - sort by any date information associated with documents.
• Sort by other metadata - sort by any other data associated with the documents during ingestion.
These options only sort the current search results. You can set a permanent default sort scheme by setting a similar parameter in the Preferences page.
From the search results in Figure 1.4, clicking the entry in the Action column links to a view of the document where the relationship was found. If we click on one of the document links, the document is displayed with the sentence highlighted. For example, click on the relationship where the target says “757: Boeing”. The resulting relationship is displayed in the context of the document, as shown in Figure 1.5.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact^3.0 jBuc .industry/,is -alsolaying what’ appears cq be/'-à'ispl'id ;founciâcidn'<sub>;</sub>fot:· .: expansion.. BP/T ïor example# ,οοώϊ agreement in May this year tor a'51
Lpèr- çeât stéfe\id,<sup>;</sup>A UDpilors foamÿaçécic dcid’piant in'/Ché’nàeilAQi«'/-sictiüem;.<sup>:</sup>-·./·· province;<sub>v</sub>Viyella hààViwrtsted sctoe Üpô'llàrs 100m in a web ôf xnillB<sub>r</sub> < .mostly concentrated'inear Tianjin',? dost; of, Beij.ingi Upilever; through-.its’.'·/ Malls Ice-cream/group fcas outlawed Utfoilars -50m to establish a factory and discributiod network in Beijidçri..BTR Is investing about Upollocs'90 in a bottling plant near Guapgrhouinsouthern Chiba; Pilkington which was . involved inthé establishment of afloat glass project, in Shanghai in 1903# is engaged in'three other projects.
Companies such as Rolls Royce# which hove been exporting to China for many years# are also doing well. ' :
The UK company, recently won a big order to' <sub>s</sub> , .
supply 42,of/its RB21Ï-S3S jet engines’ for .Boeing 757*s bought by Chinese airlines. Rolls Royce says it is'confident of winning futthec orders. . But as the China market continués to open# : so does competit ion become more intense# with the Americans .staking a claim for a bigger shore. The repent . high profile visit to Beijing of ’.Mr. Hon Brown# the <sub>;</sub> US Commerce Secretary; at the head of a delegation of 24 chief executive officers .'.of” leading American companies is just one indication 'of an ; .intensifying* .U9i';Xocus on ChinàT As Sir Michael Palllsec of the CBTG says: \0ur main worry is not competition I from other Europeans# but from-the thundering herd of Americans coming in.* I On a general economic front# China is redoubling its efforts to contain I inflation with a new campaign to curb rises in the prices of grain# cotton
Figure 1.5: The document where a relationship was found, with the sentence highlighted.
The action you specify can be a Specific action, or a Type of action. Action types encompass several different verbs and can be used to broaden a search. For example, rather than searching on the verb talk, you could search on the ActionType communicate, which would include not only talk but also similar verbs like speak or tell. Although the InFact system includes similar verbs in searches by default (as we see later), the action type may provide a more powerful means of expanding searches, particularly if you define your own corpus-specific action types. ActionTypes are are put in brackets when used in a query, like:
United States > [communicate] > Iraq
Remember that you can only use ActionTypes that have been defined for the system. You can see what ActionTypes have been defined on the Corpus page described later in this document.
Similarly, you can improve your search by a specifying an OntologyPath instead of a specific entity. Ontologies associated with the documents in the system express type or class information that
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0 can be used to allow users to search for specific types of entities, like ‘people’ or cities’. InFact supports a number of standard OntologyPaths. Examples of some of these are listed in Table 1.1.
Table 1.1: InFact StandardOntologyPaths
<td> OntologyPath</td><td> Subsets</td>
<td> IF/ Entity/Location</td><td> Address, City, Country', Island, Province, Sea</td>
<td> IF/Entlty/OrganizaÜon</td><td> Organization Name, Military Organization, Political Organization, Trade Organization, Government</td>
<td> IF/Entity/Person</td><td> Name, Female. Male, Designation</td>
<td> IF/Entity/Numeric</td><td> Number, Amount, Phone, Fiscal, Price, Percent</td>
<td> IF/Entity/Temporal</td><td> Date. Time, Time Period, Event</td>
Note
For a complete list of the standard OntologyPaths, see the Help link in the Web site. A table is provided with explanations of each. Most of the entity types are intuitive. In addition, an InFact System Administrator can submit one or more custom ontologies with corpus-specific OntologyPaths.
OntologyPaths must be specified inside brackets to make a valid query, like this:
United States > search > [country]
For example, imagine you want to see a list of corporate acquisitions. Specifically, you would like to see information about how' much money was spent To do this, we will specify “[Organization/Name]” as both the source and target entities. This is an OntologyPath defined
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0 by the InFact system that references any organization name. We’ll use “buy” for the action, and specify that an amount of money should appear in prepositional phrase near any relationships found: [Organization/Name] > buy > [Organization/Name] <sup>Λ</sup> [money] Also, we’ll sort the display by the dates associated with the documents where each relationship is found. To do this, we’ll go to the Preferences page and select “Reuters Date Published” as the sort scheme. If you press the Search button, you would see results as in Figure 1.6. Note that the dates are displayed on the left
In Fact
<img file="CA2633458C_D0132.tif" />
Search | Corpus | Preferences | History | Help
<img file="CA2633458C_D0133.tif" />
Relationship results 1 - SOO of about 2237:
<img file="CA2633458C_D0134.tif" />
Pago 1 of S next
<td colspan="2"> tm^Reuters-Oale ”</td><td rowspan="2"> Action (?)</td><td rowspan="2"> / / //j</td>
<td> Reuters_Oat</td><td> àz.Pubijshéd Source (7) /</td>
<td> 20/08/1996</td><td> crown pacific partners l.p.</td><td> buy</td><td> wash. : marysville , sawmill : from garka mill co ; inc for $2.7 million</td>
<td> 20/08/1996</td><td> sun· international hotels ltd</td><td> buy : for $210 million in stock</td><td> merv griffin television celebrity : griffin gaming entertainment inc</td>
<td> 20/08/1996</td><td> manufactured home communities inc</td><td> buy : for $387.3 million in cash</td><td> rival : chateau properties <sup>1 </sup>inc</td>
<td> 20/08/1996</td><td> commonwealth aluminum corp·</td><td> asavits</td><td> all : of castech aluminum group inc for share $20.50 . in cash</td>
<td> 20/08/1996</td><td> cerprobe corp</td><td> buy : under revised term for $5.8 million cash 400,000 share of cerprobe corp assumption of $1 million in long term debt</td><td> compuroute inc</td>
<td> 20/08/1996</td><td> penskeaUto centras inc.</td><td> October last : acauire</td><td> kmartcorp; automotive service : centre : for $112 million</td>
<td> 20/08/1996</td><td> commonwealth aluminum corp</td><td> buy : for $272.7 million</td><td> castech aluminum group inc</td>
<td></td><td></td><td></td><td> effective SO percent : interest : in p.rawford',' nriflCAtion hnldinns Zritvf</td>
Figure 1.6: Event result example in which companies were acquired.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
In this example, note that we added a clause to specify that we wanted to limit our results to those that mentioned money. In addition to specifying a source, action, and/or target, you can constrain your query by adding one or more clauses. For example, you can specify that a given term should be contained in a prepositional phrase near the relationship. You can also restrict your search to documents that contain a given keyword, or where the metadata contains a given value, such as a known author or date. You can see what metadata is associated with the documents in the corpus by going to the Corpus page. Here are some examples of how constraints are used:
United States > search > Iraq PREP CONTAINS Baghdad
United States > search > Iraq
DOCUMENT CONTAINS weapons
United States > search > Iraq
METADATA CONTAINS Date > 1990
These queries could be combined into a single query with three constraints. Also, to save time typing, we can replace PREP CONTAINS, DOCUMENT CONTAINS, and METADATA CONTAINS with the abbreviation characters ‘<sup>Λ</sup> and respectively:
United States > search > Iraq <sup>Λ</sup> Baghdad ; weapons # Date>1990 (For more information about constructing queries, see the online help.)
Now in our example, imagine that you were only interested in companies related to oil. You could add a clause that restricts the search to documents containing the keyword “oil”. This will only return results from documents mentioning oil. Here is what it would look like:
(Organization/Name] > buy > (Organization/Name] <sup>A</sup> (money] ; oil
If we re-run the search, we’d see something like Figure 1.7:
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour oflnFact® 3.0
InFact
<img file="CA2633458C_D0135.tif" />
Search I Corpus | Preferences | History | Help
Shov Outrv Gan«r*tcr
<img file="CA2633458C_D0136.tif" />
Relationship results 1 - 114:
<img file="CA2633458C_D0137.tif" />
19/08/1997 urs corp.
acquire owned privately : woodward-clyde group inc. : for ¢100 million in stock cash
18/08/1997
18/08/1997
18/08/1997
13/08/1997
12/08/1997
07/08/1997
28/07/1997 monterey resources inc. \bav. : for ¢106: monterey. milliontexaco inc. feuy monterey resources inc. buy·: forilOô monterey million zapata corp rand-.merchant bank equity investment vehicle : rmb ventures meteor industries inc gulf.canada resources ltd gulf canada resources buy : for share ¢8 acquire·: about 35 percent of commodity buy : for IS million in cash acquire mcfartand energy, inc· independent oil producer : monterey resources inc. : for more than ¢1:1 billion in move
California mcfariand energy inc.
envirodyne industries inc trading Anti : exatrade : for 45!
million rand|
I fleischli oil company inc!
:
stamppder.exploraüon ltd : in| friendly stock-swap worth abouti ctrli.o billion!
I
Figure 1.7: Event result display showing oil-related company acquisitions.
Let's do an example with an ActionType. Motion is one of the InFact system defined ActionTypes, and it defines a number of different actions related to motion:
Pope > [motion] > [location]
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
I©
Quick Tour of InFact 3.0
Note that OntologyPaths do not need to be capitalized. Figure 1.8 shows the results of this query when executed. Note that in the Action column we now see a number of different verbs defined by the ActionType “motion”.
InFact·
<img file="CA2633458C_D0138.tif" />
Search | Corpus | Preferences | History | Help shov ouiry qtoirater
<td></td><td></td><td></td>
<td colspan="2"> i^gntencLuerÿjlpope > [motion] > [locationl</td><td></td>
<td colspan="2"> Relationship results 1 -100 of about 362;</td><td> Page 1 of 4 mxt</td>
<td> Action Similarity</td><td></td><td> -CTML</td>
<td></td><td></td><td></td>
<td rowspan="2"> pope entourage pope</td><td rowspan="2"> go leave : for lesothb in convoy of car</td><td> supersonic : to Zambia</td>
<td> Johannesburg : jan smuts airport</td>
<td> pope dc-9 alitalia : plane</td><td> leave</td><td> rome</td>
<td> pope</td><td> take</td><td> vision : of united iriéstieni eürbpe to France</td>
<td> pope</td><td> meet</td><td> cuban : envoy</td>
<td> pope</td><td> meet</td><td> president : of el salv.adbr</td>
<td> pope</td><td> meet</td><td> libyan 2 : no.</td>
<td> pope</td><td> meet : in Zimbabwe</td><td> south a.frican ; bishop</td>
<td> pope</td><td> send</td><td> message : to lithuanian</td>
<td> pope</td><td> send : during one of pope on pope way to lesotho to Swaziland</td><td> greeting two : flight : over Vatican</td>
<td> pope</td><td> send</td><td> representative : to warsaw</td>
<td> pope</td><td> make</td><td> pope fourth : tour : of africa in September</td>
<td> pope : john paul ii</td><td> fly : to monday</td><td> french indian ocean : island</td>
Figure 1.8; Event search example demonstrating use of Actionijpes.
Another feature of the query syntax is that you can also use Boolean operators like AND, OR, and NOT. (Note that NOT must be used in conjunction with another term; it is not allowable to simply specify “NOT Israel”.) For example, here we are searching for suicide attacks that killed people anywhere but in Israel:
suicide AND (attack OR bombing) >kill>* ; suicide NOT Israel
We'll run the query with a simpler final clause:
suicide AND (attack OR bombing) >kill>* ; Israel
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
Figure 1.9 shows what the results would look like.
InFact
Search J Corpus | Preferences | History | Help
<img file="CA2633458C_D0139.tif" />
Relationship results 101 - 2OO of about 275:
Arfon Similarity
Page 2 of 3 Em Brut
<img file="CA2633458C_D0140.tif" />
<img file="CA2633458C_D0141.tif" />
<td> double suicide : bombing</td><td> kHlfSl</td>
<td> suicide· : bogibing .</td><td> klllfsl.</td>
<td> march 21 tel aviv suicide : bombing</td><td> kill[4]</td>
<td> suicide : attack</td><td> year last : kiHf3]</td>
<td> suicide : bombing</td><td> killf31</td>
<td> Palestinian suicide : bombing</td><td> last week : kilif31</td>
<td> two suicide : attack</td><td> killf21</td>
<td> separate' raid following twin suicide ; attack</td><td> day earlier ! kfllfZI</td>
<td> suicide : attack</td><td> kiHfël</td>
<td> islamist suicide bomb : attack</td><td> kitlf21</td>
<td> apparent suicide : attack</td><td> killia)</td>
<td> suicide : bombing</td><td> kill|21</td>
suicide : bombing kiH[2] : people three Israeli i woman : in tel aviv on friday three Israeli : woman : people ; in israel
S7 : people three : woman. : at tel aviv cafe bomber : people : in market in Jewish west Jerusalem scores : of Israeli three I woman : in tel aviv on friday three : Israeli
IS : paople : in jerusalem
Figure 1.9: Event result page demonstrating use of Booleans in query.
You could also search for events involving people. Imagine that you want to search for people who had met with Gaddafi. This could easily be expressed with the following query;
[Person/Name] >meet>Gaddafi
However, Gaddafi has several known spellings. In order to widen our search to incorporate as many of these as possible, lets use the wildcard character instead of specifying his name. This tells the system to search for any person whose name starts with ‘g’ and ends in ‘fi’:
[Person/ Name] >meet>g*fi
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
If we execute this search, we’d see this:
InFact
<img file="CA2633458C_D0142.tif" />
Search | Corpus | Preferences | History | Help
Shon Ou.rv Gtn.rrtor
<img file="CA2633458C_D0143.tif" />
Relationship results 1 - 13:
Reutara Oate
HTML
<td></td><td> SB</td><td></td><td> sigs»</td><td></td>
<td> 19/05/1997</td><td></td><td> mobutu sese seko</td><td> call</td><td> excellent : talk : with muammar gaddafi</td>
<td> 09/05/1997</td><td></td><td> senior officiel local saniabacha</td><td> meet : on arrival</td><td> môamëtâr.gadaao . ·</td>
<td> 09/05/1997</td><td></td><td> senior official sani abacha local : people</td><td> meet : at airport</td><td> muammar gaddafi</td>
<td> 00/05/199.7</td><td></td><td> ben aH</td><td> meet.·: during Rbya</td><td> libyan leader : muammar-gaddafi</td>
<td> 13/04/1997</td><td></td><td> russias Zhirinovsky</td><td> meet!21 : in (ibya</td><td> gaddafi</td>
<td> 13/04/1997</td><td></td><td> viadimirzhidnovsky</td><td> meet</td><td> muammar gaddafi.</td>
<td> 00/01/1997</td><td></td><td> controversial : u.s, nation : islam louis farrakhan leader</td><td> of meet</td><td> muammar gaddafi</td>
<td> 07/01/1997</td><td></td><td> louis, farrakhan</td><td> meet</td><td> muammar gaddafi</td>
<td> 07/01/1997</td><td></td><td> vladimir Zhirinovsky</td><td> meet</td><td> Rbyan leader : muammar gaddafi</td>
<td> 27/12/1996</td><td></td><td> mobutu sese seko</td><td> call</td><td> excellent : talk : with muammar gaddafi</td>
<td> 26/12/1996</td><td></td><td> alpha oumar konare</td><td> twice : meet</td><td> muammar gaddafi</td>
<td> 06/10/1996</td><td></td><td> Islamist prime minister : necmflitin erbakah </td><td> oct 6 : meet : on controversial visit to Rbya</td><td> Rbyan leader : , muammar gaddafi</td>
Figure 1.10: Example of a event search involving a person.
The InFact system also allows you to export search results to a report From the relationship display a drop-down menu at the top of the results table supports two options. Export to HTML exports results,
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact^ 3:0 along with relationship context information, as printer friendly HTML reports. Figure 1.11 shows what these reports look like for the query “Boeing > buy > McDonnell Douglas.
Source; bôeÿgco
Acttoo: fyy
Targôt: rncggnnhedo<jglas''co<7>.
OSA) PRESSDIGEST - New Voit Times business -May 13.
FTed Meyer trie Kais agreed to’aoqüire; Smith's Food OnigCenters Iric for about $700 million in stock. ''.lîte'ç/tnd^0pjeièk3:ty<sup>1</sup>F^t^^/fo.'-ÿ<sup>,</sup>/W^eoii'afÎprè^Cfarirts3iKi:tii.<tity'WÇiienÎ8.O&catekfep(<sup>:</sup>ii: 'Unie dollar fell against the yen.re aching its klwestlevel in nearly four months.
Source: hoeing i plan
Action: b£ri/
Target: nicdonnell jifogglas
USA: PRESS DIGEST - Wan Street Journal - Dec 19.
The' SEC<sup>4</sup>? top Mutual fund offioatutged.ÿÎgilariçé and re form ip aTacent ^Speech about the. fandindqstry despite its tüggëst year wet I ¢099^0½. Technology stockési^êd, fk^'ng'major Mdexes higher; ‘ ” ''
Figure 1.11: Example of a text export to HTML.
Export to Text exports the results to a simple tab delimited text file for easy import into external applications like MS Excel spreadsheets. You can specify the amount of context you wish to see around the sentence that contains the matching relationship by selecting the number of Surrounding Sentences to Export in the Preferences page.
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
ENTITY SEARCH
The InFact system can also be used to search for entities in documents. There are two different ways to accomplish this. If you want to see all the relationships involving a given entity, you can specify a relationship query where only a single entity is specified, like this:
Bin Laden <> *
The asterisk indicates that you are interested in any relationships, based upon any action, where Bin Laden is either the source or target entity. If you execute this query, you would see a list of relationships as shown in Figure 1.12.
InFact·
<img file="CA2633458C_D0144.tif" />
Search | Corpus | Preferences | History | Help
Shmr Omni Oanrritor
<img file="CA2633458C_D0145.tif" />
Relationship results 1-161:
<td></td><td> Adtioa(7)</td><td> ~~ Target</td>
<td> osama bin laden</td><td> deny : in afghanistan in two</td><td> 1996 involvement two : indian : in 199S bombing : in saudi arabia</td>
<td> osama bin laden</td><td> wound</td><td> 1996 more than 400 : people : in 199S</td>
<td> bin laden</td><td> ose</td><td> afghanistan : as base for action against country</td>
<td> bin laden</td><td> warn</td><td> american i of renewed onslaught against force in saudi arabia</td>
<td> bin laden</td><td> secure</td><td> support : of thousand of Pakistani for bin laden campaign</td>
<td> mullah mohammad omar : call</td><td> be</td><td> talaban. isiamic purist first public : cfisapproval : of idea of bin laden clear : reprimand</td>
<td> some middle east : expert</td><td> estimate : at 4300 million</td><td> bin laden : fortune</td>
<td colspan="2"> Figure 1.12: An example of an Entity search.</td><td></td>
100
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0
Alternatively, you can perform a document search on a given entity, as discussed in the beginning of the document Any term can simply be entered In the search input field, and the Search button pressed. The results are different for this kind of search, as shown in Figure 1.13, where we are doing a document search for references to Bin Laden.
In this display we see a list of documents with references to Bin Laden. The metadata fields and values are included with each document as well as the first sentence where Bin Laden was found. The tide of the document is a link to the actual document.
InFact search | ûmus I ErafsLsntes I History I Help
Eho«Oa.rv0.mfiwr
Brslc document I.vet reircli results ire displlyed. To gerrelstionstilps, oryi ifn.ttdsa 0*0* - returns all relationships lavalvlnç >..*>_*. - returns all relationships where bin 4o<s something
- returns ill retrttenrhlps -here somediloo Is 4ooe to Lio AAo
Oocument results 1 - 20 of about 72:
Urrsortod
Page 1 of 4 thus
<img file="CA2633458C_D0146.tif" />
1) AFGHANISTAN: Taleban not to pressure bin Laden to leave Afghanistan.
CXKPath=1997)O305/421404newsML.xml; Reuters_Byiine™Tim Johnston; Reuters_Copyright-=(c) Renters Limited 1997, Reulers_Creatw_CO‘jn’ry=AFÇLiAdtSTA'-t; Reuters_Creator_Location-KA3UL; Renters_l>a(e!ùw=KA8UL 1997-03-05; Reuters _Headline=Ta!aban not to pressure bln Laden to leave Afghanistan.
2> DUBAI: Saudi dissident Bin Laden moved to Kandahar - paper.
I DocPath^l997/0408/495530nevisML.>ml; Reuters_BylbK=WKNOWN; Re<iters_Copvright=(c) Reuters Umited 1997; Reuters_Creator_Counby=OUBAl; Reuters_Creator_Location-OUBAl; ReutersJOatellneOUBAI 1997-04-03; Reuters_HeadHne=Saudi dissident Bin Laden moved to Kandahar - paper.
3) AFGHANISTAN: Afghan Taleban resist pressure to exoel Saudi.
DocPaih-2997vÜ327/47267enew$ML.>an/,· Reuters_Bvllne’=71m Johnston; Aeuters_Copyrtght=(c) Reuters Limited 1997; Reuters_Creator_Countrv-‘AKHMlSTAN; ReutersjXeatorgocaUon’dtABUL; Reuters_Oatellne~KABUL 1997-03-27; Reuters_Headllne-Afghan Taleban resist pressure to expel Saudi.
(Reuters) - A senior Taleban official said on Thursday that they will not bow to any pressure to expel Saudi dissident Osama bin Laden from Afghan territory they control
4) AFGHANISTAN: Saudi dissident moves to Afghanistan Kandahar.
Οχί>36)-1997/0410/500397ηβνΐρΜυχτηΙ; Reu(ars_Bvt>ne-Ttm Johnston; Reuters_Copvdght=(c) Reuters Limited 1997; ReutBrs_Creator_Counby=AKHAt4lSTAN; Aeuters_aeator_tocation°KABl/L; Reuters_Date!ine~KABUL 1997-04-10; Reuters_HeadHne=‘Saudi dissident moves to Afghanistan's Kandahar.
>14481«-, AFGHANISTAN, Apr 10 (Reuters) - The Taleban administration confirmed on Thursday that Saudi Arabian dissident Osama bin Laden, who is fiving in Afghanistan, had moved to the southern dty of Kandahar, the Taleban's decision-making centre
Figure 1.13: The results of a document keyword search.
101
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 (Ô)
Quick Tour of InFact 3.0
RELATIONSHIP SEARCH
The InFact system supports a number of means of extracting relationship information from documents.
<td> Direct Relationships</td><td> A direct Relationship Search is when you are searching for a relationship between two known entities. In some cases, you may wish to specify a verb, and in other cases, we may not want to specify any action at all. For example, let’s search for any relationships of any kind between Bin Laden and the Taleban. Since we want to return all relationships between these two parties, we want to make sure to specify that either entity could be the source of an action or the target of an action. To do this, we’ll make sure our arrows point both ways: Talebanc> * <> Bin Laden Now when we build the query and execute it, we'll see the display in Figure 1.14.</td>
Search | Corpus | Preferences | History | Help
Sh«v OiQty OyMriCor
InFact iç·,·
Relationship results 1 -10:
<img file="CA2633458C_D0147.tif" />
<td> taleban Islamic : movement</td><td> tell</td><td> osama bin laden</td>
<td> mullah : mohammed rabbani king : fahd : of saudi arabia onaprfl 14 head : of taleban interim rufing councS</td><td> hold</td><td> subject! of bin laden</td>
<td> taleban Islamic</td><td> tell</td><td> osama bin laden</td>
<td> osama bin laden</td><td> five i in kandahar</td><td> house : under istamictaleban protection</td>
<td> islamic taleban</td><td> still probably : fit : in afghariistan</td><td> osama bin laden osama bin laden : supporter : on thursday to unknown area</td>
<td> islamic taleban</td><td> tell</td><td> osama bin laden</td>
<td> arab businessman : osama bin laden</td><td> fee</td><td> present : in dose region to jalalabad in eastern afghariistan under protection of taleban movement</td>
Figure 1.14: Example of bi-directional relationship search
102
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 _ _
Quick Tour of InFact 3.0
<td> Indirect Relationships</td><td> A second type of Relationship Search is possible if you know two entities: a search for Indirect Relationships, in which two known entities are both linked by a third (unknown) entity. InFact supports these searches as well, with a slightly different query syntax. Here in place of the action, we put the entity we want to link inside curly braces: Bush > (Person/Name]} > Thatcher This query indicates that we are interested in any relationships in which any entity serves as a link between Bush and Thatcher. If we execute this query, we’ll see a slightly different display:</td>
Seârc6 (Corpus | Preferences | History | Help
InFact’
Sfiov Omro .<i«nsr«tor ______________ ((Person/Name)} > Thatcher link results 1-7:
Bush* (bush! > Thatchgr
Bush* (reagan) > Thateher
Bush* (tosHdkafii) > Thatcher
Bush* (nelsoa mandela) > Thatcher © 2iWf-2AX bts/pftàW Coqwetton. Air fights reserved
Bush* (ronald reagan) > Thatcher:
Bush* (george bush) > Thatcherί
Bush* (margaret thateher) > Thatcherj i ___ j
Figure 1.15: An example of an Indirect Relationship search.
Each of the links presented represents a different relationship in which some entity links these two individuals. If we click on:
Bush > (nelson mandela} > Thatcher
103
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact® 3.0 then we would see relationships in which Nelson Mandela is linked to both Bush and Margaret Thatcher:
InFact
Search I Corpus | Preferences | History | Help
Shüf .Ovtrr flsntrtw
<img file="CA2633458C_D0148.tif" />
Relationship results 1-8:
<img file="CA2633458C_D0149.tif" />
nrasTdenl · bush <sup>:</sup> some united.states of harsh <sup>p</sup> '·· sanction of of south afiiça major trading partner president : btisfi ' concratijlate : ôn nelson maridalaralease ne^orfotattilela n^ggpi.m&j^tà bush .administration next week : brush aside ’: on negotiation b'Osft caU i in prison.
I president : bush
I administration ask
J official j nelson mandala iele'pho'ne
I nelson màndola meet netsohrnandsla : support : for antia meric an ’leader jftidon’ntârïçlelàj: release/; after 27 year”’' import ap t r sign flé(sôn.nibrvil0fd : on moriday about road map for negotiation assistanti government!
leader : of ançi .mrst’/nia^^jt^hbfqforrbbbut after, i mrs : margaret thatcher
Figure 1.16: An example of an indirect link search result set.
104
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact 3.0
CORPUS PAGE
The Corpus page provides users with information about the corpus of documents being searched and how the InFact Search Service has been set up. There are three main components to the page, presented in a tab-based display.
InFact
<img file="CA2633458C_D0150.tif" />
OnfoIogySaarcit
Search: for: frF/Errtity i ' ! ΊΓ/Cnt·»·.' i
Search | Corpus | Preferences I History | Help
<img file="CA2633458C_D0151.tif" />
• Numeric i - Ocùinkitioft Pèff'ffn i · Tamggfil
Figure 1.17: Example of the corpus page, with the first: tab expanded.
<td> Ontology Search</td><td> The Ontology Search feature allows users to view what ontologies have been submitted to the InFact system during indexing. The ontologies are identified by their root nodes, which are presented as links on left If you click on a root, all the subpaths are displayed below. The subpaths are also links. In Figure 1.17, the InFact standard OntologyPath “IF/Entity” is displayed with all of its subpaths as links below it. Any time you click on a link, you will see the paths found below a given path, and any terms defined by that path if it is a custom OntologyPath. (The terms associated with standard OntologyPaths are not displayed as they would be too numerous.) By clicking on the path links provided users can navigate through any of the ontologies associated with the system. Alternatively, users can enter a term in the search input field, and any matching paths will be displayed.</td>
105
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
Zd)
Quick Tour of InFact 3.0
<td> Synonym Search</td><td> When searching for a given entity, it is useful to know any synonyms that entity might have. Synonyms are automatically included in search results. To see what synonyms exist for a given word, click on the “Find Synonyms tab, and then enter the term in the synonym search field and press the search button.</td>
<td> Corpus Information</td><td> 1 he corpus page contains information about the corpus, including when it was ingested and any comments that might be included by a system administrator. Users can also view a list of the ActionTypes that are available for use in searches, and any metadata associated with the documents in the corpus. (Additional ActionTypes can be added by a system administrator. ) To see this, click on the “Corpus Info and Metadata” tab.</td>
106
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984 ___ /Ç)
Quick Tour of InFact 3.0
PREFERENCES
Setting preferences provides you a way to constrain your search results. InFact allows you to constrain your search in a number of different ways. To enable any of these filtering options, you must set the appropriate filter and click the Set Preferences button. Figure 1.18 shows an example of the Preferences page of the Web reference user interface running against the Reuters corpus. As you can see, there are several different options you can set to optimize and focus your search. In the screenshot, the drop-down list for Sort Scheme is displayed; you can see that there is a large amount of metadata associated with this corpus of documents that you can sort by. For additional information about these options please consult the online help.
InFact·
Search I Corpus | Preferences | History | Help
<td></td><td colspan="3"></td>
<td> Includenegated actions:</td><td> ϋ T(ue k Faiso</td><td></td><td> &</td>
<td> Searchmbdifiers along with entities: Display modifiers:</td><td> fe<sub>;</sub> True O False fe True C False</td><td></td><td></td>
<td> Enforcestrictiji-rfirocticnalitv:</td><td> C True fe False</td><td></td><td> &</td>
<td> Numbecof relationships per-page:</td><td> loir</td><td></td><td> UJ Φ</td>
<td> Number of doodmetits.peiipàg'è:</td><td> MB</td><td></td><td> e</td>
<td> Sort.scheme.fbr page;</td><td> Unsorted</td><td> §</td><td> $</td>
<td> Surrounding sentences to exports</td><td> Metatag Sort Orc Reuters Date Rubrished</td><td> Js</td><td> à-</td>
&
Metatag Sort Orc Reutecs'_Date&ie Metatag SortOrc ReutersJ-leedfine Metatag Sort Orc Reuters JtemIO Metatag Sort Orc ReirtersJtemlO Metatag Sort Orc Reuters JtemlO.Oate Metatag Sort Orc ReutecsJtem(O_Dete Metatag Sort Orc Reuters_Publisher Metatàg Sort Orc Reuters.Source Metatag Sort On: Reuters TWe
Figure 1.18: The Preferences page.
107
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Quick Tour of InFact 3.0
<td> Include Negated Actions</td><td> If you ask the question, “When did Clinton visit China?, you get a list of results in which Clinton is found to have visited China, However, you might also be interested in instances in which Clinton did not visit China. If you select this option, both affirmative and negative aspects of the sentences will be returned.</td>
<td> Search Modifiers</td><td> This option determines whether to search modifying clauses in addition to the sources and targets. This is true by default, and can be set to false to make the result set smaller and more precise.</td>
<td> Display Modifiers</td><td> By default modifier information is displayed along with the source, action, and target in the relationship display. If you wish to only see the core relationship, you can set this to false.</td>
<td> Enforce Strict Bidirectionality</td><td> When using bi-directional arrows that indicate your interest in relationships in which the source and target can be interchanged, there is a looser interpretation by the system. If this is set to false, then results will include any instances in which the entities specified as source and target both perform the specified action on a third entity. This option is only relevant when both a source and target are specified in the query.</td>
<td> Search Ontology Path Name as Term</td><td> In some cases you may want to search on the term that defines an ontology path as well as tire ontology path itself. For example, the word “location is a standard ontology path provided by the InFact system. If you wanted to search on this ontology path and also include references to the word location, then you would set this to true.</td>
<td> Number of Relationships per Page</td><td> This parameter specifies the number of relationships you wish to display on a given relationship result page.</td>
<td> Number of Documents per Page</td><td> This preference specifies the number of documents you wish to display on a given document result page.</td>
108
CA 02633458 2008-06-13
WO 2006/068872 PCT/US2005/044984
Æ)
Quick Tour of InFact 3.0
<td> Number of Documents per Page</td><td> This preference specifies the number of documents you wish to display on a given document result page.</td>
<td> Sort Scheme</td><td> You can sort the result display by Source, Target, Action, Action Frequency, Action Similarity, or by tiny metadata content available such as PublicationJDate. Available content is displayed in the drop down selection box. If this preference is set, any future results will be sorted by this criteria. (You can also sort individual pages using the controls on any given page.)</td>
<td> Surrounding Sentences to Export</td><td> Any result set can be exported to either a summary html display or to a text display that can be opened in a spreadsheet application. This preference specifies how much context to include around the sentences that contain the relationships you searched for in the results.</td>
109
CA 02633458 2008-06-13
WO 2006/068872
PCT/US2005/044984
Æ)
Quick Tour of InFact 3.0
FOR CONTENT PUBLISHERS
InFact provides huge productivity gains to your users/subscribers, saving time and money while increasing satisfaction. InFact learns the semantics of any text database, including customer or sales support information, news, financial data, legal information, scientific abstracts or journals. You can search virtually any document base and retrieve maps, graphs, charts or images containing the search words.
Indexing is fast and requires no time-consuming training, metatagging or expert input Plus, new information can be indexed incrementally, which is critical when searching any large and growing base of content So not only does InFact save time and money for your users, it also saves time and money for content publishers.
InFact does not scan pages. It reads, understands and remembers them. Using a process of inductive reasoning, statistical data mining and artificial intelligence, InFact learns word meanings from the context and understands their syntactic relationships.
The InFact user interface and search strategies are rapidly evolving. Please send us your comments, ideas and suggestions to search@infactcom
We would be delighted to tailor InFact to meet your requirements for appearance and behavior.
110
Contents282
164 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48 Sheet 49 Sheet 50 Sheet 51 Sheet 52 Sheet 53 Sheet 54 Sheet 55 Sheet 56 Sheet 57 Sheet 58 Sheet 59 Sheet 60 Sheet 61 Sheet 62 Sheet 63 Sheet 64 Sheet 65 Sheet 66 Sheet 67 Sheet 68 Sheet 69 Sheet 70 Sheet 71 Sheet 72 Sheet 73 Sheet 74 Sheet 75 Sheet 76 Sheet 77 Sheet 78 Sheet 79 Sheet 80 Sheet 81 Sheet 82 Sheet 83 Sheet 84 Sheet 85 Sheet 86 Sheet 87 Sheet 88 Sheet 89 Sheet 90 Sheet 91 Sheet 92 Sheet 93 Sheet 94 Sheet 95 Sheet 96 Sheet 97 Sheet 98 Sheet 99 Sheet 100 Sheet 101 Sheet 102 Sheet 103 Sheet 104 Sheet 105 Sheet 106 Sheet 107 Sheet 108 Sheet 109 Sheet 110 Sheet 111 Sheet 112 Sheet 113 Sheet 114 Sheet 115 Sheet 116 Sheet 117 Sheet 118 Sheet 119 Sheet 120 Sheet 121 Sheet 122 Sheet 123 Sheet 124 Sheet 125 Sheet 126 Sheet 127 Sheet 128 Sheet 129 Sheet 130 Sheet 131 Sheet 132 Sheet 133 Sheet 134 Sheet 135 Sheet 136 Sheet 137 Sheet 138 Sheet 139 Sheet 140 Sheet 141 Sheet 142 Sheet 143 Sheet 144 Sheet 145 Sheet 146 Sheet 147 Sheet 148 Sheet 149 Sheet 150 Sheet 151 Sheet 152 Sheet 153 Sheet 154 Sheet 155 Sheet 156 Sheet 157 Sheet 158 Sheet 159 Sheet 160 Sheet 161 Sheet 162 Sheet 163 Sheet 164
30 members in 7 offices
Priority claims7
| Document | Office | Kind | Date |
|---|---|---|---|
| 11012089 | United States of America | – | |
| 1208904 | United States of America | A | |
| 2005044984 | United States of America | W | |
| 11012089 | – | – | – |
| PCTUS2005044984 | – | – | – |
| US20040012089 | – | – | – |
| WO2005US44984 | – | – | – |
Members30
| Document | Office | Kind | |
|---|---|---|---|
| CA2457693A1 | Canada | A1 | |
| WO03017143A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO03017143A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US2003233224A1 | United States of America | A1 | |
| EP1419461A2 | European Patent Office (EPO) | A2 | |
| MXPA04001488A | Mexico | A | |
| US2004221235A1 | United States of America | A1 | |
| CA2551803A1 | Canada | A1 | |
| CA2823178A1 | Canada | A1 | |
| WO2004114163A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2004114163A3 | World Intellectual Property Organization (WIPO) | A3 | |
| GB0518043D0 | United Kingdom | D0 | |
| GB2414321A | United Kingdom | A | |
| US2005267871A1 | United States of America | A1 | |
| CA2633458A1 | Canada | A1 | |
| WO2006068872A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2006068872A3 | World Intellectual Property Organization (WIPO) | A3 | |
| NZ542960A | New Zealand | A | |
| NZ542223A | New Zealand | A | |
| EP1839201A2 | European Patent Office (EPO) | A2 | |
| US7283951B2 | United States of America | B2 | |
| US7398201B2 | United States of America | B2 | |
| US7526425B2 | United States of America | B2 | |
| US2009182738A1 | United States of America | A1 | |
| US2009271179A1 | United States of America | A1 | |
| US7953593B2 | United States of America | B2 | |
| US8131540B2 | United States of America | B2 | |
| CA2457693C | Canada | C | |
| CA2551803C | Canada | C | |
| CA2633458CThis record | Canada | C |
2 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| LapsedLapsedMKLA | MKLA | |
| Examination requestEEER | EEER |
Numbers
- Publication
- 2633458
- Publication, DOCDB
- 2633458
- Publication, EPODOC
- CA2633458
- Application
- 2633458
- Application, DOCDB
- 2633458
- Application, EPODOC
- CA20052633458
Titles2
- English
- METHOD AND SYSTEM FOR EXTENDING KEYWORD SEARCHING TO SYNTACTICALLY AND SEMANTICALLY ANNOTATED DATA
- French
- PROCEDE ET SYSTEME POUR ETENDRE LA RECHERCHE DE MOTS CLES A DES DONNEES D'ANNOTATION SYNTACTIQUE ET SEMANTIQUE
Classification
- CPC, 4
- G06F17/30672
- G06F16/3338
- Y10S707/99931
- Y10S707/99943
- IPC, 2
- G06F17 30
- G06F7 00