Method and apparatus for displaying database search results6983270Abstract The invention relates to a method of displaying the progress of a database search so as to accomplish a logical operation that satisfies certain conditions; for example avoiding a null value. The invention also relates to an apparatus for practicing the method. The method displays all possible and relevant data capable of fulfilling the operation (like Boolean, SQL etc.) in addition to all possible and relevant operations (like Boolean, SQL etc.) to be applied on the given data. A key feature of the invention is that the displays occur during the operation. This is done by displaying all remaining possible and relevant data and/or operations directly after choosing a datum and/or the desired operation. Claims What is claimed is: Description FIELD OF THE INVENTION
BRIEF DESCRIPTION OF THE FIGURES FIG. 1a-1c are illustrations of the inventive principle as applied to simple word searching to find relevant documents. FIG. 2a-2b are illustrations of the inventive method as applied to searching an online database for a product, here a computer monitor, that possesses various attributes. FIG. 3a-3j illustrates the application of the inventive method to searching a database that has been divided into subcategories, and uses pictures of entries rather than textual descriptions. FIG. 4a-4d illustrates the application of the inventive method to searching and displaying options for a "meal item" such as a "soup" that conforms to specific tastes and dietary concerns. FIG. 5a-5d illustrates the application of the inventive method to choosing planets according to various physical criteria. FIG. 6 is a block diagram illustrating the sequence of steps in the method of the present invention. DETAILED DESCRIPTION FIGS. 1a-1c illustrate the invention's application to searching a word list to obtain specific documents from a document database. In FIG. 1a, the word >>cat<< is the first chosen term of the operation and thus highlighted; it is contained only in the 4 documents displayed on the document list, even though there may be hundreds or thousands of documents in the database. No operator has been selected yet. FIG. 1b shows the result after choosing the Boolean operator >>AND<<. The result of the operation is immediately visible:
We now refer to FIG. 1c.
FIG. 2a-2g also provide an example of a customer who wants to buy a monitor. Instead of Boolean command searching, the database is explored via SQL queries. At first, the customer has (for example by downloading from the internet) a table named >>monitor<< containing all monitors available from this on-line supplier, and he or she wants to select one model via SQL. A SQL-statement ends with a semicolon; but instead of waiting for the whole phrase to be defined (with the possibility of a resulting null value) it is possible to present all remaining values whilst typing in the SQL-command: Other logical operations are applicable in addition to Boolean or SQL-operations; e.g., fuzzy logic, phonetic search using the soundex algorithm. Any logical operator which can combine simple operators into more complex operations are contemplated as being within the scope of the present invention. A null value is avoided because the possible values are immediately visible; thus it is apparent that the lowest price is 380 US$ which would make a price below that value absurd since it would cause a null value; but by asking for a price less than 400 US$ exactly one monitor is selected whose data are presented after completing the SQL-query by a semicolon. An Example Using Pictures as Well as Sub-categories It is not necessary to limit the entries in the list boxes to regular words or phrases—literally everything can be included in the patent such as words, pictures, videos, sounds, etc., as long as the concept can be displayed in some way—hierarchical orders are also possible. This shall be demonstrated with an example of an internet shopping center especially designed for customers who either cannot read (analphabetics or children) or who visit the site from all over the world making it difficult to provide every wanted language. So in this special case the displayed items are not words but pictures of concepts which can easily be understood by everyone. In the example shown in FIG. 3a, a customer wants to buy a gift for his child. Thus he chooses a toy (or in this case a picture of a toy) from the various items of the main category. Because the categories are not represented as written words but as pictures the user may let his child participate in the search. Similarly, other users not able to read a particular language, may still search the database. After choosing a picture of a toy a sub-category pops up and flashes asking for a selection of the kind of toy the child wants: By scrolling through the list the child points to the picture of comic figures, thus choosing this item; and together with this choice a second sub-category appears asking for the kind of comics wanted. These results are shown in FIG. 3b. The chosen terms are now >>toy→comic figures<<. Selecting Walt Disney brings up a third sub-directory presenting all of its available figures. The chosen terms are now >>toy→comic figures→Walt Disney<<, as shown in FIG. 3c. In the search in FIG. 3d, before a choice of the desired Disney characters can be made, it must be decided which medium (book, movie, magazine, etc.) is preferred. There are several possible arrangements by which choices of medium entries may be displayed on the screen. For example, the medium can be part of the main category, or it can be displayed as another subcategory. In FIG. 3d, the main category list provides these choices. To signal the appropriate step in the search sequence at which this choice is made, the available relevant medium entries shall blink. Alternatively, the displayed entries may change their color, or otherwise visibly indicate the when and where the required selection must be made. In FIG. 3d, the user needs to choose an operation for a second term of the main list. Since it already has been decided that a some sort of Walt Disney comic figure is wanted all items not related to these comic figures are deleted from the main list. Only a film reel, a book and a magazine can be chosen as the user's medium of choice. After choosing the AND-operator the cursor of the main category is still positioned on the picture of a toy, so the accomplished operation is ((toy→comic figures→Walt Disney) AND toy) showing no immediate result. As soon as the picture of a film reel is chosen in FIG. 3e, it becomes clear that a movie is desired. So the third sub-category listing all figures playing in any Walt-Disney comic movie is now accessible and blinks awaiting input. Since the Boolean operation is over the symbol for the AND is no longer highlighted: the chosen terms are now >>(toy→comic figures→Walt Disney) AND (movie)<<. Further editing of the database entries is illustrated in FIG. 3f. As soon as Uncle Scrooge is selected the picture of Minnie Mouse disappears indicating that there is no single movie showing Uncle Scrooge together with Minnie Mouse. This makes a null result from a search for a movie with Minnie and Scrooge impossible, because the query cannot be made: the chosen terms are now >>(toy>comic figures→Walt Disney→Uncle Scrooge) AND (movie)<<. Now the user might be prompted to choose a logical operator which in this case refers not to the main category but to the third sub-category indicating that the comic figures should be selected. After choosing the NOT operator in FIG. 3g, the previously chosen figure of Uncle Scrooge disappears since it obviously is not possible that he at the same time appears in a movie and not appears in a movie. And the picture of Donald also disappears which demonstrates that in any movie with Uncle Scrooge his nephew Donald also appears. Then the third sub-category blinks or otherwise signals that a selection is needed. Now Mickey Mouse might be selected indicating that he is not to appear in the movie (FIG. 3h). There are many ways to continue with the logic; one possible solution might result in the picture of Pluto also being deleted from the list; this would indicate that no single movie exists which shows Uncle Scrooge together with Pluto but without Mickey Mouse. The chosen terms are now >>(toy→comic figures >Walt Disney→Uncle Scrooge BUT NOT Mickey Mouse) AND (movie)<<. If the logic is as shown above the search might be over since one single movie has been selected. As shown in FIGS. 3i and 3j, the sub-categories as they had been up to now are obsolete and thus replaced by a new first sub-category asking for the medium of the movie (video, DVD etc). Choosing DVD as the movie format ends the query. The method and apparatus described herein may be applied to various types of database searches. Although this invention has been described in terms of certain preferred embodiments, other embodiments that are apparent to those with ordinary skill in the art are also within the scope of the claimed invention. Example for Avoiding Null Values in a a NOT-operation by Displaying all Relevant Data Fulfilling the Operation During the Operation Itself: The example shown in FIGS. 4a-4d is based on the following three illustrative documents that are not shown in FIG. 4: file "soup 1.doc" contains the ingredients of soup no. 1 and reads "tomatoes, water, paprika, salt, and flavours" file "soup 2.doc" contains the ingredients of soup no. 2 and reads "tomatoes, onions, potatoes, water, salt, and flavours"; file "soup 3.doc" contains the ingredients of soup no. 3 and reads "tomatoes, onions, potatoes, water, pork, and salt". All words contained in the three documents are listed in the word-list with the following conditions:
No word has been selected yet in FIG. 4a. If the soup should contain onions, the word "onion" is chosen. Thus follows; since soup 1 does not contain onions, it does not show up the result-list in in FIG. 4b. The result list shows soup 2 and soup 3, which means that they and only they contain onions. The operator-list is updated to display the operators "AND", "NOT", "OR" and "EXCL. OR", as the word "onion" when combined with any one of these four operators would produce at least one result for the result-list. So far everything is temporary and the user can still change his mind and move the focus from "onions" to another item; when scrolling through the word-list the values in the operator-list and in the result-list and the entry in the history-list would change correspondingly and more or less simultaneously; since everything is only temporary the word list still contains all words including those from the file "soup 1". If the user were to choose "tomato" instead of "onion", the operator "EXCL. OR" would have to be taken off the operator-list. Since each soup contains tomatoes, there would be no result fulfilling the operation "tomato EXCL. OR. . . ". As soon as the user is sure that it is onions he wants to he fixes the word "onion" as the first datum of the operation. After having chosen "onions" the user decides that the soup should contain onions, but no pork, and therefore selects the operator "NOT". This makes it possible to update the word-list as shown in FIG. 4c:
Accordingly, only the words "flavour" and "pork" are left. If for example "water" would not be taken off the word-list, null values could occur; this would be the case if the user would select "onion NOT water", since each soup containing onions also contains water. So far only the first datum of the operation is fixed; the operator itself is still temporary and the user may change his mind and move the focus from "NOT" to another operator. When scrolling through the operator-list the entries in the word-list and the history-list would change correspondingly and more or less simultaneously. As soon as the user is sure that it is the operator "NOT" that is wanted, he/she fixes it as the first operator of the operation. So far, a word and an operator have been chosen. Now another word is needed to complete the operation. As it is decided that the soup should not contain "pork", "pork" is selected in the word-list as shown in FIG. 4d. "Soup 3" must be omitted from the result-list because it contains pork, so "soup 2" becomes the only entry in the result-list because it is the only result containing "onions" but no "pork". The operators "NOT" and "EXCL. OR" must be omitted from the operator-list because there is no word in the word-list that can fulfill the operation "(onions NOT pork) NOT . . . " or "(onions NOT pork) EXCL. OR . . . ". At this point, as a word has not be fixed, the user may scroll from "pork" to "flavour". When he/she scrolls through the word-list, the values in the operator-list, the result-list and history-list will change correspondingly and simultaneously. As soon as the user fixes the word "pork", a single result ("soup 2") is obtained and the query is essentially over. It would be possible to continue with the operators "AND or "OR", but this would not make much sense as the result "soup 2" would not change. Since all unfitting items were omitted from the word-list the moment the operator (in this example "NOT") was chosen it is ensured that null values cannot occur regardless of which item the user should choose as the second word (in this example "pork"). As a result, there will always be at least be one document in the result-list. So in a certain sense the operation is never permanently fixed since the result is shown in the result list while the user is still scrolling through the word list choosing his second datum. If desired the operation can be defined as fixed by clicking on an OK-button. The operation reads "onion NOT pork" and is complete, because only one single document is left in the result-list. Even though it makes no sense to continue it is not forbidden to do so and to expand the operation for example to "(onion NOT pork) AND flavour" which would result in the same "soup 2". This would be accomplished by selecting the operator "AND" and then the word "flavour." Usually an "undo"-button will be provided. The last user-interaction is generally temporary and can still be altered even though some or all results of the interaction are simultaneously visible; the last user-interaction also changes the status of the second-to-the-last user-interaction from temporary to permanent. Or, in other words, the locking of the n-th word/operation occurs by choosing the (n+1th) word/operation. The last interaction of the user in the word-list or in the operation-list usually causes changes in some or in all other lists in order to avoid unwanted results like null values. Example for Avoiding Null Values by Displaying All Possible Operations Applicable on Given Data and by Omitting the Operations Resulting in a Null Value, and for Creating a Hybrid Search Team. The following example is provided to show how the invention may be modified so as to not require standard search terms and operators, as in Boolean and SQL queries. FIGS. 5b-5d incorporate into the operator term criteria specifically relating to the entry list or value list in FIG. 5a. For the purpose of the invention, this may be considered a hybrid operator term because it possesses the nature of a standard search term, but also specifies an operation on that search term. In a database (not necessarily visible to the user) the data of the planets of the solar system are stored, as for example, in FIG. 5a. Visible to the user, as in FIG. 5b, are the available operations and the names of the planets resulting from these operations: If the operation "planets nearer to the sun than Earth" is chosen, the result shown in FIG. 5c is immediately visible:
In principle, users may use the invention to perform searches in which they seek to avoid obtaining a result, rather than those situations described above, wherein the user affirmatively seeks one or more positive results. In cases where the user is creating a new document, e.g., a musical work, a null result may be an important aid in determining where a "void" in a particular field or art may occur. It might be that a composer of film music wants to compose a new song but he has to take care that the music is unique in order to avoid conflicts with the copyrights of other composers of their music. Thus there may be several values-lists: one may contain only single notes, one may contain single chords, one may contain different keys (c-major, g-minor etc.), one may contain different instruments (piano, flute, guitar, etc), and so on. There may also be several operator-lists: the operators of one operator list may combine the selected items (single notes or short melody sequences) from the different values-list sequentially in order to form a single melody, and the operations of another operator list may combine several single melodies into complex music containing chords in order to represent an instrument like a piano, an organ, a guitar etc.), and the operators of a third operator list may combine the music of the different instruments to form an orchestral score. Normally the result list should contain one or more items. But in this case it displays all composers whose copyright would be violated by the music composed so far, which means that the result list should be empty and should show only null values. Thus updating of the values-lists and the operation lists must ensure that no matches occur between the composed music and the copyrights of other music. This means that after a few bars have been composed certain notes or chords may vanish from one of the values-lists because if they would be incorporated the resulting music might be too close to a protected film music. So the composer is always on the safe side because the program hinders him from accidentally encounter any copyrighted music; he will develop the tune into another direction and automatically avoid matches. After a few more bars the temporarily suppressed notes or chords may be made visible and accessible again because there is no more danger of violating the copyrights of said film music. Other examples based on this principle could be a web-designer who wants to create unique meta-tags to refer to his website; the above method would allow his avoidance of known terms. One may produce novel recipes lacking specific ingredients of existing recipes. One may choose to add an item such as a document or photograph, to an existing archive or database, but will search the database first to ensure that the added item is not a duplicate. Additional Aspects and Embodiments of the Invention Another embodiment of the method would contemplate performing a database search wherein an initialization step is followed by repeated applications of a search command. The initialization step may be as simple as choosing a first entry or value from an entry or value list. According to the invention all interim results as well as the final results, will be displayed. The search command would consist of an operator followed by any item from an entry list or value list. The operators themselves may be displayed in an operator list, or table format. Similarly, the results of the search would be displayed in tables, lists or other possibly ordered formats. Choosing a value from one of the value lists would be displayed as an intermediate or temporary stage of the operation. When the next desired operator is chosen, the inventive method updates and displays the operator list and entry/value/result lists to prepare for another search step, if desired. The method step referred to herein as "updating" encompasses, but is not limited to displaying only relevant entries/values/results capable of satisfying the entire search command. Unwanted and/or irrelevant values, for example those that might result in a null result list, are eliminated, or at least visibly suppressed. Further, an important element of the invention is to update operator lists, tables or other displayed formats in a similar manner. A key element of the invention is preventing the user from being able to create a search command producing unwanted results. Accordingly, the invention herein contemplates virtually any method of barring a user from entering such a command term. The possible interaction of the values-lists with an operator list can be seen in the flow chart, FIG. 6. Various modifications of the above embodiments are immediately apparent. For example, items contained in the entry/value/result lists, tables, etc, may be text or words, but also various types of photos, pictures, drawings, designs or graphic representations. In some cases, these visible non-textual representations may be moving images as in movies or video segments, or perhaps animated cartoon-like segments. These stationary or moving images may be accompanied by sounds such as voice commands, music, or other conventional sound effects that may help identify a particular entry/value or category thereof. Such a series of modifications would be of great use for those unable to read, or to those who are foreign to the particular language, or those who are too visually impaired to read text at that resolution. Thus children, tourists or disabled may access the database and perform their tasks. The inventive method herein also embodies providing for a result that is in a different category or concept than the entries/values used in formulating the search commands. A version of this conception is shown in the example of FIG. 4, wherein the final result 'soup' is very different from the ingredients listed in entries/values lists. Another variation within the scope of the invention is demonstrated within the example of the movie score composer. In such an embodiment, the final composition can be viewed as a compilation of a plurality of result/entry/value lists. The movie score composer example is also illustrative because it demonstrates the utility of actually seeking a nullity. Thus the invention is extremely versatile in that it manipulates the entry/value/result lists and the operator lists to either completely eliminate nullities, or alternatively makes them the desired result. Another aspect of the method adaptable to virtually any of its embodiments, is that the method can be geared for convenience because its text retrieval format possesses various ordering capabilities. Thus, any entry/value/result display can be arranged alphabetically, or numerically. Further, such ordering can be in ascending or descending order. However, it is clear that an ordering function is not mandatory to use the invention. Indeed, embodiments based on entries/values/results comprising non-textual or audio or visual elements, may not be readily ordered. However, this is in no way an impediment to implementing many of the key elements of the inventive method. One useful embodiment that employs the hierarchical ordering concept, is the grouping or clustering of entries/values/results into categories and subcategories, as in the example of FIG. 3. The clustering into a category or sub-category may be achieved in various embodiments, by replacing conventional lists and tables with two dimensional or apparently three dimensional formats. Thus for example, a user could conceivably need to pick one or more colors to complement his search; e.g., a color of a shirt, or a computer monitor, or wall paper, all of which are easily purchased on-line. The colors may be displayed on a representation of a painter's palette. For example, clicking on a paint smear red paint, would enter "red" as part of the search command, just as if the word "red" were clicked on a conventional list or table, or entered as part of a SQL query. The invention described and claimed herein can be modified to work with various types of operators: this would typically include, but is not limited to Boolean, SQL, or other conventional logical operations, such as fuzzy logic, phonetic comparisons or the soundex algorithm. Using such operations, simple single operations can be grouped into a series, thus forming a more complex or compound operation. This may be achieved, for example, by bracketing the appropriate simple operations to yield the compound operation. Another aspect of this invention is demonstrated by the example in FIGS. 5b-5d. Here, the operator term has been fused with entries from the entry/result list in FIG. 5a. This yields what may be called a hybrid search term. Choosing one hybrid term, will result in an update of the hybrid term list as well as the planet result list. Thus, the implementation of hybrid terms simplifies the act of searching, by cutting down on the number of steps the user must perform. At the same time, this simplified search approach maintains the benefits of updating the list of relevant terms: Although this invention has been described in terms of illustrative embodiments, it is clear that other embodiments which will be apparent to those with ordinary skill in the art are also within the scope of this invention. Accordingly, the scope of the invention is defined only by reference to the claims set forth herewith.
|
Same subclass Same class Consider this |
||||||||||
