System and Method to Provide Custom Constraints for Faceted Exploration

Information

  • Patent Application
  • 20080086451
  • Publication Number
    20080086451
  • Date Filed
    October 05, 2006
    18 years ago
  • Date Published
    April 10, 2008
    16 years ago
Abstract
The Facet Navigator permits users to set custom constraints for searching databases by facet, displays facets representing fields in a database, and provides a manipulator for each facet. The manipulator may be a slider bar, or a drop-down menu, or some other interactive device known to persons skilled in the art. When a user sets constraints for a facet with the manipulator, the Facet Navigator searches the database based on the constraints and displays a list of items in the database that satisfy the constraints. The Facet Navigator displays a preview of interim results whenever a cursor is moved over an active region of the manipulator, where the preview includes details of database items meeting a search criteria based on the location of the cursor on the manipulator.
Description

BRIEF DESCRIPTION OF DRAWINGS

The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will be understood best by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:



FIG. 1. is an exemplary prior art faceted exploration window;



FIG. 2. is an exemplary computer network;



FIG. 3. describes programs and files in a memory on a computer;



FIG. 4. is a flowchart of a Facet Navigator viewer;



FIG. 5. is a flowchart of a Facet Navigator manipulator;



FIG. 6. is a flowchart of a Facet Navigator results previewer;



FIG. 7. is an exemplary window showing features of a Facet Navigator;



FIG. 8. is an exemplary window showing features of a Facet Navigator;



FIG. 9. is an exemplary window showing features of a Facet Navigator; and



FIG. 10. is an alternate embodiment of a Facet Navigator.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The principles of the present invention are applicable to a variety of computer hardware and software configurations. The term “computer hardware” or “hardware,” as used herein, refers to any machine or apparatus that is capable of accepting, performing logic operations on, storing, or displaying data, and includes without limitation processors and memory; the term “computer software” or “software,” refers to any set of instructions operable to cause computer hardware to perform an operation. A “computer,” as that term is used herein, includes without limitation any useful combination of hardware and software, and a “computer program” or “program” includes without limitation any software operable to cause computer hardware to accept, perform logic operations on, store, or display data. A computer program may, and often is, comprised of a plurality of smaller programming units, including without limitation subroutines, modules, functions, methods, and procedures. Thus, the functions of the present invention may be distributed among a plurality of computers and computer programs. The invention is described best, though, as a single computer program that configures and enables one or more general-purpose computers to implement the novel aspects of the invention. For illustrative purposes, the inventive computer program will be referred to as the “Facet Navigator.”


Additionally, the Facet Navigator is described below with reference to an exemplary network of hardware devices, as depicted in FIG. 2. A “network” comprises any number of hardware devices coupled to and in communication with each other through a communications medium, such as the Internet. A “communications medium” includes without limitation any physical, optical, electromagnetic, or other medium through which hardware or software can transmit data. For descriptive purposes, exemplary network 100 has only a limited number of nodes, including workstation computer 105, workstation computer 110, server computer 115, and persistent storage 120. Network connection 125 comprises all hardware, software, and communications media necessary to enable communication between network nodes 105-120. Unless otherwise indicated in context below, all network nodes use publicly available protocols or messaging services to communicate with each other through network connection 125.


Facet Navigator 200 typically is stored in a memory, represented schematically as memory 220 in FIG. 3. The term “memory,” as used herein, includes without limitation any volatile or persistent medium, such as an electrical circuit, magnetic disk, or optical disk, in which a computer can store data or software for any duration. A single memory may encompass and be distributed across a plurality of media. Further, Facet Navigator 200 may reside in more than one memory distributed across different computers, servers, logical partitions or other hardware devices. The elements depicted in memory 220 may be located in or distributed across separate memories in any combination, and Facet Navigator 200 may be adapted to identify, locate and access any of the elements and coordinate actions, if any, by the distributed elements. Thus, FIG. 3. is included merely as a descriptive expedient and does not necessarily reflect any particular physical embodiment of memory 220. As depicted in FIG. 3, though, memory 220 may include additional data and programs. Of particular import to Facet Navigator 200, memory 220 may include web browser 230, web hosting application 250 and product database 260, with which Facet Navigator 200 interacts. Web hosting application 250 has a sub-component, database search tool 255. Web browser 230, web hosting application 250, including database search tool 255 and product database 260 all exist in the art, and are commonly used by Internet based retailers. Facet Navigator 200 integrates directly with web hosting application 250 and has viewer 300, manipulator 400 and results previewer 500. Viewer 300 is a prior art viewer that displays a searched list of items from product database 260. Manipulator 400 adds a constraint setting capability to the prior art faceted search to allow users to set custom constraints for each facet. Results previewer 500 displays enhanced interim results when a cursor hovers over an active area of the manipulator controls.


