System and method for quote-based search summaries

A computer-implemented method for generating quote-based search summaries from a plurality of documents includes receiving information identifying a meaning taxonomy, the meaning taxonomy including a normalized term and at least one syntactic structure that identifies an entity; locating, within at least one document of the plurality of documents, a statement attributable to the entity; receiving a search query comprising the normalized term; and displaying a summary of the at least one document, the summary including the statement.

BACKGROUND

Technical Field

Aspects of the present application relate to content analysis, and more specifically, to systems and methods for automated analysis of content.

Background Discussion

Search engines generally follow a common approach for presenting users with documents that may be responsive to a keyword search. These search engines receive key terms, parse documents for those key terms, and display documents that include those key terms. The displayed documents are usually ranked according to their perceived relevance and presented to a user. Conventional search engines typically display snippets of text from the relevant documents, with those snippets often including one or more of the searched key terms.

When parsing documents, typical search engines attempt to find the specific key term searched, as well as obvious variations of the key term. For example, if a user searches “pandas,” a typical search engine might display results that include “panda” or “pandas.” Search engines can search based on multiple key terms, and may display a search summary showing each of the key terms in different parts of a document. The key terms found in documents returned by the search may be out of context from one another, however, and some results may not relate to the user's intended search query.

Typical search engines also are generally unable to identify content containing quotes or other statements by a particular entity, and in particular quotes or statements about a particular topic.

SUMMARY

Embodiments of the present application provide a search engine that receives key terms and key concepts and presents search results including concept-based search summaries. Typical search engines do not provide search results that are accurate to both a key concept being searched and a key term. Other embodiments of the present application provide a search engine that receives a term identifying an entity and optional key concepts, and presents search results including summaries of documents containing quotes or other statements by the entity, optionally about the key concept. Typical search engines also do not provide search results that accurately identify a quote or other statement by an entity. Aspects disclosed herein are drawn to a method and system for generating concept-based search summaries that include text snippets from documents relating to specific key concepts, key terms, and/or statements made by an entity of interest.

According to one aspect, a system for generating concept-based search summaries from a plurality of documents is provided comprising a first input configured to receive information identifying a meaning taxonomy including a plurality of normalized terms, each normalized term of the plurality of normalized terms being associated with one or more syntactic structures, a second input configured to receive a search query including at least one term and at least one normalized term, a memory having storage capacity, and a controller coupled to the memory and the first and second inputs and configured to identify at least one document within the plurality of documents including the at least one term and at least one syntactic structure associated with the at least one normalized term of the plurality of normalized terms, and display at least one summary of the at least one document, the at least one summary including the at least one term and the at least one syntactic structure. According to one embodiment, each of the one or more syntactic structures comprises one or more words. According to another embodiment, the first input is further configured to receive a proximity requirement between the at least one term and the at least one syntactic structure and wherein the controller is configured to filter the at least one summary to summaries that fulfill the proximity requirement.

According to one embodiment, the at least one document comprises two or more documents and wherein the controller is further configured to sort the two or more documents by a number of occurrences of the one or more syntactic structures or by a relevance calculation based on the syntactic structures. According to one embodiment, the at least one summary includes at least one excerpt from the at least one document including the at least one term and the at least one syntactic structure. According to another embodiment, the at least one meaning loaded entity includes two or more meaning loaded entity and wherein the at least one summary includes a plurality of syntactic structures associated with the two or more meaning loaded entities.

According to another aspect, a computer-implemented method for generating concept-based search summaries from a plurality of documents is provided comprising receiving information identifying a meaning taxonomy including a plurality of meaning loaded entities, each meaning loaded entity of the plurality of meaning loaded entities being associated with one or more syntactic structures, receiving a search query including at least one term and identifying at least one meaning loaded entity of the plurality of meaning loaded entities, identifying at least one document within the plurality of documents including the at least one term and at least one syntactic structure associated with the at least one meaning loaded entity of the plurality of meaning loaded entities, and displaying at least one summary of the at least one document, the at least one summary including the at least one term and the at least one syntactic structure. According to one embodiment, receiving information identifying the meaning taxonomy comprises receiving information identifying at least one expert rule set. According to one embodiment, the system further comprises receiving information identifying a proximity requirement between the at least one term and the at least one syntactic structure and filtering search results to documents that fulfill the proximity requirement. According to yet another embodiment, the system further comprises sorting the at least one document by a number of instances that the at least one document includes the one or more syntactic structures or by other means such as a relevance calculation based in whole or in part on the syntactic structures, dates, etc.

According to one embodiment, displaying the at least one summary includes displaying at least one excerpt from the at least one document including the at least one term and the at least one syntactic structure. According to one embodiment, receiving the search query identifying the at least one normalized term includes receiving the search query identifying two or more normalized terms and wherein displaying the at least one summary includes displaying a plurality of syntactic structures associated with the two or more meaning loaded entities. According to another embodiment, the system further comprises receiving information identifying a syntactic structure associated with the at least one normalized term and filtering out documents that include the syntactic structure.

According to another aspect, a method is provided comprising a non-transitory computer readable medium having stored thereon sequences of instruction, the sequences of instruction including executable instructions that instruct at least one processor to receive information identifying a meaning taxonomy including a plurality of normalized terms, each normalized term of the plurality of normalized terms being associated with one or more syntactic structures, receive a search query including at least one term and identifying at least one normalized term of the plurality of normalized terms, identify at least one document within the plurality of documents including the at least one term and at least one syntactic structure associated with the at least one normalized term of the plurality of normalized terms, and display at least one summary of the at least one document, the at least one summary including the at least one term and the at least one syntactic structure. According to one embodiment, the sequences of instructions further comprise instructions that instruct the at least one processor to receive a proximity or other relational requirement between the at least one term and the at least one syntactic structure, and filter the at least one summary to summaries that fulfill the proximity requirement.

According to another aspect, a computer-implemented method for generating quote-based search summaries from a plurality of documents is provided. The method includes receiving information identifying a meaning taxonomy, the meaning taxonomy including a normalized term and at least one syntactic structure that identifies an entity; locating, within at least one document of the plurality of documents, a statement attributable to the entity; receiving a search query comprising the normalized term; and displaying a summary of the at least one document, the summary including the statement.

According to one embodiment, the meaning taxonomy includes a second normalized term, wherein locating, within the at least one document of the plurality of documents, the statement attributable to the entity further comprises locating, within the at least one document of the plurality of documents, a statement attributable to the entity and relevant to the second normalized term.

