Abstract:
The extended facet navigator combines two or more facet navigators for searching two or more datasets into a single, space efficient user interface. Each facet navigator is comprised of a plurality of constraint manipulators surrounding a results viewer. In one embodiment, the results from a first facet navigator are a constraint for a second facet navigator. Whenever the results of a first facet navigator are a constraint for a second facet navigator, any change to a constraint manipulator on the first facet navigator will update the results for the first facet navigator. The updated results from the first facet navigator updates the constraint on the second facet navigator. The second facet navigator updates the results of the second facet navigator based on the updated constraint.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    The present invention is related to the subject matter of U.S. patent application Ser. No. ______ (Attorney Docket number AUS920060460US1), incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The present invention relates generally to database access, and relates specifically to an operator interface for setting database search constraints. 
       BACKGROUND OF THE INVENTION 
       [0003]    Application (Attorney Docket Number AUS920060460US1) discloses a facet navigator for searching a database where a plurality of constraint manipulators surround a view field, creating a spider shaped user interface controller.  FIG. 1  shows facet navigator  100  for searching a dataset of laptop computers. Manipulator field  110  has a plurality of constraint manipulators related to different constraints a user might consider when choosing to buy a laptop computer. As a user adjusts a constraint manipulator, view field  140  changes to display search results  142  of the dataset matching the search criteria set by the constraint. For example, manipulator  171  for cost constraint  111  is a slider on a slider bar that a user can adjust to search for computers within a selected price range. In this example, search results  142  are displayed in a sorted array with price axis  144  and quality axis  146 . Other constraint manipulators shown are slider  172  for weight constraint  112 , slider  173  for battery constraint  113 , slider  174  for display constraint  114 , slider  175  for communication constraint  115 , slider  176  for brand constraint  116 , slider  177  for “what I want to do” constraint  117 , slider  178  for disk constraint  118 , slider  179  for memory constraint  119 , slider  180  for speed constraint  120 , slider  181  for software constraint  121 , and slider  182  for operating system constraint  122 . Facet navigator  100  is a space efficient user interface for searching a single database by setting a plurality of constraints. Facet navigator  100  does not allow the individual to conduct related searches of multiple databases simultaneously. 
         [0004]    Many computerized tasks involve searching multiple databases, then combining the individual results to form a final result. For example, when an individual relocates to a new city, the individual will consider multiple factors in choosing a place to live. Factors the individual may consider include cities, schools, neighborhoods, and lifestyle. Information for each of these factors may be stored in different databases. The individual must search each database separately, then combine the information to achieve a final result. A need exists for a way to combine a plurality of facet navigators for related searches of different databases into a single, space efficient user interface. 
       SUMMARY OF THE INVENTION 
       [0005]    The extended facet navigator combines two or more facet navigators for searching two or more databases into a single, space efficient user interface. The extended facet navigator displays a first facet navigator comprising a first view field surrounded by a first manipulator field, wherein the first manipulator field comprises a plurality of graphical constraint manipulators representing fields in a first database. The extended facet navigator displays a second facet navigator comprising a second view field surrounded by a second manipulator field, wherein the second manipulator field comprises a plurality of graphical constraint manipulators representing fields in a second database. Responsive to a user setting a first constraint for a facet in the first database with one of the graphical constraint manipulators in the first manipulator field, the extended facet navigator searches the first database based on the first constraint, and displays in the first view field the search results from the first database that satisfy the first constraint. 
         [0006]    In an additional embodiment, the results from the first facet navigator become a constraint for the second facet navigator. In a further embodiment, the results from the second facet navigator become a constraint for a third facet navigator. In yet another embodiment, the results from the first facet navigator become a first constraint for the third facet navigator, and the results from the second facet navigator become a second constraint for the third facet navigator. In a further embodiment, a facet navigator can be “minimized” so that the user interface appears less cluttered. In another further embodiment, the results from a conventional database search becomes a constraint for a facet navigator. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0007]    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: 
           [0008]      FIG. 1  illustrates a single prior art facet navigator; 
           [0009]      FIG. 2  is an exemplary computer network; 
           [0010]      FIG. 3  describes files and programs in a memory on a computer; 
           [0011]      FIG. 4  is a flow chart of a viewer component; 
           [0012]      FIG. 5  is a flow chart of a manipulator component; 
           [0013]      FIG. 6  illustrates an extended facet navigator; 
           [0014]      FIG. 7A  illustrates an extended facet navigator; 
           [0015]      FIG. 7B  illustrates an extended facet navigator; 
           [0016]      FIG. 8  illustrates a feature of an extended facet navigator; and 
           [0017]      FIG. 9  illustrates an extended facet navigator with a conventional dataset search tool. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0018]    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 “Extended Facet Navigator” 
         [0019]    Additionally, the Extended 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  200  has only a limited number of nodes, including workstation computer  205 , workstation computer  210 , server computer  215 , and persistent storage  220 . Network connection  225  comprises all hardware, software, and communications media necessary to enable communication between network nodes  205 - 220 . Unless otherwise indicated in context below, all network nodes use publicly available protocols or messaging services to communicate with each other through network connection  225 . 
         [0020]    Extended Facet Navigator  300  typically is stored in a memory, represented schematically as memory  320  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, Extended Facet Navigator  300  may reside in more than one memory distributed across different computers, servers, logical partitions, or other hardware devices. The elements depicted in memory  320  may be located in or distributed across separate memories in any combination, and Extended Facet Navigator  300  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  320 . As depicted in  FIG. 3 , though, memory  320  may include additional data and programs. Of particular importance to Extended Facet Navigator  300 , memory  320  may include web browser  330 , web hosting application  350 , database search tool  355 , database A  360 , database B  362 , database C  364 , and database D  365  with which Extended Facet Navigator  300  interacts. Extended Facet Navigator  300  has two components, viewer  400  and manipulator  500 . Extended Facet Navigator  300  is shown here as interfacing with web-based database search tool  355 , hosted by web hosting application  350 , and accessed by web browser  330 . Extended Facet Navigator  300  can be adapted to work with any computerized environment for searching databases. 
         [0021]      FIG. 4  depicts viewer  400 . Viewer  400  starts whenever a user accesses database search tool  355  with Extended Facet Navigator  300  ( 410 ). Viewer  400  displays two or more facet navigators ( 412 ), each facet navigator adapted to search a different database, such as database A  360 , database B  362 , database C  364 , and database D  365 . Each facet navigator comprises a plurality of constraint manipulators that correspond with fields in a database, and a results viewer which shows database search results related to selected constraints. A user may want to minimize a facet navigator to reduce clutter on the display. For example, a user may click on a radio button, or chose “minimize” from a pop-up menu to minimize a facet navigator. If a user wants to minimize a facet navigator ( 414 ), viewer  400  hides the minimized facet navigator ( 416 ) and displays a place holder ( 418 ). The placeholder may be a label for the minimized facet navigator, or may be a miniaturized results viewer without constraint manipulators. The miniaturized results viewer may display a subset of the results from that last search. A user may want to expand a minimized facet navigator to view the minimized facet navigator or conduct a search. For example, a user may click on a radio button, or chose “expand” from a pop-up menu to expand a facet navigator. If a user wants to expand a facet navigator ( 420 ), viewer  400  displays the expanded facet navigator ( 422 ). As long as Expanded Facet Navigator  300  is active ( 424 ), viewer  400  can repeat steps  414 - 422  in response to the user. When Expanded Facet Navigator  300  is no longer active, viewer  400  stops ( 426 ). 
         [0022]      FIG. 5  depicts manipulator  500 . Manipulator  500  starts whenever a user accesses database search tool  355  with Extended Facet Navigator  300  ( 510 ). Manipulator displays current constraint manipulator settings in every expanded facet navigator ( 512 ). A user may change a constraint value, by adjusting a constraint manipulator on a facet navigator. If a user changes a constraint value ( 514 ) on a first facet navigator associated with database A  360 , manipulator  400  initiates database search tool  355  to search database A  360  ( 516 ) and displays the search results in the results viewer ( 518 ) of first facet navigator. If a second facet navigator uses the results of first facet as a constraint, the second facet navigator is a “downstream facet navigator.” Manipulator  500  determines if there is a downstream facet navigator ( 520 ). If manipulator  500  determines there is a downstream facet navigator, manipulator updates the constraint on the downstream facet navigator ( 522 ) and goes to step  516  to propagate the results to the downstream facet navigator. If there are no downstream facet navigators, or after results are propagated to all downstream facet navigators, manipulator goes to step  524 . As long as Expanded Facet Navigator  300  is active ( 524 ), manipulator  500  repeats steps  514 - 522  in response to the user changing constraint values. When Expanded Facet Navigator  300  is no longer active, manipulator  500  stops ( 526 ). 
         [0023]      FIG. 6  illustrates three facet navigators on user interface  600 . First facet navigator  610  is related to database A  360  and comprises constraint manipulator field  612  and view field  614 . Results A  616  are displayed in view field  614 , showing the results of a search of database A  360  in responses to a user setting at least one of a plurality of constraint manipulators in manipulator field  612 . Second facet navigator  610  is related to database B  362  and comprises constraint manipulator field  622  and view field  624 . Results B  626  are displayed in view field  624 , showing the results of a search of database B  362  in responses to a user setting at least one of a plurality of constraint manipulators in manipulator field  622 . Third facet navigator  630  is related to database C  364  and comprises constraint manipulator field  632  and view field  634 . Results C  636  are displayed in view field  634 , showing the results of a search of database C  364  in responses to a user setting at least one of a plurality of constraint manipulators in manipulator field  632 . 
         [0024]      FIG. 7A  illustrates an embodiment of Extended Facet Navigator  300  on user interface  700 , where results of a facet navigator are a constraint for a subsequent facet navigator in sequence. Results A  616  in view field  614  of first facet navigator  610  is a constraint for second facet navigator  620  as shown by arrow  618 . A change to a facet manipulator in facet manipulator field  612  will cause a change to results A  616 . A change in results A  616  or a change to a facet manipulator in facet manipulator field  622  will cause a change to results B  626  in view field  624 . Results B  626  of second facet navigator  620  is a constraint for third facet navigator  630  as shown by arrow  628 . A change in results B  626  or a change to a facet manipulator in facet manipulator field  632  will cause a change to results C  636  in view field  634 . Results C  636  of third facet navigator  630  is a constraint for fourth facet navigator  760  as shown by arrow  638 . (Fourth facet navigator  760  is related to database D  368 .) A change in results C  636  or a change to a facet manipulator in facet manipulator field  762  will cause a change to results D  766  in view field  764 . Because the results of facet navigators  610 ,  620 , and  630  are constraints of the subsequent facet navigators  620 ,  630 , and  760  respectively, a change to a constraint in constraint manipulator filed  612  of facet navigator  620  changes the results of facet navigators  620 ,  630  and  760 . 
         [0025]      FIG. 7B  illustrates an embodiment of Extended Facet Navigator  300  on user interface  701 , where the search results from more than one facet navigators are a set of constraints for a final facet navigator. Results A  616  in view field  614  of first facet navigator  610  is a constraint for fourth facet navigator  760  as shown by arrow  618 . A change to a facet manipulator in facet manipulator field  612  will cause a change to results A  616 . A change in results A  616  or a change to a facet manipulator in facet manipulator field  762  will cause a change to results E  768  in view field  764 . Results B  626  in view field  624  of second facet navigator  620  is a constraint for fourth facet navigator  760  as shown by arrow  628 . A change in results B  626  or a change to a facet manipulator in facet manipulator field  762  will cause a change to results E  768 . Results C  636  in view field  634  of third facet navigator  630  is a constraint for fourth facet navigator  760  as shown by arrow  638 . A change in results C  636  or a change to a facet manipulator in facet manipulator field  762  will cause a change to results E  768 . 
         [0026]      FIG. 8  illustrates a combination of features of Extended Facet Navigator  300  on user interface  800 . Results A  616  in view field  614  of first facet navigator  610  is a constraint for second facet navigator  620  as shown by arrow  618 . A change to a facet manipulator in facet manipulator field  612  will cause a change to results A  616 . A change in results A  616  or a change to a facet manipulator in facet manipulator field  622  will cause a change to results B  626 . Results B  626  in view field  624  of second facet navigator  620  is a constraint for fourth facet navigator  760  as shown by arrow  628 . A change in results B  626  or a change to a facet manipulator in facet manipulator field  662  will cause a change to results E  866  in view field  764 . Results C  636  is shown by placeholder  834  in minimized third facet navigator  830 . Results C  636  in placeholder  834  of minimized third facet navigator  830  is a constraint for fourth facet navigator  760  as shown by arrow  838 . Minimized facet navigator  830  makes user interface  800  appear less cluttered. 
         [0027]      FIG. 9  illustrates another feature of Extended Facet Navigator  300  on user interface  900 . Results A  616  in view field  614  of first facet navigator  610  is a constraint for second facet navigator  620  as shown by arrow  618 . A change to a facet manipulator in facet manipulator field  612  will cause a change to results A  616 . A change in results A  616  or a change to a facet manipulator in facet manipulator field  622  will cause a change to results B  626 . Results B  626  in view field  624  of second facet navigator  620  is a constraint for fourth facet navigator  660  as shown by arrow  628 . A change in results B  626  or a change to a facet manipulator in facet manipulator field  962  will cause a change to results F  966  in view field  964 . Extended Facet Navigator  300  can be adapted to integrate with conventional database search tools. Conventional database search tool  930  associated with database C  366  is represented by drop down menu  934 . Results of conventional database search tool  930  is a constraint for fourth facet navigator  960  as shown by arrow  938 . A change in results from conventional database search tool  930  or a change to a facet manipulator in facet manipulator field  962  will cause a change to results F  966 . As with minimized third facet navigator  830  in  FIG. 8 , conventional database search tool  930  can be minimized to reduce clutter on a user interface. 
         [0028]    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. Specifically, more complicated combinations of facet navigators and conventional database search tools can be arranged in the same user interface, wherein results of searches are used as constraints for subsequent facet navigators, and wherein facet navigators and conventional database search tools can be minimized to reduce clutter on the user interface. 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.