Multiple reasoning and result reconciliation for enterprise analysis5406477Abstract 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: Description FIELD OF THE INVENTION
______________________________________
{{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 | ||||||