According to another embodiment, locating, within the at least one document of the plurality of documents, the statement attributable to the entity includes locating, within the at least one document, at least one of the at least one syntactic structures; and locating, proximal to the at least one of the at least one syntactic structures within the at least one document, a second at least one syntactic structure indicative of a statement. According to a further embodiment, the second at least one syntactic structure is a quotation mark. According to a further embodiment, the second at least one syntactic structure is a word indicative of a statement.

According to another embodiment, the statement is a direct quote by the entity. According to yet another embodiment, the statement is an indirect quote of the entity. According to one embodiment, the at least one syntactic structure that identifies the entity includes an identifier of an individual associated with the entity.

According to another embodiment, the at least one document is a second plurality of documents, further comprising displaying a plurality of summaries, wherein each summary in the plurality of summaries is for one of the second plurality of documents. According to a further embodiment, the plurality of summaries is displayed in an ordered list, further including, responsive to a summary including a statement that is a direct quote by the entity, displaying the summary in a first position in the list; and responsive to the summary including a statement that is an indirect quote by the entity, displaying the summary in a second position in the list. According to a further embodiment, the plurality of summaries is displayed in an ordered list having an ordering of the plurality summaries according to a degree to which a statement in each summary is attributable to the entity.

According to one embodiment, the method includes determining, from at least one of metadata or content of the at least one document, that the entity is an author of the at least one document. According to another embodiment, the normalized term is associated with the entity. According to yet another embodiment, the summary further includes metadata about the at least one document, the metadata including at least one of a title of the document, an author of the document, and a date of the document. According to a further embodiment, the search query is received from a user via a user interface.

According to another aspect, a system for generating quote-based search summaries from a plurality of documents is provided. The system includes at least one processor; a taxonomy component, executed by the at least one processor, configured to receive information identifying a meaning taxonomy, the meaning taxonomy including a normalized term and at least one syntactic structure that identifies an entity; a search component, executed by the at least one processor, configured to locate, within at least one document of the plurality of documents, a statement attributable to the entity; a query input component, executed by the at least one processor, configured to receive a search query comprising the normalized term; and a display component, executed by the at least one processor, configured to display a summary of the at least one document, the summary including the statement.

According to one embodiment, the meaning taxonomy includes a second normalized term, and wherein the at least one processor is further configured to locate, within the at least one document of the plurality of documents, a statement attributable to the entity and relevant to the second normalized term. According to another embodiment, the processor is further configured to locate, within the at least one document of the plurality of documents, the statement attributable to the entity by locating, within the at least one document, at least one of the at least one syntactic structures; and locate, proximal to the at least one of the at least one syntactic structures within the at least one document, a second at least one syntactic structure indicative of a statement.

Still other aspects, embodiments, and advantages of these exemplary aspects and embodiments, are discussed in detail below. Moreover, it is to be understood that both the foregoing information and the following detailed description are merely illustrative examples of various aspects and embodiments, and are intended to provide an overview or framework for understanding the nature and character of the claimed subject matter. Particular references to examples and embodiments, such as “an embodiment,” “an example,” “another embodiment,” “another example,” “some embodiments,” “some examples,” “other embodiments,” “an alternate embodiment,” “various embodiments,” “one embodiment,” “at least one embodiments,” “this and other embodiments” or the like, are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment or example and may be included in that embodiment or example and other embodiments or examples. The appearances of such terms herein are not necessarily all referring to the same embodiment or example.

Furthermore, in the event of inconsistent usages of terms between this document and documents incorporated herein by reference, the term usage in the incorporated references is supplementary to that of this document; for irreconcilable inconsistencies, the term usage in this document controls. In addition, the accompanying drawings are included to provide illustration and a further understanding of the various aspects and embodiments, and are incorporated in and constitute a part of this specification. The drawings, together with the remainder of the specification, serve to explain principles and operations of the described and claimed aspects and embodiments.

DETAILED DESCRIPTION

Some embodiments disclosed herein include apparatus and processes that implement a search summary system that is configured to generate and display a search summary using content (e.g., text snippets) from a plurality of searched documents. The search summary system may extract content from the plurality of searched documents relating to received key terms and key concepts.

In some embodiments, the search summary system is further configured to summarize content from documents in a search to display content relevant to key terms that are received as well as key, often complex and/or specialized, concepts relating to an information domain being addressed by a search query. These key concepts may be referred to herein as meaning loaded entities or taxonomy elements. Some examples of meaning extraction tools and techniques are described in U.S. Pat. No. 7,877,344, titled “METHOD AND APPARATUS FOR EXTRACTING MEANING FROM DOCUMENTS USING A MEANING TAXONOMY COMPRISING SYNTACTIC STRUCTURES,” issued Jan. 25, 2011, and U.S. Pat. No. 8,583,580, titled “METHOD AND APPARATUS FOR IDENTIFYING AND EXTRACTING MEANING IN DOCUMENTS,” issued Nov. 12, 2013, each of which is hereby incorporated herein by reference in its entirety.

One example of the present application includes a method for providing search summaries for documents relevant to a received search query.FIG.1illustrates a process flow diagram for providing concept-based search summaries. Process100includes defining a meaning taxonomy104, analyzing documents106, receiving a search query108, and providing search summaries110. Components of this process and its sub-processes may be implemented using, for example, a computer system as discussed with regard toFIG.8below.

More particularly, at block102, process100begins. At block104an information domain expert may define one or more meaning taxonomies. For instance, the information domain expert may be any person who can perform expert analysis of subject matter within an information domain. In another embodiment, one or more meaning taxonomies may be imported from another information domain, or may be adapted from the meaning taxonomy of another information domain. In some embodiments, the meaning taxonomy may be defined by a fully- or semi-automated process using techniques such as machine learning, text mining, data mining, neural networks, text analysis, eDiscovery, sentiment analysis, natural language processing, semantic analysis and others.

The meaning taxonomy may serve as the basis for an analytical framework in accordance with one embodiment of the present application. The meaning taxonomy may include key concepts (represented by normalized terms), and may include meaning loaded entities. It will be appreciated that a meaning loaded entity in a particular context may be thought of as a key concept in that context. Meaning loaded entities and key concepts will therefore be collectively referred to herein as key concepts for ease of reference; references to meaning loaded entities herein are intended to encompass key concepts, and vice versa. The meaning taxonomy may define various non-normalized terms that, when present in a document, may indicate the document may be relevant to a key concept or meaning loaded entity.

