TASK MANAGEMENT OR CONTROL

Multiple reasoning and result reconciliation for enterprise analysis

5406477

Abstract

A computer-based method and apparatus for enterprise analysis, with which a user can generate value projections by applying, in parallel, multiple reasoning methods. The invention presents a method and apparatus for creating a complex, networked model of an enterprise, or system and its environment, that is structured from categorized objects and relationships. Using the model, the present invention is self sufficient in determining which areas of the multiple reasoning methods to appy to the variable projection problem. Applying reasoning methods to a single projection problem generates a set of conflicting intermediate hypotheses that the present invention can resolve to form a single final hypothesis through a reconciliation process that evaluates quality factors associated with the intermediate hypotheses. A problem solution tree tracks the solution process to provide to the user a full explanation of the methods chosen or discarded and data relied upon or disregarded.


Claims

What is claimed:

1. A system analyzer which comprises:

a. an input device;

b. a computer processor coupled to the input device and arranged to accept as input a user query from the input device;

c. a memory coupled to the computer processor;

d. the memory including:

i. a set of data objects, each data object in the set of data objects comprising information concerning a component of a system to be analyzed;

ii. a set of variable objects, each variable object in the set of variable objects defining a factor which affects the functioning of at least one of the components of the system;

iii. each variable object in the set of variable objects being linked to at least one other variable object in the set of variable objects by a first relationship being a member of a first set of pre-determined relationships such that the first relationship defines a real-world association that exists between the variable objects linked by the first relationship;

iv. each data object in the set of data objects being linked to a preselected variable object by a second relationship being a member of a second set of pre-determined relationships such that the second relationship describes the applicability of the information contained in the data object linked thereby for use in determining a value for variable object linked thereby;

v. a set of analytical methods; and

e. the computer processor operating to process the user query by automatically selecting at least two analytical methods from the set of analytical methods and applying the selected analytical methods to obtain an answer to the user query from each analytical method, wherein the automatic selection of each analytical method is determined by the applicability of said analytical method to the query based upon the configuration of the data objects and variable objects.

2. The system analyzer of claim 1, wherein the computer processor operates to determine a single response to the user query by reconciling among the answers obtained from each analytical method.

3. A computer-based method to project the future value of a variable that relates to an enterprise, the method comprising the steps of:

creating a model of the enterprise wherein the model is a frame-based model of the enterprise including a set of frames, each frame in the model representing real-world knowledge, each frame comprising a list of relationships, each relationship in the list of relationships specifying a relationship with another frame, each frame further comprising a list of attributes that store data relating to the frame; storing the model of the enterprise in a knowledge base;

providing a set of reasoning methods;

providing a set of reconciliation rules;

accepting as input a query that requests information about the future value of the variable;

applying each reasoning method in the set of reasoning methods, each reasoning method utilizing the set of frees, to generate from each reasoning method an intermediate hypothesis as to the future value of the variable; and

reconciling between each intermediate hypothesis to obtain the future value of the variable by:

(i) locating available reconciliation rules from the set of reconciliation rules;

(ii) ordering the available reconciliation rules according to a pre-selected preference scheme; and

(iii) applying the available reconciliation rules in the order determined at step (ii).

4. The method of claim 3 wherein the model of the enterprise includes information about production processes performed by the enterprise.

5. The method of claim 3 wherein the model of the enterprise includes information about a market environment.

6. The method of claim 3 wherein the model of the enterprise represents facts about the structure of the enterprise.

7. The method of claim 3 wherein the model of the enterprise includes flow relationships, causal relationships, compositional relationships and productivity relationships.

8. The method of claim 3 wherein the model of the enterprise includes proportionality relationships.

9. The method of claim 3 wherein the model of the enterprise includes opinion information, goal information and plan information.

10. The method of claim 3 wherein the step of creating a model of the enterprise includes the steps of

identifying a plurality of objects that each represent a fact about the structure of the enterprise;

assigning at least one attribute to each one of the plurality of objects;

assigning at least one value to each one of the plurality of objects; and

connecting each one of the plurality of objects to related objects.

11. The method of claim 3 wherein the set of reasoning methods includes proportionality reasoning.

12. The method of claim 11 wherein the set of reasoning methods further includes historical trend analysis.

13. The method of claim 3 wherein the set of reasoning methods includes historical trend analysis.

14. The method of claim 3 wherein the set of reasoning methods includes reasoning from productivity.

15. The method of claim 3 wherein the step of applying each reasoning method in the set of reasoning methods comprises the step of applying each reasoning method in parallel.

16. A computer-based method to project the future value of a variable that relates to an enterprise, the method comprising the steps of:

creating a model of the enterprise;

storing the model of the enterprise;

providing a set of reasoning methods;

providing a set of reconciliation rules;

accepting as input a query that requests information about the future value of the variable;

applying each reasoning method in the set of reasoning methods, each reasoning method utilizing the model, to generate from each reasoning method an intermediate hypothesis as to the future value of the variable; and

reconciling between each reasoning method to obtain the future value of the variable, by

(i) locating available reconciliation rules from the set of reconciliation rules,

(ii) ordering the available reconciliation rules according to a pre-selected preference scheme, and

(iii) applying the available reconciliation rules in the order determined at step (ii).

17. A computer-based method to project the future value of a variable that relates to an enterprise, the method comprising the steps of:

creating a model of the enterprise comprising a set of variables objects each representing a component of the enterprise;

storing the model of the enterprise in a knowledge base;

providing a set of reasoning methods, each reasoning method including an attached required evidence procedure having a variable template;

accepting as input a query that requests information about the future value of the variable;

selecting a sub-set of reasoning methods from the set of reasoning methods that are applicable to the query by determining if the variable matched the variable template specified in the attached required evidence procedure for each reasoning method;

applying each reasoning method in the sub-set of reasoning methods, each reasoning method utilizing the knowledge base, to generate from each reasoning method in the sub-set of reasoning methods an intermediate hypothesis as to the future value of the variable; and

reconciling between each intermediate hypothesis to obtain the future value of the variable.

18. The method of claim 17 wherein the set of reasoning methods includes proportionality reasoning.

19. The method of claim 18 wherein the set of reasoning methods further includes historical trend analysis.

20. The method of claim 17 wherein the set of reasoning methods includes historical trend analysis.

21. The method of claim 17 wherein the set of reasoning methods includes reasoning from productivity.


Description

FIELD OF THE INVENTION

This invention pertains generally to the field of knowledge-based computer systems and, more particularly, to the field of decision support tools. In an exemplary embodiment, the invention pertains to the field of decision support tools for the management of an enterprise through strategic planning.

BACKGROUND OF THE INVENTION

Strategic planning is critical to the future success of any enterprise--an enterprise being any organization or business concern which produces products or renders services. The goal for a planning manager is to position the enterprise so that it can respond profitably to future market trends.

For example, a manager of a large industrial enterprise with a global market orientation, such as an aerospace engineering firm, might attempt to gather information on whether the world market for a particular engine part will be strong, weak, or non-existent, before making resource allocation decisions, such as leasing factories and equipment, or hiring employees for work. Perhaps the current product needs to be redesigned before it goes to the market. Perhaps a competitor has a new product that makes the current design obsolete, or perhaps the costs involved in re-tooling factories and retraining employees will be so expensive that the project should be dropped. Resolution of such decisions will affect the positioning of the enterprise in making capital investment and resource allocation decisions.

Generally, the resource allocation decisions made through the strategic planning process have a tremendous impact on the character and continued viability of the enterprise--so the stakes are high for the planning manager. Resource allocation decisions based on strategic planning analysis are typically made on a highly aggregated basis, and the time horizon for this planning, though arbitrary, typically ranges from three to ten years. If a planning manager's projections accurately anticipate the market trends, the enterprise will tend to thrive. Otherwise, it is likely to falter or even fail.

Planning managers spend much time and effort developing strategic resource allocation plans. Such a plan is a recommendation of the general direction an enterprise should take, containing an aggregate-level statement of resource allocation, and a statement of the assumptions underlying the plan. Those underlying assumptions are projections of conditions that the enterprise will most likely face. In planning, managers attempt to predict the future evolution of products, production processes, markets and other factors that will affect future production. Managers typically consider the forces that affect the making and marketing of a product, such as changes in the cost of raw materials to produce the product, the particular needs of large customers, the products offered by competitors, the need for product re-design, trends in component technology, trends in manufacturing process technology, changes in the employee skills needed, changes in manufacturing productivity (using measures such as manufacturing output per person, manufacturing output per manufacturing space or capital required per employee), inventory flow trends, as well as societal and governmental influences. The projections needed to make a resource allocation decision might include:

Projections pertaining to the size, location or description of the market for goods or services sold by the enterprise;

Projections pertaining to the expected sales of the product or services in the market;

Projections pertaining to the costs of producing products or rendering services (including the costs of materials, land, factories and equipment, or the cost of acquiring trained workers);

Projections pertaining to factors of the general economy that would affect the marketing or making of the goods or services such as Gross National Product (GNP), cost of living, inflation, or unemployment rates;

Projections pertaining to changes in the state of technology and the need for future research and development;

Projections pertaining to the emerging product technology that will affect sales or evolution of a product;

Projections pertaining to new products that will change the market or make the current products obsolete; and

Projections pertaining to political or governmental influences on the making or marketing of the product, such as imposition of regulatory restrictions or taxes, or the political stability of a nation.

Projections provide the support for the resource allocation decisions. For a large industrial enterprise, creating projections based on these factors can be a substantial task, because projections for each factor will vary greatly, depending on the assumptions made and the problem solving approaches taken.

Generating the projections in strategic planning that are used as a basis for making resource allocation decisions is an inexact process. A key problem has been to develop a way to integrate the diverse and often conflicting information that is used in forming projections. Managers have access to a variety of incomplete, and often inconsistent information from many different sources, from which a complete and cohesive plan must be wrought. First, there is raw numerical data, concerning the enterprise itself and the products and/or services it provides. Budgets, sales figures, gross and net income figures, production totals, quantities of raw materials purchased, numbers of employees used, layoff figures, attrition rates, quantities concerning defective products, etc., are readily used for creating projections. As enterprises are generally careful in keeping records, the statistical information available on the enterprise is quite detailed and is available in varying levels of aggregation. In addition, there is also raw numerical information concerning the market for the product and the economy as a whole. Statistics such as market indicators, total market sales, demographic figures, as well as general economic factors such as GNP, inflation and unemployment rates are also readily available.

Along with this historical data, enterprises also promulgate general statements on their expectations for output and future sales that reflect either general corporate policy, expectation or the need for profit. Other information such as general knowledge of enterprise history, information on technology trends and information on governmental influences further affect projections. This additional information should be incorporated to make more realistic and persuasive projections.

To synthesize that raw statistical and other data and form projections, enterprise managers create models showing the relationships between the factors that will affect the projection, gather information on these factors, and then use different reasoning methods, such as causal modeling, correlational modeling, historical reasoning or input/output analysis, to make a projection. Each reasoning method for projection uses a different set of assumptions and performs its analysis on different data drawn from different factors. For any one projection needed in making a resource allocation decision, many different reasoning methods can be applied arriving at many different results. The results will differ, sometimes because of conflicting data used and sometimes because the assumptions and approaches implicit and explicit in each reasoning method vary. Managers may wish to perform "what if" analysis and create projections substituting different "made-up" values in the analysis, in a way similar to an engineer's use of system dynamics models. Further, the projection techniques can be applied to data at different levels of aggregation. Each of the projections created have differing levels of credibility or reliability, which the manager must evaluate in deciding which one to adopt.

Thus, much of the strategic planning activity involves understanding the significance of the numeric data, evaluating the assumptions of the reasoning methods used to transform that data into projections, measuring the credibility of the results, and then reconciling the various results by merging them or choosing between them.

