Information retrieval from a collection of information objects tagged with hierarchical keywords
Summary by NHIP
Keyword hierarchy expansion
The method arranges keywords into hierarchical trees and computes association scores based on tree distances between keyword positions. It automatically expands original queries by adding friend keywords whose scores meet or exceed a predetermined value and are not in the original query.
Claim Score by NHIP
Abstract
The present invention can include a data processing system-implemented method or a data processing system readable media having software code for carrying out the method. The method can comprise formulating queries, searching for a plurality of information objects, or a combination thereof. In a specific embodiment, an original query with at least one keyword can be automatically expanded to an expanded query that includes at least one keyword that is not in the original query. The expanded query may be used to search for information objects that are relevant to the expanded query.

Term
Term ended
Expired 20 July 2021, 5.2 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
17 claims: 3 independent, 14 dependent
- 1Broadest claimClaim Score 31, narrow(NHIP)A data preparation method useful for information retrieval, comprising:at a server computer, arranging a master list of keywords into one or more trees, at least one of which representing a keyword hierarchy;relating a set of keywords to each information object of a set of information objects stored in a repository, the set of keywords being members of the master list of keywords;determining friend keywords for each keyword in the master list of keywords, the determining comprising computing association scores between a given keyword and all other keywords in the keyword hierarchy based at least in part upon positions of each keyword-friend pair within the keyword hierarchy and a tree distance between the positions, each of the association scores representing a degree of association of the given keyword and a friend keyword in the keyword hierarchy;automatically expanding an original query to produce an expanded query, the original query being generated by end-user activity at a client computer communicatively connected to the server computer over a network connection, the original query comprising a first keyword, the expanded query comprising the first keyword and a second keyword, the second keyword being associated with the first keyword from the original query in a keyword-friend pair according to the keyword hierarchy, the keyword-friend pair having an association score that meets or exceeds a predetermined value, wherein the second keyword is not in the original query;and searching the repository to identify information objects that correspond to the expanded query.
- 9A computer program product comprising at least one non-transitory computer readable medium storing instructions translatable by a processor of a server computer to perform:arranging a master list of keywords into one or more trees, at least one of which representing a keyword hierarchy;relating a set of keywords to each information object of a set of information objects stored in a repository, the set of keywords being members of the master list of keywords;determining friend keywords for each keyword in the master list of keywords, the determining comprising computing association scores between a given keyword and all other keywords in the keyword hierarchy based at least in part upon positions of each keyword-friend pair within the keyword hierarchy and a tree distance between the positions, each of the association scores representing a degree of association of the given keyword and a friend keyword in the keyword hierarchy;automatically expanding an original query to produce an expanded query, the original query being generated by end-user activity at a client computer communicatively connected to the server computer over a network connection, the original query comprising a first keyword, the expanded query comprising the first keyword and a second keyword, the second keyword being associated with the first keyword from the original query in a keyword-friend pair according to the keyword hierarchy, the keyword-friend pair having an association score that meets or exceeds a predetermined value, wherein the second keyword is not in the original query;and searching the repository to identify information objects that correspond to the expanded query.
- 15A system, comprising:a processor;and at least one non-transitory computer readable medium storing instructions translatable by the processor to perform: arranging a master list of keywords into one or more trees, at least one of which includes nodes representing a keyword hierarchy;relating a set of keywords to each information object of a set of information objects stored in a repository, the set of keywords being members of the master list of keywords;determining friend keywords for each keyword in the master list of keywords, the determining comprising computing association scores between a given keyword and all other keywords in the keyword hierarchy based at least in part upon positions of each keyword-friend pair within the keyword hierarchy and a tree distance between the positions, each of the association scores representing a degree of association of the given keyword and a friend keyword in the keyword hierarchy;automatically expanding an original query to produce an expanded query, the original query being generated by end-user activity at a client computer communicatively connected to the system over a network connection, the original query comprising a first keyword, the expanded query comprising the first keyword and a second keyword, the second keyword being associated with the first keyword from the original query in a keyword-friend pair according to the keyword hierarchy, the keyword-friend pair having an association score that meets or exceeds a predetermined value, wherein the second keyword is not in the original query;and searching the repository to identify information objects that correspond to the expanded query.
Independent claims3
107 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
0001This is a continuation of and claims a benefit of priority under 35 U.S.C. 120 of the filing date of U.S. patent application Ser. No. 11/221,608, filed Sep. 8, 2005, now U.S. Pat. No. 7,627,558, entitled “INFORMATION RETRIEVAL FROM A COLLECTION OF INFORMATION OBJECTS TAGGED WITH HIERARCHICAL KEYWORDS,” which is a continuation of U.S. patent application Ser. No. 09/682,107, filed Jul. 20, 2001, issued as U.S. Pat. No. 7,028,024, entitled “INFORMATION RETRIEVAL FROM A COLLECTION OF INFORMATION OBJECTS TAGGED WITH HIERARCHICAL KEYWORDS,” both of which are fully incorporated by reference herein.
BACKGROUND OF INVENTION
00021. Field of the Invention
0003This invention relates in general to methods and data processing system readable media, and more particularly, to data processing system-implemented methods of formulating queries and searching for a plurality of information objects and data processing system readable media having software code for carrying out those methods.
00042. Description of the Related Art
0005A goal of information retrieval systems is to allow efficient access to selected documents or other kinds of information objects from a repository. The user of such a system may be interested in knowing the existence and location of the available information objects that are relevant to a specific request or query.
0006A common approach used in information retrieval systems is to associate one or more keywords with each information object. The set of all known keywords comprises the “master set” of keywords. To form a query, the user provides one or more keywords, which may or may not be drawn from the master set. The information retrieval system then returns each information object for which one or more of its associated keywords match one or more of the keywords in the query. As a further step, a mathematical formula can be applied to the number of keyword matches to provide a scalar that is associated with each information object returned by the query. The scalar serves as a “relevance score” that indicates the degree to which the particular information object matches the query. This approach can be generally termed “keyword-matching” and there are many specific embodiments used in practice. Some difficulties with the keyword-matching approach are set forth in the following paragraphs.
0007First, the user of the system may not know or be able to grasp all of the possible keywords in the master set. In this case, the user may provide queries that contain keywords that are not used in the master set. This reduces the effectiveness of the system, particularly when the master set includes keywords that have closely related meanings in a particular application, and a simple match cannot make use of this information. For example, assume the repository contains documents describing fruits and vegetables, and a treatise on tomatoes has been assigned the keyword “nightshade” because it also includes discussions of eggplant and potatoes. The user desiring information on tomatoes might enter a query such as “tomatoes” and this query would fail to match the treatise on the nightshade family, even though that document is relevant to the user's purpose.
0008Second, the mathematical formulae that are widely described and used to compute relevance scores may not take advantage of the relationships among keywords that are inherent in any specific information repository. For example, given a repository that contains documents on fruits and vegetables, systems that compute a relevance score based only on the number of keyword matches have no way to incorporate the fact that a document tagged with keywords “nightshade” and “treatise” should more closely match the query pair “tomato” and “treatise” than the query pair “lamp” and “treatise.” Attempts to address these shortcomings have been proposed, but the methods fail to fully address the problems users may encounter. Some systems have been developed that organize the keywords into a hierarchical tree structure. This, by itself, is not a solution, as will become evident in some of the paragraphs that follow.
0009A system described in U.S. Pat. No. 6,094,652 (“Faisal”) places keywords into a hierarchical structure. The hierarchy expresses the associations among the keywords in the repository. When responding to a user query, the system suggests keywords from the hierarchy that broaden or narrow the scope. The system also suggests keywords that represent concepts that are neither broader nor narrower but are related by means of an explicit cross-link among the nodes in the keyword hierarchy. The user can refine his or her query in an interactive and iterative fashion.
0010A system described in U.S. Pat. No. 6,098,066 (“Snow”) arranged the information objects into a document hierarchy (a tree data structure). Each node of the hierarchy corresponds to a category and contains at least one document. The user of the system has the option of restricting their search to the documents branching from a specific category (which these authors term a “directed” search) or searching all documents in the repository (which these authors term an “undirected” search). The user may restrict the number of documents returned by the system by focusing on a particular category, while leaving the user with the option of searching the entire repository if desired.
0011A system described in U.S. Pat. No. 5,991,756 (“Wu”) places documents into a hierarchical structure. The system retrieves documents that match one or more query keywords directly or match “indirectly” by being located as a child node to a document in the document hierarchy that matches directly one or more of the query terms.
0012A system described in U.S. Pat. No. 5,630,125 (“Zellweger”) places documents into a hierarchical structure that has one or more paths leading to a given document. The system provides an interactive method that allows the user to formulate a final query by navigating the hierarchy structure to the desired documents. Multiple paths support synonyms and allow the user to clarify word meaning in a given context.
0013A system described in U.S. Pat. No. 5,787,417 (“Hargrove”) is highly similar to that described by Zellweger in that it provides an interface for allowing the user to interactively navigate the hierarchy of the repository to locate the desired information objects.
0014A textbook by C. J. Van Rijsbergen (Information Retrieval, 2 .sup.nd Ed) describes a general strategy for information retrieval by keyword matching. It also gives the mathematical formulae that can be used to transform the combination of a “query vector” and a “document vector” into a final “relevance score” that can be used to rank the documents returned by a retrieval system according to their degree of relevance to the query.
0015Each of the systems in those documents has at least one limitation or disadvantage in some applications.
0016Systems that require the user to interactively refine their query (such as those described by Faisal, Zellweger, and Hargrove) are inherently more time consuming for the user than a system that returns results in response to a single query. Further, human interfacing with a computer costs a company valuable human resources. In some applications (such as those described in the next section), the information retrieval is automated, and there is no opportunity to refine or otherwise change the query before searching begins.
0017Systems that restrict the retrieved documents to those with a particular ancestry in a document hierarchical structure (such as those described by Faisal, Snow, and Wu) can fail to return relevant documents outside their hierarchical search path unless there have been many cross-links provided (such as in the system described by Faisal). Cross links must be created and maintained manually, a time-consuming and error-prone process.
0018Several of the prior systems do not prescribe a method for assigning a relevance score between the query and the documents in the repository (such as the systems described by Zellweger and Hargrove). It is often convenient for the users to have a relevance score to help them estimate their level of interest in the returned documents. Furthermore, systems that restrict the search path to a particular set of child nodes in the hierarchy (such as that described by Wu) cannot provide relevance scores for documents that lie outside the restricted set of child nodes. In some applications, this means that not all documents can be assigned a relevance score in response to a given query.
SUMMARY OF INVENTION
0019Embodiments of the present invention do not suffer from the problems seen with prior art methods and systems. A user is not required to interactively refine a search because a data processing system can be programmed to automatically expand an original query having original keywords to an expanded query that includes friend keywords of the original keywords. Searching may be performed that cover parts of one or more hierarchies because keywords outside a specific ancestry may be used. Further, the documents are not required to be placed within a document hierarchy. A cross-link system is not required, which saves valuable money and human resources.
0020In one set of embodiments, a data processing system-implemented method of searching for a plurality of information objects can comprise receiving a first signal that includes or is used to form a first query. The first query may include a first keyword within a hierarchy. The method can also comprise expanding the first query to a second query. The second query may include the first keyword and a second keyword within the hierarchy. The method can further comprise searching the database using the second query and finding a first identifier for a first information object that corresponds to the second query.
0021In another set of embodiments, a data processing system-implemented method of formulating a query can comprise receiving a first signal that includes or is used to form a first query having a first keyword. The method can also comprise automatically expanding the first query to a second query. The second query may include the first keyword and a second keyword that is not present within the first query.
0022In still other embodiments, a data processing system readable medium can have code embodied within it. The code can include instructions executable by a data processing system. The instructions may be configured to cause the data processing system to perform the methods described herein.
0023The foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as defined in the appended claims.
BRIEF DESCRIPTION OF DRAWINGS
0024The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles on of the invention.
0025<figref idref="DRAWINGS">FIG. 1</figref> includes an illustration of a hardware architecture for carrying out methods of searching a database;
0026<figref idref="DRAWINGS">FIG. 2</figref> includes an illustration of a data processing system storage medium including software code;
0027<figref idref="DRAWINGS">FIG. 3</figref> includes an illustration of a hierarchy of keywords;
0028<figref idref="DRAWINGS">FIG. 4</figref> includes a flow diagram for adding keywords, friends, and information objects to a database; and
0029<figref idref="DRAWINGS">FIG. 5</figref> includes a flow diagram for obtaining information objects related to a keyword and its friends.
0030Skilled artisans appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
DETAILED DESCRIPTION
0031Reference is now made in detail to the exemplary embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts (elements).
0032The present invention can include a data processing system-implemented method or a data processing system readable media having software code for carrying out the method. The method can comprise formulating queries, searching for a plurality of information objects, or a combination thereof. In a specific embodiment, an original query with at least one keyword can be automatically expanded to an expanded query that includes at least one keyword that is not in the original query. The expanded query may be used to search for information objects that are relevant to the expanded query.
0033Before discussing embodiments of the present invention, a hardware architecture for using embodiments is described. <figref idref="DRAWINGS">FIG. 1</figref> illustrates an exemplary architecture and includes a client computer <b>12</b> that is bi-directionally coupled to a network <b>14</b>, and a server computer <b>16</b> that is bi-directionally coupled to the network <b>14</b> and database <b>18</b>. The client computer <b>12</b> includes a central processing unit (“CPU”) <b>120</b>, a read-only memory (“ROM”) <b>122</b>, a random access memory (“RAM”) <b>124</b>, a hard drive (“HD”) or storage memory <b>126</b>, and input/output device(s) (“I/O”) <b>128</b>. The I/O devices <b>128</b> can include a keyboard, monitor, printer, electronic pointing device (e.g., mouse, trackball, etc.), or the like. The server computer <b>16</b> can include a CPU <b>160</b>, ROM <b>162</b>, RAM <b>164</b>, HD <b>166</b>, and I/O <b>168</b>.
0034Each of the client computer <b>12</b> and the server computer <b>16</b> are examples of data processing systems. ROM <b>122</b> and <b>162</b>, RAM <b>124</b> and <b>164</b>, HD <b>126</b> and <b>166</b>, and the database <b>10</b> include media that can be read by the CPU <b>120</b> or <b>160</b>. Therefore, each of these types of memories includes a data processing system readable medium. These memories may be internal or external to the computers <b>12</b> and <b>14</b>.
0035The methods described herein may be implemented in suitable software code that may reside within ROM <b>122</b> or <b>162</b>, RAM <b>124</b> or <b>164</b>, or HD <b>126</b> or <b>166</b>. In addition to those types of memories, the instructions in an embodiment of the present invention may be contained on a data storage device with a different data processing system readable storage medium, such as a floppy diskette. <figref idref="DRAWINGS">FIG. 2</figref> illustrates a combination of software code elements <b>204</b>, <b>206</b>, and <b>208</b> that are embodied within a data processing system readable medium <b>202</b>, on a floppy diskette <b>200</b>. Alternatively, the instructions may be stored as software code elements on a DASD array, magnetic tape, conventional hard disk drive, electronic read-only memory, optical storage device, CD ROM or other appropriate data processing system readable medium or storage device.
0036In an illustrative embodiment of the invention, the computer-executable instructions may be lines of compiled C<sup>++</sup>, Java, or other language code. Other architectures may be used. For example, the functions of the client computer <b>12</b> may be incorporated into the server computer <b>16</b>, and vice versa. <figref idref="DRAWINGS">FIGS. 4 and 5</figref> include illustrations, in the form of flowcharts, of the structures and operations of such a software program.
0037Communications between the client computer <b>12</b> and the server computer <b>16</b> can be accomplished using electronic or optical signals. When a user (human) is at the client computer <b>12</b>, the client computer <b>12</b> may convert the signals to a human understandable form when sending a communication to the user and may convert input from a human to appropriate electronic or optical signals to be used by the client computer <b>12</b> or the server computer <b>16</b>.
0038Attention is now directed to data preparation and system initialization for searching. During data preparation, a master list of keywords (referred to as the Master Keyword List) is generated and arranged into one or more sets of hierarchical relationships or “trees.” For example, <figref idref="DRAWINGS">FIG. 3</figref> includes a tree (hierarchy) with 12 keywords: B, C, . . . , M. The root of the tree is the node A<b>302</b>. Nodes B<b>312</b>, C<b>314</b>, and D<b>316</b> are the children of node A<b>302</b>. Nodes <b>321</b> E<b>321</b>, F<b>322</b>, and G<b>323</b> are the children of node B<b>312</b>. Nodes H<b>326</b>, I<b>327</b>, and J<b>328</b> are the children of node D<b>316</b>. Nodes <b>332</b> K<b>332</b>, L<b>334</b>, and M<b>336</b> are the children of node I<b>327</b>. Nodes C<b>314</b>, E<b>321</b>, F<b>322</b>, G<b>323</b>, H<b>326</b>, J<b>328</b>, K<b>332</b>, L<b>334</b>, and M<b>336</b> have no children.
0039The dashed lines <b>310</b>, <b>320</b>, and <b>330</b> are used as a point of reference to divide “generations” of nodes. Each node belongs to a specific “generation” that is equal to the number of ancestor nodes between the given node and the root of the tree. For example, nodes <b>332</b>, <b>334</b>, and <b>336</b> are members of the third generation (generation=3) because these nodes have three ancestors (nodes <b>327</b>, <b>316</b>, and <b>302</b>). The significance of the generations will become apparent later. Note that <figref idref="DRAWINGS">FIG. 3</figref> can allow for the identification of the “lowest common ancestor” node. For example, when comparing nodes <b>332</b> and <b>336</b>, the lowest common ancestor node is node <b>327</b>, which is the parent node for each of nodes <b>332</b> and <b>336</b>. When comparing nodes <b>326</b> and <b>336</b>, the lowest common ancestor node is node <b>316</b>, which is the parent node to node <b>326</b> and the grandparent node of node <b>336</b>.
0040The name of the tree can be the root, which in this example can be “tree A.” If tree A were the only tree, then {B, C, . . . , M} may also be the master list of keywords. Each tree can be represented as a relational database table, as shown for this example in Table I. Additional tables may be present for other keyword hierarchies.
0041<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE 1</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Keyword Hierarchy Table</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="91pt" align="left" /><colspec colname="1" colwidth="98pt" align="center" /><colspec colname="2" colwidth="28pt" align="center" /><tbody valign="top"><row><entry /><entry>Node</entry><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="91pt" align="center" /><colspec colname="2" colwidth="28pt" align="center" /><colspec colname="3" colwidth="98pt" align="center" /><tbody valign="top"><row><entry>Keyword</entry><entry>Parent</entry><entry>Generation</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row><row><entry>B</entry><entry>A</entry><entry>1</entry></row><row><entry>C</entry><entry>A</entry><entry>1</entry></row><row><entry>D</entry><entry>A</entry><entry>1</entry></row><row><entry>E</entry><entry>B</entry><entry>2</entry></row><row><entry>F</entry><entry>B</entry><entry>2</entry></row><row><entry>G</entry><entry>B</entry><entry>2</entry></row><row><entry>H</entry><entry>D</entry><entry>2</entry></row><row><entry>I</entry><entry>D</entry><entry>2</entry></row><row><entry>J</entry><entry>D</entry><entry>2</entry></row><row><entry>K</entry><entry>I</entry><entry>3</entry></row><row><entry>L</entry><entry>I</entry><entry>3</entry></row><row><entry>M</entry><entry>I</entry><entry>3</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0042Referring to <figref idref="DRAWINGS">FIG. 4</figref>, the keyword hierarchy is produced (circle <b>412</b>) and stored at part of the Keyword Hierarchy Table <b>414</b> that may be within database <b>18</b>.
0043The database <b>18</b> may include a repository of information objects. The information objects themselves may include documents, products, electronic discussion archives, code fragments, and any other computer representations of knowledge or information. Each information object can have a unique identifier, hereafter called the “object ID.” In addition, each information object may have other important properties, such as its language, access control parameters, object type (document, software product, etc.), and the like.
0044A file or database table can specify a set of keywords relevant to each information object, which will be referred to as the “Info Object Keyword Table.” All keywords related to the information objects should be members of the Master Keyword List. In other words, keywords are related to information objects (circle <b>422</b>) and can be stored as part of the Info Object-Keyword Table <b>424</b> as seen in <figref idref="DRAWINGS">FIG. 4</figref>. In one embodiment, a relevance rating for each keyword may be provided and can represent the degree of relevance between a keyword and an information object. The relevance rating can be assigned by subject matter experts who assign keywords to information objects and populate the information object repository. This data can be contained in a relational database table where each row contains an object ID, a keyword (or keyword identifier), and a relevance rating (e.g., from 1 to 10), as shown for example in Table II. An object ID can appear multiple times in this table when more than one keyword is considered relevant to the information object.
0045<tables id="TABLE-US-00002" num="00002"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE II</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Relevance Between Object IDs and Keywords.</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="98pt" align="center" /><colspec colname="2" colwidth="35pt" align="center" /><colspec colname="3" colwidth="84pt" align="center" /><tbody valign="top"><row><entry>Object Id</entry><entry>Keyword</entry><entry>Rating</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="98pt" align="center" /><colspec colname="2" colwidth="35pt" align="center" /><colspec colname="3" colwidth="84pt" align="char" char="." /><tbody valign="top"><row><entry>obj 1</entry><entry>C</entry><entry>8</entry></row><row><entry>obj 1</entry><entry>F</entry><entry>7</entry></row><row><entry>obj 2</entry><entry>B</entry><entry>5</entry></row><row><entry>obj 2</entry><entry>H</entry><entry>9</entry></row><row><entry>obj 2</entry><entry>I</entry><entry>9</entry></row><row><entry>obj 3</entry><entry>E</entry><entry>10</entry></row><row><entry>obj 4</entry><entry>J</entry><entry>9</entry></row><row><entry>obj 4</entry><entry>M</entry><entry>6</entry></row><row><entry>obj 5</entry><entry>F</entry><entry>7</entry></row><row><entry>obj 5</entry><entry>J</entry><entry>4</entry></row><row><entry>obj 5</entry><entry>L</entry><entry>8</entry></row><row><entry>obj 6</entry><entry>D</entry><entry>6</entry></row><row><entry>obj 6</entry><entry>C</entry><entry>8</entry></row><row><entry>obj 7</entry><entry>H</entry><entry>9</entry></row><row><entry>obj 8</entry><entry>B</entry><entry>4</entry></row><row><entry>obj 8</entry><entry>D</entry><entry>8</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0046Note that the relevance rating assigned to a given information object-keyword pair need not be the same as the rating assigned to a different information object-keyword pair, even if the keyword is the same in both cases. In Table II, for example, the keyword J is relevant to information object “obj4” with relevance rating of 9, and to “obj5” with relevance rating of 4. This means that keyword J is more relevant to obj4 than to obj5.
0047The Keyword Hierarchy Tables may be used to produce a set of “friend” keywords (and corresponding association scores between a keyword-friend pair) for every keyword in the Master Keyword List. After a keyword-friend association score can be calculated (circle <b>432</b>), and that information may be stored in the Keyword-Friend Table <b>434</b> of database <b>18</b>.
0048Attention is now directed to some of the details in determining keyword-friend association scores. A number of different methods can be used to determine the association scores between keywords and their friends. In one embodiment, the association score may be determined using a tree distance algorithm, further described below. The pairing of keywords with their friends can be maintained in the relational database table <b>424</b> (within database <b>18</b>, for example), with an entry for each keyword/friend pair. Every keyword is a friend of itself, with the maximum possible association score. A keyword's other friends can be given by further entries in the Keyword-Friend Table <b>434</b>, one for each distinct pair of keywords, along with the association score for that pair. An example consistent with <figref idref="DRAWINGS">FIG. 3</figref> may include association scores that range from 1 to 10. As shown in Table III.
0049<tables id="TABLE-US-00003" num="00003"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE III</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Keyword Friend Table</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="offset" colwidth="14pt" align="left" /><colspec colname="1" colwidth="42pt" align="center" /><colspec colname="2" colwidth="63pt" align="center" /><colspec colname="3" colwidth="42pt" align="center" /><colspec colname="4" colwidth="56pt" align="center" /><tbody valign="top"><row><entry /><entry>Keyword</entry><entry>Friend</entry><entry>Distance</entry><entry>Score</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="offset" colwidth="14pt" align="left" /><colspec colname="1" colwidth="42pt" align="center" /><colspec colname="2" colwidth="63pt" align="center" /><colspec colname="3" colwidth="42pt" align="center" /><colspec colname="4" colwidth="56pt" align="char" char="." /><tbody valign="top"><row><entry /><entry>B</entry><entry>B</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>B</entry><entry>E</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>B</entry><entry>F</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>B</entry><entry>G</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>C</entry><entry>C</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>C</entry><entry>B</entry><entry>6</entry><entry>4</entry></row><row><entry /><entry>C</entry><entry>D</entry><entry>6</entry><entry>4</entry></row><row><entry /><entry>D</entry><entry>D</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>D</entry><entry>H</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>D</entry><entry>I</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>D</entry><entry>J</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>E</entry><entry>E</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>E</entry><entry>B</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>F</entry><entry>F</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>F</entry><entry>B</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>G</entry><entry>G</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>G</entry><entry>B</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>H</entry><entry>H</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>H</entry><entry>D</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>I</entry><entry>I</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>I</entry><entry>K</entry><entry>1</entry><entry>9</entry></row><row><entry /><entry>I</entry><entry>L</entry><entry>1</entry><entry>9</entry></row><row><entry /><entry>I</entry><entry>M</entry><entry>1</entry><entry>9</entry></row><row><entry /><entry>J</entry><entry>J</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>J</entry><entry>D</entry><entry>2</entry><entry>8</entry></row><row><entry /><entry>K</entry><entry>K</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>K</entry><entry>I</entry><entry>1</entry><entry>9</entry></row><row><entry /><entry>L</entry><entry>L</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>L</entry><entry>I</entry><entry>1</entry><entry>9</entry></row><row><entry /><entry>M</entry><entry>M</entry><entry>0</entry><entry>10</entry></row><row><entry /><entry>M</entry><entry>I</entry><entry>1</entry><entry>9</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0050Associated with each link in the keyword hierarchy (represented by the arrows in <figref idref="DRAWINGS">FIG. 3</figref>) is a weight. The weight is equal to the highest generation number in the tree minus the generation of the parent node in the link. For example, the links between node I<b>327</b> and its children K<b>332</b>, L<b>334</b>, and M<b>336</b> have a weight equal to 1, which is the highest generation number in the tree (3) minus the generation of the parent node/(2). The dotted horizontal lines in <figref idref="DRAWINGS">FIG. 3</figref> indicate the generations, and line <b>310</b> can correspond to a weight of “3,” line <b>320</b> can correspond to a weight of “2,” and line <b>330</b> can correspond to a weight of “1.”
0051The association score between any two keywords in the hierarchy may be determined in two acts: <ul id="ul0001" list-style="none"><li id="ul0001-0001" num="0000"><ul id="ul0002" list-style="none"><li id="ul0002-0001" num="0052">1. compute the “tree distance” between the two keywords, then</li><li id="ul0002-0002" num="0053">2. transform the tree distance according to a mathematical equation to get the final association score.</li></ul></li></ul>
0054To compute the tree distance, the method can use the following algorithm. Trace the ancestry of each node up to the lowest common ancestor. For each link that is used to get to the lowest common ancestor, maintain a sum of the weights. One embodiment may use a sum of the weights squared. (In general, a user can define the tree distance to be the sum of any bias function applied to the weights; power-laws may be particularly useful.)
0055For example, let d(x,y) denote the tree distance between nodes x and y, where x and y are nodes in the tree. To compute d(L,H), a path can start at node L<b>334</b> and traces across dotted line <b>330</b> to its parent node I<b>327</b>, and then across dotted line <b>320</b> to its grandparent node D<b>316</b>. Node D<b>316</b> is the lowest common ancestor between nodes L<b>334</b> and H<b>326</b>. Starting at node H<b>326</b>, a path can reach node D<b>316</b> by crossing line <b>312</b>. Thus, the distance can be calculated as (1+2) for going from node L<b>328</b> to node D<b>316</b>, and adding 2 for the distance from node H<b>326</b> to D<b>316</b>. In more explicit algebraic notation, <ul id="ul0003" list-style="none"><li id="ul0003-0001" num="0000"><ul id="ul0004" list-style="none"><li id="ul0004-0001" num="0056">d(L,H)=d(L,I)+d(I,H)</li><li id="ul0004-0002" num="0057">d(L,H)=d(L,I)+(d(I,D)+d(H,D))</li><li id="ul0004-0003" num="0058">d(L,H)=1+2+2</li><li id="ul0004-0004" num="0059">d(L,H)=5.</li></ul></li></ul>
0060The following are some more examples: <ul id="ul0005" list-style="none"><li id="ul0005-0001" num="0000"><ul id="ul0006" list-style="none"><li id="ul0006-0001" num="0061">d(L,M)=1+1=2</li><li id="ul0006-0002" num="0062">d(L,H)=(1+2)+2=5</li><li id="ul0006-0003" num="0063">d(L,C)=(1+2+3)+3=9</li><li id="ul0006-0004" num="0064">d(H,C)=(2+3)+3=8</li><li id="ul0006-0005" num="0065">d(E,C)=(2+3)+3=8</li><li id="ul0006-0006" num="0066">d(H,E)=(2+3)+(2+3)=10</li><li id="ul0006-0007" num="0067">d(L,E)=(1+2+3)+(2+3)=11</li></ul></li></ul>
0068Other methods may be used to determine the tree distance. Between sibling nodes (child nodes from a common parent node), a symmetric distance matrix may be generated to determine scale of distances between those sibling nodes. That is, the distance between any two children of a parent node can be determined by multiplying appropriate entry in the distance matrix by the sum-of-weights distance.
0069For example, in <figref idref="DRAWINGS">FIG. 3</figref>, the designers of the tree may choose to define a child distance matrix for node D<b>316</b> as the following:
0070<tables id="TABLE-US-00004" num="00004"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="offset" colwidth="49pt" align="left" /><colspec colname="1" colwidth="77pt" align="center" /><colspec colname="2" colwidth="21pt" align="center" /><colspec colname="3" colwidth="70pt" align="center" /><thead><row><entry /><entry namest="offset" nameend="3" align="center" rowsep="1" /></row><row><entry /><entry>H</entry><entry>I</entry><entry>J</entry></row><row><entry /><entry namest="offset" nameend="3" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="offset" colwidth="28pt" align="left" /><colspec colname="1" colwidth="21pt" align="center" /><colspec colname="2" colwidth="77pt" align="char" char="." /><colspec colname="3" colwidth="21pt" align="center" /><colspec colname="4" colwidth="70pt" align="char" char="." /><tbody valign="top"><row><entry /><entry>H</entry><entry>1</entry><entry>1</entry><entry>1.5</entry></row><row><entry /><entry>I</entry><entry>1</entry><entry>1</entry><entry>1</entry></row><row><entry /><entry>J</entry><entry>1.5</entry><entry>1</entry><entry>1</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0071This matrix has two properties. First, the diagonal entries are all equal to one. Second, it is symmetric. The elements of the matrix can be denoted by M(x,y), so that (for example) M(H,J)=1.5.
0072A method for calculating an association score between nodes can use this matrix to scale the sum-of-weights distance between the child nodes of the lowest common ancestor. Using only the sum-of-weights distance on the tree in <figref idref="DRAWINGS">FIG. 3</figref> would produce the result d(L,H)=d(L,J)=5. The child-distance matrix allows the designers of the tree to express a closer relationship between some children than between others. In this example, nodes H<b>326</b> and I<b>327</b> are more closely related to each other than to node J<b>328</b> even though all three share the same parent.
0073In one example, the method can use the child-distance matrix to scale the distance between children of node D to express the closer relationship between nodes H<b>326</b> and I<b>327</b>: <ul id="ul0007" list-style="none"><li id="ul0007-0001" num="0000"><ul id="ul0008" list-style="none"><li id="ul0008-0001" num="0074">d(L,H)=d(L,I)+M(I,H)*d(I,H)</li><li id="ul0008-0002" num="0075">d(L,H)=d(L,I)+M(I,H)*(d(I,D)+d(H,D))</li><li id="ul0008-0003" num="0076">d(L,H)=1+1*(2+2)</li><li id="ul0008-0004" num="0077">d(L,H)=5.</li></ul></li></ul>
0078Between nodes J<b>328</b> and L<b>334</b>, the calculation may be: <ul id="ul0009" list-style="none"><li id="ul0009-0001" num="0000"><ul id="ul0010" list-style="none"><li id="ul0010-0001" num="0079">d(L,J)=d(L,I)+M(I,J)*d(I,J)</li><li id="ul0010-0002" num="0080">d(L,J)=d(L,I)+M(I,J)*(d(I,D)+d(J,D))</li><li id="ul0010-0003" num="0081">d(L,J)=1+1*(2+2)</li><li id="ul0010-0004" num="0082">d(L,J)=5.</li></ul></li></ul>
0083While the matrix may usually be symmetric, symmetry is not required.
0084This procedure can achieve a desirable effect, in that it gives designers additional flexibility to define quantitative relationships among the keywords in the hierarchy, and these relationships can be used to provide superior information retrieval results. The association scores may be determined automatically by server computer <b>16</b> based at least in part upon positions of a keyword and its friend Keyword within the hierarchy.
0085The method can produce an association score between two keywords by computing a distance between the keywords (using the sum-of-weights or the sum-of-weights plus child-distance matrix method) and then applying a transform to give the highest association scores to those keywords with the lowest values of the tree distance.
0086One embodiment can use the following transformation. Let C denote the maximum desired association score. The association score between any object and itself is equal to C. Let d denote the tree distance. Let f(d) denote a monotonically increasing function of the argument d, and int(f(d)) denote an integer value of f(d). Let s denote an association score corresponding to tree distance d, and can be given by: <br /><i>s</i>=max(0<i>,c</i>-int(<i>f</i>(<i>d</i>)))
0087In this formula, the value of max (x,y) is the greater of the arguments x and y and int(x) is the integer part of the argument x. The value “0” in the equation may be used so that s cannot be negative. In one embodiment, the squares of the weights can be summed to obtain the tree distance d, f(d)=d**0.5 and C=10.
0088To determine the “friend” keywords for a given keyword, the method can be used to compute the association scores between the given keyword and all other keywords in the hierarchy. The top N of the keywords with the greatest association scores become the set of friend keywords that are stored in a relational database table within database <b>18</b>. One embodiment can use the keywords with the top 10 association scores to expand the query keywords. A user or code in software or hardware can be set the value of N.
0089At this point in the process, data preparation and system initialization has been completed. The appropriate information may be stored with database <b>18</b> or other storage device having persistent memory.
0090Query processing can now be performed. It is in this second phase, query processing, that information retrieval actually occurs. A query can be a set of keywords (or keyword IDs), generated by some specific end-user activity for some particular application. The nature of such applications and specific examples are discussed below. The query keywords are members of the Master Keyword List. By using a limited number of keywords from the Master Keyword List, searching can be performed faster compared to free-form searching.
0091<figref idref="DRAWINGS">FIG. 5</figref> includes a flow diagram of acts that can be performed when processing a query. Note that some of the acts may be optional and not required for all implementations. The method can comprise receiving from a client computer <b>12</b>, an original (first) query that includes a first keyword within a hierarchy (block <b>502</b>). After the original query is received, the server computer <b>16</b> can retrieve all the friend keywords (and association scores) for each keyword in the original query. A second keyword from the Keyword-Friend Table <b>424</b> can be identified as a friend of the first keyword, although the second keyword may not have been a keyword within the first query.
0092The method further includes automatically expanding the original query to an expanded (second) query that includes the first keyword and the second keyword within the hierarchy (block <b>522</b>). In this specific example, note that a third keyword may be present within the Master Keyword List but is not part of the expanded query. The third keyword may not be listed as a friend of the first keyword, or the third keyword may not have had a sufficiently high enough association score compared to other friend keywords of the first keyword.
0093The complete set of keywords from the original query and their corresponding friend keywords can form the expanded query.
0094The association scores for the keyword-friend pairs may be used to determine which friends to use but can also be used in relevance scoring that will be described in more detail later.
0095Below is an example using the hierarchy in <figref idref="DRAWINGS">FIG. 3</figref> and the association scores in Table III.
0096<tables id="TABLE-US-00005" num="00005"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="7"><colspec colname="offset" colwidth="14pt" align="left" /><colspec colname="1" colwidth="84pt" align="left" /><colspec colname="2" colwidth="28pt" align="center" /><colspec colname="3" colwidth="21pt" align="center" /><colspec colname="4" colwidth="28pt" align="center" /><colspec colname="5" colwidth="14pt" align="center" /><colspec colname="6" colwidth="28pt" align="center" /><thead><row><entry /><entry namest="offset" nameend="6" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry>Original Query keywords:</entry><entry>C</entry><entry /><entry /><entry>K</entry><entry /></row><row><entry /><entry>Expanded Query keywords:</entry><entry>C</entry><entry>B</entry><entry>D</entry><entry>K</entry><entry>I</entry></row><row><entry /><entry>Association scores:</entry><entry>10</entry><entry>4</entry><entry>4</entry><entry>10</entry><entry>9</entry></row><row><entry /><entry namest="offset" nameend="6" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0097Keywords C and K can be examples of the first keywords, keywords B, D, and I can be examples of the second keywords, and keywords E, F, G, H, J, L, and M can be examples of the third keywords, which are not part of the expanded query.
0098After the expanded query has been generated, the method can include searching the database <b>18</b> using the expanded query in block <b>542</b> of <figref idref="DRAWINGS">FIG. 5</figref>. The method also can include finding identifiers for information objects that correspond to the expanded query (block <b>544</b>). More specifically, the keywords in the expanded query can be used to identify a set of relevant information objects via the Info Object Keyword Table <b>424</b>. Only information objects with at least one keyword that is present in the expanded query may be considered relevant to the query.
0099<tables id="TABLE-US-00006" num="00006"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE IV</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Object identifiers, keywords, and relevance ratings.</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="84pt" align="center" /><colspec colname="2" colwidth="35pt" align="center" /><colspec colname="3" colwidth="98pt" align="center" /><tbody valign="top"><row><entry>Object Id</entry><entry>Keyword</entry><entry>Relevancy Rating</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row><row><entry>obj 1</entry><entry>C</entry><entry>8</entry></row><row><entry>obj 1</entry><entry>F</entry><entry>7</entry></row><row><entry>obj 2</entry><entry>B</entry><entry>5</entry></row><row><entry>obj 2</entry><entry>J</entry><entry>9</entry></row><row><entry>obj 2</entry><entry>I</entry><entry>9</entry></row><row><entry>obj 6</entry><entry>D</entry><entry>6</entry></row><row><entry>obj 6</entry><entry>C</entry><entry>8</entry></row><row><entry>obj 8</entry><entry>B</entry><entry>4</entry></row><row><entry>obj 8</entry><entry>D</entry><entry>8</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0100Table IV includes an exemplary set of relevant information objects corresponding to the expanded query. The relevance rating can be a rating of how relevant a keyword is to a specific information object. Note that obj8 is relevant to the expanded query but not to the original query because obj8 only includes keywords Band D (second keywords) as relevant keywords.
0101Next, the method can calculate a relevance score for each of the identified information objects (block <b>562</b>). There are many possible formulae for this calculation. In many instances, a weighted vector may be used for the relevance score. The weighted vector can be a product between two vectors of dimensionality D, where D is the total number of distinct keywords in the master keyword list, and each vector element is the relevance score for that keyword or zero if the keyword is absent. Users may find it useful to choose a formula which includes appropriate normalization to account for variable parameters that should not affect the final score spuriously, such as the number of keywords for a given information object. This consideration suggests the following formula for the relevance score R:
0102<maths id="MATH-US-00001" num="00001"><math overflow="scroll"><mrow><mi>R</mi><mo>=</mo><mfrac><mrow><munderover><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><mo></mo><mrow><msub><mi>k</mi><mi>i</mi></msub><mo></mo><msub><mi>q</mi><mi>i</mi></msub></mrow></mrow><mi>K</mi></mfrac></mrow></math></maths><img file="US8301642B2_D0001.tif" /><br /> where:
0103{K} is the set of keywords associated with the information object;
0104{k} is the set of relevance ratings for the information object keywords in {K};
0105K=|{K}| is the number of keywords associated with the information object;
0106{Q} is the set of keywords in the expanded query;
0107{q} is the set of association scores for the expanded query keywords in {Q};
0108{M} is the set of keywords from the intersection of sets {K} and {K};
0109M=|{M}| is the number keywords in the set {M} (i.e. the number of matches);
0110{k<sub>i</sub>}, i=1, 2, . . . , M is the subset of {k} corresponding to the elements of {K} in {M}; and
0111{q<sub>i</sub>}, i=1, 2, . . . , M is the subset of {q} corresponding to the elements of {Q} in {M}.
0112The relevance score is determined as follows: find the sum, over each expanded query keyword that matches an information object keyword, of the product of the keyword's association score for the query and its relevance rating for the information object; and divide the sum by the number of keywords associated with the information object. This last act provides appropriate normalization to avoid arbitrarily enhancing the score of information objects that have a large number of keywords. Note that it is not necessary to normalize by the number of query keywords, since this is a constant for a given query. Note that the equation give above is not the only way to determine a relevance score, and therefore, should not be construed as a limiting. Table V includes the relevance scores obtained in this fashion for the given set of eligible information objects in Table IV and the expanded query.
0113<tables id="TABLE-US-00007" num="00007"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE V</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Relevance Score Table.</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="42pt" align="left" /><colspec colname="1" colwidth="35pt" align="center" /><colspec colname="2" colwidth="140pt" align="center" /><tbody valign="top"><row><entry /><entry>Object Id</entry><entry>Relevance Score</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="42pt" align="left" /><colspec colname="1" colwidth="35pt" align="center" /><colspec colname="2" colwidth="140pt" align="char" char="." /><tbody valign="top"><row><entry /><entry>obj 1</entry><entry>40</entry></row><row><entry /><entry>obj 2</entry><entry>33.7</entry></row><row><entry /><entry>obj 6</entry><entry>52</entry></row><row><entry /><entry>obj 8</entry><entry>24</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0114The method may further include sorting the identified information objects based on the relevance scores (block <b>564</b>). The list of eligible information objects can be sorted from highest to lowest relevance score. After sorting, the method may send the sorted information object to the client computer (block <b>582</b>). The resulting list should provides the object IDs of all relevant information objects for the expanded query, in order of relevance, based on the original query. Although the calculating of the relevance score and sorting the identified information objects is optional, the information objects, sorted by relevancy score aid the user at the client computer by indicating the degree of relevance based on relevancy score. The final list for the example of Table V can be given by Table VI.
0115<tables id="TABLE-US-00008" num="00008"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="217pt" align="center" /><thead><row><entry namest="1" nameend="1" rowsep="1">TABLE VI</entry></row></thead><tbody valign="top"><row><entry namest="1" nameend="1" align="center" rowsep="1" /></row><row><entry>Final List of Sorted Information Objects.</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="42pt" align="left" /><colspec colname="1" colwidth="35pt" align="center" /><colspec colname="2" colwidth="140pt" align="center" /><tbody valign="top"><row><entry /><entry>Object Id</entry><entry>Relevance Score</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="42pt" align="left" /><colspec colname="1" colwidth="35pt" align="center" /><colspec colname="2" colwidth="140pt" align="char" char="." /><tbody valign="top"><row><entry /><entry>obj 6</entry><entry>52</entry></row><row><entry /><entry>obj 1</entry><entry>40</entry></row><row><entry /><entry>obj 2</entry><entry>33.7</entry></row><row><entry /><entry>obj 8</entry><entry>24</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
0116The server computer <b>16</b> may send the client computer <b>12</b> the list seen in Table VI or a derivative of it. The information object Ids may include an alpha-numeric representation, a catalog number, or be replaced by a title, or even the information object itself (or the first few words of it) when information is seen by a user at client computer <b>16</b>. Therefore sending an information object ID should be construed as including any one or more of the pieces of information listed in this paragraph.
0117Filtering acts may be used as an optimal part of the method. Filtering may select information objects by language, security level, length of document, or the like. The user may define the filtering criterion. The filtering criterion may be sent from the client computer <b>12</b> to the server computer <b>16</b> with the original query.
0118Other specific embodiments are presented to illustrate some of the other features of the keyword-friend query method and system. One embodiment may serve as part of a suite of information retrieval systems for a corporate knowledge management system. The role of the method in this system is to provide employees, business partners, and customers of the corporation with efficient access to information objects that are relevant to a particular topic or user query. Access to the method and system can be through a software application made available on the World Wide Web computer network via the HTTP communications protocol.
0119In this embodiment there may be three hierarchies: one hierarchy may correspond to the subject matter category addressed by the information object (“category hierarchy”), another hierarchy may correspond to the project phase addressed by the information object (“phase hierarchy”), and still another hierarchy may correspond the role, or intended audience, of the information object (“role hierarchy”). Each hierarchy is described by a database table that lists the unique identifiers of the keywords in that hierarchy, along with the unique identifiers of the parent keywords. The keyword corresponding to the root of the tree may have no parent keyword. The translation from unique keyword identifier to the keyword text can be provided by means of another database table.
0120A further aspect of this embodiment can be a “keyword-type” weight value assigned to each of the keyword hierarchies. This can allow some types of keywords to be more significant than others; for example, a keyword of type “category” can be given a weight of 2 while “role” and “phase” keywords are given a weight of 1. All of the keywords in a given hierarchy can have an identical keyword-type weight. This weight value may be separate and in addition to the association score of a specific keyword for a specific information object, and can be used as an additional multiplicative factor for each term in the summation used in the relevance score.
0121In one application of this embodiment, a user at client computer <b>12</b> may formulate a query by selecting one or more keywords from the three available hierarchies. The keywords can be displayed on a screen and selected by selection boxes displayed on the user's HTML browser. The keywords he or she selects can then be submitted to the server computer <b>16</b> that can search database <b>18</b> for the relevant information objects. The relevant information objects that are returned can then be sent from the server computer <b>16</b> and received by the client computer <b>12</b> where the user can see the results.
0122In another application of this embodiment, the query may be formulated automatically according to the user's context on the Web site. By means of a series of questions presented to the user as they navigate the Web site, a query can be formulated based upon the question responses. For example, a series of questions may reveal the user's interest in a particular subject matter category, and the keyword corresponding to that category can form the query that is submitted for processing. The relevant information objects that are returned are then presented to the user. Alternatively, the actions of the user at the website can be tracked and information objects be presented to the user without having to ask any questions or receive a query from the user.
0123Embodiments of the present invention have advantages over the prior art in the field of information retrieval. The methods can make use of the relationships among the keywords associated to each information object. These relationships can be expressed in the hierarchies to which the keywords belong. By taking advantage of this information, the methods can be used to find information objects in the repository that are close but not exact matches to an original query.
0124The embodiments do not require interactive participation from the user beyond the specification of the original query. The invention may automatically expand the scope of the original query to include keywords with related meanings, so that matches can occur even on keywords the user did not think to enter in the original query.
0125The methods may require only a few operations to compute a relevance score for an information object. Therefore, the methods can be performed on a data processing system in a time efficient manner.
0126A further advantage seen with embodiments of the present invention is the ability to create derivatives to address other problems or to be used in other fields. Direct mail, electronic mail, and the World Wide Web provide marketers with an opportunity to target product offers to specific customers. These offers can include product recommendations. The process of constructing a product recommendation can be analogous to the process of information retrieval. Therefore, the methods can be used to provide product recommendations. The products (or more specifically unique product codes) themselves can serve the role of keywords. The product hierarchy maintained by many retailers can be used to establish the relationships among the keywords. The form of a query may be a set of products in which a customer has expressed interest (through purchase, request for information, etc.). At least one of the methods previously described can be used to return a list of related information objects (which are product identifiers) to the customer as a kind of product recommendation. Such recommendation may be valid under an assumption that consumers will be interested in products similar to those that they have purchased or browsed in the past. Many retailers maintain product hierarchies that express the similarity of items that are closely related in a tree.
0127In the foregoing specification, the invention has been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention.
0128Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or element of any or all the claims. As used herein, the terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
Contents5
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10248732B2 | Cited by | United States of America | Search report |
| US10303807B2 | Cited by | United States of America | Search report |
| EP0601550A2 | Cites | European Patent Office (EPO) | Applicant |
| US2404510A | Cites | United States of America | Applicant |
| US4769772A | Cites | United States of America | Applicant |
| US4837831A | Cites | United States of America | Applicant |
| US5138615A | Cites | United States of America | Applicant |
| US5619709A | Cites | United States of America | Applicant |
| US5630125A | Cites | United States of America | Applicant |
| US5649186A | Cites | United States of America | Applicant |
| US5655130A | Cites | United States of America | Applicant |
| US5752021A | Cites | United States of America | Applicant |
| US5774888A | Cites | United States of America | Applicant |
| US5778400A | Cites | United States of America | Applicant |
| US5787417A | Cites | United States of America | Applicant |
| US5799268A | Cites | United States of America | Applicant |
| US5857179A | Cites | United States of America | Applicant |
| US5875334A | Cites | United States of America | Applicant |
| US5875441A | Cites | United States of America | Applicant |
| US5893109A | Cites | United States of America | Applicant |
| US5920879A | Cites | United States of America | Applicant |
| US5940822A | Cites | United States of America | Applicant |
| US5940842A | Cites | United States of America | Applicant |
| US5956726A | Cites | United States of America | Applicant |
| US5970490A | Cites | United States of America | Applicant |
| US5991756A | Cites | United States of America | Applicant |
| US6009436A | Cites | United States of America | Applicant |
| US6012098A | Cites | United States of America | Applicant |
| US6018710A | Cites | United States of America | Applicant |
| US6023714A | Cites | United States of America | Applicant |
| US6047280A | Cites | United States of America | Applicant |
| US6052693A | Cites | United States of America | Applicant |
| US6055538A | Cites | United States of America | Applicant |
| US6072801A | Cites | United States of America | Applicant |
| US6094652A | Cites | United States of America | Applicant |
| US6098066A | Cites | United States of America | Applicant |
| US6098071A | Cites | United States of America | Applicant |
| US6108676A | Cites | United States of America | Applicant |
| US6128617A | Cites | United States of America | Applicant |
| US6169986B1 | Cites | United States of America | Applicant |
| US6182077B1 | Cites | United States of America | Applicant |
| US6327593B1 | Cites | United States of America | Applicant |
| US6389436B1 | Cites | United States of America | Applicant |
| US6510406B1 | Cites | United States of America | Search report |
| US6523028B1 | Cites | United States of America | Applicant |
| US6631496B1 | Cites | United States of America | Search report |
| US6816857B1 | Cites | United States of America | Search report |
| US6862710B1 | Cites | United States of America | Search report |
| US7028024B1 | Cites | United States of America | Applicant |
| US7627558B2 | Cites | United States of America | Applicant |
| EP601550A2 | Cites | European Patent Office (EPO) | Third party observation |
| van Rijsbergen, "Information Retrieval", 2nd Ed., Butterworths, Chapter 3, pp. 1-26, 1979. | Non-patent | – | Applicant |
| van Rijsbergen, "Information Retrieval", 2nd Ed., Butterworths, Chapter 5. pp. 1-14, 1979. | Non-patent | – | Applicant |
| Marden, Philip, and Munson, Ethan, "Multiple Presentations of WWW Documents Using Style Sheets," Proceedings of the Workshop on New Paradigms in Information Visualization and Manipulation, Nov. 1997, pp. 75-78. | Non-patent | – | Applicant |
| "Microsoft Press Computer Dictionary Third Edition," Definition of the word 'tree,' 1997, p. 477. | Non-patent | – | Applicant |
| Lee, et al., "Index Structures for Structured Documents," Proceedings of the First ACM International Conference on Digital Libraries, Mar. 1996, pp. 91-99. | Non-patent | – | Applicant |
| Aho, A.V., Hopcraft, J.E., and Ullman, J.D. "Data Structures and Algorithms," Reading, Addison Wesley, 1983. pp. 78-82. QA76.9.D35A38. | Non-patent | – | Applicant |
| Thompson, Henry S.: "An Introduction to XSL: Slides from a talk to SGML UK" from http://www.ltg.ed.ac.uk/~ht/swindon.html. Oct. 27, 1997, Sections 5,6,9. | Non-patent | – | Applicant |
| Lee, Yong Kyu: "Querying Structured Documents." System Sciences, 1996. Proceedings of the Twenty-Ninth Annual Hawaii Conference on System Sciences, vol. 2, pp. 155-164. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Mar. 11, 2003, 7 pgs. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Jun. 23, 2003, 8 pgs. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Nov. 10, 2003, 8 pgs. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Sep. 1, 2004, 10 pgs. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Feb. 9, 2005, 8 pgs. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Jul. 7, 2005, 9 pgs. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 11/221,608, mailed Apr. 3, 2008, 11 pgs. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 11/221,608, mailed Dec. 8, 2008, 13 pgs. | Non-patent | – | Applicant |
| Office Action issued in U.S. Appl. No. 11/221,608, mailed Mar. 18, 2009, 12 pgs. | Non-patent | – | Applicant |
| van Rijsbergen, “Information Retrieval”, 2nd Ed., Butterworths, Chapter 3, pp. 1-26, 1979. | Non-patent | – | Third party observation |
| van Rijsbergen, “Information Retrieval”, 2nd Ed., Butterworths, Chapter 5. pp. 1-14, 1979. | Non-patent | – | Third party observation |
| Marden, Philip, and Munson, Ethan, “Multiple Presentations of WWW Documents Using Style Sheets,” Proceedings of the Workshop on New Paradigms in Information Visualization and Manipulation, Nov. 1997, pp. 75-78. | Non-patent | – | Third party observation |
| “Microsoft Press Computer Dictionary Third Edition,” Definition of the word ‘tree,’ 1997, p. 477. | Non-patent | – | Third party observation |
| Lee, et al., “Index Structures for Structured Documents,” Proceedings of the First ACM International Conference on Digital Libraries, Mar. 1996, pp. 91-99. | Non-patent | – | Third party observation |
| Aho, A.V., Hopcraft, J.E., and Ullman, J.D. “Data Structures and Algorithms,” Reading, Addison Wesley, 1983. pp. 78-82. QA76.9.D35A38. | Non-patent | – | Third party observation |
| Thompson, Henry S.: “An Introduction to XSL: Slides from a talk to SGML UK” from http://www.ltg.ed.ac.uk/˜ht/swindon.html. Oct. 27, 1997, Sections 5,6,9. | Non-patent | – | Third party observation |
| Lee, Yong Kyu: “Querying Structured Documents.” System Sciences, 1996. Proceedings of the Twenty-Ninth Annual Hawaii Conference on System Sciences, vol. 2, pp. 155-164. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Mar. 11, 2003, 7 pgs. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Jun. 23, 2003, 8 pgs. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Nov. 10, 2003, 8 pgs. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Sep. 1, 2004, 10 pgs. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Feb. 9, 2005, 8 pgs. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 09/682,107, mailed Jul. 7, 2005, 9 pgs. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 11/221,608, mailed Apr. 3, 2008, 11 pgs. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 11/221,608, mailed Dec. 8, 2008, 13 pgs. | Non-patent | – | Third party observation |
| Office Action issued in U.S. Appl. No. 11/221,608, mailed Mar. 18, 2009, 12 pgs. | Non-patent | – | Third party observation |
7 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 68210701 | United States of America | A | |
| 22160805 | United States of America | A |
Members7
| Document | Office | Kind | |
|---|---|---|---|
| US2006020591A1 | United States of America | A1 | |
| US7028024B1 | United States of America | B1 | |
| US7627558B2 | United States of America | B2 | |
| US2010077000A1 | United States of America | A1 | |
| US8301642B2This record | United States of America | B2 | |
| US2013013629A1 | United States of America | A1 | |
| US10303807B2 | United States of America | B2 |
65 transactions on the USPTO file
Allowed after 2 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 2
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Filing Receipt - CorrectedFLRCPT.C | FLRCPT.C | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Response to Reasons for AllowanceREAS | REAS | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Terminal Disclaimer FiledDIST | DIST | |
| Terminal Disclaimer FiledDIST | DIST | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Paralegal TD Not acceptedP575 | P575 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Terminal Disclaimer FiledDIST | DIST | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Filing Receipt - CorrectedFLRCPT.C | FLRCPT.C | |
| Correspondence Address ChangeC.AD | C.AD | |
| Preliminary AmendmentA.PE | A.PE | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
25 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Notice of allowance mailedORIGINAL CODE: MN/=.ZAAB | ZAAB | |
| Notice of allowance and fees dueORIGINAL CODE: NOAZAAA | ZAAA | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Not any more in us assignment databaseINTELLECTUAL PROPERTY PURCHASE AGREEMENT;ASSIGNOR:VIGNETTE CORPORATION (96%);REEL/FRAME:023773/0404XAS | XAS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 8301642
- Application
- 12628132
Titles
- English
- Information retrieval from a collection of information objects tagged with hierarchical keywords
Patent term adjustment
- Applicant delay
- −14 days
- Net adjustment
- 0 days
Classification
- CPC, 5
- G06F16/90324
- Y10S707/99943
- Y10S707/99933
- Y10S707/99945
- Y10S707/956
- IPC, 2
- G06F7 00
- G06F17 30