Menu selection

Abstract: In a method of selecting a menu in accordance with a maximum correlation between a user input and stored parameters, a user is prompted to input a description of the desired function to be performed by the program. Keywords are selected from the user's input and correlation factors are developed between the user input keywords and each of the various menu items within the program. If a correlation factor exceeds a predetermined threshold value, then the menu associated with the maximum correlation factor is displayed. As a result, an inexperienced user can, by interacting with the program, choose a menu corresponding to the user's desired function for the program.

Description: The present invention relates to computer apparatus and to methods of operating and programs for computer apparatus, for instance for program-controlled industrial processes or plants, and to the use of computer apparatus. It concerns the selection of menus. The operation of many software programs requires that users input commands and/or data. Typically, a user can provide such inputs in the form of a command which directs the program to perform a function specified by the command. In such a case the user must know the syntax and function of each command. Inexperienced users frequently are not familiar with the function or syntax of the commands. Generally, programs of this type are denoted as command driven programs. Alternatively, a user can provide the needed inputs in response to menus displayed by the program. Normally such programs provide a series of menus, each menu requesting a user to select a desired function or input particular data. Generally, such programs are called menu-driven programs. For example, a menu would include a list of functions that can be selected and performed. The user selects by, for example, keyboard entries or through the use of a mouse, a desired function to be performed by the program. Inexperienced users, however, frequently do not understand or are not familiar with the various functions displayed in a menu. Many programs allow users to provide inputs via either a menu, for the benefit of less experienced users, or commands used by more experienced users. In such systems, a user can typically request a list of all available commands through the use of, for example, a help function. Sometimes the help function displays a list of all available commands and permits a user to display the definition and syntax of any available command. Such a help function does not, however, assist an inexperienced user in determining when a menu or command should be used. While menu-driven programs may be useful for less experienced users, many complex systems such as expert systems or systems for controlling or monitoring industrial processes or plants employ detailed and extensive menus. Therefore, it can be very difficult for even experienced users to effectively utilise such systems because they do not or cannot understand or access the proper menu needed for their desired task. US-A-4 689 737 discloses a system in which text - "natural language" - input is used to select operative task elements. Input text strings are parsed, primarily to concatenate the text by removing spaces and control codes. The concatenated text segment is compared with a synonymics list of text segments. If a match is found then an appropriate task element is put into effect. If no match is found, and error message is produced. Proceedings of the 1st International Conference on Computer Workstations, 11 November 1985, San Hose, USA, pages 247-253, Kaczmarek, "A Network Architecture for Intelligent Workstation Interfaces", discloses a menu driven "electronic office" at the workstation. The workstation is also able to respond to some "natural language" input strings by referring the strings to a "Knowledge Base" server for interpretation. According to the present invention there is provided a method of selecting one of a plurality of menus listing alternative menu items for control of a computer system, there being a hierarchy of levels of menus of the plurality and each menu including menu items having parameters, said method comprising the steps of:- (a) receiving a user input string; (b) selecting user input keywords from said user input string; (c) correlating said user input keywords with said parameters of said menu items; and (d) displaying one of the plurality of menus in accordance with said correlation. An embodiment of the present invention can enable inexperienced program users to efficiently use complicated software programs. An embodiment of the present invention can enable inexperienced program users to easily identify specific functions to be performed by a program. An embodiment of the present invention can prompt program users in a manner so that the user can be guided to an appropriate menu or command. An embodiment of the present invention can prompt a user to input a description of the function that the user wishes to provide. An embodiment of the present invention can compare key words input by a user with previously stored key words in order to guide the user to the appropriate menu or command. Reference is made, by way of example, to the accompanying drawings, in which:- Fig. 1 is a schematic diagram illustrating the logical structure of a menu; Fig. 2 is a schematic diagram illustrating the logical arrangement of parameters in current menu items; and Fig. 3 is a flow chart illustrating the overall logic of a program in accordance with an embodiment of the present invention. There are many types of menu-driven programs such as word processing programs, data base programs, expert systems, programs for controlling or monitoring industrial processes or plants, and programs for other control or monitoring purposes (e.g. traffic control and monitoring; ship's control or navigation). In an expert system, for example, a first or high-level menu would display menu items such as:- diagnosing a problem, planning for a project, and designing a project. Each of these menu items would, in turn, have associated therewith a second or lower-level menu with its own menu items. Other menu levels could be selected depending upon the system, for example, the detail of the knowledge base of an expert system. Fig. 1 is a schematic diagram illustrating the logical structure of a menu. In Fig. 1, there are a number of menus, M 1 through M n . Each menu includes a number of menu items such as I 1 , I 2 , I 3 shown in Fig. 1. Each menu item includes a list of key words or parameters such as I 11 , I 12 and I 13 . In an expert system, menu item I 1 could correspond to the function of designing a lay-out of a house or condominium. In such a case, the parameters or menu items for the lay-out function could include the assignment of the floor plan space, corresponding to keyword I 11 , the general lay-out of the rooms corresponding to keyword I 12 and the placement of the rooms corresponding to keyword I 13 . This is schematically shown in Fig. 2. An experienced user of such a system can easily select one of the available menus and sequentially select the desired submenus. However, if a user is unfamiliar with the functions or capabilities of the system, menus are commonly of little assistance in effectively using the program. The present invention provides that a user can input a user input string. Such a string comprises, for example, common English text such as "design the floor plan for a condominium". Using a dictionary including prepositions and articles, such words are deleted from the user input string leaving user input keywords "design, floor, plan, condominium". The user input keywords are then matched/analysed with the parameters or keywords of each menu item of each menu. As a result, if parameters of a menu item can be identified as correlating the user input keywords, then the menu including the menu item having the parameters that correlate is displayed for the user. Referring to Fig. 3, upon starting of a menu-driven program, in accordance with operation of an embodiment of the present invention, the current menu level is set to the first or highest level in step s 1 . Step s 2 determines if all of the menu levels have been displayed for the user. If all of the menu levels have been displayed, then the user has completed the desired function and execution of the program ends. If, however, all of the menus have not been displayed, the current menu is displayed in step s 3 . If an experienced user recognises the menu and knows how to use the menu, then the individual items within the menu can be selected by such a user such as menu items I 13 and I 21 in menus 1 and k respectively, as shown in Fig. 3. If an inexperienced used does not understand the displayed menu, then that user would select menu item I 14 -- function not found. This indicates that the user did not understand the functions displayed in menu 1 shown in Fig. 3. Thus, in step s 4 processing would proceed to step s 5 . If the user selected one of the other menu items (I 11 , I 12 or I 13 ), then in step s 4 processing would return to step s 2 . In step s 5 , the user is prompted with a message such as "What do you want to do? I want to:". The user would then input text describing the desired function. For example, as discussed above, the user could input "design the floor plan for a condominium". This user input string is received in step s 6 . Step s 7 selects the user input keywords from the user input string. For example, a dictionary including common articles and prepositions can be used to remove such words from the user input string, leaving the user input keywords. In step s 8 , a correlation factor between the user input keywords and the parameters or keywords of each menu item for each menu is calculated. Table 1 shown below provides one example of a procedure for determining a correlation factor between the user input keywords and each set of parameters for each menu item. As will be recognised by those skilled in the art, there are alternative methods for determining correlation factors. Table 1 merely presents one such approach in a LISP type format. In step s 10 , the program determines if any of the calculated correlation factors are greater than a predetermined threshold such as, for example, 0.5. The predetermined threshold can be any value depending upon the amount of certainty desired before displaying a menu for a user. If no correlation factor is greater than the predetermined threshold value, then processing proceeds to step s 11 . In step s 11 , the user is prompted to more specifically state what the user wants to do, and processing returns to step s 6 as shown in Fig. 3. If one or more correlation factors are greater than or equal to the predetermined threshold value, then processing proceeds from step s 10 to step s 12 which chooses the maximum correlation factor. Next, in step s 13 , the current menu is set to that menu level including the menu item having the maximum correlation factor. Consequently, when processing returns to step s 3 , a menu is displayed which has a high correlation between the functions of the menu and the desired function input by the user in step s 6 . By repeating steps s 4 through s 11 , the program assists a user in selecting an input string that closely resembles the parameters for one of the menu items in the menus for the program. Thus, an inexperienced user, by interacting with the program in a manner described above can select an appropriate menu with a minimal amount of knowledge of the system and its capabilities. In an embodiment of the invention a menu is selected in accordance with a maximum correlation between a user input and stored parameters, a user is prompted to input a description of the desired function to be performed by the program. Keywords are selected from the user's input and correlation factors are developed between the user input keywords and each of the various menu items within the program. If a correlation factor exceeds a predetermined threshold value, then the menu associated with the maximum correlation factor is displayed. As a result, an inexperienced user can, by interacting with the program, choose a menu corresponding to the user's desired function for the program.

Claims: A method of selecting one of a plurality of menus (M 1 , M 2 , M 3 ; MENU 1 , MENU k ) listing alternative menu items (I 1 , I 2 , I 3 ; I 11 , I 12 , I 13 , I 14 ; I 21 , I 22 , I 23 , I 24 , I 31 , I 32 , I 33 ) for control of a computer system, there being a hierarchy of levels of menus (M 1 , M 2 , M 3 ; MENU 1 , MENU k ) of the plurality and each menu including menu items (I 11 , I 12 , I 13 ;I 21 , I 22 , I 23 ; I 31 , I 32 , I 33 ) having parameters, said method comprising the steps of:- (a) receiving (S 6 ) a user input string; (b) selecting (S 7 ) user input keywords from said user input string; (c) correlating (S 8 ) said user input keywords with said parameters of said menu items (I 11 , I 12 , I 13 ; I 21 , I 22 , I 23 ; I 31 , I 32 , I 33 ); and (d) displaying (S 13 ) one of the plurality of menus (M 1 , M 2 , M 3 ; MENU 1 , MENU k ) in accordance with said correlation. A method according to claim 1, wherein said step (c) includes the substeps of:- (c1) determining (S 8 ) a correlation factor for each of said parameters and said user input keywords; (c2) determining (S 10 ) if any of the correlation factors are greater than a predetermined threshold; and (c3) determining (S 12 ) the maximum correlation factor if the determining in substep (c2) determines that a correlation factor is greater than the predetermined threshold. A method as claimed in claim 1 or 2, wherein step (c) comprises or further comprises the substep (c4) requesting elaboration (S 11 ) of the user input string if no correlation factor is greater than the or a predetermined threshold. A method according to claim 1, 2 or 3, wherein step (d) includes the substep of determining the menu (M 1 , M 2 , M 3 ; MENU 1 , MENU k ) associated with the menu item (I 11 , I 12 , I 13 ; I 21 , I 22 , I 23 ; I 31 , I 32 , I 33 ) whose parameters have the maximum correlation factor with the user input keywords. A method as claimed in claim 1, 2, 3 or 4, wherein step (a) includes the substeps of (a1) displaying (S 3 ) one of the plurality of menus (M 1 , M 2 , M 3 ; MENU 1 , MENU k ) as a current menu; (a2) determining (S 4 ) if the user has selected a function in the menu items (I 11 , I 12 , I 13 ; I 21 , I 22 , I 23 ; I 31 , I 32 , I 33 ) of the current menu; and if so (a3) displaying (S 2 , S 3 ) as the current menu the lower-level menu corresponding to the function selected by the user.

Inventors: MATSUMOTO SHUNJI, MATSUMOTO, SHUNJI, MATSUMOTO, SHUNJI C/O FUJITSU LIMITED
Applicants: FUJITSU LTD, FUJITSU LIMITED
Application year: 1989
Main classification: G06F17
IPC codes: G06F9, G06N5, G06F3, G06F17