Key concepts may be represented in the meaning taxonomy by a corresponding normalized term. The meaning taxonomy may further identify various syntactic structures that may be used to identify and normalize the non-normalized terms. Both normalized terms and non-normalized terms may therefore be associated with key concepts.

The meaning taxonomy may include multiple layers of syntactic structures and associated key concepts in various ways. For example, in one embodiment, these layers may be hierarchical in nature. Further, the key concepts may be positioned at various locations within the meaning taxonomy based on the information domain the meaning taxonomy belongs in. A domain expert of a search summary system, as described inFIG.5and the accompanying description, may build, define, and/or constrain the structure of the meaning taxonomy. The specific configuration of any meaning taxonomy may depend upon the information domain being analyzed and the key concepts that the information domain expert uses for automatic analysis and/or categorization.

FIG.2illustrates an exemplary process for defining a meaning taxonomy. At block202, process200begins. At block204, the information domain expert inserts one or more non-normalized terms in the meaning taxonomy. These non-normalized terms may serve as the basis for evaluating documents for relevancy during document analysis.

At block206, the information domain expert may define an expert rule set. In particular, the expert rule set may include rules associating normalized terms (which may be used to represent key concepts) and non-normalized terms in a document. For example, the expert rule set may require the presence of one or more non-normalized terms in a document for the document to evaluate true for the corresponding key concept. As another example, the expert rule set may include proximity requirements between non-normalized terms. In such embodiments, the document will evaluate true for the key concept only if certain non-normalized terms appear within a certain proximity of one another; the desired proximity may be configurable by the information domain expert or others.

Additional types of rules may be included in the expert rule set to indicate the presence of a key concept. In some embodiments, case-sensitive terms may be specified. For example, a rule may specify that “GM” indicates the presence of the key concept “General Motors,” whereas “gm” does not. In some embodiments, a rule may specify that a term present anywhere in a document be used to disambiguate the context of the term. For example, the term “car” or “truck” appearing anywhere in a document may indicate that the document is about the automotive industry. Such disambiguation may also be performed with exclusionary terms. For example, the term “genetically modified” appearing anywhere in the document may indicate that the document does not relate to General Motors or the automotive industry even though “GM” appears in the document.

Rules in the expert rule set may be combined into complex rules that inherit criteria from other syntactical structures. The following examples in Table 1 illustrate how earlier-defined rules may be incorporated into later rules, with normalized terms appearing in later-defined non-normalized terms enclosed in brackets:

In still another embodiment, a proximity operator may be used that will evaluate as true if a key concept or non-normalized term appears within a configurable proximity from another concept or non-normalized term.

A non-limiting list of the logical operators that may be used in the expert rules includes “and”, “or”, and “not.” In some embodiments, comparison operators, such as “<”, “>” and “=” may be used. In some embodiments, wildcards may be used for matching one or several characters (e.g., “*” or “?”). In still another embodiment, lowercase and uppercase letters may be specified, or alternatively, expert rules may not distinguish between lowercase and uppercase letters.

At block208, the normalized terms and associated non-normalized terms, and the relationship between them as expressed by the expert rules, may be positioned within the meaning taxonomy. The elements of the meaning taxonomy may be arranged into any interconnect graph structure or other arrangement or hierarchy. In one embodiment, for example, the meaning taxonomy may take the form of a hierarchical tree with normalized terms being positioned as leaf nodes within the tree structure.

In still another embodiment, a proximity operator (e.g., “near:n”) may be used that will evaluate as true if a key concept or non-normalized term appears within a configurable proximity n from another concept or non-normalized term. In some embodiments, a frequency operator may evaluate as true if a particular key concept or non-normalized term appears a certain number of times within a configurable span or section of a document.

Table 2 shows an example meaning taxonomy for business management and corporate-structure related concepts:

Table 2 is provided for illustrative purposes, and the arrangement of the taxonomy may vary from that shown without departing from the scope of the present embodiments disclosed herein. For example, in one embodiment, normalized terms may be associated with other normalized terms in a flat and/or hierarchical fashion. In another embodiment, non-normalized terms may be associated directly with normalized terms in a parent-child relationship. Other structures for storing normalized terms and non-normalized terms may be used. Thus, the logical structure of the meaning taxonomy may be tailored according to the characteristics of the information domain, thereby increasing the ease of creating and maintaining the meaning taxonomy.

Returning now toFIG.1, at block106, the search summary system processes and analyzes the content that is searched. The content may be in the form of documents, web pages, or any other collection of text.FIG.3presents a detailed view of one embodiment of this process. At block302, process300begins. At block304, the search summary system may process a document, which may include loading the content into a memory that is accessible by the system. Metadata, including the title, publisher, publication date, and other such information may also be extracted.

At block306, the system determines if a document contains one or more key concepts, as represented by the received normalized terms. In particular, the system parses the content to identify any received non-normalized terms that were associated with one or more normalized terms in block104.

If the document does not include any received non-normalized terms, the process proceeds to block314, and the next document is processed at block304.

At block308, in response to the document including one or more received non-normalized terms, the system may relate relevant documents to the corresponding key concepts in the meaning taxonomy. This relation may be determined using the results of the document processing block304and a text analytics database or search index containing text analytics information. Documents may be related with specific key concepts based on the documents' inclusion of one or more non-normalized terms. In some embodiments, the location within the content that contains a non-normalized term may also be stored or associated with the key concept. For example, the character count, word count, page/line number, or other document location identifier may be stored.

In some embodiments, the system may be configured to assign a “weight,” or importance, to documents containing content based on their perceived relevance or important in relation to other documents. In some embodiments, documents will be assigned a higher importance in proportion to the number of instances of non-normalized terms in the document. In other embodiments, importance may be based on the proximity of non-normalized terms or concepts to one another in the document.

If the document does not include any key concepts, the process proceeds to block314, and the next document is processed at block304.

At block310, after or simultaneous with detecting received non-normalized terms in the content, the system may identify and extract some or all of the content of the document. A document database may store a portion or the entirety of documents in one or more relational database tables or other structures. If the document includes any key concepts, the location of the concept in the document is stored in the search index. The location of syntactic structures corresponding to non-normalized terms may be determined, and that location may be stored in a search index as an identifier that a discussion or reference to a key concept is present at that location in the document. The location of every word, phrase, multimedia element, or other element of the document may also be stored in the search index. Other metadata information such as the character count, word count, page/line number, or other document location identifier may also be stored. The search index may be combined with or, alternately, stored separately from, the document database.