For example, an enterprise manager may look at historic productivity trends to generate a projection about future productivity. Additionally, he or she may use knowledge of the causal forces that affect future productivity to generate an alternative projection. The "historical" and "causal" perspectives may suggest identical future productivity rates or they may differ sharply. In either case, they must be merged or reconciled. Merging and reconciling conflicting data relies heavily on the manager's knowledge of the credibility of the assumptions and data used to arrive at a result, the plausibility or reliability of each reasoning method, and how credible each reasoning method result appears in relation to the others. In any enterprise, different managers will have different views on how those factors should be applied, as it is always arguable that different factors should drive the process of determining strategy. Thus, in most enterprises, the strategic planning process involves multiple decision makers, each with various implicit and explicit goals. These goals are not reducible to one set of criteria. Thus, the decision-making process through reconciliation is highly subjective.

For many years, planners have sought the aid of computer-based tools in strategic planning. The problem has been to create a computer system to generate plausible recommendations concerning the nature and the amount of the various resources that are required to supply the enterprise, and identify the actions appropriate to acquire and develop these resources, given that there are a large number of factors to consider in planning and many different ways to consider them. The computer system must be able to analyze data from many different perspectives and form a single projection based on the results from the application of the different reasoning methods.

Commercial computer applications have played a minor role in the planning processes at this level. For instance, attempts at applying systems dynamics techniques to problems in strategic planning have several shortcomings. Because of its focus on the examination of the stability of the response to external stimuli and the feedback loops within its model of the enterprise, systems dynamics principles tend to over-emphasize the importance of transient behavior in the analysis of systems. More importantly, it ignores the context out of which starting parameters are derived and does not have any self-awareness, thus precluding explanation. It also lacks the ability to easily represent aggregate structures, and does not allow any consideration of alternate model structures within the one framework.

Also, other resource planning tools that are currently available employ an incomplete representation of the planning process. Such systems do not represent in any way the uncertainty associated with the forecast demand, nor do they allow for the consideration of change in the technology required to produce a product. The goals of the organization are not explicitly represented and problem solving as such is left entirely to the planner. Furthermore, these systems do not represent the context out of which planning parameters, such as productivity are derived. Alternate views are not represented. Neither systems any self-awareness of the methods it applies. Consequently such systems cannot offer any explanation of how planning parameters are derived or results generated.

As a result of these deficiencies, strategic planning in manufacturing is largely a manual process, with the primary computerized decision support coming from spreadsheet tools, word processing programs and electronic mail. There is considerable need for new modeling technology that can represent conflicting views and structures simultaneously within a system and which, in addition, has knowledge of the context out of which its parameters are derived and self-awareness of its reasoning processes so that reasoned explanations can always be generated to support the results that the system generates. Thus, the creation of a method and apparatus to adequately provide for the representation of all aspects of a system or entity, such as an enterprise, would be an advance and would have a wide range of uses in strategic planning and in other system analysis areas as well.

SUMMARY OF THE INVENTION

The present invention provides a computer-based method and apparatus to generate projection values for defined variables by applying, in parallel, multiple reasoning methods. The present invention provides a method and apparatus for creating a realistic model of an enterprise, including its production processes and market environment. That representation of the enterprise is contained in a frame-based enterprise model, which is stored in a knowledge base. The enterprise model represents various facts about the structure of the firm, such as flow relationships, causal relationships, compositional relationships, productivity relationships, proportionality relationships as well as opinions, goals and plans. Through the model building method of the present invention, a user can declare and instantiate new objects representing such entities in a knowledge base, assign attributes and values to those objects, and connect those objects to other objects through the set of available relationships. Other model building activities relate to the decomposition of an object by a decomposition rule.

In the specification of objects for the enterprise model, the present invention provides for a categorization hierarchy of objects. Objects are classified by data type, such as historical data, variables, program data or plans, opinions or goals. The categorization hierarchy facilitates the use of feature inheritance in declaring objects, whereby attributes can be declared about general classes of objects and these attributes can be inherited to the specific members of the class. The inheritance mechanism of the underlying representational medium, as well as the power of decomposition, allow for very efficient model building.

The explicit representation of reasoning methods in a model is a significant aspect of the present invention which provides a basis for applying different assumptions concerning model structure and differing reasoning methods simultaneously within the one strategy support system.

With the enterprise model, the present invention provides a method and apparatus for performing variable projections by applying multiple reasoning methods. In the exemplary embodiment, a set of reasoning methods has been provided to illustrate the use of the architecture in a strategic planning domain. These include methods such as reasoning from history, using structural relationships (for either aggregation or disaggregation), and using productivity relationships.

Applying the differing methods gives rise to the need for reconciliation. The system must choose between competing evidence based on its plausibility. Plausibility is measured in multiple dimensions such as degree of truth, degree of causality, detail, estimated quality, recency, etc. Applying the multiple reasoning methods in parallel poses significant challenges regarding the control of inference. The present invention provides a process for solving a projection problem in a manner that can be looked upon as the construction of an argument that supports a particular final result. The system is aware of which evidence it has adopted and why, and documents it. It also documents those reasoning methods and conclusions that it has decided to ignore. The explicit representation of reasoning methods, reconciliation rules, intermediate hypotheses, final hypotheses, problems, sub-problems and their interconnections are the tools that are used to make the system aware of its own reasoning processes. Such awareness also facilitates explanation of the solution path created.

The control strategy of the present invention is model-based, and it is the structure of the model that guides the system on its path towards a solution. The process starts when the user asks the system to solve a problem. The typical question is to determine the behavior of a variable in the future. Various reasoning methods and reconciliation rules are used to generate solutions to the problems posed to the system. Sometimes in applying reasoning methods, the system attempts to reason in two directions over relationships in the enterprise model. When given a problem, the architecture applies combinations of these reasoning methods to the problem at hand. The application of some reasoning methods may generate sub-problems. For instance, in determining headcount through a productivity method, it is necessary that the system determines what the output will be and the productivity that relates headcount to output. In this manner, many sub-problems are generated. The application of a reasoning method to a sub-problem will, if it succeeds in solving the sub-problem, generate an intermediate hypothesis. These intermediate hypotheses for each sub-problem are then reconciled. In this manner, a final hypothesis for each sub-problem is produced. The system behavior is primarily driven by the structure of the knowledge base. The configuration of relationships in the enterprise model determines which reasoning methods are applicable to any given object under consideration. The reconciliation rules prune the search tree by eliminating inferior hypotheses.

The system maintains a dependency list among hypotheses (both intermediate and final) and the premises which generated them. This is done by creating relationships from the new hypothesis created after the successful execution of a reasoning method. The new hypothesis contains information concerning the characteristics of the reasoning method that generated it, as well as the premises to which that reasoning method was applied. Moreover, the hypothesis is linked to the sub-network of all sub-problems solved by the reasoning method. The information contained in the sub-network is also used in creating this new hypothesis. The propagation of hypothesis characteristics, through the solution space, ensures that the choice of which intermediate hypothesis to choose during reconciliation is much more than a simple choice amongst competing methods. The nature of the tree of premises and methods that underlies the hypothesis is also represented in the multiple attributes of the hypothesis itself.

The problem and sub-problem relationships that are generated by the system represent the structure of the argument supporting the choice of a final hypothesis. This problem tree is constructed as the search for a solution proceeds. The problem tree is connected with the enterprise model as well as with the network of hypotheses produced. The process of constructing the problem tree is complicated by the fact that it is possible to reason in both directions over most relationships between objects in the knowledge base.

Through the construction of this problem tree and the application and selective pruning of reasoning methods, the system decides in what manner to use the information available in the knowledge base. This architecture enables the system to be self-structuring, and enables the system to deal either with partial models of incomplete information or with situations when conflicting information appears in the knowledge base. In this manner, diverse and inconsistent knowledge such as budgets, plans, expectations, causal models and historical knowledge, can be integrated and interpreted within a single architecture. The ability to reason in either direction over declarative relations in the knowledge base is also important in achieving consistency between the various levels of plans produced in the hierarchies of organizations. Thus, the present invention represents a substantial improvement over the strategic planning tools that are currently available. Moreover, the method and apparatus of the present invention has a wide range of uses outside the domain of strategic planning. Wherever multiple analytical methods can be applied to a system to evaluate a component of the system, the present invention can be used.

BRIEF DESCRIPTION OF THE DRAWINGS AND APPENDICES

FIG. 1 Depicts an exemplary overview of the computer hardware component configuration of the present invention;

FIG. 2A Depicts an exemplary fragment of an enterprise model diagram constructed according to the present invention;

FIG. 2B Depicts an exemplary fragment of an enterprise model diagram constructed according to the present invention;

FIG. 3 Depicts an overview of the computer program modules and knowledge base of the present invention;

FIG. 4 Depicts an exemplary hierarchical categorization scheme of the model primitives of the present invention;

FIG. 5A Diagrams the object/relationship structures for exemplary single and layered decompositions of a variable, according to the present invention;

FIG. 5B Diagrams the object/relationship structures for an exemplary cross decomposition of two decomposition rules according to the present invention;

FIG. 5C Diagrams the object/relationship structures as a relationship is inherited through two decomposition layers according to the present invention;

FIG. 6A Depicts an exemplary applicability conditions template for the historical trend analysis reasoning method according to the present invention;

FIG. 6B Depicts an exemplary applicability condition template for the productivity reasoning method according to the present invention;

FIG. 6C Depicts an exemplary applicability condition template for the conservation of flow reasoning method according to the present invention;

FIG. 6D Depicts an exemplary applicability condition template for the proportionality reasoning method according to the present invention;

FIG. 6E Depicts an exemplary applicability condition template for the causality reasoning method according to the present invention;

FIG. 7 Depicts an overview of the process flow of the control module of the present invention;

FIG. 8A Diagrams the object/relationship structuring that occurs during the creation of a root problem object and during temporal decomposition of a root problem object, according to the present invention;

FIG. 8B Depicts an exemplary variable object and its related objects as considered by the control module in generating a list of applicable reasoning methods;

FIG. 8C Diagrams an exemplary object/relationship structuring that occurs as a local reasoning method is applied according to the present invention;

FIG. 8D Diagrams an exemplary object/relationship structuring that occurs as an expansive reasoning method is first applied to a variable;

FIG. 8E Diagrams an exemplary object/relationship structuring that occurs as the sub-problems generated return with final hypotheses according to the present invention;

FIG. 8F Diagrams an exemplary object/relationship structuring that occurs during a short circuit check according to the present invention;

FIG. 8G Diagrams an exemplary object/relationship structuring that occurs during a long loop check according to the present invention;

FIG. 8H Diagrams an exemplary order of precedence of exemplary reconciliation rule objects according to the present invention; and

FIG. 8I Diagrams an exemplary subproblem and intermediate hypothesis configuration during the reconciliation process according to the present invention.

APPENDIX I Provides a listing of the exemplary two-way relationship definitions used in the present invention;

DETAILED DESCRIPTION

System Architecture Overview

Referring to FIG. 1, the knowledge-based variable projection system of the present invention can be implemented in an exemplary computer hardware configuration 1, using a computer 2 that comprises a processor 4 (configured to accept input, perform processing functions and output results) coupled to a memory 6 and capable of accessing and storing data in that memory 6. An input device 8, such as a keyboard, is coupled to the processor 4. Output devices, such as a cathode-ray tube display device 10 and a printer 12, are also coupled to the processor 4. The processor 4 interfaces with each device 6, 8, 10, and 12 in gathering and outputting data through a plurality of input/output modules 14. In an exemplary embodiment, the present invention can be implemented using a workstation in the VAXstation 3500 family of workstations manufactured by Digital Equipment Corporation of Maynard, Mass. That computer can be configured to operate using the DECwindows graphical user interface marketed by Digital Equipment Corporation. For more information on the VAXstation family of workstations and the DECwindows graphical user interface, the reader is referred to "Digital Equipment Corporation Workstation Family Technical Summary", October 1990: Document Order No. EC-H0742-51, which is expressly incorporated herein by reference.

