METHODS AND APPARATUS FOR INTERACTIVE SEARCHING TECHNIQUES
Methods and systems for searching comprise presenting a first information set to a user, receiving feedback, applying an evolutionary algorithm based on the feedback to generate a search query, causing the search query to be executed to generate a second information set, and presenting the second information set to the user. Then, in response to user input, the first information set is again presented to the user; feedback is again received, an evolutionary algorithm is again applied based on the feedback to generate a search query, and the new search query is caused to be executed to generate a third information set which is presented to the user.
Latest Icosystem Corporation Patents:
- Methods and apparatus or interactive name searching techniques
- System and method for aiding product design and quantifying acceptance
- Methods and systems for applying genetic operators to determine systems conditions
- Methods and systems for interactive evolutionary computing (IEC)
- Method and system for fast, generic, online and offline, multi-source text analysis and visualization
The present application incorporates by reference the commonly-owned U.S. patent application Ser. No. 11/537,143, filed on Sep. 29, 2006, entitled “Method and Apparatus for Interactive Searching Techniques”; U.S. patent application Ser. No. 11/176,968, filed on Jul. 6, 2005, entitled “Method and Apparatus for Interactive Searching”; U.S. Provisional Patent Application Ser. No. 60/585,807, filed on Jul. 6, 2004, entitled “Methods and Systems for Interactive Searching”; and U.S. Provisional Patent Application Ser. No. 60/721,637, filed on Sep. 29, 2005, entitled “Methods and Apparatus for Interactive Searching Techniques.”
FIELD OF THE DISCLOSUREThe disclosed methods and apparatus systems relate generally to searching for information from a database or other collection of materials.
BACKGROUNDSearch engines may assist a user in identifying information that may be stored on a computer server or other information storage media. Generally, the information may be stored in the form of an entry or entries in a database (e.g., any structured database, any database of objects with tags or descriptors). The information may include, for example, various web page content, photographs, goods or services for sale, or any other item that can be represented and stored in electronic format. Some examples of commonly used search engines include, but are not limited to Yahoo®, MSN®, Google™, amazon.com®, a9.com, AOL®, Lycos®, LookSmart®, Altavista™, Ask Jeeves®, Orbitz™, Travelocity®, expedia.com®, and flickr™.
Search engines typically require the user to enter one or a plurality of keywords, and in some cases, to specify one or a plurality of Boolean operators to determine the logical relationship between the pluralities of keywords. This provision of one or more keywords and/or optional Boolean operators is referred to as the “search query.” A search engine may execute one or more algorithms which may act on the search query to identify one or a plurality of items of information that may satisfy the search query (this information is commonly referred to as “search results”). The search engine generally returns the results of the search algorithm by presenting them to the user through some form of a user interface (e.g. display). In some instances, when a plurality of search results is available, the search engine may further determine which specific results to present to the user according to some criteria (e.g. ranking, optimization). The user typically is then able to select one or a plurality of search results. If none of the results is satisfactory, or if additional results are sought, the user can select to view additional results, or the user can refine or modify the search query, for example, by adding or removing one or more keywords and/or optional Boolean operators.
In addition to conventional search engines, which may execute various proprietary algorithms to process search queries and provide results according to some type pf ranking or optimization process, a search query may be executed by a web directory service. Unlike a search engine, a web directory service that is capable of processing a search query typically returns to the user lists and categories of web sites, as search results, without necessarily ranking, promoting or optimizing the list of web sites. One example of a web directory service is the Open Directory Project, hosted and administered by Netscape Communication Corporation (see http://dmoz.org).
SUMMARYOne embodiment of a search method and system comprises A) causing a first information set to be generated, comprising a first plurality of items, wherein each item of the first plurality of items is associated with at least one characteristic; B) representing at least some of the first information set in a first presentation; C) receiving a first feedback based upon the first presentation from a user; D) applying an evolutionary algorithm to generate a first search query, wherein the evolutionary algorithm is based on the first feedback; E) causing the first search query to be executed to generate a second information set comprising a second plurality of items, wherein each item of the second plurality of items is associated with at least one characteristic; F) representing at least some of the second information set in a second presentation; G) in response to a user input, repeating step B and representing at least some of the first information set in the first presentation; H) receiving a second feedback based upon the second presentation from a user; I) applying an evolutionary algorithm to generate a second search query, wherein the evolutionary algorithm is based on the second feedback; J) causing the second search query to be executed to generate a third information set comprising a third plurality of items, wherein each item of the third plurality of items is associated with at least one characteristic; and K) representing at least some of the third information set in a third presentation.
In some embodiments, the first feedback comprises a subjective value for at least one item of the first plurality of items, a subjective ranking for at least one item of the first plurality of items, a selection of at least one item of the first plurality of items, or a rejection of at least one item of the first plurality of items. In some embodiments, the subjective value was selected from a range of possible subjective values. In some embodiments, the first feedback comprises subjective values for at least two items of the first plurality of items, and the evolutionary algorithm generating the first search query is based on at least the said subjective values.
In some embodiments, the first information set, the second information set and the third information set each comprise a plurality of images or diagrams. In some embodiments, at least some of the first information set is displayed graphically as a grid of images and/or diagrams in the first presentation, at least some of the second information set is displayed graphically as a grid of images and/or diagrams in the second presentation, and at least some of the third information set is displayed graphically as a grid of images and/or diagrams in the third presentation.
In some embodiments, the first plurality of items comprises a plurality of goods for purchase and/or a plurality of services for purchase.
In some embodiments, the first search query and the second search query each are executed by a search engine. In some embodiments, the search engine is independently provided. In some embodiments, the first search query and the second search query each are executed by a web directory service. In some embodiments, the web directory service is independently provided.
In some embodiments, the at least one characteristic associated with at least one item of at least one plurality of items comprises a descriptor made available by a search engine or web directory service. In some embodiments, the at least one characteristic associated with at least one item of at least one plurality of items comprises a tag. In some embodiments, the tag comprises at least one of a keyword, a comment, a URL link and XML information. In some embodiments, the at least one characteristic associated with at least one item of at least one plurality of items comprises: a keyword; a classification-oriented identifier; a categorization-oriented identifier; or a semantic web-oriented identifier. In some embodiments, the at least one characteristic associated with at least one item of at least one plurality of items comprises: a taxonomy-related identifier; an ontology-related identifier; or a folksonomy-related identifier.
In some embodiments, the evolutionary algorithm includes at least one of the following genetic operators: a selection operator; a mutation operator; a recombination operator; a crossover operator; a directed operator; a constraint operator; or a preservation operator. In some embodiments, the evolutionary algorithm comprises a mutation operator configured to delete at least one gene of a genetic string and/or to add at least one random gene to a genetic string, and wherein applying the evolutionary algorithm to generate a first search query comprises applying the mutation operator to a genetic string associated with at least one item of the first plurality of items to generate the first search query. In some embodiments, the evolutionary algorithm comprises a crossover operator configured to combine genes of two genetic strings to produce at least one offspring, and a mutation operator configured to delete at least one gene of a genetic string and/or add at least one random gene to a genetic string, and applying the evolutionary algorithm to generate a first search query comprises: applying the crossover operator to genetic strings respectively associated with at least two items of the first plurality of items to generate at least one offspring; and applying the mutation operator to at least one genetic string associated with at least one of the at least two items of the first plurality of items, or to at least one offspring.
Some embodiments further comprise receiving from the user modifications of at least one of the first search query and the second search query prior to causing the said search query to be executed.
Some embodiments further comprise L) receiving from the user a selection of a first desired item from one of the plurality of items; M) receiving from the user a selection of a second desired item from another of the plurality of items; and O) generating a fourth search query based on the first desired item and the second desired item.
Some embodiments further comprise the first desired item from the presentation in which it was represented having been dragged into the presentation in which the second desired item was represented, and having been dropped onto the said second desired item.
In some embodiments, generating a fourth search query based on the first desired item and the second desired item comprises applying an evolutionary algorithm to a genetic string associated with the first desired item and a genetic string associated with the second desired item.
In some embodiments, causing a first information set comprising a first plurality of items to be generated comprises causing at least a portion of the first information set to be generated randomly. In some embodiments, causing a first information set comprising a first plurality of items to be generated comprises causing a search query to be executed
Another embodiment of a search method and system comprises A) causing a first search query to be executed to generate a first information set comprising a first plurality of items, wherein each item of the first plurality of items is associated with at least one characteristic; B) representing at least some of the first information set in a first presentation; C) causing a second search query to be executed to generate a second information set comprising a second plurality of items, wherein each item of the second plurality of items is associated with at least one characteristic; D) representing at least some of the second information set in a second presentation; E) receiving from a user a selection of a first desired item from the first plurality items; F) receiving from a user a selection of a second desired item from the second plurality of items; and G) generating a third search query based on the combination of the first desired item and the second desired item.
Some embodiments further comprise the first desired item having been dragged from the first presentation into the second presentation, and dropped onto the second desired item in the second presentation.
In some embodiments, generating a third search query based on the first desired item and the second desired item comprises applying an evolutionary algorithm to a genetic string associated with the first desired item and a genetic string associated with the second desired item.
In some embodiments, the first search query and the second search query each are executed by a search engine. In some embodiments, the first search query and the second search query each are executed by a web directory service.
In some embodiments, the first plurality of items and the second plurality of items comprise a plurality of goods for purchase and/or a plurality of services for purchase.
In some embodiments, the first information set and the second information set each comprise a plurality of images or diagrams. In some embodiments, at least some of the first information set is displayed graphically as a grid of images and/or diagrams in the first presentation, and at least some of the second information set is displayed graphically as a grid of images and/or diagrams in the second presentation.
In some embodiments, the at least one characteristic associated with at least one item of at least one plurality of items comprises a descriptor made available by a search engine or web directory service. In some embodiments, the at least one characteristic associated with at least one item of at least one plurality of items comprises a tag.
In some embodiments, the evolutionary algorithm comprises a crossover operator configured to combine genes of two genetic strings to produce at least one offspring, and a mutation operator configured to delete at least one gene of a genetic string and/or add at least one random gene to a genetic string, and applying the evolutionary algorithm to generate a third search query comprises: applying the crossover operator to genetic strings respectively associated with the first desired item and the second desired item to generate at least one offspring; and applying the mutation operator to at least one of the genetic string associated with the first desired item, the genetic string associated with the second desired item, and the genetic string associated with the at least one offspring.
Another embodiment of a search method and system comprises A) causing a first search query to be executed to generate a first information set comprising a first plurality of items, wherein each item of the first plurality of items is associated with at least one characteristic; B) representing at least some of the first information set in a first presentation; C) in response to a user input, saving at least one item of the first plurality of items in a location specified by the user; D) causing a second search query to be executed to generate a second information set comprising a second plurality of items, wherein each item of the second plurality of items is associated with at least one characteristic; E) representing at least some of the second information set in a second presentation; F) in response to a user input, retrieving at least one saved item of the first plurality of items; and G) generating a third search query based on a combination of the at least one saved item of the first plurality of items and at least one of the second plurality of items.
Some embodiments further comprise the at least one saved item having been dragged from the first presentation into the specified location, and dropped onto the specified location.
In some embodiments, generating a third search query based on the at least one saved item and at least one of the second plurality of items comprises applying an evolutionary algorithm to a genetic string associated with the at least one saved item and a genetic string associated with at least one of the second plurality of items. In some embodiments, the evolutionary algorithm comprises a cross-over operator configured to combine genes of two genetic strings to produce at least one offspring, and a mutation operator configured to delete at least one gene of a genetic string and/or add at least one random gene to a genetic string, and wherein applying the evolutionary algorithm to generate a third search query comprises: applying the crossover operator to genetic strings respectively associated with the at least one saved item and at least one of the second plurality of items to generate at least one offspring; and applying the mutation operator to at least one of the genetic string associated with the at least one saved item, the genetic string associated with at least one of the second plurality of items, and the genetic string associated with the at least one offspring.
In some embodiments, the first search query, the second search query and the third search query each are executed by a search engine. In some embodiments, the first search query, the second search query and the third search query each are executed by a web directory service.
In some embodiments, the first plurality of items and the second plurality of items comprise a plurality of goods for purchase and/or a plurality of services for purchase.
In some embodiments, the first information set and the second information set each comprise a plurality of images or diagrams. In some embodiments, at least some of the first information set is displayed graphically as a grid of images and/or diagrams in the first presentation, and at least some of the second information set is displayed graphically as a grid of images and/or diagrams in the second presentation.
In some embodiments, the at least one characteristic associated with at least one item of at least one plurality of items comprises a descriptor made available by a search engine or web directory service. In some embodiments, the at least one characteristic associated with at least one item of at least one plurality of items comprises a tag.
To provide an overall understanding, certain illustrative embodiments will now be described; however, it will be understood by one of ordinary skill in the art that the apparatus and methods described herein can be adapted and modified to provide apparatus and methods for other suitable applications and that other additions and modifications can be made without departing from the scope of the systems and methods described herein.
Unless otherwise specified, the illustrated embodiments can be understood as providing exemplary features of varying detail of certain embodiments. Therefore, unless otherwise specified, features, components, modules, and/or aspects of the illustrations can be otherwise combined, separated, interchanged, and/or rearranged without departing from the disclosed systems or methods.
Interactive search is a way of presenting information to a user and letting the user provide feedback to improve the quality of the search until a desirable item is found. Interactive search differs fundamentally from other search methods in that it is geared toward searches in which the user does not exactly know what he is looking for, or when a normal search may return a vast number of items. In both of these circumstances, Applicants have recognized and appreciated that identifying the specific item(s) of interest to the user may be facilitated by an evaluation of the user's subjective preferences.
One exemplary embodiment of the disclosed methods and apparatus is described in overview in
It should be appreciated that although the exemplary process depicted in
In the embodiment illustrated in
In another embodiment not specifically depicted in
In block 210 of
In block 215 of
In other aspects, the user may select a subjective value from at least two or more possible subjective values to indicate the relative desirability of a given item in the search results. For example, by merely selecting (highlighting) a given item, the user may indicate that item's desirability. Non-selected (non-highlighted) items may then be considered as undesirable. In another aspect, the user may assign a positive value to desirable items, a negative value to undesirable items, and one or more items not particularly addressed by the user may be assigned a neutral value. In yet another aspect, the user may assign a subjective value for a given item from within a range of possible values between some minimum value and some maximum value (e.g., a degree of fitness, weight, grade or rank). In yet another aspect, a subjective value for one or more items may be assigned based on a user's response time to comment on a given item. The forgoing examples are provided primarily for purposes of illustration, and are not intended as limiting. Additionally, as discussed above, various options for assigning a subjective value to one or more items in the search results may be facilitated via the use of a computer display and/or selection device (e.g., keyboard, mouse).
In block 220 of the interactive search process illustrated in
In block 225 of
In block 230 of the process 120 shown in
In one embodiment, to facilitate the execution of one or more evolutionary algorithms in block 230, one or more characteristics associated with each item, or one or more characteristics that have been modified by a user (as discussed above in connection with block 220), are encoded as one or more “genes” in a genetic string associated with each item. Hence, each item in the search results may be associated with a corresponding genetic string that includes one or more genes, wherein each gene represents a characteristic of the item (e.g., a tag, keyword, comment, identifier, descriptor, attribute, etc., as discussed above).
In block 230, once one or more such genetic strings are assembled, the evolutionary algorithm including one or more genetic operators is then applied to the one or more genetic strings associated with one or more items. Genetic strings are considered in the evolutionary algorithm based on their corresponding “fitness,” i.e., the user feedback (subjective value) assigned to the one or more items with which the strings are associated, to generate a new search query in block 235.
In various aspects, the genetic operators applied by an evolutionary algorithm in block 230 may include, but are not limited to, a selection operator, a mutation operator, a recombination operator, a crossover operator, a directed operator, a constraint operator, and a preservation (elitism) operator. For purposes of the present disclosure, and as would be readily understood by one of ordinary skill in the relevant arts, an evolutionary algorithm (also referred to as a genetic algorithm or program) generally is concerned with three possible factors, namely: 1) a population of one or more “parents” that may be randomly initialized (e.g., in the process 120, a “parent” may be considered as a genetic string associated with a given item in the search results); 2) one or more mutation operators capable of altering at least one “parent” to a “neighboring solution” (this process also may be referred to as a “local search operator”); and 3) a recombination operator which can recombine genetic strings of two parents into a “child” that inherits traits from both parents (this process also may be referred to as a “global search operator”).
In connection with evolutionary algorithms as applied herein, an exemplary mutation operation may be generally understood to potentially introduce randomness to the process, as a mutation operator may be configured to delete one or more genes of a given genetic string, or add one or more random genes to a given genetic string. Exemplary recombination operations can include reproduction, mutation, preservation (e.g., elitism) and/or crossover, where crossover can be understood to be the combination of two individuals (the “parents”) to produce one or more offspring (the “children”) (i.e., a crossover operator may be configured to combine genes of at least two given genetic strings to produce one or more offspring). Those of ordinary skill will recognize that a crossover operator may include asexual crossover and/or single-child crossover. Accordingly, crossover can be more generally understood to provide genetic material from a previous generation to a subsequent generation. In one exemplary evolutionary algorithm that may be employed in an implementation of the process 120 shown in
Variations of evolutionary algorithms, and different genetic operators used in various combinations, several of which are suitable for the process 120 shown in
As discussed above, in block 235 of
In block 245 of the process 120 outlined in
Once new search results are generated in block 250, block 255 indicates that the user optionally may define a filter that is applied to the newly generated results. For example, in one exemplary implementation, the user may define one or more constraints (e.g., provide only those results that cost less than $100, provide only green items, provide only 10 items) to selectively filter out possibly undesirable results from the newly generated results.
As indicated in
With reference again to
In one exemplary implementation, the computer 115 includes a computer-readable medium 115-4 (e.g., various types of memory, compact disk, floppy disk, etc.) having computer-readable signals stored thereon that define instructions which, as a result of being executed by the one or more processors of the computer, instruct the computer to perform various steps or acts of the interactive search process 120. In another implementation, the interactive search process 120 is configured to “sit on top of a conventional search component invoked by the user of the computer, by obtaining one or more characteristics or “genes” associated with a given item of information via the search component's API, and providing new search queries to the search component via its API.
According to various embodiments, the user may interact with the search process 120 via a number of possible techniques involving the display 115-1 and one or more selection devices 115-2. For example, as discussed above, information representing search results may be displayed on the display 115-1 in a variety of textual and/or graphical (e.g., iconic) formats. The user may utilize one or both of the display 115-1 and one or more of the selection devices 115-2 to click on/select/highlight various items of displayed information to provide some type of user feedback (e.g., assignment of subjective value to an item).
In one exemplary embodiment in which respective items of information are represented as images or diagrams surrounded by a border, a user may click on an item to change its evaluation between neutral (e.g., no border), positive (e.g., grey or some other color border) or negative (e.g., crossed out). In another embodiment, the user may obtain additional information about a particular item (e.g., characteristics or genes associated with the item) by letting a cursor hover over the image or diagram corresponding to the item or right clicking over the image or diagram corresponding to the item, for example. In yet another embodiment, an image or diagram corresponding to one or more items may be associated with a small slider, entry box, or pull-down/drop-down box, etc., displayed near or over the image or diagram. In the example of a slider, the user may adjust the slider with one of the selection devices to assign a subjective value to the item within a range of values from some minimum value to some maximum value represented on the slider. In the example of an entry box or pull-down/drop-down box, the user may manually enter a value from the keyboard, or select a value from amongst multiple possibilities conveyed by a menu. In yet another embodiment, the user may select a degree of randomness in generating new search queries through a slider representing two extremes labeled “Guide Me” and “Surprise Me,” corresponding respectively to low and high degrees of randomness. It should be appreciated that the foregoing examples are provided primarily for purposes of illustration, and that various embodiments of the present disclosure are not necessarily limited in these respects.
Yet another exemplary embodiment implementing various concepts according to the present disclosure includes a web-based system that enables the user to select a venue for a vacation. When looking for a vacation, most Internet-bases search engines such as Orbitz™, Travelocity®, and expedia.com® can offer information about specific hotels, resorts, etc., but require the user to have a clear idea of (e.g., to specify) a destination. In many cases, a person looking for a vacation destination may only have an approximate idea of a destination/time, e.g., “I want to spend one week in January someplace warm with my husband and two children.” With existing travel sites, the user has to select a geographical area, and look through a list of possible venues (e.g., selected on the basis of price range) to identify one with the desired characteristics. However, the user may initially have no idea of which particular geographical locations are satisfactory, and even if s/he has an idea of the geographical area (e.g., the Caribbean), s/he may not know which specific locations and which venues at that location satisfy her/his constraints.
Some online vacation sites allow a user to specify a number of criteria in a sequential fashion, for instance by starting with a specific location, then selecting price range, activity types, etc.; however, in this way, the search is narrowed unnecessarily and may cause a user to overlook some potentially suitable alternatives. For example, if a user begins by selecting the Caribbean, s/he may eventually identify a resort in Cancun, but there may have been other venues (e.g., Canary Islands) which have similar and perhaps more desirable characteristics, where such other venues which were not presented to the user after the initial decision.
In view of the foregoing, in one embodiment, the user is presented with a grid of images, each image being a picture representing one venue. Below each image may be a row of icons representing key characteristics of the property, such as cost, style (single, couple, family, . . . ), geographical location, etc. A second row below the image can include simple iconographic buttons that allow the user to obtain additional information in a pop-up window (e.g., view additional photos, read client reviews, determine availability), to provide evaluative feedback about the property (this can be as simple as a thumbs-up/thumbs-down pair, or a slider), to save this property to a folder representing the user's current selection portfolio, and/or to actually make a reservation at this property.
In one aspect of this embodiment, the display below the entire grid of images may include one or more buttons and sliders, including a button to generate a refined set of properties based on the user's feedback, a button to start with a fresh random set of properties, a slider labeled with the extreme values “Surprise me” and “Guide me” which determine the level of randomness of the search as described for the previous embodiment, a button that brings the user to her current portfolio of selections, and navigation buttons to trace backwards and forward through the selections made during a given search session.
In other aspects of this embodiment, an additional set of buttons, pull-down menus, radio buttons, and/or text entry boxes can be included. Through these various devices, the user can specify a filter, i.e., one or more constraints, that apply to all searched properties. For instance, if the user wants only family-oriented resorts by the sea, s/he can specify these criteria to ensure that inappropriate properties are not selected during search.
Based on her personal preferences, the user selects Frame A 410 and Frame F 415 (as depicted by the striped frames). One or more evolutionary algorithms of the interactive search process 120 utilize the “genes” (e.g., tags) associated with the items in Frame A 410 and Frame F 415 and feed a new search query, based mutations and recombinations of the genes, into the Amazon search engine. The search engine generates a new population of search results (
As shown in
According to one aspect, the embodiment illustrated in
The embodiment illustrated in
A non-volatile memory storage device, such as an internal hard disk or semiconductor memory device, is associated with each search query, so that the user is able to return to previous generations for a search display by clicking on a “Back” button, or retrieving button, or other similar method known to persons of skill in the art.
In addition, the user may use a “drag-drop” technique in the search process (
In addition, the user may use a “goody bag” technique in the search process to save a potentially desired item from a display window displaying the results of a search iteration, for possible later use. In this technique, the user may use a “drag-drop” technique to place the potentially desired item in a location where it will be saved for possible further use, or may take some other indicated action to indicate that a particular item should be saved. If items have been saved in the “goody bag,” then at a later time during the search process (or even on a later occasion such as but not limited to during another search process), the user may retrieve an item from a “goody bag,” again using a drag-drop or other technique, and either place it back into a search display to be considered in a further iteration, or take some other action with respect to it (such as purchasing the item, if the search involved a search for a gift, for example). More than one “goody bag” may be created or utilized, to save items for different potential later uses. In addition, the “goody bag” technique may be used to store and retrieve other results from interactive evolutionary computing applications, in contexts other than database searches. As one example, the technique may be used in conjunction with the digital imaging application described below to save potentially interesting interim results for potential later retrieval. Numerous other applications also will be apparent.
The disclosed methods and systems can additionally be used to identify a set of parameters or characteristics rather than selecting one item out of an existing set of items. Consider for example the process of modifying a digital image. Programs such as Photo-Shop or Paint Shop Pro provide the user with a large set of filters that alter the content of the image. For example, there are filters that can change contrast, brightness, tint, saturation and color balance. There are also many filters that apply artistic or geometric effects such as emboss, charcoal, paintbrush, leather, kaleidoscope, warp, solarize, mosaic, etc.
Each of these filters typically is associated with one or more parameters that modify the extent or nature of the filter. For instance,
Accordingly, the problem of selecting filters and parameters can be understood to be a search problem that requires an understanding of the user's subjective evaluation, and that has a potentially vast set of results, as provided herein.
Another embodiment of the disclosed methods and systems presents the user with a grid of images. Images in the grid are generated by applying a randomly chosen effect filter with a random set of parameters. A separate panel shows the original image for comparison. Each image in the grid is associated with a set of buttons and sliders that enable to user to provide feedback on his/her subjective evaluation of that image, a button that allows the user to manually adjust parameters using the current image as a starting point, and/or a button/interface that allows the user to save the image to a folder.
Below the entire grid of images, the example embodiment includes buttons and sliders, including a button to generate a new set of images based on the user's feedback, a button to start with a fresh random set of images, a slider which determines the level of randomness of the search as described for previous embodiments, and navigation buttons to trace backwards and forward through the selections made during a given search session.
In additional embodiments, the items being searched might include any of the following: homes, automobiles, financial instruments (such as stocks or bonds), service providers, legal documents, scientific articles, art, images, web pages, recruitment candidates, potential employers, etc., with such examples provided for illustration and not limitation. In the context of selecting parameters, as was shown in the embodiment for selecting parameters for image effect filters, additional embodiments can be envisioned for design of mechanical systems, architectural elements, artistic designs, etc. The above are meant as partial lists, as various embodiments can be applied to any search in which the results come from a potentially vast set of choices.
As used herein, a “user interface” is an interface between a human user and a computer that enables communication between the user and the computer. A user interface may include an auditory indicator such as a speaker, and/or a graphical user interface (GUI) including one or more displays. A user interface also may include one or more selection devices including a mouse, a keyboard, a keypad, a track ball, a microphone, a touch screen, a game controller (e.g., a joystick), etc., or any combinations thereof
As used herein, an “application programming interface” or “API” is a set of one or more computer-readable instructions that provide access to one or more other sets of computer-readable instructions that define functions, so that such functions can be configured to be executed on a computer in conjunction with an application program, in some instances to communicate various data, parameters, and general information between two programs.
The various methods, acts thereof, and various embodiments and variations of these methods and acts, individually or in combination, may be defined by computer-readable signals tangibly embodied on one or more computer-readable media, for example, non-volatile recording media, integrated circuit memory elements, or a combination thereof. Such signals may define instructions, for example, as part of one or more programs, that, as a result of being executed by a computer, instruct the computer to perform one or more of the methods or acts described herein, and/or various embodiments, variations and combination thereof. Such instructions may be written in any of a plurality of programming languages or using any of a plurality of programming techniques.
For example, various methods according to the present disclosure may be programmed using an object-oriented programming language. Alternatively, functional, scripting, and/or logical programming languages may be used. Various aspects of the disclosure may be implemented in a non-programmed environment (e.g., documents created in HTML, XML or other format that, when viewed in a window of a browser program, render aspects of a graphical-user interface (GUI) or perform other functions). Various aspects of the disclosure may be implemented as programmed or non-programmed elements, or combinations thereof.
A given computer-readable medium may be transportable such that the instructions stored thereon can be loaded onto any computer system resource to implement various aspects of the present disclosure. In addition, it should be appreciated that the instructions stored on the computer-readable medium are not limited to instructions embodied as part of an application program running on a host computer. Rather, the instructions may be embodied as any type of computer code (e.g., software or microcode) that can be employed to program a processor to implement various aspects of the present disclosure.
Having thus described several illustrative embodiments, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of this disclosure. While some examples presented herein involve specific combinations of functions or structural elements, it should be understood that those functions and elements may be combined in other ways according to the present disclosure to accomplish the same or different objectives. In particular, acts, elements, and features discussed in connection with one embodiment are not intended to be excluded from similar or other roles in other embodiments. Accordingly, the foregoing description and attached drawings are by way of example only, and are not intended to be limiting.
Claims
1. In a computer system comprising at least one input device, at least one output device, and at least one processor, a search method, comprising:
- A) by means of a processor, causing a first information set to be generated, comprising a first plurality of items, wherein each item of the first plurality of items is associated with at least one characteristic;
- B) by means of an output device, representing at least some of the first information set in a first presentation to a user;
- C) by means of an input device, receiving a first feedback based upon the first presentation from a user;
- D) by means of a processor, applying an evolutionary algorithm to a plurality of characteristics associated with the first plurality of items to generate a first search query, wherein the evolutionary algorithm is based on the first feedback;
- E) by means of a processor, causing the first search query to be executed to generate a second information set comprising a second plurality of items, wherein each item of the second plurality of items is associated with at least one characteristic;
- F) by means of an output device, representing at least some of the second information set in a second presentation to the user;
- G) in response to a user input received by means of an input device, repeating step B and representing by means of an output device at least some of the first information set in the first presentation to the user;
- H) by means of an input device, receiving a second feedback based upon the second presentation from the user;
- I) by means of a processor, applying an evolutionary algorithm to a plurality of characteristics associated with the second plurality of items to generate a second search query, wherein the evolutionary algorithm is based on the second feedback;
- J) by means of a processor, causing the second search query to be executed to generate a third information set comprising a third plurality of items, wherein each item of the third plurality of items is associated with at least one characteristic; and
- K) by means of an output device, representing at least some of the third information set in a third presentation to the user;
- wherein at least one characteristic associated with each item is chosen from a group comprising: at least one descriptor made available by a search engine or web directory service; at least one tag; at least one keyword; at least one classification-oriented identifier; at least one categorization-oriented identifier; and at least one semantic web-oriented identifier; and
- wherein at least one characteristic associated with each item is not a word or phrase selected from text displayed as part of the item.
2. The method of claim 1, wherein the first feedback comprises a subjective value for at least one item of the first plurality of items.
3. The method of claim 1, wherein the first feedback comprises a subjective ranking for at least one item of the first plurality of items.
4. The method of claim 1, wherein the first feedback comprises a selection of at least one item of the first plurality of items.
5. The method of claim 1, wherein the first feedback comprises a rejection of at least one item of the first plurality of items.
6. The method of claim 1, wherein the first information set, the second information set and the third information set each comprise a plurality of images or diagrams.
7. The method of claim 6, wherein at least some of the first information set is displayed graphically as a grid of images and/or diagrams in the first presentation, at least some of the second information set is displayed graphically as a grid of images and/or diagrams in the second presentation, and at least some of the third information set is displayed graphically as a grid of images and/or diagrams in the third presentation.
8. The method of claim 1, wherein the first plurality of items comprises a plurality of goods for purchase and/or a plurality of services for purchase.
9. The method of claim 1, wherein the first search query and the second search query each are executed by the search engine.
10. The method of claim 9, wherein the search engine is independently provided.
11. The method of claim 1, wherein the first search query and the second search query each are executed by the web directory service.
12. The method of claim 11, wherein the web directory service is independently provided.
13. The method of claim 1, wherein the at least one characteristic associated with at least one item of at least one plurality of items comprises a descriptor made available by the search engine or web directory service.
14. The method of claim 1, wherein the at least one characteristic associated with at least one item of at least one plurality of items comprises a tag.
15. The method of claim 14 wherein the tag comprises at least one of a keyword, a comment, a URL link and XML information.
16. The method of claim 1, wherein the at least one characteristic associated with at least one item of at least one plurality of items comprises:
- a keyword;
- a classification-oriented identifier;
- a categorization-oriented identifier; or
- a semantic web-oriented identifier.
17. The method of claim 16, wherein the at least one characteristic associated with at least one item of at least one plurality of items comprises:
- a taxonomy-related identifier;
- an ontology-related identifier; or
- a folksonomy-related identifier.
18. The method of claim 1, wherein the evolutionary algorithm includes at least one of the following genetic operators:
- a selection operator;
- a mutation operator;
- a recombination operator;
- a crossover operator;
- a directed operator;
- a constraint operator; or
- a preservation operator.
19. The method of claim 2, wherein the subjective value was selected from a range of possible subjective values.
20. The method of claim 1, wherein the evolutionary algorithm comprises a mutation operator configured to delete at least one gene of a genetic string and/or to add at least one random gene to a genetic string, and wherein applying the evolutionary algorithm to generate a first search query comprises applying the mutation operator to a genetic string associated with at least one item of the first plurality of items to generate the first search query.
21. The method of claim 2, wherein the first feedback comprises subjective values for at least two items of the first plurality of items, and the evolutionary algorithm generating the first search query is based on at least the said subjective values.
22. The method of claim 1, wherein the evolutionary algorithm comprises a crossover operator configured to combine genes of two genetic strings to produce at least one offspring, and a mutation operator configured to delete at least one gene of a genetic string and/or add at least one random gene to a genetic string, and wherein applying the evolutionary algorithm to generate a first search query comprises:
- applying the crossover operator to genetic strings respectively associated with at least two items of the first plurality of items to generate at least one offspring; and
- applying the mutation operator to at least one genetic string associated with at least one of the at least two items of the first plurality of items, or to at least one offspring.
23. The method of claim 1, further comprising, by means of an input device, receiving from the user modifications of at least one of the first search query and the second search query prior to causing the said search query to be executed.
24. The method of claim 1, further comprising:
- L) by means of an input device, receiving from the user a selection of a first desired item from one of the plurality of items;
- M) by means of an input device, receiving from the user a selection of a second desired item from another of the plurality of items; and
- N) by means of a processor, generating a fourth search query based on the first desired item and the second desired item.
25. The method of claim 24, further comprising the first desired item from the presentation in which it was represented having been dragged, by the user by means of an input device, into the presentation in which the second desired item was represented, and having been dropped, by the user by means of an input device, onto the said second desired item.
26. The method of claim 24, wherein generating a fourth search query based on the first desired item and the second desired item comprises applying an evolutionary algorithm to a genetic string associated with the first desired item and a genetic string associated with the second desired item.
27. The method of claim 1, wherein causing a first information set comprising a first plurality of items to be generated comprises causing at least a portion of the first information set to be generated randomly.
28. The method of claim 1, wherein causing a first information set comprising a first plurality of items to be generated comprises causing a search query to be executed.
29. In a computer system comprising at least one input device, at least one output device, and at least one processor, a method, comprising:
- A) by means of a processor, causing a first search query to be executed to generate a first information set comprising a first plurality of items, wherein each item of the first plurality of items is associated with at least one characteristic;
- B) by means of an output device, representing at least some of the first information set in a first presentation to a user;
- C) by means of a processor, causing a second search query to be executed to generate a second information set comprising a second plurality of items, wherein each item of the second plurality of items is associated with at least one characteristic;
- D) by means of an output device, representing at least some of the second information set in a second presentation to the user;
- E) by means of an input device, receiving from the user a selection of a first desired item from the first plurality items;
- F) by means of an input device, receiving from the user a selection of a second desired item from the second plurality of items;
- G) by means of a processor, generating a third search query based on the combination of the first desired item and the second desired item;
- H) by means of a processor, causing the third search query to be executed to generate a third information set comprising a third plurality of items, wherein each item of the third plurality of items is associated with at least one characteristic; and
- I) by means of an output device, representing at least some of the third information set in a third presentation to the user;
- wherein generating a third search query based on the first desired item and the second desired item comprises applying an evolutionary algorithm to a genetic string comprising a plurality of characteristics associated with the first desired item and applying an evolutionary algorithm to a genetic string comprising a plurality of characteristics associated with the second desired item;
- wherein at least one characteristic associated with each item is chosen from a group comprising: at least one descriptor made available by a search engine or web directory service; at least one tag; at least one keyword; at least one classification-oriented identifier; at least one categorization-oriented identifier; and at least one semantic web-oriented identifier; and
- wherein at least one characteristic associated with each item is not a word or phrase selected from text displayed as part of the item.
30. The method of claim 29, further comprising the first desired item having been dragged, by the user by means of an input device, from the first presentation into the second presentation, and having been dropped, by the user by means of an input device, onto the second desired item in the second presentation.
31. The method of claim 29, wherein the first search query and the second search query each are executed by the search engine.
32. The method of claim 29, wherein the first search query and the second search query each are executed by the web directory service.
33. The method of claim 29, wherein the first plurality of items and the second plurality of items comprise a plurality of goods for purchase and/or a plurality of services for purchase.
34. The method of claim 29, wherein the first information set and the second information set each comprise a plurality of images or diagrams.
35. The method of claim 34, wherein at least some of the first information set is displayed graphically as a grid of images and/or diagrams in the first presentation, and at least some of the second information set is displayed graphically as a grid of images and/or diagrams in the second presentation.
36. The method of claim 29, wherein the at least one characteristic associated with at least one item of at least one plurality of items comprises a descriptor made available by the search engine or web directory service.
37. The method of claim 29, wherein the at least one characteristic associated with at least one item of at least one plurality of items comprises a tag.
38. The method of claim 29, wherein the evolutionary algorithm comprises a crossover operator configured to combine genes of two genetic strings to produce at least one offspring, and a mutation operator configured to delete at least one gene of a genetic string and/or add at least one random gene to a genetic string, and wherein applying the evolutionary algorithm to generate a third search query comprises:
- applying the crossover operator to genetic strings respectively comprising a plurality of characteristics associated with the first desired item and the second desired item to generate at least one offspring; and
- applying the mutation operator to at least one of the genetic string comprising a plurality of characteristics associated with the first desired item, the genetic string comprising a plurality of characteristics associated with the second desired item, and the genetic string comprising a plurality of characteristics associated with the at least one offspring.
39. In a computer system comprising at least one input device, at least one output device, at least one storage device and at least one processor, a method, comprising:
- A) by means of a processor, causing a first search query to be executed to generate a first information set comprising a first plurality of items, wherein each item of the first plurality of items is associated with at least one characteristic;
- B) by means of an output device, representing at least some of the first information set in a first presentation to a user;
- C) in response to a user input, received by means of an input device, saving in a storage device at least one item of the first plurality of items in a location specified by the user;
- D) by means of a processor, causing a second search query to be executed to generate a second information set comprising a second plurality of items, wherein each item of the second plurality of items is associated with at least one characteristic;
- E) by means of an output device, representing at least some of the second information set in a second presentation to the user;
- F) in response to a user input, received by means of an input device, retrieving from the storage device at least one saved item of the first plurality of items;
- G) by means of a processor, generating a third search query based on a combination of the at least one saved item of the first plurality of items and at least one of the second plurality of items;
- H) by means of a processor, causing the third search query to be executed to generate a third information set comprising a third plurality of items, wherein each item of the third plurality of items is associated with at least one characteristic; and
- I) by means of an output device, representing at least some of the third information set in a third presentation to the user;
- wherein generating a third search query based on the combination of the at least one saved item and the at least one of the second plurality of items comprises applying an evolutionary algorithm to a genetic string comprising a plurality of characteristics associated with the at least one saved item and applying an evolutionary algorithm to a genetic string comprising a plurality of characteristics associated with the at least one of the second plurality of items;
- wherein at least one characteristic associated with each item is chosen from a group comprising: at least one descriptor made available by a search engine or web directory service; at least one tag; at least one keyword; at least one classification-oriented identifier; at is least one categorization-oriented identifier; and at least one semantic web-oriented identifier; and
- wherein at least one characteristic associated with each item is not a word or phrase selected from text displayed as part of the item.
40. The method of claim 39, further comprising the at least one saved item having been dragged, by the user, by means of an input device, from the first presentation into the specified location, and dropped by the user, by means of an input device, onto the specified location.
41. The method of claim 39, wherein the first search query, the second search query and the third search query each are executed by the search engine.
42. The method of claim 39, wherein the first search query, the second search query and the third search query each are executed by the web directory service.
43. The method of claim 39, wherein the first plurality of items and the second plurality of items comprise a plurality of goods for purchase and/or a plurality of services for purchase.
44. The method of claim 39, wherein the first information set and the second information set each comprise a plurality of images or diagrams.
45. The method of claim 44, wherein at least some of the first information set is displayed graphically as a grid of images and/or diagrams in the first presentation, and at least some of the second information set is displayed graphically as a grid of images and/or diagrams in the second presentation.
46. The method of claim 39, wherein the at least one characteristic associated with at least one item of at least one plurality of items comprises a descriptor made available by the search engine or web directory service.
47. The method of claim 39, wherein the at least one characteristic associated with at least one item of at least one plurality of items comprises a tag.
48. The method of claim 39, wherein the evolutionary algorithm comprises a crossover operator configured to combine genes of two genetic strings to produce at least one offspring, and a mutation operator configured to delete at least one gene of a genetic string and/or add at least one random gene to a genetic string, and wherein applying the evolutionary algorithm to generate a third search query comprises:
- applying the crossover operator to genetic strings respectively comprising a plurality of characteristics associated with the at least one saved item and at least one of the second plurality of items to generate at least one offspring; and
- applying the mutation operator to at least one of the genetic string comprising a plurality of characteristics associated with the at least one saved item, the genetic string comprising a plurality of characteristics associated with at least one of the second plurality of items, and the genetic string comprising a plurality of characteristics associated with the at least one offspring.
Type: Application
Filed: Apr 23, 2010
Publication Date: Aug 19, 2010
Applicant: Icosystem Corporation (Cambridge, MA)
Inventors: Eric Bonabeau (Winchester, MA), Pablo Funes (Somerville, MA)
Application Number: 12/766,450
International Classification: G06F 17/30 (20060101); G06N 3/12 (20060101); G06Q 30/00 (20060101); G06F 3/048 (20060101);