At block312, the search summary system detects if any more documents are queued. If another document is queued, the search summary system moves to the next document at block314and process300restarts for the new document at block304. If there are no more documents to search, the process300proceeds to block316. At block314, process300ends.

Returning now toFIG.1, at block106, the search summary system receives a search query containing key concepts, and, optionally, additional search terms.FIG.4presents a detailed view of an embodiment of this process. At block402, process400begins. At block404, the system may receive, from a user, a search query specifying one or more key concepts. In some embodiments, the key concepts may be received via a free-form user interface element, such as a text box. In other embodiments, the key concepts may be chosen from a list of preset key concepts.

At optional block406, the system may receive, from the user, one or more search terms to be used in a search in addition to the key concept. In some embodiments, the key concepts and any search terms may be received via a user interface element, such as a text box.

At optional block408, the system may receive a proximity requirement between one or more search terms and one or more key concepts. The search summary system may, for example, receive a requirement for a search term to be in the same sentence or paragraph as a key concept, or within a specified distance of a key concept. For example, if a user wants to limit a search to documents that mention the market growth of XYZ Co., the user can input “XYZ” as the search term, “Market Growth” as the key concept, and may require that the terms appear within the same sentence. In response, the search summary system may display information about a document (e.g., title, URL, author, etc.) along with a search summary, which may display a sentence such as “According to analysts, the client market for XYZ Co. will grow by 14% in 2015.”

In some embodiments, the system may receive a search query containing more than one key concept and a proximity requirement. For example, the user may enter a search for the key concept of Business Partnerships appearing in the same sentence as the key concept of Technology Corporations. In response, the system may return documents previously identified as containing non-normalized terms relating to business partnerships in the same sentence as other non-normalized terms relating to specific technology corporations. Such a search might return documents containing sentences like “Amazon announced a distribution partnership with Microsoft,” “Accenture and IBM strike a deal to develop hybrid cloud technology,” or “EMC seeking financial partner for new venture.”

Returning now toFIG.1, at block110the system may provide search results including key concept-based search summaries in response to a search query. For example, documents associated with a particular normalized term in block308may be identified in response to a search query involving that key concept. If the search query contains both a key concept and one or more search terms, documents containing the key concept and one or more of the search terms may be identified. The search results include extracted sections of documents that are relevant to the key concepts and any search terms that are the focus of the search, and may also include metadata such as document titles, document links, authorship or publication information, or the like. In one embodiment, a document listing includes a search summary with snippets of text relevant to one or more key concepts. In another embodiment, the document listing may also include a search summary with snippets of text containing one or more search terms.

The search results may be provided to an external entity, which may include a user or another system. In one embodiment, the search results including the search summaries are provided to a user of a search engine through a graphical user interface. In another embodiment, the results are provided to another system through a system interface. An example user interface displaying search results is described below with regards toFIG.6.

Each of processes100,200,300, and400depicts one particular sequence of events in accord with the present application. Other stages can be added, or the order of stages can be altered in these processes without departing from the scope of the present application.

FIG.5illustrates a functional block diagram of a search summary system500according to one embodiment of the application. The search summary system500may be used to facilitate the processes detailed above. Any of the modules recited below may be implemented in customized software code or using existing software including a GUI, email, FTP, batch system interface, database system data movement tools, middleware, search engines such as Fast, Autonomy, Google Search Appliance, Microsoft SharePoint Search, and/or Lucene, scanning with optical character recognition (OCR), any combination thereof, or otherwise. Moreover, the modular structure and content recited below is for exemplary purposes only and is not intended to limit the application to the specific structure shown inFIG.5. As will be apparent to one of ordinary skill in the art, many variant modular structures can be architected without deviating from the present application. The particular modular arrangement presented inFIG.5is depicted for illustrative purposes.

System500may include one or more subsystems. One of these subsystems may include a meaning taxonomy subsystem510. The meaning taxonomy subsystem510may include a meaning taxonomy interface514and a meaning taxonomy database516. The meaning taxonomy interface514may receive meaning taxonomy configuration information from, and display meaning taxonomy configuration information to, a domain expert512. For example, the meaning taxonomy interface514may allow the domain expert512to enter or select rules by which non-normalized terms may be associated with normalized terms. The meaning taxonomy database516receives, stores, retrieves and provides meaning taxonomy configuration information, including information provided through interface600(shown inFIG.6). In one embodiment, this information is stored in one or more relational or non-relational database tables or structures, such as documents. These tables or structures may include storage fields for non-normalized terms and normalized terms, as well as storage fields for the association of these components in the meaning taxonomy.

In some embodiments, the domain expert512may enter meaning taxonomy configuration information into a spreadsheet file, including Microsoft Excel format, comma-delimited format, or flat file. The meaning taxonomy interface514may be configured to process such a spreadsheet to extract the meaning taxonomy configuration information stored therein. Meaning taxonomy configuration information received via the meaning taxonomy interface514may be stored in the meaning taxonomy database516.

System500may also include a document processing subsystem520configured to receive documents from a document repository522. The document repository522may be a database configured to store documents, or may be one or more systems (e.g., web servers) accessible over a global network (such as the Internet) and offering documents available for download. The document processing subsystem520may include a text analytics engine526configured to locate key concepts in a document based on the presence of non-normalized terms, as discussed in detail herein.

The document processing subsystem520may further include an index engine528configured to extract information from a document that will be required to determine if the document satisfies a future search query. For example, the location of each key concept, word, and phrase in the document may be indexed by the index engine528and stored in a search index538associated with the search engine. The index engine528may also access metadata stored or derived from the document, including bibliographic metadata such as the author, title, publisher, date created, date modified, date published, document type, or other metadata, and may store such metadata in the search index538.

In a preferred embodiment, the search index538and/or the document database540are located within the same subsystem as the query server536for speedy retrieval, as shown inFIG.5. It will be appreciated, however, that storage space and other considerations may make it more feasible for the search index538and/or the document database540to be stored within the document processing subsystem520or otherwise separate from, but accessible by, the query server536. Such variation are within the scope of this disclosure and do not depart from the spirit of the invention.