A flowchart of viewer 300 is shown in FIG. 4. Viewer 300 starts whenever web host application 250 publishes a Facet Navigator 200 enabled web page viewable by a user of web browser 230 (310). Viewer 300 displays the default search results of items in product database 260 (312). The search results may be a text list, a captioned graphic, or some combination of graphics and text, showing facets related to each item, such as actual price, manufacturer, model name, and so forth. The search results may include prompts, such as “add to shopping cart,” and hyperlinks to a detailed description of the item. The default search results list is predefined by web hosting application 250, and the list may be displayed by a category such as special promotional items, most popular items, or a complete ordered list of all items. If the list is longer than what can fit on the visual display, the viewer may have a scroll bar or may propagate across multiple pages. If the user of web browser 230 initiates a custom search (314), viewer 300 receives a new ordered list from database search tool 255 or manipulator 400 (316) containing items from product database 260. Viewer 300 displays the searched list of items from product database 260 (318). A custom search is initiated by manipulating facet constraints (see FIG. 5) or by using other native search features in web hosting application 250, such as a keyword search. If the user of web browser 230 wants to expand the view to include more facets in the individual product descriptions (320), viewer 300 displays the additional facets in the existing searched list of items from product database 260, along with prompts and hyperlinks (322). If the user of web browser 230 clicks on a hyperlink (324), viewer 300 causes web browser 230 to go to the link (326). Going to a link will either spawn a new web page or a tab containing the linked page or will replace the existing web page with the linked page, essentially terminating Facet Navigator 200 and viewer 300. For as long as Facet Navigator 200 is active on an open web page (328), viewer 300 repeats steps 314-324. When Facet Navigator 200 stops because the user of web browser 230 moves on to another web page, or web browser 230 closes, viewer 300 stops (330).


Manipulator 400, as shown in FIG. 5, starts whenever web host application 250 publishes a Facet Navigator 200 enabled web page viewable by a user of web browser 230 (410). Manipulator 400 displays a collection of default facets, and a manipulator for setting constraints for each facet (412). The default collection of facets is predefined by web hosting application 250, and likely includes only the most frequently searched facets for a particular group of products. Some facets are continuous, such as price, while other facets are made up of discrete elements, such as a manufacturer or a product feature. For continuous facets, the manipulator may be a slider bar, where a user can set a range by selecting a central point, or by selecting a minimum and maximum value. For discrete elements, the manipulator may comprise ticks on a bar, check-boxes, radio buttons or a drop-down menu. If the user of web browser 230 chooses to expand the display of available facets (414), manipulator 400 displays the expanded collection of facets with manipulators (416). The number and type of facets available depends on the product and the fields in product database 260. The expanded collection of facets is predefined by web hosting application 250. In one embodiment of Facet Navigator 200, users of web browser 230 may choose expanded facets merely by pressing a “more” or “expand” button. In another embodiment, users of web browser 230 may select desired facets from a menu. If the user of web browser 230 chooses change the constraint of a facet (418), Manipulator 400 initiates database search tool 255 using the selected constraints (420). In one embodiment of Facet Navigator 200, users of web browser 230 may choose to search by one or more constrained facets by pressing a “search” or “go” button. In another embodiment, manipulator 400 initiates the search automatically in response to a changed constraint setting. The searched list of items from product database 260 is sent to be displayed by viewer 300 (422). If the user of web browser 230 causes a mouse pointer to hover over the active area of a facet manipulator (424), manipulator 400 initiates database search tool 255 using the potentially selected constraints based on the location of the mouse cursor over the facet manipulator (426) and initiates results previewer 500 (428). For as long as Facet Navigator 200 is active on an open web page (430), manipulator 400 repeats steps 412-424. When Facet navigator stops because the user of web browser 230 has moved on to another web page, or web browser 230 closes, manipulator 400 stops (432).



FIG. 6. depicts results previewer 600. Results previewer 600 starts when initiated by manipulator 500 (510), reads the results from database search tool 255 (512), and identifies any recently modified facets (514). Recently modified facets indicate facets potentially important to a user of web browser 230. Results previewer 600 calculates interim results (516). Interim results may include product counts for the recently modified facets or facet constraints, a portion of the searched items from product database 260 that meet the constraint of the previewed facet, or other details, such as brands, product features and hyperlinks to other search results or web pages. Results previewer 600 displays the interim results (518) in a pop-up window or frame. If the user of web browser 230 selects a hyperlink in the pop-up (520), Results previewer 600 causes web browser 230 to go to the link (522). Going to a link will either spawn a new web page or tab containing the linked page or will replace the existing web page with the linked page, essentially terminating Facet Navigator 200 and results previewer 500. For as long as the user of web browser 230 causes a mouse pointer to hover over the active area of a facet manipulator (524), results previewer 500 continues to display the pop-up, repeating steps 518-520. Whenever the mouse pointer stops hovering over the active area of a facet manipulator, results previewer 500 closes the pop-up (526) and stops (528). In another embodiment of Facet Navigator 200, hover based interim results are an option that users of web browser 230 may turn on and off.