In FIG. 1, a strategic planning system subspace 16 in the memory 6 contains a set of computer program modules 18 and a knowledge base 20 that provide instructions and information to permit the processor 4 to perform the functions of the present invention. The computer program modules 18 stored in the strategic planning system subspace 16 comprise computer executable code that is accessed by the processor 4 and enables it to perform the functions of variable projection, by accessing and manipulating the information in the knowledge base 20. As will be discussed in detail below, the knowledge base 20 comprises a network of type characterized data objects, which can be accessed by the processor 4 using the computer program modules 18.

Enterprise Information Modeling

All information used by the system is maintained as a set of hierarchically characterized objects, with a network of relationships interconnecting these objects by way of two-way relations. Information concerning an enterprise and its surrounding environment is modeled in the present invention, according to a method for characterizing information by type and networking the characterized information by relationships. This method of modeling, allows planning managers to accurately model the factors which affect the enterprise. Using the system of the present invention, the relationships and dependencies of any process of projection can be accurately and realistically modeled.

FIG. 2 depicts a fragment of a planning process, which diagrams, according to the method of the present invention, typical factors that a planner might consider in forming a projection. Suppose a planning manager wanted to determine how much revenue the enterprise would generate three years from now. The factors that he or she might consider could be:

What will the aggregate market be in terms of size and geography?

Which products can the enterprise build with existing process capability?

How competitive are the firm's products in the same market?

What special programs are underway to modify productivity, capability or capacity?

What is the required amount of resources to build the products?

What geographic constraints exist around the location of facilities?

What are the current resources?

The projection for the enterprise's revenue (as well as price, etc.) depends on the values of other factors, such as market share and market size. A complex system of interrelated variables can model the chain of factors on which the revenue projection depends. In creating such a model, revenue value projection and the factors on which it depends are represented as variables. A variable is any identifiable factor concerning an enterprise that has a value which typically changes over time. An enterprise's revenues certainly fluctuate over time.

In FIG. 2, the oval-shaped objects represent variables within an enterprise system. In the exemplary embodiment, specifications of each variable are contained in an object. The connections between the variables describe the relationships that are found in the enterprise. There are classes of relationships that bind these objects together. For example, a FLOW relationship describes enterprise reality as products are built, become inventory and are sold to become revenue. In FIG. 2, a products built variable 54 is connected by a FLOW relationship in the direction of an inventory variable 56. The implication of the two-directional FLOW relationship is that products built flow into inventory, and that inventory flows from the products that are built. The inventory variable 56 is also connected by a FLOW relationship in the direction of a revenue variable 40. As products are sold, inventory then flows into revenue. The inverse is that revenue flows from inventory.

A FLOW relationship can connect any two variables. A "principle of conservation of flow" applies to the flow sub-network specified by a set of flow relationships between a set of variables. The principle of conservation of flow is that the flow cannot be created or destroyed within flow networks. All intermediate variables in a network of variables connected by flow relationships conform to this principle.

There is also a categorization of variables into flow and level categories that is used to determine how the values of one variable influence another in a FLOW relationship. The conservation of flow principle is applied differently between flows and levels. A level value can accumulate, which means that a value for a level variable is calculated by considering its initial level, adding in the values of flow variables which flowed into it, and deducting the values of flow variables which flowed out of it. Flow variables allow for no accumulation, and a value is determined merely by inflows or outflows.

A PROPORTIONALITY relationship marks an association where one variable may bear some proportionality to another, without any implication of a causal relationship. For example, revenue earned has a PROPORTIONALITY relationship to its target market. In FIG. 2, the revenue variable 40 is associated with a target market variable 50, using a set of relationships to model this relationship. First, a two-way PROPORTIONALITY relationship (indicated by the arched line) exists between the revenue variable 40 and the target market variable 50 (i.e. revenue is proportional to target market and target market is proportional to revenue). To provide a way to capture the nature of the proportionality relationships, which is expressed as a ratio, the present invention provides a ratio variable 41 that is linked to the revenue variable 40 and the target market variable 50 by two relationships: an IS A NUMERATOR OF relationship and an IS A DENOMINATOR OF relationship. Those relationships are both two-way relationships. The target market variable 50 is a numerator of the ratio variable 41 and the ratio variable 41 has a numerator (i.e. the target market variable 50). Also, the ratio variable 41 has a denominator, the revenue variable 40, and that revenue variable 40 is a denominator for the ratio variable 41.

The target market variable 50 is related to other market indicators, and each is connected in the model by PROPORTIONALITY relationships. For example, the target market, as modeled, is linked to the general population in the market areas, the gross national product (GNP) of the region and the total market size. These factors are represented in the enterprise model by a collection of related variables--a population variable 44 is proportionally related to a GNP variable 46, which, in turn, is proportionally related to a total market variable 48. The total market variable 48 is proportionally related to the target market variable 50. Those variables reflect a chain of related variables that describe the target market variable 50 and its relationship to the revenue variable 40.

Additionally, the attrition rate of the labor pool is proportionally related to the number of employees. This is represented by an attrition variable 60 connected by a PROPORTIONALITY relationship to a resource-employees variable 52.

Each PROPORTIONALITY relationship is modeled using a direct two-way relationship between the proportional variables and a linked ratio variable to describe the proportionality. Between the GNP variable 46 and the population variable 44, there is a GNP-population ratio variable 47. Between the GNP variable 46 and the total market variable 48, there is a GNP-total market ratio variable 45. Between the total market variable 48 and the target market variable 50, there is a total-target ratio variable 43. In addition, between the resource-employees variable 52 and the attrition variable 60, there is a employees-attrition ratio variable 57.

Another set of factors that would affect an enterprise's revenue concerns the amount of product that flows into the market. In FIG. 2, the model fragment shows that the inventory level will fluctuate depending on the differential rates of sales and products built.

Employees of an enterprise produce its products. Accordingly, the resource-employees variable 52 is connected to an organization/enterprise object 120 containing information on the organization. The two-direction RESOURCE relationship indicates that employees are a resource of the enterprise and that the enterprise has a resource in its employees. Moreover, the enterprise object 120 is linked to the products it produces by a two-way PRODUCES relationship. In FIG. 2, the products-built object 54 is related to the enterprise object 120 indicating that the enterprise produces the built products and the products are produced by the enterprise.

To quantify the production relationships between employees and the products they produce, the present invention provides a fourth type of variable, a productivity variable, which measures productivity. This is a simple ratio of the output variable to the resource variable. It is categorized separately from general ratios so that its causal nature is easily identified. In FIG. 2, a employee-product productivity variable 122 is connected between the two variables 52, 54. Between the resource variable (resource-employees 52) and the productivity variable 122, there is a two-way HAS-PRODUCTIVITY relationship indicating that employees have an associated productivity and that the productivity variable is a productivity measurement for the employees. Between the productivity variable 122 and the products built variable 54, a PRODUCTIVITY IN PRODUCING relationship indicates that the output variable (products built) is produced with productivity of the employees, and that the productivity variable is a production measurement for the products built. This set of relationships between the resource-employees variable 52, the products-built variable 54, the productivity variable 122, and the organization object 120 together form a collective productivity relationship configuration. A productivity relationship is similar to the proportionality relationship, already mentioned, but it also indicates a causal dimension, not found in the proportionality relationship.

As newly hired employees are trained, they become part of the workforce until they are fired or quit. This set of relationships is modeled by a new hiring variable 58, that is connected to the resource-employees variable 52 by a FLOW relationship, the resource-employees variable 52 being connected by another FLOW relationship to an attrition variable 60. In FIG. 2, notice that the resource-employees variable 52 has an association with the attrition variable also described by a PROPORTIONALITY relationship, in addition to the FLOW relationship. Thus, in the present system, multiple relationships can describe the association between variables.

According to the method of the present invention, a user can make projections for any variable modeled. In the example described above, the planning manager wishes to project the revenue variable across a planning horizon of three years. However, in the present invention, any variable can be projected. The projections are based upon data that a planning manager has available for each variable. In the present invention, all the information concerning a variable can be incorporated into the model, using categorized objects and relationships.

Historical values for each variable are generally available and are stored in history objects. History objects are repositories of the past values, if they are known. For example, a revenue history object 62 contains the revenue earnings for the company for the past fifteen years, while a products-built history object 64 contains the yearly totals of products built by the enterprise over the past five years. Whatever historical information a company has for a variable, it can be stored in a history object and associated with the variable, using a two directional HAS HISTORY/HISTORY OF relationship.

In FIG. 2, a population history object 66, a GNP history object 68, a total market history object 70, a target market history object 72, the revenue history object 62, an inventory history object 74, the products built history object 64, a resource employees history object 76, a new hiring history object 77, and an attrition history object 78 all contain past values for the variables to which they are related through the HAS HISTORY/HISTORY OF relationship. In addition, the present invention provides for historical data to be associated with the productivity and ratio variables created through the specification of PRODUCTIVITY and PROPORTIONALITY relationships. For example, the GNP-total market proportionality variable 45, between the GNP variable 46 and the total market variable 48, has associated with it a history object 80 containing past values of the proportionality between GNP and the total market. This is achieved since a variable object is set up to represent the ratio. As a result, historical data on the relationship can be associated with the ratio variable. There is a history object 81, for the GNP-population variable 47, a history object 82, for the total-target proportionality variable 43, as well as a history object 84, associated with the proportionality variable 41 between the target market variable 50 and the revenue variable 40. There is also a history object 86 containing proportionality data associated with the proportionality variable 57 between the resource-employees variables 52 and the attrition variable 60. Further, a productivity history object 65 which contains historical data on the productivity variable 122. Thus, a history object acts as a repository for any historical information concerning any variable.

Another type of data that can be stored pertains to the effects that a given program can have on a variable. In the present invention, a program object and an effect object are used to represent the program (i.e. the cause) and the effect that program has on variable performance through time. For example, an employee incentive program, such as a quality circles program, might influence production. In the present invention, a program object contains relationships to its various effects. Effects objects contain data on how the program was thought to effect variable behavior. For instance, the quality circles might increase production by a percentage factor.

Referring to FIG. 2, a technology program object 90 contains data detailing how the enterprise has sought to upgrade the machinery used by the workers to produce the product. The effect of that program is represented in a technology program effect object 97. As the technology program affects the productivity of the workers, there is a two-way EFFECT relationship between the technology program effect object 97 and the productivity variable 122. Each program object is related to its corresponding effect by a two-directional CAUSES relationship. Each effect is related to the variable that it affects by a EFFECT relationship.

In FIG. 2, a retirement incentive program object 94 and a retirement incentive effect object 96 contain information on the effects that the program has on the attrition ratio 57. Also, a pricing discount program object 98 and a pricing discount effect object 100 contain data on the effects that a pricing scheme has on the proportionality between revenue and the target market, represented by a two-way EFFECT relationship between the pricing discount effect object 100 and the proportionality variable 41.

In the present invention, the user has the ability to activate or deactivate a program and its corresponding effects. If a program is deactivated, it will not be considered during the reasoning method analysis and reconciliation process, as will be described below. The use of such "switchable" modeling objects is one way in which a user can perform "what-if" analysis, using the modeling method of the present invention.

Statement data can also be incorporated into the enterprise modeling methods of the present invention. A planner may have access to statements about the likely future behavior of a variable. The statement may be in the form of a plan, opinion or goal. Thus, the present invention provides three objects to model statement data: plan objects, opinion objects and goal objects. For example, a marketing expert might have provided an opinion, concerning the size of the target market. Additionally, the enterprise might have set production goals for the upcoming years. Plan, opinion and goal objects contain a repository of information in the form of opinions, plans or goals which, in analysis, are considered to be "axiomatic". Plan, opinion and goal objects are associated with a variable using corresponding two-directional HAS PLAN/PLAN OF, HAS OPINION/OPINION OF and HAS GOAL/GOAL OF relationships. Associated with such statements is an indication of the respective source. The source is represented as a knowledge source object that is associated with a corresponding statement object, using PROVIDES PLAN, PROVIDES OPINION, and PROVIDES GOAL relationships.