System500may also include a search engine subsystem530. The search engine subsystem530may include a search engine interface534through which a search engine user532may create and submit a search query to a query server536. The search engine interface534may receive search criteria, including normalized terms and/or key concepts, search terms, a proximity between normalized terms and/or search terms, and the like from the search engine user532. In response, the query server536generates and returns results, including concept-based search summaries, to the search engine interface534for display to the search engine user532.

The query server536receives search criteria from the search engine interface534, and in response may access the search index538and the document database540in formulating a response, including a concept-based search summary. For example, the query server536may access the search index538to identify documents containing the search terms or key terms provided by the search engine user532to the search engine interface534. Storing the association thusly in the search index538may yield performance benefits when retrieving documents according to their relationship to the meaning taxonomy.

The query server536may access information stored in the search index538regarding the location of search terms or key terms in the document, and may use that location information to extract portions of the document from the document database540. Those portions of the document may be used to create a concept-based search summary for the document, which may comprise a passage of the document relevant to the search terms or key terms. The concept-based search summary may also incorporate metadata about the document, including the title, publisher, author, publication date, links to online versions of the document, and the like. The concept-based search summary may then be provided to the search engine user532via the search engine interface534.

The document database540may store a portion or the entirety of documents in one or more relational database tables or other structures. These tables may share common keys with the database tables in search index538. These tables may include storage fields for sections of documents (including text, images, etc.) and metadata including association information associating sections of documents with one or more normalized terms. In another embodiment, the document database540and the search index538may be combined into one database including document information and extracted section information.

Information may flow between these components and subsystems using any technique known in the art. Such techniques include passing the information over the network via TCP/IP, passing the information between modules in memory and passing the information by writing to a file, database, or some other non-volatile storage device.

The databases516,522,538, and540may take the form of any logical and physical construction capable of storing information on a computer readable medium including flat files, indexed files, hierarchical databases, relational databases and/or object oriented databases. The data may be modeled using unique and foreign key relationships and indexes. The unique and foreign key relationships and indexes may be established between the various fields and tables to ensure both data integrity and retrieval speed.

The meaning taxonomy interface514(including term interface600) and the search engine interface534each exchange information with various system interfaces and users. In the exemplary embodiment illustrated inFIG.5, the information domain expert512exchanges information with the meaning taxonomy interface514. Similarly, the search engine user532exchanges information with the search engine interface534. In an alternative embodiment, this information may be exchanged with other applications or storage media using system interfaces provided by each of these components. Each of these components may allow for free text input, or may restrict input to a predefined set of values, and may validate any information entered prior to using the information or providing the information to other components.

The search engine interface534provides interfaces that receive search criteria from a search engine user532. In one embodiment, the search engine user528enters search engine criteria into a graphical user interface. The search engine criteria may include key terms, normalized terms, search terms, a proximity requirement, a language, a part of speech (e.g., if a key term is an adjective or a verb), a source location (e.g., a physical location like a city or document databases that searched documents are received from), relationship operators, wildcards, masks, sentence structures, sentence types (e.g., a question, an exclamatory sentence, etc.), paragraph structures, and other substantive, syntactic, or grammatical criteria.

Using the search criteria provided by the search engine interface534and information stored in the document database540and the search index538, the query server536identifies documents responsive to the search criteria. The query server536may then send search result information including the relevant documents, relevant document metadata, and the extracted sections to the search engine interface534.

In some examples, the query server536may sort the search result information based on content relevancy. For example, the query server536may sort search result information based on how many search terms, concepts, or non-normalized terms associated with concepts, are present. In other examples, the query server536may receive sorting criteria, and accordingly sort the displayed search results according to the criteria. For example, the query server536may receive a request to sort the search results by author name, document name, document length, etc. In other examples, the query server536may sort search results based on a weighted level of interest, as described above. Further, the query server536may sort extracted sections of a document based on the distance between a concept and a search term or another concept. The query server536, referring to information stored in the search index538, may then send the search result information including the sorted documents and associated sorted summaries to the search engine interface534to be displayed.

According to one implementation, after receiving the search result information, the search engine interface534may display the search result information to the search engine user532. The search engine interface may display each document name with a link to the document, document information, sections of the document relating to received key terms, and identified sections of the document related to the received meaning loaded entities.

According to another implementation, the search engine interface534may display document sections including both key terms and meaning loaded entities (e.g., based on the sorted search summaries) before document sections including only a key term or meaning loaded entity. According to some aspects, the search summary may include a limited number of displayed sections of a document (e.g., three) with an additional input to display more.

Additionally, the search engine interface534may receive input to filter the document search summaries to, for example, only display sections relating to concepts or only display sections relating to both a concept and a search term. For example, if the search summary system receives key terms “Microsoft, 2015” and concept “Strategic Partnerships,” the search summary system may receive input requesting that the query server536only return results with search summaries that include the term “Microsoft” with a specified proximity to the “Strategic Partnership” concept. The term “2015” may be used to determine that a document is published in 2015 or includes information from 2015, but the user may not be interested in summaries that include the term2015with Strategic Partnerships. In this example, the search summary system may filter out documents that do not include the term2015and still display search results including Microsoft and non-normalized terms associated with Strategic Partnerships.

The search engine interface534may also receive input to filter documents by date, author, etc. In some embodiments, the non-normalized terms associated with a concept may be visible to a user, who may have the option to filter certain non-normalized terms out of a search results.

FIG.6depicts one exemplary embodiment in which the information domain expert512may enter normalized terms and non-normalized terms using a term interface600of meaning taxonomy interface514. In particular,FIG.6illustrates a term configuration screen600that may include normalized term list602, currently selected normalized term604, non-normalized term list606, currently selected non-normalized term608, an OK button618and a Cancel button620.

These user interface elements of the term configuration screen600may function as follows. With combined reference toFIGS.5and6, the information domain expert512may enter new normalized terms by selecting a currently selected normalized term604in the normalized term list602and entering new list entries using normalized term entry element622. Each new term may be stored after it is entered by clicking the Add button624. Similarly, the information domain expert512may enter new non-normalized terms by selecting the non-normalized term list608and entering new list entries using non-normalized term entry element626. Each new term may be stored after it is entered by clicking the Add button628.