FIG. 7 depicts an exemplary faceted exploration window for a fictitious online retailer of digital cameras using the features of Facet Navigator 200. Combined facet field 710 represents the display of manipulator 400, with facets and manipulators that can be used to search the list of available digital cameras. Price manipulator 711 represents a slider bar of constraints a customer can use for searching the list of available digital cameras by price. Brand manipulator 713 represents drop-down menu with constraints a customer can use for searching the list of available digital cameras by brand. Resolution manipulator 715 represents a slider bar of constraints a customer can use for searching the list of available digital cameras by picture resolution. Found field 730 indicates the total number of digital cameras in the list. Sorted by field 740 indicates how the list of digital cameras is currently sorted and displayed. Product list field 720 shows the default list of digital cameras. Actuator 750 is a “go” button that initiates a custom search based on a keyword or constrained facet. Actuator 760 is a “more” button that will reveal expanded facets. Cursor 790 shows a mouse cursor selecting the “more” button.



FIG. 8. shows the exemplary faceted exploration window of FIG. 7 using the features of Facet Navigator 200 with expanded facets. Expanded combined facet field 810 represents the display of manipulator 400, with an expanded collection of facets and manipulators that can be used to search the list of available digital cameras. Price bar 811 represents a slider bar of constraints that a customer can use for searching the list of available digital cameras by price. Cursor 890 represents a mouse cursor hovering over the price facet manipulator near $500 on the slider bar. Pop-up 880 represents results previewer 500 displaying interim results for digital cameras around the $500 price range. Memory bar 817 represents a slider bar with ticks for constraints that a customer can use for searching the list of available digital cameras by memory type. First constraint 872 represents a user selected constraint for the “Sd” memory type and second constraint 874 represents a user selected constraint for the “MemStik” memory type. With mouse cursor 890 hovering over price bar 811, results previewer 500 displays interim results in pop-up 880, showing the information related to the cursor's position on price bar 811 and the selected memory types from memory bar 817.



FIG. 9. shows the exemplary faceted exploration window of FIG. 8 using the features of Facet Navigator 200 after a search based on user-defined constraints. Price bar 911 represents a slider bar of constraints a customer can use for searching the list of available digital cameras by price. First constraint 976 represents a lower price constraint set by a customer at $500, and second constraint 978 represents an upper price constraint set by a customer at $950. Memory bar 917 represents a slider bar with ticks for constraints a customer can use for searching the list of available digital cameras by memory type. First constraint 972 represents a user selected constraint for the “Sd” memory type and second constraint 974 represents a user selected constraint for the “MemStik” memory type. Actuator 950 is a “go” button the initiates a custom search based on a keyword or constrained facet. Cursor 990 represents a mouse cursor that just finished selecting the “go” button. Product list field 920 shows the searched list of digital cameras based on the user defined constraints. Found field 930 indicates the total number of digital cameras in the list that meets all the user defined constraints. Sorted by field 940 indicates how the list of digital cameras is currently sorted and displayed.



FIG. 10 depicts an alternate embodiment of Facet Navigator 200. Manipulator field 1010 represents manipulator 400, and contains a collection of facets and constraint manipulators. View field 1020 represents viewer 300, displaying searched list 1021 of digital cameras that meet the user defined constraints. View field 1020 automatically updates in response to changes made to constraints in manipulator field 1010. “Customize” button 1060 permits users to select different facets to display in view field 1010. Zoom manipulator field 1011 employs a slider bar of constraints a customer can use for searching the list of available digital cameras by zoom capability. Slider 1071 is in a default position, indicating that the customer has not set a zoom constraint. Brand manipulator field 1013 employs a drop-down menu of constraints a customer can use for searching the list of available digital cameras by brand. Menu 1073 displays a default “all” selection, indicating that the customer has not set a brand constraint. Resolution manipulator field 1015 employs a slider bar of constraints that a customer can use for searching the list of available digital cameras by picture resolution capability. Slider 1075 is in a default position, indicating that the customer has not set a resolution constraint. Memory manipulator field 1017 employs a slider bar of constraints a customer can use for searching the list of available digital cameras by memory type. Slider 1077 is set to one of the available constraints, “Sd,” indicating that the customer only wants to view cameras using the “Sd” memory type. Price manipulator field 1019 employs a slider bar of constraints a customer can use for searching the list of available digital cameras by price. Slider 1079 is set at $500, indicating that the customer wants to view cameras in a price range around $500. Pop-up 1080 represents results previewer 500 displaying interim results related to mouse cursor 1090 hovering over slider 1079 of price facet manipulator 1019.