Referring to FIG. 2, there is an opinion object 102 containing a opinion as to the size of the target market from a source listed in the associated knowledge source object 104. There is also a plan object 106 attached to the proportionality variable 41 between the target market variable 50 and the revenue variable 40. Plan object 106 is connected to a knowledge source 101 in a PROVIDES PLAN relationship. A statement in the form of a goal, concerning the revenue variable 40 and its associated source information is stored in a revenue goal object 108 and a revenue statement knowledge source object 110. An expert opinion, concerning the productivity relationship between the resource employee variable 52 and the products built variable 54, is specified in the model using a productivity opinion object 112 and a productivity opinion knowledge source object 114. The enterprise has also completed a study on attrition rates, and the conclusion of that study is contained in an opinion object 115. The source of that opinion, the document, is identified in a knowledge source object 117.

In addition to the modeling features described above, the present invention provides a method and apparatus for maintaining data and performing strategic analysis at varying levels of aggregation. The variables, as described above, reflect values for the entire enterprise, the entire population, etc. Those variables represent a high level of aggregation. In the strategic planning model, the present invention permits a user to "decompose" any variable, by breaking it down into different constituent subsets. For example, the employees of an enterprise could be split into groups by geographic location (e.g. the US-based employees), by the type of product they produce (e.g. the Model-X group) or the employee's function (e.g. widget machine operators). In a process to be described below, the present invention provides for the decomposition of variables into categories of sub-component objects. Data, such as historical data, statement data and program data, can be stored in objects related as subset objects of the decomposed variables. In FIG. 2, bracket indicators <> show that the GNP variable 46 has a decomposition by geographic region (such as US-GNP and European-GNP), while the total market variable 48 is decomposed in two ways, by geography and by product (as are the target market variable 50 and the revenue variable 40). The inventory variable 56 is decomposed by product only, but the products built variable 54 is broken down by geographic location and product. The attrition variable 60 and the new hiring variable 58 can broken down by function. As will be described below, a user is free to define different particular types of variable decomposition.

In tracking data, the decomposition feature works from an assumption that the subset objects created through the decomposition of a variable can be summed to form an aggregate value. However, in forming the aggregate values, different variables behave differently. Thus, variables which are subcategories of a flow variable behave differently from variables which are subcategories of a level variable. A level variable allows for an addition of the subset values to form an aggregate. For instance, the population of Europe is the sum of the populations of the individual countries of Europe. Inventory 56 and resource employees 52 are examples of level variables. In contrast are flow variables, the component parts of which cannot be merely summed to form an aggregate value. The total of exports from Europe which would be classified as a flow, is not simply the sum of exports from individual countries, as the export from one European country may be to another European country and could not be included in a net European export figure. Aggregation over flows must take into account interflows between the subsets.

Using the modeling system of the present invention, the user can specify a chain of interdependencies that accurately represent the environment of any enterprise. Because a method of model formulation for projection data has traditionally lain outside the domain of computer-aided decision support systems (as a sort of black art), the method of the present invention represents an advance. Here, a modeling system is presented by which multiple reasoning methods can be applied in parallel and in which multiple types of data, such as historical and opinion data can be simultaneously stored and manipulated. The present invention presents an architecture that allows the user to declare the known conceptual relationships that describe his or her planning domain. Through progressive refinement of this conceptual map, the user, in his interaction with the system, approaches an understanding of the implications and contradictions of such a network of knowledge. In this manner, he deepens his knowledge of the planning context.

With a model, such as that created above, a user will input a query to form a projection of a variable, such as the revenue variable over a planning horizon. To analyze the query, as will be described in detail below, the present invention applies a number of reasoning methods, using the data available and the relationship configuration of the model. A reasoning method is generally defined as a procedure that searches for evidence needed for its application and executes a procedure to generate a projection. Because the present invention supports the application of multiple reasoning methods in parallel, each projection created by each application of a reasoning method is considered to be only an intermediate hypothesis, which will be evaluated in a reconciliation process with others to form a final projection.

Implementation

This section presents an description of an exemplary implementation of the strategic planning system of the present invention, using the modeling approach outlined above.

Referring again to FIG. 1, the computer program modules 18 and knowledge base 20 of the present invention are located in the strategic planning system subspace 16 in memory 6. The computer program modules 18 stored in the strategic planning system subspace 16 comprise computer executable code that is accessed by the processor 4, enabling it to perform the functions of variable projection, by accessing and manipulating information stored in the knowledge base 20. The knowledge base 20 stored in the strategic planning system subspace 16 comprises hierarchically organized collections of data objects which can be accessed by the processor 4, using the computer program modules 18. In an exemplary embodiment, the computer program modules 18 of the present invention comprise code complied from code written in the KnowledgeCraft CRL language. The data objects of the knowledge base 20 are constructed using the KnowledgeCraft CRL language. The KnowledgeCraft CRL language and compiler are products of the Carnegie Group Inc. The language permits implementations in KnowledgeCraft CRL, layered on top of LISP computer language programming, such as in VAX LISP, which is a product of the Digital Equipment Corporation. For more information on the KnowledgeCraft CRL and VAX LISP programming languages, the reader is referred to the following publications which are expressly incorporated herein by reference: CRL Technical Manual Reserve/Update Information, Carnegie Group, Inc. May 1988; CRL Software User's Guide 3-2 Carnegie Group Inc.; Common LISP: The Language (2d ed), G. L. Steele, Digital Press, 1990.

FIG. 3 depicts a block diagram of the computer program modules 18 and knowledge base 20 used in the exemplary implementation. There is a control module 150 to process projection queries made by the user that is coupled to a series of reasoning method modules 152, a series of reconciliation rule execution modules 154 and the knowledge base 20. In addition, there is a model builder module 158, to create the enterprise model, such as the one depicted in FIG. 2. When a user enters a query for variable projection, the control module 150 functions to control the applications of reasoning methods, by accessing information stored in the knowledge base 20. In the knowledge base 20, the user defined data structures representing a business model await, along with predefined object categories and other information concerning the reasoning methods and reconciliation rules until the control module 150 accesses it to process a user query. In processing user queries, the control module 150 also creates a solution tree containing information concerning the set of intermediate hypotheses generated. In the knowledge base 20, all data instances are stored as objects in a hierarchical classification scheme 160. When a reasoning method applies, the control module 150 will invoke a corresponding reasoning method module 152 to perform the operation. In determining reconciliation between intermediate hypotheses, the control module 150 invokes a number of the reconciliation rule execution modules 154 to create the data model of the enterprise. Each of these components is discussed in detail below.

The Knowledge Base

Data in the knowledge base 20 is stored in a series of categorized objects that are linked in a hierarchical classification scheme 160. As can be seen in FIG. 3, data in the knowledge base 20 is grouped under five general branch categories along the hierarchical classification structure 160 under the root note 172.

First, there is a model primitives branch 162. These primitives provide categories for the variable, history, program, effect, organization, and statement objects, as described above with reference to FIG. 2. As is described below, users have a great flexibility to specify object instances according to available object classification primitives and to even specify new classification primitives. To construct the data instances and classification primitives, the present invention provides the model builder module 158.

Second, there is a relationships branch 164, which is a category for information concerning the relationships that are available for networking between objects during the modeling process. This information is stored in a series of objects under the relationship branch 164 that classifies the relationships between model building objects. As described above, relationships associate modeling objects, such as variables or history objects. Those links help in specifying a detailed representation of the production environment for an enterprise. The links also provide the basis for and determine the applicability of the reasoning methods.

Third, a control primitives branch 166 classifies the reasoning methods and reconciliation rules used within the present invention to perform variable projection. This branch 166 of the knowledge base 20 contains parameters for each reasoning method and each reconciliation rule used in the system.

Fourth, there is a solution primitives branch 168. In execution, the control module 150 will accept a user query for projection of a single variable or a group of variables. As will be described below, the control module 150 will apply multiple reasoning methods. In applying the reasoning methods, the control module 150 will create a solution tree (stored in the knowledge base 20 under the solutions primitives branch 168) to track the solution of the variable projection problem through the various multiple reasoning methods applied.

A fifth branch of the knowledge base 20 is a user focus primitives branch 170, containing listings of groups of variables that share a common dimension of decomposition that is of sufficient significance to be of interest to the user as a grouping rule. This allows the user to specify decomposition dimensions of interest when specifying a projection query. Generally, a user query contains a request to project a single variable. However, when variables have been decomposed the user sometimes wishes to find projected values for a set of variables. For example, the user might present a query to project all "European" variables, where a number of variables, such as GNP, revenue and inventory, are decomposed by geographic location. The information stored under the user focus primitive branch 170, allows users to make such a query.

In an exemplary embodiment, all the information in each object in the knowledge base 20 can be represented as an object frame, having the following form:

    ______________________________________
    {{FRAME-NAME
    RELATIONSHIP-1:
                  (list of other FRAMES)
    RELATIONSHIP-2:
                  (list of other FRAMES)
    :
    RELATIONSHIP-N:
                  (list of other FRAMES)
    ATTRIBUTE-1:  (list of values)
    ATTRIBUTE-2:  (list of values)
    :
    :
    ATTRIBUTE-N   (list of values)}}
    ______________________________________


The relationship declarations specify a list of proper relationships that can be specified between objects, and the attribute declarations specify a list of attributes or data slots that an object can contain. When data is specified or a variable is declared, the information is stored in an object having the general form stated above. To categorize the objects, the present invention provides for the specification of object primitives. Primitives do not contain actual model data. But each primitive in the categorization hierarchy of the knowledge base 20 contains a declaration of the possible attributes and relationships that the objects within a category should contain. Thus, a primitive is like a template. The primitives are arranged in a tree structure to provide a way to categorize the objects used in the enterprise model. In the present invention the attributes of a primitive can be inherited to the other objects specified below it. Thus, in specifying a modeling object, the categorizing of an object will greatly determine the attributes it can have and the relationships that it can establish. In this way attributes are "inherited" from the chain of primitives leading to the root node above an object.