To select a particular normalized term with which to associate one or more non-normalized terms, the information domain expert512may select the particular normalized term, making it the currently selected normalized term604in the normalized term list602. The non-normalized terms associated with the currently-selected normalized term604may then be displayed in the non-normalized term list606. The information domain expert512may enter new non-normalized terms to associate with the currently selected normalized term604by entering new list entries using non-normalized term entry element626. Each new term may be stored after it is entered by clicking the Add button628. Similarly, the information domain expert502may be given the option to disassociate a previously-entered non-normalized term from the currently selected normalized term604.

When the information domain expert512is done using the term interface600, the OK button618may be clicked to save any unsaved changes made, or the Cancel button620may be clicked to discard the unsaved changes.

FIG.7illustrates an example user interface for displaying concept-based search summaries according to one embodiment. In the illustrated example, the user interface includes elements for search terms702, key concepts716, and filters718. Using the received elements, the user interface may display document names704along with document authors706, document dates708, and search summaries710. The document information may be taken from metadata describing the document, and the search summaries710may have been generated from the document by locating non-normalized terms associated with one or more normalized terms716(i.e., key concepts). The search summaries710may include search terms702and/or non-normalized terms associated with key concepts. In some embodiments, all of the relevant parts of text may be extracted and displayed in the user interface. In one embodiment, the search summary may be clickable and include a link to the section of the document including the search summary, allowing the user to directly go to a relevant section of the document. In the example illustrated inFIG.7, a See More option714is displayed that, when activated, may show additional search summaries710. Further, the documents may be sorted by how many relevant search summaries710relate to the document. In the illustrated example, the “Search Engine Annual Review” document may include more relevant search summary sections than the “Search Engines Revolutionized” document. The sorting options712may also allow a user to sort documents by document name704, document author706, document date708, etc.

The search summaries710may be any specified length (e.g., fifty characters, one sentence, one paragraph, etc.) and may include any number of displayed sections of text or other media. In some embodiments, if metadata describes an image relating to a search term702and/or a concept that image or a representation of that image may be displayed in the search summary.

Filters may also be added to limit the documents that are displayed. In the illustrated example onFIG.7, a filter is included that requires the documents displayed have a publishing date after Jan. 1, 2014. Filters may specify words (e.g., if a user wishes to exclude documents with certain terms), authors, publishers, dates, locations, titles, document metadata tags, etc.

In some embodiments, the search terms702may include categorized search terms. For example, instead of loading filters and concepts, a user may input “MLE=′Strategic Partnerships', CBS News, IBM” to search for documents including the concept “Strategic Partnerships” as well as “CBS News” and “IBM” as key terms. Documents with search summaries including, for example, “CBS News and IBM are working together to fund new startups” may be displayed in response to this example search.

In another aspect of the present disclosure, the search summary system allows for the analysis of content to identify and extract quotes or other statements by or relating to one or more topics, people, or business entities. Such a system (e.g., system500) can allow for a user to search a body of documents for quotes or other statements made by an entity about any topic, or about particular normalized terms or other topics.

In one example, a meaning taxonomy is defined in which quotes are recognized as a special case of normalized terms. A quote normalized term (e.g., “Quote”) may be defined, and a number of syntactic structures indicating the presence of a quote or other statement in the document (e.g., “said,” “stated that”) may be associated with the quote normalized term. In some embodiments, an entity name may be defined as a normalized term (e.g., a company name), and the names of individuals associated with the entity may be associated with the entity normalized term as syntactic structures. In other embodiments, metadata may be used to establish that a quote normalized term is associated with the content. For example, where metadata indicates that the content comprises or originated from a press release issued by an entity or a website controlled by the entity, the entirety of the content may be deemed to be a statement of the entity.

Where the meaning taxonomy includes a quote normalized term, the meaning taxonomy can be used to locate quotes or other statements in the content made by or about an entity, or about a normalized term or other topic. For example, the search summary system may determine that content containing the phrase “an IBM spokesman declined to comment on the lawsuit” contains a quote normalized term within a defined proximity of the entity normalized term “IBM,” thereby indicating that the content contains a statement by IBM. In another example, the search summary system may determine that content containing the phrase “an IBM spokesman reported robust growth of its cloud-computing business” contains a quote normalized term within a defined proximity of the entity normalized term “IBM” and within a defined proximity of the normalized term “cloud computing,” thereby indicating that the content includes a statement by IBM regarding cloud computing. In some embodiments, the relationship of the entity normalized term to the quote normalized term may be determined through the proximity of the entity normalized term to the quote normalized term, through language processing techniques, or otherwise, to determine if the entity represented by the entity normalized term is the subject or the object of the statement represented by the quote normalized term (e.g., to determine if a detected statement is about the entity, by the entity, or both by and about the entity).

FIG.9illustrates a process flow diagram900for providing quote-based search summaries. Components of this process and its sub-processes may be implemented using, for example, a computer system as discussed with regard toFIG.8below.

At block920, information identifying a meaning taxonomy is received. The meaning taxonomy may be defined in much the same way as described above with respect to block104of method100. In this embodiment, the meaning taxonomy also includes a normalized term and at least one syntactic structure that identifies an entity. The normalized term may represent an entity (e.g., “General Motors”) and the at least one syntactic structure may represent ways in which the entity may be identified in the content (e.g., “GM,” “General Motors,” and “General Motors Company”).

In some embodiments, an entity name may be defined as a normalized term (e.g., a company name), and the names of individuals associated with the entity may be associated as non-normalized terms. In this manner, statements by such individuals can be attributed to the entity for purposes of locating quote normalized terms by or about the entity in the content. In some embodiments, the document author and other metadata may be analyzed further to determine if the authorship is such that the document could, in fact, be considered a statement by the entity in question. For example, statements by senior-level employees (such as executives or engineering team leaders) may be deemed attributable to the entity, whereas statements by lower-level employees may not be.

In other embodiments, metadata may be used to establish that a quote normalized term is associated with the content. For example, where metadata indicates that the content comprises or originated from a press release issued by an entity or a website controlled by the entity, the entirety of the content may be deemed to be a statement of the entity, and may be associated with a quote normalized term and an entity normalized term associated with the entity.

A quote normalized term (e.g., “Quote”) may be defined, and number of syntactic structures indicating the presence of a quote or other statement in the document may be associated with the quote normalized term, Such syntactic structures may include “according to,” “says,” “said,” “issued a statement,” “indicated,” “asserts,” “hinted at,” “believes,” or the like. In some embodiments, quotation marks may be defined as syntactic structures to identify the presence of a quote, and the syntax of the text between pairs of quotation marks may be analyzed to confirm that the text is a quote. The quote normalized term and associated syntactic structures may be provided by an expert or otherwise as described in block104of method100.