A preferred form of the invention has been shown in the drawings and described above, but variations in the preferred form will be apparent to those skilled in the art. The preceding description is for illustration purposes only, and the invention should not be construed as limited to the specific form shown and described. The scope of the invention should be limited only by the language of the following claims.

Claims
  • 1. A computer implemented process for searching databases by facet, the computer implemented process comprising: displaying facets representing fields in a database;providing a manipulator for each facet wherein the manipulator comprises a graphical representation of constraints related to the facet;setting constraints for a facet with the manipulator;searching the database based on the constraints; anddisplaying the searched list of items from the database that satisfy the constraints.
  • 2. The computer implemented process of claim 1 wherein the manipulator comprises a slider bar representing constraints of a continuous facet.
  • 3. The computer implemented process of claim 2 wherein setting constraints for a continuous facet with the slider bar manipulator includes setting a range for the constraint.
  • 4. The computer implemented process of claim 1 wherein the manipulator comprises a series of constraints for a discrete facet.
  • 5. The computer implemented process of claim 4 wherein setting constraints for a discrete facet with the manipulator includes selecting more than one constraint from the series of constraints.
  • 6. The computer implemented process of claim 1 further comprising an option to select, display, manipulate and search by an extended collection of facets related to fields in the database.
  • 7. The computer implemented process of claim 1 further comprising displaying a preview of search results whenever a cursor is moved over an active region of the manipulator, wherein the preview includes details of database items satisfying a search criteria based on the location of the cursor over the manipulator.
  • 8. An apparatus for searching databases by facet, the apparatus comprising: a processor;a memory connected to the processor;a database file in the memory;a web hosting application running in the memory operable to be accessed by a web browser, wherein the web hosting application is further operable to search and display items in the database; anda facet navigator program in the memory operable to display facets representing fields in a database, provide a manipulator for each facet wherein the manipulator comprises a graphical representation of constraints related to the facet, set constraints for a facet with the manipulator, search the database based on the constraints, and display the searched list if items from the database that satisfy the constraints.
  • 9. The apparatus of claim 8 wherein the manipulator comprises a slider bar representing constraints of a continuous facet.
  • 10. The apparatus of claim 9 wherein setting constraints for a continuous facet with the slider bar manipulator includes setting a range for the constraint.
  • 11. The apparatus of claim 8 wherein the manipulator comprises a series of constraints for a discrete facet.
  • 12. The apparatus of claim 11 wherein setting constraints for a discrete facet with the manipulator includes selecting more than one constraint from the series of constraints.
  • 13. The apparatus of claim 8 wherein the facet navigator program is further operable to provide an option to select, display, manipulate and search by an extended collection of facets related to fields in the database.
  • 14. The apparatus of claim 8 wherein the facet navigator program is further operable to display a preview of search results whenever a cursor is moved over an active region of the manipulator, wherein the preview includes details of database items satisfying a search criteria based on the location of the cursor over the manipulator.
  • 15. A computer readable memory containing a plurality of instructions to cause a computer to search databases by facet, the plurality of instructions comprising: a first instruction to display facets representing fields in a database;a second instruction to provide a manipulator for each facet wherein the manipulator comprises a graphical representation of constraints related to the facet;a third instruction to set constraints for a facet with the manipulator; anda fourth instruction to search the database based on the constraints, and display the searched list if items from the database that satisfy the constraints.
  • 16. The computer readable memory of claim 15 wherein the manipulator comprises a slider bar representing constraints of a continuous facet.
  • 17. The computer readable memory of claim 16 wherein setting constraints for a continuous facet with the slider bar manipulator includes setting a range for the constraint.
  • 18. The computer readable memory of claim 15 wherein the manipulator comprises a series of constraints for a discrete facet.
  • 19. The computer readable memory of claim 18 wherein setting constraints for a discrete facet with the manipulator includes selecting more than one constraint from the series of constraints.
  • 20. The computer readable memory of claim 15 comprising an additional instruction to provide an option to select, display, manipulate and search by an extended collection of facets related to fields in the database.
  • 21. The computer readable memory of claim 15 comprising an additional instruction to display a preview of search results whenever a cursor is moved over an active region of the manipulator, wherein the preview includes details of database items satisfying a search criteria based on the location of the cursor over the manipulator.