In an exemplary embodiment, the root node 172 (FIG. 3) is a primitive object that has the following frame:

    ______________________________________
    {{PRIMITIVE
    HELP-TEXT:
    The five name primitives categories consist of control
    primitives, solution primitives and user-focus primitives which
    are used internally for reasoning and decision making.
    IS-A+INV  :MODEL PRIMITIVES
              SOLUTION PRIMITIVES
              CONTROL PRIMITIVES
              USER FOCUS PRIMITIVES
              RELATIONS
    ______________________________________


As described above, the root node in the hierarchical classification structure 160 (labeled PRIMITIVE) has sub-categories corresponding to each of the branches of the classification tree (i.e. model primitives 162, relationships 164, control primitives 166, solution primitives 168 and user focus primitives 170). All objects are linked in the classification hierarchy by a two-way relationship designated by the IS-A and IS-A+INV declaration. The IS-A relationship identifies the category of which that object is a member (e.g., the object is a member of the variable category). In this case, the primitive frame is a member of no category, because it is a root.

The inverse of the IS-A relation, IS-A+INV, provides an indication of the subcategory primitives underneath a particular primitive. In this case, the root primitive 172 has the subcategories corresponding to the branches of the knowledge base hierarchical tree, described above. In categorization, all of the objects are classified in the knowledge base 20 with the two-directional IS-A relationship.

Using these data structures the present invention provides for variable projection analysis, by allowing users to construct an enterprise model, using the data modeling approach, and then by the reasoning method dictated by the enterprise model to perform projection analysis, reconciling between the projections generated by the application of each reasoning method. The discussions to follow will describe in detail the model builder objects, the steps of building a model for variable projection, and processing of the control module 150 which applies the multiple reasoning methods and reconciles the projections to arrive at a variable projection value.

Model Object Classification Scheme

FIG. 4 depicts an exemplary classification scheme for the modeling objects of the model primitive branch 162 used in the present invention. The base of the branch 162 is a model primitive 201. Variables are stored under the variable primitive 200. As described above, a variable is defined to be a value pertaining to some factor of an enterprise, which generally changes over time. In the present invention, the method and apparatus for strategic planning provides projections only for defined variables. In an exemplary embodiment, variables are grouped into one of four categories: flow variables (grouped under the flow primitive 202), productivity variables (grouped under the productivity primitive 204), ratio variables (grouped under the ratio primitive 206) and level variables (grouped under the level primitive 208). In an exemplary embodiment, the frame for a variable is as follows:

    ______________________________________
    {{VARIABLE
    HELP-TEXT  :
            Variable is a model-primitive data object
            which provides a means of defining quantities
            in the system that change. Attributes typically
            associated with variables are :-
             annual growth rate
              weighing factor
              trend type
              number of years of history
              historical data
              units of measurement
    IS-A+INV  :    LEVEL
             FLOW
             PRODUCTIVITY
             RATIO
    IS-A              : MODEL PRIMITIVE
    DESIGNATORS       : NIL
    YEARS-OF-HISTORY  : NIL
    ANNUAL-GROWTH-RATE
                      : NIL
    PARAMETERS        : NIL
    WEIGHING-FACTOR   : 0.8
    TREND-TYPE        : LINEAR
    HAS-HISTORY       : NIL
    UNIT-OF-MEASUREMENT
                      : "UNITS"}}
    ______________________________________


This declaration of a variable primitive indicates it is a model primitive categorized under the model primitive by the hierarchical IS-A relationship that names its parent: MODEL PRIMITIVE. In the exemplary embodiment, the IS-A two directional relationship is a categorization aid provided by the KnowledgeCraft CRL language. The variable primitive 200 also declares several attributes that will be inherited to all variables. Variables typically have a UNIT OF MEASURE slot, and, by default, this unit of measure is expressed in "Units". As variables typically have historical data associated with them (as described above through a related history object), and because historical trend analysis is one reasoning method that is often applied on historical data, the variable primitive 200 provides a number of attribute slots that contain information necessary for the application of the historical trend analysis reasoning method (described in detail below). A YEARS-OF-HISTORY slot reflects the years of historical data available. In regression employed in historical trend analysis, the variable primitive 200 specifies in the TREND-TYPE slot that weighed linear regression is by default the type of regression that will be used for any variable. The default WEIGHING-FACTOR slot provides a value of 0.8. The declaration of the IS-A+INV relationship indicates that the variable has, in the exemplary embodiment, four subcategories for level, flow, productivity, and ratio variables. Corresponding primitives, a flow primitive 202, a productivity primitive 204, a ratio primitive 206 and a level primitive 208, provide subcategorization declarations for these four different types of variables. Each of these primitives will now be described.

The level primitive 208 groups variables which have a value at a particular instant in time. For example, in flow networks, level variables may act as accumulators. In decomposition structures, a level variable can be determined by simply adding up all of the decomposed sub-units. For example, the total population of Europe is determined by adding together all the populations of the individual countries in Europe. In an exemplary embodiment, the frame for the level primitive 208 is as follows:

    ______________________________________
    {{LEVEL
    HELP-TEXT:
    level is a variable that represents variables which are
    accumulations. For example, headcount, inventory etc.
    Level variables inherit attributes from the variable
    primitive.
    IS-A+INV          : RESOURCE
                      AVERAGE
                      INVENTORY
    IS-A              : VARIABLE
    DESIGNATORS       : NIL
    YEARS-OF-HISTORY  : NIL
    ANNUAL-GROWTH-RATE
                      : NIL
    PARAMETERS        : NIL
    WEIGHING-FACTOR   : 0.8
    TREND-TYPE        : LINEAR
    HAS-HISTORY       : NIL
    UNIT-OF-MEASUREMENT
                      : NIL}}
    ______________________________________


A comparison of the attribute slots with those of the variable primitive 200 shows that the level primitive 208 inherits all of its attributes from the variable primitive 200 that is above it in FIG. 4. However, the IS-A+INV relationship slot in its frame declaration indicates that the level primitive 208 provides a subcategory for variables, and it lists three subclasses corresponding to Average, Resource and Inventory primitives.

One specific type of level variable provided for in the exemplary embodiment of the present invention is a resource variable (grouped under the resource primitive 210). The resource primitive 210 groups the resources of an enterprise. Examples of resources that an enterprise might have include people, space, total assets and capital. Resource variables have special significance because they can be associated with a particular organization, which is one of the relationships necessary in the applicability conditions of the productivity analysis reasoning. Additionally, a productivity variable is also associated with the resource variable as was described above. Accordingly, the frame for the resource primitive 210 has two additional relationships slots to show these affiliations, HAS-PRODUCTIVITY and RESOURCE-OF, as shown below:

    ______________________________________
    {{RESOURCE
    HELP-TEXT :
    Resource is a sub-class of level variable. Attributes
    typically associated with resource variables are:
    the organization to which the resource belongs
    the productivity associated with the resource
    IS-A+INV  : PEOPLE
             SPACE
             STOCKHOLDERS EQUITY
             TOTAL ASSETS
             GROSS PROPERTY PLANT EQUIPMENT
             PLANT1 CAPACITY
             PROCESS-2 CAPACITY
             MACHINE-A CAPACITY
    IS-A                : LEVEL
    DESIGNATORS         : NIL
    YEARS-OF-HISTORY    : NIL
    ANNUAL-GROWTH-RATE  : NIL
    PARAMETERS          : NIL
    WEIGHING-FACTOR     : 0.8
    TREND-TYPE          : LINEAR
    HAS-HISTORY         : NIL
    UNIT-OF-MEASUREMENT : "UNITS"
    HAS-PRODUCTIVITY    : NIL
    RESOURCE-OF         : NIL}}
    ______________________________________


Flow variables (categorized under the flow primitive 202) represent a type of variable which is a value over a period of time, (e.g. revenue per year). In flow networks, flow variables cannot act as accumulators. In decomposition structures, aggregation over flow must take into account "interflows" between subsets. For example, a variable for net exports from Europe is a flow variable and not a level variable, because the value is not determined by a simple sum of exports from individual countries. One European country may export to another country, and the conservation of flow principles must be taken into account. Although there is a fundamental theoretical difference between flow and level variables which affects the application of a conservation of flow reasoning method, the basic frame structures for their primitives are the same. In an exemplary embodiment, the flow primitive frame is as follows:

    ______________________________________
    {{FLOW
    HELP-TEXT :
    Flow is a variable category that represents no accumu-
    latory variables, such as the movement of people from
    one job category to another or the movement of
    revenue from one area to another. Flow variables
    inherit attributes from the variable primitive.
    IS-A+INV :
              REVENUE
              SPEND
              BUILD
              PROFIT
              INVENTORY GROWTH
              EQUIPMENT DISCOUNTS
              EQUIPMENT ALLOWANCES
              EQUIPMENT UPLIFT
              NEW HIRING
              ATTRITION
              TRANSFER SHIPMENT
    IS-A              : VARIABLE
    DESIGNATORS       : NIL
    YEARS-OF-HISTORY  : NIL
    ANNUAL-GROWTH-RATE
                      : NIL
    PARAMETERS        : NIL
    WEIGHING-FACTOR   : 0.8
    TREND-TYPE        : LINEAR
    HAS-HISTORY       : NIL
    UNIT-OF-MEASUREMENT
                      : "UNITS"}}
    ______________________________________


The entries in the IS-A+INV relationship slot show examples of declared flow variable objects.

In addition to the flow and level subcategories, the exemplary embodiment has two additional subcategories for productivity and ratio variables. As described above, ratio variables represent ratios between variables. In an exemplary embodiment, the ratio primitive 206 has the following frame:

    ______________________________________
    {{RATIO
    HELP-TEXT :
     Ratio is a variable which has a numerator and a
     denominator. Ratio variables inherit attributes from the
     variable primitive. Attributes typically associated with
     these variables are:
    denominator
    numerator
    IS-A+INV:
    GROSS RETURN ON SALES
    EFFECTIVE TAX RATE
    NET RETURN ON SALES
    RATIO OF DIRECT HEADCOUNT TO HEADCOUNT
    IS-A             : VARIABLE
    DESIGNATORS      : NIL
    YEARS-OF-HISTORY : NIL
    ANNUAL-GROWTH-RAT
                     : NIL
    PARAMETERS       : NIL
    WEIGHING-FACTOR  : 0.8
    TREND-TYPE       : EXPONENTIAL
    HAS-HISTORY      : NIL
    UNIT-OF-MEASUREMENT
                     : NIL
    HAS-DENOMINATOR  : NIL
    HAS-NUMERATOR    : NIL}}
    ______________________________________


To express ratios between the variables of the proportionality relationship, the attribute declaration above contains slots for a numerator and denominator, which correspond to the variables in the proportionality relationship.

As will be described in detail below, the modeling approach of the present invention creates ratio objects and their corresponding relationships, where a PROPORTIONALITY relationship is specified between two other variables. In the frame description above, the RATIO OF DIRECT HEADCOUNT TO HEADCOUNT is indicative of a system generated ratio object that is hierarchically attached under the ratio primitive.

The final variable subcategory groups productivity variables under the productivity primitive 204. Productivity variables represent a measure of the rate of efficiency of a resource (grouped under the resource primitive 210). In the exemplary embodiment, the productivity primitive has the following frame:

    ______________________________________
    {{PRODUCTIVITY
    HELP-TEXT :
     Productivity is a variable that represents a measure of the
     rate of efficiency of some resource. Productivity
     variables inherit attributes from the variable primitive.
     A resource variable is typically associated with a
     productivity variable.
    IS-A+INV : EUROPE MFG HEADCOUNT EUROPE
               PRODUCT NOR MFG HEADCOUNT
               MFG VALUE ADD PRODUCTIVITY
    IS-A                 : VARIABLE
    DESIGNATORS          : NIL
    YEARS-OF-HISTORY     : NIL
    ANNUAL-GROWTH-RATE   : NIL
    PARAMETERS           : NIL
    WEIGHING-FACTOR      : 0.8
    TREND-TYPE           : EXPONENTIAL
    HAS-HISTORY          : NIL
    UNIT-OF-MEASUREMENT  : NIL
    PRODUCTIVITY-OF      :
    PRODUCTIVITY-IN-PRODUCT
                         : NIL}}
    ______________________________________


Because each productivity variable is associated with a resource, the productivity primitive 204 frame includes an attribute slot to identify the resource.

In addition to variables, other model objects in the modeling system of the present invention are stored according to the object categorization scheme.

Program objects are stored under a program primitive 212. A program is a change mechanism that will cause a change in particular variables. For instance, this can be a set of activities put in motion by the enterprise, or can arise out of the enterprise's environment. For example, a new product program should cause a rise in sales and an influx of new capital. In the exemplary embodiment, a frame for the program primitive 212 is as follows:

    ______________________________________
    {{PROGRAM
    HELP-TEXT :
    program is a model primitive subcategory which
    represent agents of causal change in model.
    IS-A+INV :   NEW PRODUCT PROGRAM
                 SOURCING PROGRAM
                 MARKET PROGRAM
                 INFORMATION
                  TECHNOLOGY PROGRAM
                 PROCESS PROGRAM
                 COMPONENT
                  TECHNOLOGY PROGRAM
                 HUMAN RESOURCE PROGRAM
                 POLICY
    IS-A :       MODEL PRIMITIVE
    ACCEPTANCE:  T
    CAUSES:      NIL}}
    ______________________________________


The program primitive 212 frame contains an ACCEPTANCE slot to indicate whether the program has been accepted (activated), in which a user can enable or disable a particular instance of a program. This feature is one way in which managers perform what-if analysis with the present invention. By default, all programs are "accepted" or listed as active.

Programs create effects on variables. Effect objects are stored in the knowledge base 20 under an effect primitive 214. In an exemplary embodiment, the effect primitive 214 has the following frame:

    ______________________________________
    {{EFFECT
    HELP-TEXT :
    Effect is a model primitive subcategory, instances of
    which are used to model the result of a program
    Attributes typically associated with a primitive include:
           the program it is an effect of
           the variables it effects
           information describing the effect
    IS-A+INV :
             TURNS IMPROVEMENT
             SECOND SHIFT IMPACT ON SPACE
             THIRD SHIFT IMPACT ON SPACE
             REDEPLOYMENT
    IS-A :   MODEL PRIMITIVE}}
    ______________________________________


Effects are caused by programs, and the effects are said to act on variables.

History objects are grouped under a history primitive 216. History objects store data concerning the historical values that a particular variable has. Thus, history objects are repositories of information concerning the past values of the variables modeled. In an exemplary embodiment, the history primitive has the following frame:

    ______________________________________
    {{HISTORY
    HELP-TEXT :
     History is a model primitive which is used as a template
     to store past data about an object. It has attribute slots
     for each of the years between fy72 and fy90.
    IS-A+INV :
              RATIO-HISTORY
              PRODUCTIVITY-HISTORY
              COST OF SALES HISTORY
              INVENTORY GROWTH HISTORY
              HEADCOUNT HISTORY
              DEPRECIATION HISTORY
              MFG COST HISTORY
              EUROPE POPULATION HISTORY
              EUROPE GNP HISTORY
    IS-A : MODEL PRIMITIVE
    FY1972 : NIL
    FY1973 : NIL
    FY1974 : NIL
    FY1975 : NIL
    FY1976 : NIL
    FY1977 : NIL
    FY1978 : NIL
    FY1979 : NIL
    FY1980 : NIL
    FY1981 : NIL
    FY1982 : NIL
    FY1983 : NIL
    FY1984 : NIL
    FY1985 : NIL
    FY1986 : NIL
    FY1987 : NIL
    FY1988 : NIL
    FY1989 : NIL
    FY1990 : NIL }}
    ______________________________________


In the present invention, a user can specify instances of historical data and associate them to particular variables. However, in the present invention, the system can also create history objects, during application of the reasoning methods. For example, in the IS-A+INV declaration shown above, the RATIO-HISTORY and PRODUCTIVITY-HISTORY objects contain system generated data that are associated with ratio and productivity variables already implicitly in the model.

Statement objects are grouped under the statement primitive 218. As described above, statement objects, such as opinions, plans, and goals, provide information concerning opinions or guesses on the future value of a variable. Examples of statements include an opinion by expert, a statement of a goal or quota for an enterprise, or a description of an enterprise plan. In the exemplary embodiment, the statement primitive has the following frame:

    ______________________________________
    {{STATEMENT
    HELP-TEXT :
     statement is a model primitive which accommodates
     declared information such as in plans, goals and opinions.
    IS-A+INV : PLAN OPINION GOAL
    IS-A : MODEL PRIMITIVE
    STATUS : NIL
    ______________________________________


As can be seen, there are three categories of statements, i.e. Plans, goals and opinions. All instances of plans, goals and opinions vary from model to model and are user defined. Semantically plans, goals and opinions are treated the same by the system. Subcategorization is thus merely to facilitate ease of retrieval of particular statements by the user in browsing the model or in activating statements.

Below the statement primitive 218 in the model primitive 201 hierarchy, are three additional primitives to further categorize available statement data: an opinion primitive 219, a plan primitive and a goal primitive 221. The primitive frame structure for the opinion 219, plan 220 and goal 221 primitives are similar. For example, the frame for the plan primitive is as follows:

    ______________________________________
    {{PLAN
    HELP-TEXT :
    A plan is a variable which is of type statement.
    Plan contains information concerning:
    date the plan was issued
    subject of the plan
    status to indicate if the plan should be
    considered when the programs is run
    IS-A+INV
           : WIDGET BUILD PLAN
    IS-A          : STATEMENT
    RATIONALE     : NIL
    STATUS        : NIL
    DATE          : NIL
    OPINION OF    : NIL
    IS-A-PLAN-FOR : NIL}}
    ______________________________________


As can be seen, in addition to attributes inherited from the statement primitive 218, the plan primitive 220 contains a STATUS slot that indicates whether a particular plan would be active or not. Users perform what-if analysis by activating or deactivating that slot. The IS-A-PLAN-FOR slot provides the link to a particular variable. A free text natural language justification for a particular plan can be stored in the RATIONALE slot.

A plan object 222 might be stored under a plan primitive 220 as follows:

    ______________________________________
    {{WIDGET BUILT PLAN
    HELP-TEXT :
    A plan is a variable which is of type statement.
    Plan contains the attributes :-
    date the plan was issued
    subject of the plan
    status to indicate if the plan should be
    considered when the program is run
    RATIONALE    : JOE BLOGGS KNOW
                  EVERYTHING
    STATUS       : FORECAST
    DATE         : 1990 FEBRUARY
    IS-A-PLAN-FOR
                 : BUILD WIDGETS
    FY1991       : 11312
                 .sup.  AMOUNT
    FY1992       : 12954
                 .sup.  AMOUNT
    OPINION-OF   : JOE BLOGGS
    ______________________________________


In the example above, the numbers listed are for specific amounts of widgets to be produced in three different years. The DATE slot contains the date on which the plan was adopted. As all statements are deemed to be axiomatically true, the DATE slot provides the system with a way of evaluating between similar data. In the present invention data can be stored either as an amount (as shown above) a ratio or as a stepping factor. Moreover for use in reasoning methods involving such techniques as "beta distribution", multiple values for a given year can be stored, such as for best case, worst case, most likely case scenarios.

Knowledge source objects are stored under a knowledge source primitive 229. As described above, knowledge source objects contain information on the sources of information for use in statement objects. For example, a named expert might have rendered an opinion concerning, for example, the size of a future market. In an exemplary embodiment, the knowledge source primitive 229 has the following frame:

    ______________________________________
    {{KNOWLEDGE SOURCE
    HELP-TEXT :
    Knowledge source is a model primitive which represents
    sources of information.
    The four subcategories of knowledge-source are
    document
    business-manager
    user
    expert
    IS-A+INV :
             EXPERT
             BUSINESS MANAGER
             DOCUMENT
    IS-A : MODEL PRIMITIVE
    ACCREDITED: NIL
    ______________________________________


Knowledge sources may be active or inactive, which again permits users to perform what-if analysis using the statements. Below the knowledge source primitive 229 in the classification structure are primitives to further categorize knowledge source data: a document primitive 203, an expert primitive 205 and a business manager primitive 207.

Organization objects are grouped under the organization primitive 224. As described above, organization objects contain data concerning any enterprise or other entity which controls a resource. An example could be subdivisions of the enterprise, affiliates of an enterprise, or a government entity. In the exemplary embodiment, the organization primitive 224 has the following frame:

    ______________________________________
    {{ORGANIZATION
    HELP-TEXT :
    Organization is a model primitive representing an object
    which has resources and perhaps produces outputs.
    for example business units
    IS-A+INV
            :     MFG
            :     EUROPE MFG
            :     US MFG
    IS-A    :     MODEL PRIMITIVE}}
    HAS RESOURCE:
                NIL
    PRODUCES :
              NIL
    ______________________________________


In the frame above, the IS-A+INV relationship slot identifies instances of organization resource objects: EUROPE MFG and US MFG.

In addition to organization objects, enterprise organization data can also be grouped by site location. Data concerning a site location can be stored in a site object, grouped under a site primitive 226. In an exemplary embodiment, the site primitive has the following frame:

    ______________________________________
    {{SITE
    HELP-TEXT :
    Site is a mode primitive which identifies a corporate
    location. an attribute associated with site is :-
    IS-A+INV
            :     PLANT
                  OFFICE
    IS-A    :     MODEL PRIMITIVE
    LOCATION-CODE : NIL}}
    ______________________________________


A problem solving framework primitive 230 contains data on the base year and the planning horizon. This is the time frame over which a projection is based. In an exemplary embodiment, the problem solving framework primitive 230 has the following frame:

    ______________________________________
    {{PROBLEM SOLVING FRAMEWORK
    HELP-TEXT         :
    IS-A              :     MODEL PRIMITIVE
    BASE-YEAR         :     1990
    LAST-PROBLEM-SOLVED
                      :     NIL
    PLANNING-HORIZON  :     4}}
    ______________________________________


A BASE-YEAR slot provides the year from which the projection can start. The PLANNING HORIZON slot contains the number of years over which the projections can range.

Finally, decomposition rule objects contain information specifying the decomposition of an object; they are stored under a decomposition rule primitive 228. As mentioned above, a decomposition rule is a set of instructions to provide for the automatic breakdown of any variable. A decomposition rule allows data pertaining to a variable to be maintained at varying levels of aggregation or detail. For example, the production variable can be decomposed by geographic location and production data can be maintained by plant. In the hierarchical classification structure 160 (FIG. 3) decomposition rules are stored under a decomposition rule primitive 228. In an exemplary embodiment, the decomposition rule primitive 228 has the following frame:

    ______________________________________
    {{DECOMPOSITION RULE
    HELP-TEXT :
    Decomposition rule is a model primitive which enables
    the logical breakdown of variables within the strategic
    planning domain (for example; headcount, revenue)
    into more specific categories (for example; geography
    areas, specific functions).
    The attributes associated with a decomposition-rule are:-
    existence of subset decomposition
    categories by which subject is being decomposed
    subject being decomposed
    IS-A+INV   :     INVENTORY BY GEOGRAPHY
                     MFG BY INVENTORY TYPE
                     ENTERPRISE BY CORPORATE
    FUNCTION
               QUALITY BY GEOGRAPHY
               PURCHASING BY GEOGRAPHY
               PRODUCTION BY GEOGRAPHY
               PERSONNEL BY GEOGRAPHY
    IS-A       :     MODEL PRIMITIVE
    HAS-SUBSETS
               :     NIL
    DECOMPOSITION-BY:  NIL
    DECOMPOSITION-OF:  NIL}}
    ______________________________________


Decomposition Described

Decomposition is an indexing scheme, in which a variable is represented in a more detailed way through a group of subset variables. For example, the group of employees of an enterprise can be organized into subsets by geographic location or by function, or both. To implement this decomposition scheme, the present invention provides an additional set of objects and relationships that can be associated with a variable. Further, as will be explained in detail below, the methods and apparatus of the present invention support hierarchical layering of decompositions, decomposing a single variable down a decomposition tree of layered decompositions, as well as the decomposition of a sub-network.

FIG. 5A depicts an exemplary representation of a set of objects and relationships used in the decomposition of a single variable, a resource-employees variable 52. To implement a decomposition of a variable, a user must specify the categories of decomposition in a decomposition rule. In FIG. 5A, an enterprise-by-geography decomposition rule object 300 contains the following declaration:

    ______________________________________
    {{ENTERPRISE-BY-GEOGRAPHY
    HELP-TEXT :
    Decomposition rule is a model primitive which enables
    the breakdown of variables within the strategic
    planning domain (for example; headcount, revenue) into
    more specific categories (for example; geography areas,
    specific functions).
    the attributes associated with a decomposition rule including
    the categories by which subject is being decomposed
    IS-A             : DECOMPOSITION RULE
    HAS-SUBSETS      : US
                     EUROPE
                     ASIA
    DECOMPOSITION-BY : GEOGRAPHY
    DECOMPOSITION-OF : ENTERPRISE}}
    ______________________________________


The enterprise-by-geography rule object 300 is linked to the decomposition rule primitive 228 (see also FIG. 4) by a two-directional IS-A relationship. As can be seen from the declaration of the enterprise-by-geography rule object 300, there are additional objects associated with it through three different two directional relationships: HAS-SUBSETS, DECOMPOSITION-BY and DECOMPOSITION-OF relationships.

Each decomposition rule has a parent. In FIG. 5A, the parent is enterprise (represented by an enterprise object 304). The enterprise object 304 is attached to the categorization hierarchy by an IS-A relationship to the organization primitive 224. It is identified as a parent in FIG. 5A because it is related to the decomposition rule 300 by a HAS DECOMPOSITION relationship.

The declaration of the enterprise-by-geography rule 300 also indicates that this decomposition rule has a number of subsets corresponding to US subset object 308, the Europe subset object 310 and an Asia subset object 312.

Each of the subsets are created by the system, when a decomposition rule is created. These subset objects 308, 310 and 312 are associated with the enterprise-by-geography decomposition rule 300 by a HAS-SUBSET relationship. In an exemplary embodiment, each subset object has a frame, such as the following for the Europe subset object 310:

    ______________________________________
    {{EUROPE
    HELP-TEXT :
    A user focus primitive which is used to gather variables together
    in which the user might be interested
    IS-A            : GEOGRAPHY
    HAS-OBJECT      : NIL
    LOCAL-DESIGNATORS
                    : EUROPE
    IS-A-SUBSET-OF  : ENTERPRISE BY
                     GEOGRAPHY}}
    ______________________________________


An object frame declaration similar to the European declaration exists in the US subset object 308 and the Asia subset object 312. The Europe subset object 310 bears a IS-A-SUBSET-OF relationship to the decomposition rule object 300. A HAS-OBJECT relationship slot in the Europe subset object 310 declaration stores lists of "EUROPEAN" variables. As will be described below, these variables are created when the decomposition rule is applied to the decomposition of specific variables. The LOCAL-DESIGNATORS slot in the declaration for the Europe object 310 provides for naming each instance of a decomposed variable. As will be described below, in the application of decomposition to a variable, the designators from the decomposition rule subsets are used in the naming process of the subsets that form the decomposition of variables.

As can be seen from the frame of the Europe subset object 310 the sub set objects (308, 310, 312) of a decomposition rule (302) are also linked by an IS-A relationship to a geography object 302. The geography object is an instance of a user focus primitive, which is used to group instances of decomposed variables by type. The subset objects play a dual role in that they are also instances of the user focus primitives, and serve as collecting points by category for instances of decomposed variables. As described above this grouping technique allows users to specify projection queries such as one to project all modeled European variables. The Geography maintains a link to each subcategory of a particular decomposition rule. The geography object 302 is also linked to the hierarchical classification scheme 160 (FIG. 3), by an IS-A relationship to a user focus primitive 205. The geography object 302 is also linked to the enterprise-by-geography rule object 300 by a DECOMPOSITION-BY relationship. In an exemplary embodiment the geography object, a typical user focus primitive object, has the following frame:

    ______________________________________
    {{GEOGRAPHY
    HELP-TEXT  :
    IS-A       :    USER FOCUS PRIMITIVE
    IS-A+INV   :    US
               :    ASIA
               :    EUROPE}}
    ______________________________________


Once a decomposition rule is specified, the rule can be applied to decompose any variable. This method permits speedy model building, because this generic decomposition rule can be applied to any variable.

Referring to FIG. 2 for example, the enterprise-by-geography-decomposition rule 300 of FIG. 5A can be applied to the resource-employee variable 52, the products-built variable 54, the revenue variable 40, the target market variable 50, the total market variable 48, the GNP variable 46 and the population variable 44. Basically, any variable that is relevant to the parent of the decomposition rule (e.g., enterprise) can be decomposed using the rule described above.

FIG. 5A further depicts the single decomposition of the employee resource variable 52 (see also FIG. 2) by the enterprise-by-geography rule 300. During model building, the user invokes a function of the model builder module 158 (see FIG. 3) to decompose the resource-employee variable. The procedure will first create an instance object for the decomposition rule 300. In an exemplary embodiment, the employees-by-geography instance object 320 has the following frame:

    ______________________________________
    {{EMPLOYEES-BY-GEOGRAPHY
    HELP-TEXT
             :
    This is a instance of a generic decomposition rule
    DESIGNATORS:     : NIL
    YEARS-OF-HISTORY : NIL
    ANNUAL-GROWTH-RATE
                     : NIL
    PARAMETERS       : NIL
    WEIGHTING-FACTOR : 0.8
    TREND-TYPE       : LINEAR
    UNIT-OF-MEASUREMENT
                     : PERSON
    IS-A             : RESOURCE
    HAS-SUBSETS      : EUROPE EMPLOYEES
                     ASIA EMPLOYEES
                     US EMPLOYEES
    DECOMPOSITION-BY : GEOGRAPHY
    DECOMPOSITION-OF : EMPLOYEES
    ROOT-OBJECT      : EMPLOYEES
    INSTANCE-OF      : ENTERPRISE BY
    GEOGRAPHY}}
    ______________________________________


This object 320 is linked to the employees variable 52 by a two-directional IS-A DECOMPOSITION OF relationship. Further, the employees-by-geography instance object 320 is linked to the enterprise-by-geography rule 300 by a two-way INSTANCE OF relationship. As shown above, an attribute slot, ROOT-OBJECT, is provided to indicate that the root variable being decomposed is the employees variable 52. An attribute slot, DESIGNATORS, allows for designators used in naming the decomposed variables to be inherited into the subsets of the decomposition. The other attributes of the frame of the employees-by geography instance object 320 are inherited from the employees variable 52 (such as the ANNUAL GROWTH RATE slot and the YEARS OF HISTORY slot).

The second aspect of applying the generic decomposition rule is creating the subset variables, which are the subsets of the decomposed variable. In FIG. 5A, there are three subset variables, an US-employees variable 322, an Europe-employees variable 324 and an employees variable 326. These variable subset objects have a frame in the following form:

    ______________________________________
    {{EUROPE-EMPLOYEES
    HELP-TEXT         : This is an instance of
                       a decomposed
    variable.
    DESIGNATORS       :    EUROPE
    YEARS-OF-HISTORY  :    9
    ANNUAL-GROWTH-RATE
                      :    NIL
    PARAMETERS        :    0.96647348611543D0
                           R-SQUARED
                           134.5203686841013D0
                           BETA-1
                           -331053.88362351D0
                           BETA-0
    IS-A SUBSET OF    :    EMPLOYEES-BY-
                            GEOGRAPHY
                           INSTANCE
    WEIGHTING-FACTOR  :    0.8
    TREND-TYPE        :    LINEAR
    HAS-HISTORY       :    EUROPEAN
                            EMPLOYEE HISTORY
    UNIT-OF-MEASUREMENT
                      :    PERSON
    IS-A              :    RESOURCE
    IS SUBSET AND     :    EMPLOYEE-BY-
                            GEOGRAPHY
    ______________________________________


The US, Europe and Asia subset variable objects 322, 324, 326 are linked to the employees-by-geography instance object 320 by a HAS SUBSET relationship. Further, each subset variable objects 322, 324, 326 is linked to a corresponding subset of the decomposition rule objects 308, 310, 312 by a HAS OBJECT relationship. As can be seen from the declaration many of the attributes are inherited either from the employees variable 52 or from the employees-by-geography instance object 320 or from the variable superset primitive 200. The ANNUAL GROWTH RATE slot is inherited from the employees variable 52. A value can be placed by the system in the case of constant percentage growth in a geometric case. The PARAMETERS slot is also inherited from the employees variable 52. It would be filled in by the system during problem solving by the application of regression techniques. A TREND-TYPE attribute is inherited from the employee variable's superset primitive (i.e. the variable primitive 200.) This value could be user specified. The value in the WEIGHTING-FACTOR slot is also inherited from the variable primitive 200. That value could also be user specified.

In order to facilitate further inheritance, the subset is associated with the supercategory of the superset (i.e., EUROPE-MFG-HEADCOUNT IS-A RESOURCE). The subset is linked to the instance of the application of the decomposition rule by the IS-A-SUBSET-OF relationship. All the other relationships in this example were user specified after decomposition.

The DESIGNATORS label "Europe" is drawn from the LOCAL-DESIGNATOR slot in the Europe subset object 310 of the decomposition rule, which corresponds to the decomposed variable instance. In this case, the Europe subset object 310 designator is used for the corresponding Europe employees variable.

While the attributes of the subset objects 322, 324 and 326 can be inherited, the relationships from the superset variable employees 52 cannot. Each variable created through decomposition is considered independent and must be given its own set of relationships to other objects in the model. For example, a Europe-employees history object 328 can be associated with the employees in Europe subset variable 324. That variable 324 could not inherit a relationship to a history object, such as 330, that was related to the employees variable 52.

The description above provides one application of the enterprise-by-geography decomposition rule 300. The decomposition rule is generic and can be applied to many variables. As decompositions of variables occur, the relationships are created from the enterprise geography rule to each instance of this decomposition rule application.

Also, with each application of a decomposition rule to various variables, each of the subset variables associated with the decomposition rule (such as the Europe subset object 310) will have a set of links to each subset variable that corresponds to its subset class through the HAS-OBJECT relationship. The following shows the frame for the EUROPE object 310 after several applications of the decomposition rule with several "EUROPEAN" variables listed:

    ______________________________________
    {{EUROPE
    HELP-TEXT        :    A user-focus primitive which
                          is used to gather variables
                          together which the
                          user may or may not be
                          interested in
    IS-A             :    GEOGRAPHY
                          USER FOCUS PRIMI-
                           TIVE
    HAS-OBJECT       :    EUROPE EMPLOYEES
                          EUROPE PRODUCTS
                           NOR
                          EUROPE SALES
                          EUROPE MODULES
    DECOMPOSITION BY :    GEOGRAPHY
    LOCAL-DESIGNATORS
                     :    EUROPE
    IS-A-SUBSET-OF   :    DEC BY GEOGRAPHY}}
    ______________________________________


The HAS-OBJECT relationships provide links to the categories of interest that are used for projection queries by the user focus primitive.

Another feature of the present invention provides for hierarchically layering decomposition rules. FIG. 5A depicts the object/relationship configuration for the further decomposition of the enterprise-by-geography rule 300 by creating a decomposition rule for Europe subset object 310. The decomposition rule breaks down the Europe category by function such as, secretarial, purchasing and production. A new decomposition rule object, Europe-by-function 350 must be declared. This decomposition rule object 350 has a frame similar to the enterprise-by-geography decomposition rule object 300, listed above. One difference, however, in this instance, is that the parent of the Europe-by-function decomposition rule 350 is the Europe-subset object 310 (and not the enterprise object 304). Another difference is that the method of decomposing is by function (not by geography). Accordingly, a function object 358, similar to the geography object 302, is created. The function object 358 has subsets corresponding to the functions that a typical enterprise employee might have, such as secretarial (corresponding to a Europe secretarial subset object 352), purchasing (corresponding to a Europe purchase subset object 354), and production (corresponding to a Europe production subset object 356) functions. The Europe-by-function decomposition rule object 350 is additionally linked in the hierarchical classification scheme 160 by an IS-A relationship link to the decomposition rule primitive 228.

This decomposition rule could then be applied to any variable which was related to the Europe subset object 310, for example the employees-in-Europe variable 324 (a variable instance of the previous decomposition by geography of the employees variable 52). In decomposition, the employees in Europe variable 324 would be decomposed, as the employees variable 52 was above, by creating an instance of the decomposition rule object, Europe-employees-by-function 360, and variable instances 362, 364, 366 to break the variable into the subsets by function. In FIG. 5A, a Europe-employee-by-function decomposition rule instance object 360 is related to the employees-in-Europe variable 324 by a IS-A-DECOMPOSITION-OF relationship, and has the following frame form:

    ______________________________________
    {{EUROPE-EMPLOYEES-BY-FUNCTION
    HELP-TEXT  :
                     Decomposition rule is a
                     model primitive which
                     enables the logical
                     breakdown of variables
                     within the strategic
                     planning domain (for
                     example; headcount,
                     revenue) into
                     more specific categories
                     (for example; geography
                     areas, specific functions).
                     the attributes associated
                     with a decomposition-rule
                     are :-
                     categories by which sub-
                     ject is being decomposed
                     subject being de-
                     composed
    DESIGNATORS       :    EUROPE
    YEARS-OF-HISTORY  :    NIL
    ANNUAL-GROWTH-RATE
                      :    NIL
    PARAMETERS        :    NIL
    WEIGHTING-FACTOR  :    0.8
    TREND-TYPE        :    LINEAR
    UNIT-OF-MEASUREMENT
                      :    PERSON
    IS-A              :    RESOURCE
    DECOMPOSITION-BY  :    FUNCTION
    HAS-SUBSETS       :    EUROPE SECRETARIAL
    EMPLOYEES
                     EUROPE PURCHAS-
                      ING EMPLOYEES
                     EUROPE PRODUC-
                      TION EMPLOYEES
    DECOMPOSITION-OF  :    EUROPE EMPLOYEES
    ROOT-OBJECT       :    EMPLOYEES
    LOCAL-DESIGNATORS :    EUROPE
    INSTANCE-OF       :    EUROPE-BY-FUNCTION}}
    ______________________________________


Using the Europe-employee-by-function instance of the decomposition rule, the system generates sub-component variables for the Europe employees variable 324, e.g., a Europe-secretarial-employees variable 362, a Europe-purchasers-employees variable 364 and a Europe-production-employees variable 366.

These new subset variables have frames as follows, such as that for the Europe-secretarial variable 362:

    ______________________________________
    HELP-TEXT        :
                          the attributes associated with a
                          decomposition-rule include
                          categories by which subject is
                          being decomposed and subject
                          being decomposed
    DESIGNATORS      :    SECRETARIAL
                          EUROPE
    YEARS-OF-HISTORY :    NIL
    ANNUAL-GROWTH-RATE
                     :    NIL
    PARAMETERS       :    NIL
    WEIGHTING-FACTOR :    0.8
    TREND-TYPE       :    LINEAR
    HAS-HISTORY      :    EUROPE-SECRETARIAL
                          EMPLOYEES HISTORY
    UNIT-OF-MEASUREMENT
                     :    PERSON
    IS-A             :    PEOPLE
    IS-A-SUBSET-OF   :    EUROPE EMPLOYEES BY
                          FUNCTION
    ROOT-SCHEMA      :    EMPLOYEES
    ______________________________________


Thus, two levels of decomposition are associated with the employees variable 52. There is no depth limit in the amount of layers that can be in a decomposition rule tree. Moreover, this tree can then recursively be applied in the decomposition of variables. It can easily be seen how such a function would create a tree of subset variables underneath the variable specified corresponding to the decomposition-rule tree sitting under the specified decomposition rule.

But in addition to layered decomposition rule structures, the present invention also provides a method and apparatus for cross-indexing for instances when rules have already been declared and are not layered hierarchically.

FIG. 5B depicts the object/relationship structure for a set of cross-indexed decompositions. There are two decomposition rule objects. First, there is an enterprise-by-geography rule object 300, as described above, which provides for the decomposition of variables by geographic location. This decomposition rule object 300 has two related subset objects: a US object 308 and a Europe object 310. There is also a geography user focus primitive object 302 which is also related to the decomposition rule 300, the US subset object 308 and the Europe subject object 310.

A second decomposition rule 370 provides for the decomposition of a variable by product business unit (PBU) and is declared by an enterprise-by-PBU rule declaration object 370. Associated with the enterprise-by-PBU decomposition rule object 370 is the parent (enterprise 304) and a PBU user focus primitive object 372, which is similar in form to the geography object 302. The subset objects of the PBU user focus primitive object 372 group variables by product division. Suppose there is a banana production division (represented by the banana object 371) and a tomato production division (represented by the tomato object 376).

When two decomposition rules have been declared, it might be advantageous to create a further layer of decomposition by cross-indexing the decomposition categories. A user may wish to have the geography variables decomposed by PBU and the PBU variables decomposed also by location. However, the application of these two further decompositions leads to the same set of decomposition subsets: a US-banana subset 382, a US-tomato subset 384, a Europe-banana subset 386 and a Europe-tomato subset 388.

The problem is to ensure that the decomposition rule structure links the lower layer subsets upwards in both directions (i.e., the US-banana division has to be linked as a subset of the US-business as well as the banana business).

The model builder module 158 (FIG. 3) provides a procedure that will allow the cross-indexing of decomposition rules. Referring again to FIG. 5B, the procedure creates new decomposition rule objects for each one of the subset objects of the decomposition rules namely, a banana decomposition rule object 371, a tomato decomposition rule object 376, a US decomposition rule object 308 and a Europe decomposition rule object 310. These decomposition rule objects specify a cross decomposition by geography and PBU. To create sub subset objects for each of these decomposition rule objects, the process merges each subset of the enterprise-by-PBU object 370 and enterprise-by-geography object 300 (i.e., the banana and tomato subset objects 371 and 376 and the US and Europe subsets objects 308 and 310).

Additionally, there are decomposition rule objects, a Banana-by-geography object 378, a Tomato-by-Geography object 380, a US-by-PBU object 390 and a Europe-by-PBU object 392 that are related to a geography-PBU user focus primitive object 394, which provides an access point to the indexing scheme for later projections of variable sets. The US-banana-object 382, the US-tomato-object 384, the Europe-banana-object 386 and the Europe-tomato-object 388 are linked to the appropriate rule declaration objects by a HAS SUBSETS relationship. All of the subsets objects, US Banana 382, US Tomato 384, Europe Banana 386 and Europe Tomato 388 are linked to the PBU-geography-object 394 by an IS-A relationship.

The cross-indexed decomposition rules are now ready to be applied, and can be applied to many variables. For example, a full decomposition by geography on a variable will produce a layered decomposition by geography and by geography-PBU. Application of a full decomposition of a variable by PBU will produce a similar, layered result.

An additional feature of the present invention allows in certain cases for the relationships between variables to be carried through the entire decomposition structure, when the decompositional structures of two decomposed variables match. FIG. 5C shows such a decompositional relationship of two variables--a GNP variable 428 and a population variable 430. In this example, both the population variable 430 and the GNP variable 428 have been decomposed by continent. Thus, each variable 428 and 430 has associated with it a decomposition rule instance object 400 and 402 respectively, linked to the corresponding variable by a DECOMPOSITION-OF relationship (i.e., the GNP-by-continent decomposition rule instance object 400 and the population-by-continent instance object 402). As a result of the decomposition of the GNP variable 428, there is a GNP-North America variable 404, a GNP-Europe variable 406 and a GNP-Asia variable 408. As a result of the decomposition of the population variable 430, there is a population-North America variable 410, a population-Europe variable 412 and a population-Asia variable 414. FIG. 5C further depicts a layered decomposition hierarchy where the Europe variable (as in GNP-Europe 406 and population Europe 412) has been decomposed by another decomposition rule (the associated instance objects of which for GNP is the GNP-Europe by country object 416 and the population EUROPE by country object 418) into several other variables. For the GNP-Europe variable 406, there is a GNP-Europe-UK variable 420 and a GNP-Europe-France variable 422. For population-Europe there is a population-Europe-UK variable 424 and a population-Europe-France variable 426.

Notice that the variables GNP 46 and population 44 have the same decomposition structures, because a full decomposition function was applied to each using the same layered decomposition rule. However, in applying the full decomposition as described above, the proportionality relationship existing between the two variables GNP 46 and population 44 will not ordinarily be promulgated through inheritance to the other variables created through decomposition. However, as shown in FIG. 5C, the model builder module 158 in FIG. 3 can allow that relationship to cascade down through two similar decomposition structures.

Model Building

The model builder module 158 (FIG. 3) provides a method and apparatus that enables a user to quickly build an enterprise model using the object and relationship structures described above. The hierarchical classification scheme 160 of the model primitive branch 162 (FIG. 3) supports the inheritance of attributes. Thus, to create a modeling object, the user specifies that the model builder module 158 create an instance of the object according to one of the primitives under the model primitives. The attributes associated with the specified primitive as well as many of the attributes from primitives above that primitive in the hierarchical classification scheme 160 will be created in the object. The user in addition, has the freedom to specify additional attributes. Thus, a user can quickly specify model building objects. To link the model objects, the user can specify relationships in the object declaration. As the primitives hierarchical classification schemes 160 classify each object, there are specific sets of allowable relationships that can be used between each object. For example a ratio variable would not be related to a level variable by a FLOWS relationship. Accordingly the classification scheme provides a easy and quick way to describe meaningfully the aspects of an enterprise to be modeled. APPENDIX I presents the object frames for the exemplary relationships presented in this invention.

Although the hierarchical classification scheme provides structure for the model builder, it is not a limitation. In the present invention users can specifically create new primitives at any level in the model primitive hierarchy. For example, a user could add primitives under the resource primitive 209 (FIG. 4) to provide subcategories for people, equipment and locations resource objects. Between these new primitives, the users could specify new attribute slots, or not. Because the model builder module 158 (FIG. 3) supports inheritance, the attributes of the resource primitive and the allowable relationships that correspond to it also apply to the sub categories.

The model building model supports other automatic features as well, such as the automatic calculation of related variables when either a PROPORTIONALITY or a PRODUCTIVITY relationship is specified. For example, referring to FIG. 2, there is a PROPORTIONALITY relationship specified between the population variable and the GNP variable. Using the model builder module 158 (FIG. 3) to create the PROPORTIONALITY relationship, the user need only specify a IS PROPORTIONAL relationship between the GNP variable 48 and the population variable 44. The processor 4 (FIG. 1), using the statements of the model builder model 158, would create the ratio variable 47 and establish the NUMERATOR and DENOMINATOR relationships between the variables. In addition, if the population variable 44 and the GNP 46 variable have associated history objects (e.g. 66 and 68) the processor 4 also creates a history object 81 for the ratio variables and fills the object with corresponding part ratio values. Such object generation accrues at each level of a decomposition structure when a user specifies that a relationship between two aggregate variables should cascade to the subset variables, as discussed above with reference to FIG. 4C. Thus the model builder module 158 provides a flexible structure for model building complex systems. The features of this model building module provide the user with a declaration language 34 (FIG. 1) for describing the feature of an enterprise.

Reasoning Methods and Reconciliation

In an exemplary embodiment, the present invention provides reasoning methods that are frequently used by planning analysts. Typical methods include the following:

Determining a projection by building a regression model from historical data;

Determining a projection based on decomposed data by reasoning either in a "bottom-up" or "top-down" fashion over a structural model;

Determining a projection by applying the conservation of flow principle;

Reasoning from productivity considerations;

Reasoning based on proportions;

Finding an expert opinion and accepting it;

Finding a plan and using it as a prediction;

Finding a goal, accepting it as achieved and determining the implications of it being achieved on related variables;

Using causal knowledge to build a causal model.

Each reasoning method acts upon a variable to form a projection. Some reasoning methods in their application require a value for other variables. For example in FIG. 2, to project a value for the resource-employees variable 52, using a productivity reasoning method, the values of the productivity variable 122, and the product built variable 54 must be determined. Sub-problems for these variables would be generated in the present invention to obtain values for other related variables. The applicability of a reasoning method to a sub-problem, if it succeeds in solving a problem, will generate an intermediate hypothesis. These intermediate hypotheses are reconciled to form a final hypotheses for the projection problem. Each intermediate hypothesis contains characteristic data that serve as the basis for pruning or selecting hypotheses in reconciliation. The characteristics include the reasoning methods that generated the intermediate hypotheses, the premises or argument value to which the reasoning method was applied and other characteristics that permit the reconciliation procedure described below to prune intermediate hypotheses to determine a single projection from many competing intermediate projections. Reconciliation is needed each time a sub-problem is solved. In dealing with large interrelated knowledge bases, many thousands of reconciliations will take place in solving a scenario. The strategy for dealing with reconciliation is to view the decision as a multi-criteria decision, based on dimensions of intermediate hypothesis quality.

An exemplary embodiment of the invention provides for a reconciliation method using some of the subjective criteria implicitly used by planning managers, such as:

1. Greatest truth as measured by the ratio of the number of axiomatically true premises to the total number of premises;

2. Greatest causality as measured by the total number of causal arguments in the tree of support;

3. Best quality estimates as measured by the sum of total axiomatically true premises plus the product of the quality of estimated premises by the number of estimated premises and divided by the total number of premises;

4. Greatest detail (i.e. the total number of premises);

5. Most recent statements (All opinions, goals and plans are dated). Statements that are older than a threshold such as 6 months from the most recent statement, are discarded.

As each reasoning method is successively applied, the processor 4 will store information concerning the reasoning methods quality factors as will be described below. The applicability of each reasoning method is determined by the configuration of the network of objects that make up the enterprise model. It is the ab