At block930, a statement attributable to the entity is located within at least one document of the plurality of documents.FIG.10presents a detailed view of an embodiment of this sub-process1000. At block1010, process1000begins. At block1020, the statement attributable to the entity is located by first locating at least one of the syntactic structures in at least one document. To continue the previous example, the syntactic structure (i.e., non-normalized term) “GM” may be located by parsing, searching, or otherwise processing the document. The meaning taxonomy defined in block920can be used to determine, for example, that “GM” refers to “General Motors.”

At block1030, a second syntactic structure indicative of a statement is identified within a certain proximity (e.g., within a certain number of words, or within the same sentence or paragraph) of the first syntactic structure. For example, such second syntactic structures associated with a quote normalized term may include “according to,” “says,” “said,” “issued a statement,” “indicated,” “asserts,” “hinted at,” “believes,” or the like. In some embodiments, quotation marks may also be defined as second syntactic structures indicating a direct quote.

The locations in the plurality of documents of quotes or other statements by the entity may be associated with the documents generally as described above with respect to block308in process300.

Returning toFIG.9, at block940, a search query comprising the normalized term is received from a user of a user interface. For example, the user may be provided the option to type a normalized term (e.g., an entity name, such as “General Motors”) into a text box. In another example, the user may be provided the option to select the normalized term from a list of such terms. In some embodiments, the user may be given the opportunity to provide additional normalized terms to allow the system to identify statements by the entity about a topic represented by the additional normalized terms. For example, the user may be presented with a list of normalized terms including the term “mergers.” When that term is additionally selected, the system may be configured to locate statements by General Motors about mergers.

At block950, a summary of the at least one document containing the statement attributable to the entity is displayed. The summary may be displayed generally as described above with respect to block110in process100, and as further shown inFIG.11.

FIG.11illustrates an example user interface for allowing a user to search for quotes (i.e., direct quotes or other statements) by one or more entities, or relating to one or more normalized terms, according to one embodiment. In the illustrated example, the user interface includes elements for search terms1102, concepts1116, and filters1118. Using the received elements, the user interface may display document names904along with document authors1106, document dates1108, and search summaries1110associated with documents containing quotes relevant to the search terms1102. For example, documents may be displayed that contain quotes by an entity identified as a non-normalized term in search terms1102.

The document information may be taken from metadata describing the document, and the search summaries1110may have been generated from the document by locating non-normalized terms associated with one or more normalized terms1116(i.e., entities). The search summaries1110may be similar to the search summaries710shown inFIG.7. The search summaries1110may include search terms1102and/or non-normalized terms associated with key concepts. In some embodiments, all of the relevant parts of text may be extracted and displayed in the user interface. In one embodiment, the search summary may be clickable and include a link to the section of the document including the search summary, allowing the user to directly go to a relevant section of the document. The sorting options1112may also allow a user to sort documents by document name1104, document author1106, document date1108, or other criteria. For example, one sorting option1112may allow the user to sort documents according to whether the statement in the document is a direct quote or, instead, a paraphrase of a direct quote. In another example, one sorting option1112may allow the user to sort documents according to the importance of the statement, or the degree to which it is attributable to the entity; such a sorting criteria may be applied with reference to the title or perceived importance of the individual making the statement, or whether the statement is an official statement of the entity (e.g., a press release or official statement) not attributable to one individual.

In the example illustrated inFIG.11, a user has entered the search term1102“IBM” and chosen the Key Concept1116“Market Growth.” Those elements have been submitted as a search query on a system where the non-normalized term “Big Blue” has been associated with the normalized “IBM.” When the search is submitted, results1150,1160are returned. Result1150represents a document titled “Hardware Annual Review.” The meaning taxonomy defined in this example allows the system to recognize that the phrase “According to a spokesperson for Big Blue, the market for mainframes is expected to grow by 10% in 2017” is a quote or other statement by IBM about the normalized term Market Growth. Result1160represents a document titled “Search Engine Revolutionized.” The meaning taxonomy defined in this example allows the system to recognize that the document author1160, “IBM Whitepaper,” indicates that the entire document can be considered a statement by IBM and/or its employees. The meaning taxonomy further allows the system to recognize that the phrase “[u]se of search engines is exponentially growing within technology markets” is a quote or other statement by IBM about the normalized term Market Growth.

Various aspects, functions, and processes may be distributed among one or more computer systems configured to provide a service to one or more client computers, or to perform an overall task as part of a distributed system, such as the distributed computer system800shown inFIG.8. Additionally, aspects may be performed on a client-server or multi-tier system that includes components distributed among one or more server systems that perform various functions. Consequently, embodiments are not limited to executing on any particular system or group of systems. Further, aspects, functions, and processes may be implemented in software, hardware or firmware, or any combination thereof. Thus, aspects, functions, and processes may be implemented within methods, acts, systems, system elements and components using a variety of hardware and software configurations, and examples are not limited to any particular distributed architecture, network, or communication protocol.

Referring toFIG.8, there is illustrated a block diagram of a distributed computer system1000, in which various aspects and functions are practiced. As shown, the distributed computer system1000includes one or more computer systems that exchange information. More specifically, the distributed computer system800includes computer systems802,804, and806. As shown, the computer systems802,804, and806are interconnected by, and may exchange data through, a communication network808. The network808may include any communication network through which computer systems may exchange data. To exchange data using the network808, the computer systems802,804, and806and the network808may use various methods, protocols and standards, including, among others, Fibre Channel, Token Ring, Ethernet, Wireless Ethernet, Bluetooth, IP, IPV6, TCP/IP, UDP, DTN, HTTP, FTP, SNMP, SMS, MMS, SS7, JSON, SOAP, CORBA, REST, and Web Services. To ensure data transfer is secure, the computer systems802,804, and806may transmit data via the network808using a variety of security measures including, for example, SSL or VPN technologies. While the distributed computer system1000illustrates three networked computer systems, the distributed computer system1000is not so limited and may include any number of computer systems and computing devices, networked using any medium and communication protocol.

