Abstract:
The present invention relates to a computer based knowledge system for assisting persons in making decisions and predictions using a computerized knowledge tree with fuzzy logic, statistics, and mathematics methods. The invention defines a knowledge tree structure to represent and store human or data-mining knowledge. The knowledge tree has decision/prediction output(s), knowledge, weights, input factors, etc. The knowledge system enables a user to build knowledge trees based on their knowledge, expert knowledge, and data-mining knowledge. The knowledge tree can be updated dynamically with knowledge mining functions or self-learning functions. A decision or prediction is made by calculating a knowledge tree based on the input factors.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to a computerized knowledge mining, intelligence analysis, and knowledge management system, specifically to analytical logic (i.e. knowledge) capturing, constructing, accumulating, and sharing. 
     2. Related Art 
     Intelligent analysis process often involves a variety of data and reasoning logic. In order to make better decisions or analyses, people need to be able to utilize multi source knowledge. The biggest issue is how we utilize multi source knowledge understandably and efficiently. For example, when developing a new stock performance evaluation method, we may like to combine different analytical logic or methods such as technical analysis, fundamental analysis, chart analysis, volume analysis, and market psychological analysis, which raises some questions. Can people quickly build the method at their skill levels? How can people combine different analytical logic and/or methods together without losing logic clarity, flexibility, scalability, and share ability? Can the combined method be easily updated and extended? All of these questions boil down to a single issue: how do we capture or computerize human analytical logic that can be easily shared, especially across analysis areas and/or industries. 
     Although any analytical logic can be constructed by “CASE” or “IF . . . THEN . . . ELSE . . . ” programming statements, the readability, scalability, and changeability of the analytical logic often become barriers for sharing and updating knowledge when the analysis issue become more complicated. 
     We all agree that human analytical logic or reasoning processes can be well presented by a (decision or knowledge) tree structure. Because of the unique tree&#39;s characteristics such as independency of peer nodes and single parent node, the tree structure is a most scalable, flexible, and commonly used analytical structure. Although many decision-tree construction methods (e.g. Naïve-Bayes, Classification, Fuzzy, and Neuron Network.) have been developed, the structures of nodes are often not uniformed or standardized. Different decision-tree construction methods use different node structures. Even within the same construction method, sometimes, many different node structures (e.g. decision node, classifier node, data/factor node) are used. For a decision tree with multiple node structures, the analysis process, logic modification, and logic sharing (e.g. embed a decision tree into another decision tree that is built with a different construction method.) are often complicated, inflexible, and inefficient. 
     SUMMARY OF THE INVENTION 
     The present invention provides an open knowledge structure that defines a uniform knowledge node. Each knowledge node has a plurality of components and attributes. According to the present invention, the knowledge node includes a knowledge cell, a processing unit with a user specified evaluation function, a decision set, a user specified weight function, a learning matrix, and a user specified learning function. The values (i.e. basic knowledge or judgments) of knowledge cell can be static or dynamic. The static value can be a constant number or string. The dynamic value can come from an intelligent analysis function, a survey function, a data-mining tool, or an analysis module. A knowledge node can have zero to many inputs. 
     The present invention defines open structure and architecture for constructing dynamic and distributed intelligence analysis modules (i.e. knowledge trees). The knowledge tree can be stored in knowledge bases that are built with common used commercial databases (e.g. Oracle, DB2, Sybase, SQL Server and MS Access), data file, or executable file. According to the present invention, a knowledge tree has at least one knowledge node. The knowledge nodes are interlinked by using address-based link methods. The knowledge nodes or sub-trees of a knowledge tree can be stored in either identical or different knowledge bases that reside on either the same knowledge base server or different knowledge base servers. 
     The present invention introduces a method that can simplify the knowledge capturing processes, programming codes, and analysis processes. With the open and uniform knowledge structure and architecture, the analytical logic can be understood easily, shared across analysis areas and systems effectively, updated dynamically, and processed efficiently with peer-to-peer technology. According to the present invention, the knowledge trees can be effectively stored and managed in distributed manner. In summary, the present invention provides a knowledge-mining tool that enables people to construct their analytical logic using a variety of existing knowledge and/or methods. 
     Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE FIGURES 
     The present invention will be described with reference to the accompanying drawings, wherein: 
     FIG. 1 shows visual knowledge cell structure using m×n matrix in accordance with one embodiment of the present invention. 
     FIG. 2 illustrates an example of physical storage for a knowledge cell (n×n) in accordance with one embodiment of the present invention. 
     FIG. 3 illustrates a knowledge mining method that is used to capture basic decisions or judgments for a knowledge cell in accordance with one embodiment of the present invention. 
     FIG. 4 shows major components of a knowledge node in accordance with one embodiment of the present invention. 
     FIG. 5 illustrates a hit-miss matrix of the knowledge node that uses for knowledge learning in accordance with one embodiment of the present invention. 
     FIG. 6 is a flow diagram illustrating a method of a node&#39;s knowledge learning process of the present invention. 
     FIG. 7 is a flow diagram illustrating a method of a node&#39;s knowledge adjusting process of the present invention. 
     FIG. 8 illustrates an example of a distributed knowledge tree using the open knowledge tree construction method of the present invention. 
     FIG. 9 illustrates three basic group analysis modules using the open knowledge tree structure in accordance with one embodiment of the present invention. 
     FIG. 10 is a flow diagram illustrating an analysis process method using the knowledge tree in accordance with one embodiment of the present invention. 
     FIG. 11 illustrates a web-based open knowledge computer system wherein the knowledge tree has been constructed, stored, shared and processed. 
    
    
     In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. 
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The present invention provides an open knowledge structure (i.e. knowledge cell) and a method for constructing the Knowledge Node. Furthermore, the present invention provides a method and a computer system for inducing an Open Knowledge Tree. The Open Knowledge Tree is constructed using the knowledge nodes and dynamic address-based link methods, all knowledge nodes having the identical plurality of attributes. The Open Knowledge Tree utilizes the advantages of both decision tree structures (e.g. scalability, segmentation, and independency) and networking technologies (e.g. distributed and dynamic link). 
     The present invention can be used in knowledge (i.e. analytical logic) discovery and construction, intelligence analysis, intelligent device control, and knowledge management. Given the description herein, it would be obvious to one skilled in the art to implement the present invention in any general computer platform including, but not limited to, a computer processor (single chip or multi-chips), high-end to low-end workstations/servers, virtual machine (e.g. Java-created application or .Net created application), and network architectures (e.g. client/server, intranet, internet, wireless, intermediate or wide area networks). 
     Description in these terms is provided for convenience only. It is not intended that the invention be limited to application in this example environment. In fact, after reading the following description, it will become apparent to a person skilled in the relevant art how to implement the invention in alternative environments. 
     FIG. 1 shows an open knowledge cell structure  100  in accordance with one embodiment of the present invention. The open knowledge cell structure  100  includes a (m×n) matrix  110 , decision functions D j  (j=1,2, . . . , n)  120 , action functions A i  (i=1,2, . . . , m)  130  and factors F j  (j=1,2, . . . , n)  140 . 
     Each column of the matrix  110  has only one decision function value that is generated by the corresponding decision function D j    120 . The value of the decision function D j    120  indicates which action function A i  (i=1,2, . . . , m)  130  will be used or executed. Each column F j  of the knowledge cell  100  has one and only one decision function D j    120 . The action functions, A i  (i=1,2, . . . , m)  130 , are usually arranged in a specific order (e.g. A i  is an action function for the worst case or the most pessimistic decision and A m  is an action function for the best case or the most optimistic decision. The functions are in an order from the worst to the best.). The value of the decision function D j    120  can be constant value or generated by a user specified function. The action function A i    130  can be a constant value (e.g. a decision or forecasting message), a user specified function, a user specified function link (e.g. an analysis report link or function call), or a user specified control command (e.g. an event trigger or control signal). The factor F j    140  can be a constant value, a user specified function, or user specified function link (e.g. a factor range generator). When using function links, the values of the knowledge cell  100  are dynamic, which enables the intelligent analysis process to always use the latest knowledge. 
     FIG. 2 shows an example of storing a (n×n) knowledge cell that uses a (3×n) unit storage space, where each value of the decision function D j  determines which action function A i  to be used for a factor F j . 
     FIG. 3 shows a knowledge-mining method  300  in accordance with one embodiment of the present invention. The knowledge-mining process includes a knowledge cell  310 , a user specified knowledge normalization function  320  and a knowledge collecting method  330 ,  340 ,  350 ,  360 , or  370 . 
     The knowledge-mining method  300  can create or update a knowledge cell  310  that is defined in FIG.  1 . The knowledge-collecting function  330  provides an input interface for users to enter or define action, decision and/or factor range values manually. The knowledge-collecting methods  340  and  350  provide an interface and functions for users to define or link survey and/or data mining methods to generate knowledge cell values. The knowledge-collecting methods  360  and  370  provide functions for users to link existing analytic modules (e.g. knowledge trees) and/or analytic applications as knowledge cell values. The knowledge-normalization module  320  maps collected actions, decisions, factor values into range 1 . . . m or 1 . . . n. 
     FIG. 4 shows a knowledge node  400 , wherein the knowledge cell is incorporated in accordance with one embodiment of the present invention. The knowledge node  400  is comprised of a weight unit  410 , a processing unit  420 , a knowledge cell  430 , a learning function  440 , a decision set  450 , and a learning matrix  460 . 
     The knowledge node  400  is a basic component for building any analysis module in accordance of the present invention. The weight unit  410  can define the node&#39;s weight in the analysis process. The node&#39;s weight can be pre-set by a user or dynamically generated by a user specified weight function. The processing unit  420  is comprised of destination (e.g. parent node or analysis result receiver) address, source (e.g. children node or function link) addresses, and a user specified input evaluation function. The knowledge cell  430  that is defined in FIG. 1 stores a basic decision. The basic decision means that a decision maker can make a quick judgment on a factor at his or her knowledge level. The learning function  440  can adjust decision values  120  of the knowledge cell  430  in terms of hit-miss ratio in the learning matrix  460 . The decision set  450  can store up to p previous decision results. The previous node decision results can be used for knowledge learning. The user can decide the size (p) of the decision set  450  in terms of analysis needs. The learning matrix  460  keeps hit-miss counts for each factor F j  (j=1,2, . . . , n)  140 . 
     FIG. 5 shows an example of a learning matrix that keeps decision hit-miss counts. The hit-miss counts of a node decision are categorized into miss-low, hit and miss-high in this example. Since the action functions, A i  (i=1,2, . . . , m)  130 , are arranged in a specific order, the decision miss-low means that a decision A q  was made but it should be the decision A r  where r&gt;&gt;q(1); the decision hit means that the decision A q  was right (i.e. r=q or r is close to q); the decision miss-high means that a decision A q  was made but it should be the decision A r  where r&lt;&lt;q (i.e. r is “significantly” less than q, which user defines significantly greater range). A user specified hit-miss function counts the number of decision hits or misses comparing decision values, d ij (t)=&gt;A q ε{A 1 , . . . A m } that was made on a factor F k ε{F 1  , . . . F n } at time t, with a correct decision value, m ij (t)=&gt;A r ε{A 1 , . . . A m } that should be made at time t. For example, if q&lt;&lt;r then add 1 to counter MISS_LOW k ; If q=r or q is close to r then add 1 to counter HIT k ; If q&gt;&gt;r then add 1 to counter MISS_HIGH k . 
     For the decision process, the node&#39;s processing unit  420  collects all input factors&#39; values and weights {(d (i+1)1, w 1 ), . . . , (d (i+1)s, w s )} from children nodes, linked functions and/or users, where the value d (i+1)j  ε{1, 2, . . . n}, j=1,2, . . . , s. A user specified evaluation function determines a final factor value k that determines the node decision. For example, a collected input factor-weight set is {(4,1), (2,1), (4,1), (5,1), (3,1), (2,1), (1,1), (4,1), (3,1), (2,1)} where n of the knowledge cell in FIG. 1 is equal to 5 (i.e. n=5) and all weights are equal. Assume that an Optimistic Majority evaluation function is used, which means r is a more optimistic choice than q if r&gt;q. Since the factor value 2 and 4 are majority input groups that have equal inputs, the factor value 4 is selected because 4 is more optimistic choice than  2 . The final factor value kε{1, 2, . . . n}=&gt;(i.e. determines) the factor F k =&gt;D k =&gt;A q  where q ε{1, 2, . . . m} and A q  is a decision of node (i, j) at time t or d ij (t)=A q (i, j). The node decision d ij (t) and a weight value w ij  generated by weight function  410  can be either a final decision or used as an input factor of its parent node. The node decision d ij (t) and F k    140  can be stored into the decision set  450  as node&#39;s learning data. 
     FIG. 6 is a flow diagram  600  illustrating the method inducing a node learning process of the knowledge tree in accordance with one embodiment of the present invention. The node learning process is comprised of node decision collecting, hit-miss counting and knowledge adjustment steps. 
     Referring to FIG. 6 in a step  605 , the node (i, j) receives a set of correct decision and factor at time t or m ij (t)={A r (i, j),F p (i, j),t}. In a step  610 , check if the collected decision A r (i, j) is valid (e.g. is not NULL). If A r (i, j) is valid, the flow moves to a step  615 , where it begins to perform steps  615 - 650  for hit-miss counting and then the flow moves to a step  655  for knowledge adjustment. If A r (i, j) is invalid (e.g. is NULL or no correct decision is received), the flow moves to a step  655  for knowledge adjustment. The step  615  retrieves the node decision at time t or M ij (t)=(A q (i, j),F k (i, j), t) from the learning matrix  460 . Next, in a step  620 , it determines if p=k for F p (i, j) and F k (i, j). If p=k (i.e. a correct factor value was used.), the flow moves to a step  630 . If p&lt;&gt;k (i.e. an incorrect factor value was used.), the flow moves to a step  625 , where a node decision A u (i, j) for the factor value F p (i, j) is used as the node decision A q (i, j); at time t and then the flow moves to a step  630 . In the step  630 , it determines if r=q or r is close to q for A r (i, j) and A q (i, j). If r=q or r is close to q (i.e. a correct node decision was made.), the flow moves to a step  635 , where hit counter HIT p (i, j) is added by one and then the flow moves to a step  655 . If r&gt;&gt;q (i.e. r is “significantly” greater than q or the node decision was below the correct decision.) in a step  640 , the flow moves to a step  645 , where miss-low counter MISS_LOW p (i, j) is added by one and then the flow moves to a step  655 . If r&lt;&lt;q (i.e. r is “significantly” greater than q or the node decision was above the correct decision.), the flow moves to a step  650 , where miss-high counter MISS_HIGH p (i, j) is added by one and then the flow moves to a step  655 . 
     Next, in a step  655 , it determines if condition for adjusting the decision function D p (i, j) is met (e.g. if the total of the hit and miss counts for the factor F p (i, j) reaches to 1000?). If the condition is met, the flow moves to a step  660 , where the decision function D p (i, j) is adjusted and then the condition for adjusting the decision function D p (i, j) is re-set. The step  665  sets F p (i, j) as a correct decision of all children nodes (i+1, j) of the node (i, j). The flow diagram  600  can start the node-learning process at any node (i, j) but it usually starts at the root node. The node-learning process is recursively performed for all descendant nodes of the node (i, j). 
     FIG. 7 is a flow diagram  700  illustrating a more specific embodiment of the step  665  of FIG. 6 for inducing a node knowledge adjusting process in accordance with one embodiment of the present invention. Step  710  retrieves hit-miss counts, {MISS_LOW p (i, j), HIT p (i, j), MISS_HIGH p (i, j)} and then the flow moves to a step  720 . The step  720  determines if MISS_LOW p  (i, j)&gt;&gt;HIT p (i, j) (i.e. miss-low count is “significantly” greater than hit count, which user defines significantly greater range). If the miss-low count is significantly greater than the hit count, the flow moves to a step  730 , where it adjusts the decision function D p (i, j) value higher (e.g. if D p (i, j) is in A q (i, j)&#39;s row and q&lt;m, set D p (i, j) to A q (i, j)&#39;s row) and then the flow moves to a step  760 . If the miss-low count is not significantly greater than the hit count, the flow moves to a step  740 , where it determines if MISS_HIGH p (i, j)&gt;&gt;HIT p (i, j) (i.e. miss-high count is “significantly” greater than hit count, which user defines significantly greater range). If the miss-high count is significantly greater than the hit count, the flow moves to a step  750 , where it adjusts the decision function D p (i, j) value lower (e.g. if D p (i, j) is in A q (i, j)&#39;s row and q&gt;1, set D p (i, j) to A q−1 (i, j)&#39;s row) and then the flow moves to a step  760 . If the miss-high count is not significantly greater than the hit count, the flow moves to a step  760 . The step  760  re-sets the adjusting schedule for the decision D p (i, j). 
     FIG. 8 illustrates an example of a distributed knowledge tree that is built in the open knowledge tree structure of the present invention. The knowledge tree  800  is comprised of knowledge nodes (KN)  810  and/or sub-trees  820 ,  830 ,  850 , and  860 . The sub-trees  850  and  860  are independent knowledge trees or analysis modules (AM) that are linked through Internet, Intranet, or wireless network  840 . 
     FIG. 9 illustrates three basic group analysis modules using the open knowledge structure in accordance with one embodiment of the present invention, where u i  v i  or w i  is a set of input factor values from a user/analyst or specific analysis modules/functions. The group analysis module (AM)  910  uses different sets of input factor values, where the group analysis process is at the factor collecting level. The group analysis module  920  repeatedly uses the same analysis module and uses different sets of input factor values from different analysis groups for each analysis module, where the group analysis process is at the factor collecting and analytical result levels. The group analysis module  930  uses different analysis modules and different sets of input factor values from different analysis groups for each analysis module, where the group analysis process is at the factor collecting, analytical logic and analytical result levels. 
     FIG. 10 is a flow diagram  1000  illustrating an analysis process method using the knowledge tree in accordance with one embodiment of the present invention. The analysis process can start from one or many leaf nodes of a selected knowledge tree and ends up at the root node. The root node output is the analysis result or decision. For the explanation reasons, the flow diagram  1000  of FIG. 10 only processes one node at each time. The analysis process of the present invention can use multiple tasks, sessions or threads to process multiple peer nodes or peer sub-trees at the same time. 
     Referring to FIG. 10, in a step  1010 , it adds all leaf nodes of the knowledge tree into an analysis processing set in a specific order (e.g. from the most left leaf node to the most right one). Next, in a step  1020 , the analysis process extracts the first node as the current processing node. In a step  1030 , it collects and evaluates all input factor values of the current node to determine its output value, where the factor values can be obtained from children nodes&#39; outputs, users&#39; inputs and/or functions&#39; outputs. Next, in a step  1040 , it determines if the current node has a parent node. If it has no parent node (i.e. it is the root node), the flow moves to a step  1050 , where an analysis result, decision, or control action is generated in terms of the current node&#39;s output value and ends the analysis process. If the current node has a parent node, the flow moves to a step  1060 , where it determines if the parent node is in the analysis processing set. If the parent node is already in the analysis processing set, the flow moves to the step  1020 . If the parent node is not in the analysis processing set, the flow moves to a step  1070 , where it adds the parent node of the current node into the end of the analysis processing set and then the flow moves to a step  1020 , where, for each node in the analysis processing set, the flow recursively performs steps  1020 - 1040  until the root node is reached and processed or the analysis processing set is empty. 
     FIG. 11 shows an open knowledge computer system  1100  wherein the knowledge tree has been constructed, stored, shared, managed, and processed. Specifically, the open knowledge computer system  1100  includes a Knowledge Warehouse  1105  and an Open Intelligence Server  1120 . Furthermore, the Open Intelligence Server  1120  is comprised of a Database Networking Connection Function Library  1125 , a Knowledge Ming Tool  1130 , a Knowledge Builder  1135 , a Knowledge Management Unit  1140 , a Knowledge Search Engine  1145 , a Intelligent Analysis Processor  1150 , and a User Interface  1155 . 
     The Knowledge Warehouse  1105  is a set of virtually or physically linked knowledge bases that are built on the same or different commercial databases such as Oracle, MS SQL Server, Sybase, DB2 and MS Access. The Open Intelligence Server can access knowledge bases remotely through network  1110  or locally  1115  through I/O Data Bus that the knowledge base resides on the Open Intelligence Server. Users  1160 - 1170  can perform knowledge construction, intelligence analysis and knowledge management through the User Interface  1155  and network  1175 . 
     In summary, the present invention discloses an open knowledge structure, a method to construct an open knowledge node, and a method to construct an analysis module or knowledge tree with open and dynamic knowledge tree architecture, called Open Knowledge Tree. Furthermore, the present invention discloses a method of building an Open Knowledge Computer System for knowledge mining, knowledge learning, analysis processing, and knowledge management. 
     While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.