Abstract:
An expert system aids engineering personnel working in a manufacturing or other industrial environment by answering questions relating to machines, processes, systems or other elements of the environment. Users can interact with the system using kiosks in the relevant areas of the plant to enter queries and receive answers. A user can enter a query in a natural language format, which the system parses for keywords or keyterms. The system can use a backward chaining method to reach a solution, based upon the user&#39;s answer to further questions that the system asks the user.

Description:
This application claims benefit under 35 USC §119 of Singapore patent application No. 200704647.7 filed Jun. 21, 2007, the contents of which are incorporated herein by reference. 
     The present invention relates generally to expert systems and, more specifically, to an expert system and inquiry kiosk for use by engineering personnel in a manufacturing or other industrial environment. 
     In the course of designing and troubleshooting manufacturing and other industrial systems, machines, and processes, engineers and engineering technicians often need to acquire information from sources such as manuals and experienced colleagues. However, at the time an engineer or technician seeks to consult with an experienced colleague, such a person may not be available. For example, in a manufacturing plant that operates several shifts per day (potentially 24 hours), an engineer who discovers that the yield of a particular process is lower than expected may need to seek information at any time of the day or night to attempt to solve the problem. Persons with the most relevant knowledge may not be available at all times. It would be desirable to enable the engineer to access such knowledge at all times. It would also be desirable for the knowledge that is made available to the engineer to be consistent, rather than for the engineer to obtain different and possibly inconsistent answers from various sources. 
     Also, in such environments, the same problems or same types of problems tend to arise from time to time. Similarly, an engineer assigned to a particular process or system tends to seek the same information in solving problems relating to that process or system as engineers who have previously been assigned such tasks. Often, an engineer simply needs to know the function of a particular item or know what item performs a particular function and where it is located in the system. It would be invaluable to the engineer to acquire the knowledge of those who are most familiar with the system or who have done the same type of work before. 
     While written manuals can be of help to engineers, they generally cannot be updated readily to reflect newly learned knowledge. Rather, a technical writer typically needs to integrate the new information into the manual, and the revised manual needs to be made available. Even in the age of electronic documentation and company-wide intranets, such a process can be slow and inefficient. 
     It would be desirable to provide a system for quickly, conveniently and consistently responding to requests for information from engineers and similar persons in a manufacturing or other industrial environment. The present invention addresses these problems and deficiencies and others in the manner described below. 
     SUMMARY OF THE INVENTION 
     The present invention relates to an expert system for aiding engineers, technicians or other engineering personnel working in a manufacturing or other industrial environment. In an exemplary embodiment of the invention, users can interact with the system using kiosks in the relevant areas of the plant to enter queries and receive answers. 
     The system includes a user interface for receiving queries from the users and outputting solutions or other responses to the queries. The queries can relate to elements of the company&#39;s industrial environment with which the user works, such as elements of machines, processes and systems. A user can enter a query in a natural language format, which the system parses for keywords or keyterms. For example, in the exemplary embodiment, a user can enter a query such as: “How many screws are there on the bottom of the Molding Machine?” Another example could be: “Why is the yield of the Molding Machine low?” The first question is an example of what is referred to herein as a “knowledge-based” query because it includes the description-oriented keyterm “how many.” Other knowledge-based query keyterms include, for example: “what is”; “what are”; “where is”; “where are”; “how many”; “how long”; “how to”; “how do I”; “tell about”; and “describe”. The second query is an example of what is referred to herein as an “expert consultation-based” query because it includes the reasoning-oriented keyterm “why.” The system compares keyterms in the query with keyterms in a database to determine if any matches exist. 
     In the exemplary embodiment of the invention, entry of a query that the system determines to be knowledge-based causes the system to use the keyterms to search the database for an associated solution or answer. For example, the answer associated with the combination of keywords “how many,” “screws,” “bottom,” and “molding machine” may comprise the number of screws on the bottom of the molding machine, a paragraph of text describing that portion of the machine, a picture of that portion of the machine, etc. The database can contain information that is specific to the company&#39;s machines, processes, systems, etc. In an exemplary embodiment that has been developed by the assignee of this invention and patent application, the database contains information specific to the company&#39;s contact lens manufacturing plant. The embodiment is referred to as the Engineering Resource .NET Interactive Expert System (“ERNIES”). Nevertheless, the invention can be used in any suitable industry. 
     Entry of a query that the system determines to be expert consultation-based causes the system to use the keyterms to search the database for an associated goal. A “goal,” as the term is used in the context of an expert system using backward chaining, refers to an end result from which the system works backwards, i.e., upwards in a logic tree, seeking facts that support the goal. In the exemplary embodiment, the system searches the database for a goal by matching keyterms. For example, a goal can be associated with the combination of keyterms “why,” “Molding Machine,” “yield” and “low.” Upon finding a goal, the system obtains and outputs one or more further questions associated with the goal and prompts the user to answer them. The goal can be associated with one or more rules, each comprising a combination of one or more further questions. If the user&#39;s answers match those which the database indicates are the answers to a combination of one or more premises that satisfies the rule, then the system indicates the rule is satisfied and outputs associated solution information via the user interface. 
     The system can include a feedback subsystem for updating the database in response to receiving feedback information from users. Users can provide feedback via the user interface or other means. By updating the database in response to feedback, the expert system can be expanded with additional knowledge acquired from users. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates an expert system for aiding engineers or similar users in an industrial environment, in accordance with an exemplary embodiment of the invention. 
         FIG. 2  illustrates a client-server system in which kiosks are used to interact with the expert system, in accordance with the exemplary embodiment of the invention shown in  FIG. 1 . 
         FIG. 3  is a block diagram of the programmed client-server system in the exemplary embodiment. 
         FIG. 4A  is a flow diagram illustrating a method of operation of the system in the exemplary embodiment. 
         FIG. 4B  is a continuation of the flow diagram of  FIG. 4A . 
         FIG. 5  illustrates an exemplary user interface screen for inputting a query. 
         FIG. 6  illustrates an exemplary user interface screen for outputting a group of possible queries from which a user can choose. 
         FIG. 7  illustrates an exemplary user interface screen for outputting an answer. 
         FIG. 8  illustrates another exemplary user interface screen for outputting an answer. 
         FIG. 9  illustrates an exemplary user interface screen for asking the user to answer a further question associated with an expert system rule. 
         FIG. 10  illustrates a web page arrangement in the exemplary embodiment. 
         FIG. 11  illustrates a “What_is” database table in the exemplary embodiment. 
         FIG. 12  illustrates a “Where_is” database table in the exemplary embodiment. 
         FIG. 13  illustrates a “How_To” database table in the exemplary embodiment. 
         FIG. 14  illustrates a “How_Many” database table in the exemplary embodiment. 
         FIG. 15  illustrates a “Rules” database table in the exemplary embodiment. 
         FIG. 16  illustrates a “Work” database table in the exemplary embodiment. 
         FIG. 17  illustrates a “Goals” database table in the exemplary embodiment. 
         FIG. 18  illustrates a “Word_Conversion” database table in the exemplary embodiment. 
         FIG. 19  illustrates a “Word_Removal” database table in the exemplary embodiment. 
         FIG. 20  is a table showing “SearchSolution.aspx” active server page .NET (ASPX) structure and pseudocode for inputting a query in the exemplary embodiment. 
         FIG. 21  is a table showing “solutions.aspx” active server page .NET (ASPX) structure and pseudocode for outputting a solution the query in the exemplary embodiment. 
         FIG. 22  is a table showing “questionType.aspx” active server page .NET (ASPX) structure and pseudocode for outputting a list of possible queries in the exemplary embodiment. 
         FIG. 23A  is a table showing “inferenceEngine.aspx” active server page .NET (ASPX) structure and pseudocode for processing a query in the exemplary embodiment. 
         FIG. 23B  is a continuation of  FIG. 23A . 
         FIG. 23C  is a continuation of  FIG. 23B . 
         FIG. 23D  is a continuation of  FIG. 23C . 
     
    
    
     DETAILED DESCRIPTION 
     As illustrated in  FIGS. 1-2 , in an exemplary embodiment of the invention one or more electronic kiosks  10  are disposed in a manufacturing area (in colloquial terms, “on the shop floor”) of a plant or similar industrial environment operated by a company or other business enterprise. The company&#39;s engineers, engineering technicians or others who work in the environment in an engineering-related capacity can interact with a kiosk  10  to ask questions regarding an element of the environment, such as a machine  12 , process, system or portion thereof. Kiosks  10  (acting as client computers) communicate with a central server (computer)  14  via a local area network  15  (e.g., a company-wide intranet). As described below in further detail, server  14  processes each query that a user enters on kiosk  10  and transmits a response back to kiosk  10 . 
     As illustrated in  FIG. 3 , kiosk  10  includes elements characteristic of a conventional client computer: a processor  16 , memory  18 , hard disk or similar data storage device  20 , display  22 , keyboard  24 , trackball  26  or similar pointing device for a graphical user interface, and input/output (I/O) interface hardware  28  through which the user interface and network interface elements are interfaced with the other elements and with network  15  (e.g., via a network interface card). In addition, the software elements of kiosk  10  include a web browser (software)  30 . Other hardware and software elements typical of a conventional client computer, such as an operating system and utilities, are also included but not shown for purposes of clarity. Web browser  30  is shown for purposes of illustration as conceptually residing in memory  18 , but persons skilled in the art to which the invention relates can appreciate that such software elements need not actually reside in their entireties or at all times in memory but rather can be retrieved in whole or part from sources such as data storage device  20  on an as-needed basis in accordance with well-understood principles of computer operation. 
     Similarly, server  14  includes elements characteristic of a server computer: a processor  32 , memory  34 , hard disk or similar data storage device  36 , and various I/O interfaces  38 . In addition, as described below in further detail below, software elements of server  14  include a database  40 , and an inference engine subsystem  42  for receiving user queries and obtaining solution information from database  40 . The software elements further include an updating subsystem  44  for updating the database in response to feedback information received from users. Although not separately shown in  FIG. 3  for purposes of clarity, inference engine subsystem  42  includes an inference engine portion and a user interface portion, and updating subsystem  44  includes a user feedback portion through which information is received from users and an administrator portion that aids system administrators in updating database  40  and performing other administrative tasks. As such feedback and administrative functions are relatively well understood in the art, they are not described herein in as great detail as inference engine subsystem  42 . Other hardware and software elements typical of a conventional server computer, such as an operating system and utilities, are also included but not shown for purposes of clarity. Inference engine subsystem  42  and updating subsystem  44  are shown for purposes of illustration as conceptually residing in memory  34 , but persons skilled in the art to which the invention relates can appreciate that such software elements need not actually reside in their entireties or at all times in memory but rather can be retrieved in whole or part from sources such as data storage device  36  on an as-needed basis in accordance with well-understood principles of computer operation. Also, the manner in which inference engine subsystem  42  and updating subsystem  44  are shown in  FIG. 3  is intended to be for purposes of facilitating a summary or high-level explanation of the invention (as well as illustrating that it can be embodied as a “computer program product”) and not to convey actual software code structure. Exemplary code structure is, however, described below with regard to  FIGS. 20-23 . 
     In an exemplary embodiment that has been developed by the assignee of this invention and patent application, database  40  contains information specific to the company&#39;s contact lens manufacturing environment, including lists of questions pertaining to that environment and answers to those questions. Nevertheless, the invention can be used in any other suitable industry. Although the software elements can be embodied in any suitable manner, a collection of active server pages (ASP) created within the MICROSOFT .NET framework (using, for example, a software development tool such as MICROSOFT VISUAL STUDIO) has been found to work well in the exemplary embodiment. The embodiment is referred to as the Engineering Resource .NET Interactive Expert System (“ERNIES”), which is reflected on some of the screen displays in the drawing figures described below. 
     The flow diagram of  FIGS. 4A-B  provide an overview of the operation of the system. At step  46 , the system provides a screen display (i.e., a web form), illustrated in  FIG. 5 , into which a user enters a query (question). An example of a query might be: “Why is BV1 low yield?” (where “BV1” is a term for a camera system in one of the plant&#39;s contact lens manufacturing machines). 
     As indicated by step  48 , the system performs two functions: removal of words that are deemed not useful to the search for a solution using keyterms (i.e., a combination of one or more keywords); and mapping of terms that are synonymous with keyterms in the database that may be useful to the search for a solution. For example, the system can remove punctuation marks, articles such as “the,” and verbs such as “is.” Also, for example, the system can substitute a keyterm such as “what [is]” for synonymous words that a user may use, such as “describe.” 
     As indicated by step  50 , the system determines whether any of the keyterms remaining in the query following step  48  match keyterms in database  40 . If not, then at step  52  a suitable action is taken in response to the system&#39;s inability to determine a solution to the query, such as displaying a page (not shown) that indicates such to the user. If the system matches one or more terms in the query with keyterms in database  40 , then at step  54  it lists all questions contained in database  40  that include those keyterms. An example of a screen display showing a list of possible questions is shown in  FIG. 6 . The screen includes checkboxes next to the questions, which the user can check to select one of the questions that the user deems most similar to what the user is attempting to ask. 
     As indicated by step  56 , the system searches for a solution to the query in a manner that depends upon whether the query calls for a “knowledge-based solution” or an “expert consultation-based solution.” The system attempts to match terms in the query with keyterms in database  40 . For example, the presence of description-oriented keyterms, such as “what is”, “what are”, “where is”, “where are”, “how many”, “how long”, “how to”, “how do I”, “tell me about”, and “describe” signals that the query calls for a knowledge-based solution. A knowledge-based solution can include, for example, a straightforward description of what something is or how to do something. Other examples of queries that call for a knowledge-based solution in the exemplary embodiment might include, “What is the linear table?” and “How do I calibrate the sonic sensor?” 
     If the query calls for a knowledge-based solution and, as indicated by step  58 , a solution is found in the tables of database  40  (by matching keywords), then at step  60  the system displays a page that sets forth text, images or other information that is retrieved from the database tables. An exemplary page that sets forth an answer to the query, “What is the linear table?” is shown in  FIG. 7 . An exemplary page that sets forth an answer to the query, “[Tell me] how to calibrate the sonic sensor?,” is shown in  FIG. 8 . If no solution can be found to the query, the system outputs an appropriate page (not shown for purposes of clarity) to alert the user, as indicated by step  62 . 
     The presence of reasoning-oriented keyterms, such as “why,” signals that the query calls for a expert consultation-based solution. A query that calls for an expert consultation-based solution can include, for example, why an unexpected result is being observed in an industrial process, such as an unusually low yield. The above-mentioned example is: “Why is BV1 low yield?” As described below in further detail, there is a goal table that relates to expert consultation-based solutions. Inference engine subsystem  42  uses what is known in the lexicon of expert systems as “backwards chaining.” A backwards chaining inference engine begins with a goal or hypothesis and works backwards to determine if information is available that can support the goal. 
     An applicable goal is found by matching terms in the query to keyterms in the goal table. As indicated by step  64 , once a goal has been found in the goal table, one or more corresponding rules are obtained from a rule table. Each rule comprises what are known in the lexicon of expert systems as “premises” and corresponding “consequents.” In the context of the exemplary embodiment of the invention, each premise is question that prompts the user for further information that may be useful in supporting the goal. In the context of the exemplary embodiment, each consequent is either a solution to the query, i.e., a “recommended action” (RA) for the user to take, or an indication that still further information is needed from the user in order to answer the query. 
     As indicated by the loop between steps  66  and  68 , the premises or questions corresponding to each of the RA-type rules that has been obtained from the rule table is presented to the user. An example of such a screen is shown in  FIG. 9 , in which the user is asked, in response to the exemplary query, “Why is BV1 low yield?,” to answer the further question: “Looking at tool layout, what is the trend of low yield?” Three options for response are presented: “Position related”; “Particular tool”; and “Not sure.” The user can check the corresponding checkbox to indicate a response, as indicated by step  70 . The user&#39;s response may in some instances satisfy or uphold the rule. In some instances, the rule may include a second premise chained or connected to the previous response with a logical “AND” or “OR” connector. For example, if the user responds by checking the “Particular tool” box, another screen (not shown) may be presented in which the user is asked to answer the further question: “Are there more than four positions in which BV1 yield is less than 50%?” The two further questions or premises are connected by “AND” logic. If the user checks a “Yes” box (not shown), then the combination of the user&#39;s two responses may satisfy or uphold the rule, and a corresponding recommended action is displayed. If, as indicated by step  72 , the rule is satisfied, then the corresponding recommended action is displayed, as indicated by step  74 . For example, the recommended action can consist of text, images, etc., explaining to the user how to restore the yield to its normal range. If none of the RA-type rules for the goal is satisfied by the user&#39;s responses, the system indicates to the user that it cannot answer the query, as indicated by step  76 . As this example illustrates, the goals and rules can be very specific to elements of the company&#39;s industrial environment with which the user works, such as elements of machines, processes and systems. 
     An exemplary structure for the software elements is shown in  FIG. 10 . As noted above, although the software elements can be embodied in any suitable manner, in the exemplary embodiment they comprise a group of active server pages .NET (ASPX) created with the MICROSOFT .NET framework. As the MICROSOFT .NET framework and ASPX (as well as its predecessor ASP) are well understood by persons skilled in the art to which the invention relates, these concepts are not discussed in further detail herein. However, as described in further detail below, the structure and pseudocode for such pages is illustrated in the tables of  FIGS. 20-23 . 
     Referring again to  FIG. 10 , a primary page, referred to as “Ask ERNIES” (or by the file name SearchSolution.aspx in  FIG. 20 ) presents the form described above that prompts the user to enter a query. The “Ask Ernies” page calls or redirects to either a “Solution” page (file name solutions.aspx in  FIG. 21 ) that presents a solution, or an “Inference Engine” page (file name “inferenceEngine.aspx in  FIGS. 23A-D ). If the user enters something that is not recognized as a valid question, the “Ask ERNIES” page calls or redirects to a “Question Types” page (file name “questionType.aspx” in  FIG. 22 ) that causes a “Solutions” page to be presented that prompts the user to select a question from a list of possible questions. Additional pages include a “Feedback” page through which the user can submit feedback to suggest additional questions and answers to be included in database  40 , and an “Admin Console” page through which a system administrator can add such questions and answers and otherwise add to, delete from, and modify the database tables. A home page (“Home”) through which a user can log in to the system, and an “About” page through which a user can obtain general information about the system (e.g., software release version number, etc.), are also included. 
     More specifically, after the user logs in to the ERNIES expert system, the system begins with the searchSolution.aspx (“Ask ERNIES”) page, the structure and pseudocode for which is shown in the table of  FIG. 20 . As described above, the page presents a user interface text entry box into which the user types a query. (Other embodiments of the invention can include a voice-recognition interface to replace or supplement typing.) The page uses the term conversion database table shown in  FIG. 18  to replace common synonyms with a standardized term, as described above with regard to step  48  in  FIG. 4 . The page likewise uses the word removal database table shown in  FIG. 19  to remove or delete terms that are not useful to the keyterm matching steps that follow. 
     The page then classifies the query as calling for either knowledge-based solution if it includes one or more description-oriented keyterms or an expert consultation-based solution if it includes one or more reasoning-oriented keyterms. The page then redirects to either the solutions.aspx page, the structure and pseudocode for which is shown in the table of  FIG. 21 , if a knowledge-based solution is called for, or a GetGoal function if an expert consultation-based solution is called for. If neither reasoning-oriented nor description-oriented keyterms are found in the query, it is classified as undefined or unanswerable, and the page redirects to the questionType.aspx page, the structure and pseudocode for which is shown in the table of  FIG. 22 . 
     Upon redirecting, the solutions.aspx page ( FIG. 21 ) connects to the database, expertSystem.mdb, and searches the “What_Is” table ( FIG. 11 ), “Where_is” table ( FIG. 12 ), “How_To” table ( FIG. 13 ) and “How_Many” table ( FIG. 14 ) for keyterms matching terms in the query. As described above, “what is”, “where is”, “how to” and “how many” are standardized description-oriented keyterms that have substituted for any synonymous terms the user may have entered. Fields of the tables contain these keyterms as well as keyterms relating to the specific machines, processes, systems, etc., about which a user might ask for descriptions. Data in the tables for which matching fields are found is retrieved and displayed for the user. For example, the retrieved data associated with the combination of keywords “how many,” “screws,” “bottom,” and “molding machine” may comprise the number of screws on the bottom of the molding machine, a paragraph of text describing that portion of the machine, a picture of that portion of the machine, etc. 
     If the query calls for an expert consultation-based solution, the GetGoal function of the searchSolution.aspx page connects to the database, expertsystem.mdb, and opens and searches the goal table ( FIG. 17 ), for keyterms matching terms in the query. For each key field in the goal table for which a matching keyterm is found, the corresponding goal, identified by its Goal_ID, is retrieved. The page then redirects to the inferenceEngine.aspx page. If query terms do not match any keyterms in the goal table, a message.aspx page (the details of which are not shown for purposes of clarity) displays a message for the user that requests the user check the question or send feedback to the system administrator to advise of the question that ERNIES was unable to answer. 
     Upon redirecting, the inferenceEngine.aspx page ( FIGS. 23A-D ) opens the rule table ( FIG. 15 ) of the database and, using the Goal_ID, retrieves the corresponding rules and their the corresponding premise questions, array of options or possible answers to each premise from which the user can choose, the consequents or solutions to the rules, and the “correct” answers to the premises (i.e., the answers for which there are corresponding consequents). Beginning with the first such rule, the page displays the questions for the user to answer. As described above, the user can check boxes to indicate answers to the questions. The page stores the user&#39;s answers in a work table ( FIG. 16 ). The page then calls an EvaluateGoal function to determine if the user&#39;s answers match the “correct” premise answers for the rule. If they do, the page obtains the consequent for the rule from the rule table. If they do not, the page proceeds to the next rule that was found to correspond to the Goal_ID and repeats the above-described steps, as noted above with regard to the loop in  FIG. 4B . Processing redirects to the solutions.aspx page to display any consequent or solution (i.e., answer to the user&#39;s query) found, or, if no consequents have been found, to a display message for the user that requests the user check the question or send feedback to the system administrator to advise of the question that ERNIES was unable to answer. 
     Although not shown for purposes of clarity, a confidence factor can be displayed along with each solution to indicate the degree of confidence that the author of the solution places upon the solution as being correct. For example, a 90% confidence factor means that the author is 90% certain that the solution solves or otherwise properly addresses the problem. Also, for each solution displayed, a form (not shown) can be provided into which the user can enter a rating (e.g., a scale of 1-5) indicating how helpful the user found the solution to be. System administrators can use this feedback to help improve the system. 
     By augmenting the database in response to feedback from users, the knowledge base of the expert system can be expanded over time. Although in the exemplary embodiment of the invention the means for updating the database in response to receiving feedback involves an administrator reading feedback forms submitted by users and updating the database tables in response, in other embodiments the feedback and updating process can be automated.