As illustrated inFIG.8, the computer system802includes a processor810, a memory812, an interconnection element814, an interface816and data storage element818. To implement at least some of the aspects, functions, and processes disclosed herein, the processor810performs a series of instructions that result in manipulated data. The processor810may be any type of processor, multiprocessor or controller. Example processors may include a commercially available processor such as an Intel Xeon, Itanium, or Coreprocessor; an AMD Opteron processor; an Apple A4 or A5 processor; an IBM Power5+ processor; an IBM mainframe chip; or a quantum computer. Any number of processor and types of processors may be used. The processor810is connected to other system components, including one or more memory devices812, by the interconnection element814.

The memory812stores programs (e.g., sequences of instructions coded to be executable by the processor810) and data during operation of the computer system802. Thus, the memory812may be a relatively high performance, volatile, random access memory such as a dynamic random access memory (“DRAM”) or static memory (“SRAM”). However, the memory812may include any device for storing data, such as a disk drive or other nonvolatile storage device. Various examples may organize the memory812into particularized and, in some cases, unique structures to perform the functions disclosed herein. These data structures may be sized and organized to store values for particular data and types of data.

Components of the computer system802are coupled by an interconnection element such as the interconnection element814. The interconnection element814may include any communication coupling between system components such as one or more physical busses in conformance with specialized or standard computing bus technologies such as IDE, SCSI, PCI and InfiniBand. The interconnection element814enables communications, including instructions and data, to be exchanged between system components of the computer system802.

The computer system802also includes one or more interface devices816such as input devices, output devices and combination input/output devices. Interface devices may receive input or provide output. More particularly, output devices may render information for external presentation. Input devices may accept information from external sources. Examples of interface devices include keyboards, mouse devices, trackballs, microphones, touch screens, printing devices, display screens, speakers, network interface cards, etc. Interface devices allow the computer system802to exchange information and to communicate with external entities, such as users and other systems.

The data storage element818includes a computer readable and writeable nonvolatile, or non-transitory, data storage medium in which instructions are stored that define a program or other object that is executed by the processor810. The data storage element818also may include information that is recorded, on or in, the medium, and that is processed by the processor810during execution of the program. More specifically, the information may be stored in one or more data structures specifically configured to conserve storage space or increase data exchange performance. The instructions may be persistently stored as encoded signals, and the instructions may cause the processor810to perform any of the functions described herein. The medium may, for example, be optical disk, magnetic disk or flash memory, among others. In operation, the processor810or some other controller causes data to be read from the nonvolatile recording medium into another memory, such as the memory812, that allows for faster access to the information by the processor810than does the storage medium included in the data storage element818. The memory may be located in the data storage element818or in the memory812, however, the processor810manipulates the data within the memory, and then copies the data to the storage medium associated with the data storage element818after processing is completed. A variety of components may manage data movement between the storage medium and other memory elements and examples are not limited to particular data management components. Further, examples are not limited to a particular memory system or data storage system.

Although the computer system802is shown by way of example as one type of computer system upon which various aspects and functions may be practiced, aspects and functions are not limited to being implemented on the computer system802as shown inFIG.8. Various aspects and functions may be practiced on one or more computers having a different architectures or components than that shown inFIG.8. For instance, the computer system802may include specially programmed, special-purpose hardware, such as an application-specific integrated circuit (“ASIC”) tailored to perform a particular operation disclosed herein. While another example may perform the same function using a grid of several general-purpose computing devices running MAC OS System X with Motorola PowerPC processors and several specialized computing devices running proprietary hardware and operating systems.

The computer system802may be a computer system including an operating system that manages at least a portion of the hardware elements included in the computer system802. In some examples, a processor or controller, such as the processor810, executes an operating system. Examples of a particular operating system that may be executed include a Windows-based operating system, such as, Windows 7 or 8 operating systems, available from the Microsoft Corporation, a MAC OS System X operating system or an iOS operating system available from Apple Computer, one of many Linux-based operating system distributions, for example, the Enterprise Linux operating system available from Red Hat Inc., or a UNIX operating systems available from various sources. Many other operating systems may be used, and examples are not limited to any particular operating system.

The processor810and operating system together define a computer platform for which application programs in high-level programming languages are written. These component applications may be executable, intermediate, bytecode or interpreted code which communicates over a communication network, for example, the Internet, using a communication protocol, for example, TCP/IP. Similarly, aspects may be implemented using an object-oriented programming language, such as .Net, Java, C++, Ada, C# (C-Sharp), Python, or JavaScript. Other object-oriented programming languages may also be used. Alternatively, functional, scripting, or logical programming languages may be used.

Additionally, various aspects and functions may be implemented in a non-programmed environment. For example, documents created in HTML, XML or other formats, when viewed in a window of a browser program, can render aspects of a graphical-user interface or perform other functions. Further, various examples may be implemented as programmed or non-programmed elements, or any combination thereof. For example, a web page may be implemented using HTML while a data object called from within the web page may be written in C++. Thus, the examples are not limited to a specific programming language and any suitable programming language could be used. Accordingly, the functional components disclosed herein may include a wide variety of elements (e.g., specialized hardware, executable code, data structures or objects) that are configured to perform the functions described herein.

In some examples, the components disclosed herein may read parameters that affect the functions performed by the components. These parameters may be physically stored in any form of suitable memory including volatile memory (such as RAM) or nonvolatile memory (such as a magnetic hard drive). In addition, the parameters may be logically stored in a propriety data structure (such as a database or file defined by a user space application) or in a commonly shared data structure (such as an application registry that is defined by an operating system). In addition, some examples provide for both system and user interfaces that allow external entities to modify the parameters and thereby configure the behavior of the components.

Based on the foregoing disclosure, it should be apparent to one of ordinary skill in the art that the application is not limited to a particular computer system platform, processor, operating system, network, or communication protocol. Also, it should be apparent that the present application is not limited to a specific architecture or programming language.

Having now described some illustrative aspects of the application, it should be apparent to those skilled in the art that the foregoing is merely illustrative and not limiting, having been presented by way of example only. While the bulk of this disclosure is focused on embodiments directed to data types relating to business management, aspects of the present application may be applied to other information domains, for instance law and scientific disciplines. Similarly, aspects of the present application may be used to achieve other objectives including assisting other types of users, such as domain information experts, in their analysis of specific information domains. Numerous modifications and other illustrative embodiments are within the scope of one of ordinary skill in the art and are contemplated as falling within the scope of the application. In particular, although many of the examples presented herein involve specific combinations of method acts or system elements, it should be understood that those acts and those elements may be combined in other ways to accomplish the same objectives. Acts, elements and features discussed only in connection with one embodiment are not intended to be excluded from a similar role in other embodiments.