Abstract:
An economy comprises a relation among agents, goods and services. Each good and service in the economy consists of combinations of more primitive goods and services. Goods and services can be complements or substitutes to other goods and services. Complements are sets of goods or services which are used jointly to produce a given other goods or services. In contrast, substitutes are sets of goods or services which might substitute for one another in a given production technology or consumption good. Complementary goods and services must be used together to create value in the economy. Most goods and services create value in the economy via positive functional interactions with their complements and via competition with their substitutes. 
     The invention provides a system and method called Economic Web Sherpa which effectively and rapidly gathers data on the functional relations within an economy and which synthesizes an economic web model defining the local structure of the economic relations within the vicinity of a company or other economic agent. Economic Web Sherpa also analyzes the functional structure of the economic web model and generates new goods and services to identify new niches, new growth opportunities and new locations of strategic competition for a company of other economic agent.

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to a system and method for the synthesis of a model representing an economy of goods and services for economic analysis. More particularly, the present invention creates an economic web model of an economy of goods and services and automates the synthesis of new goods and services from the economic web model to identify new market niches. 
     BACKGROUND 
     Any economy comprises a relation among agents, goods and services. Each good and service in the economy, with the exception of the most primitive goods and services, consists of combinations of other goods and services. Goods and services can be complements or substitutes to other goods and services. Complements are sets of goods or services which are used jointly to produce other goods or services. For example, the screw and the screw driver are complementary goods. In contrast, substitutes are sets of goods or services which might substitute for one another in a given production technology or consumption good. For example, the screw and nail are substitute goods. Complementary goods and services must be used together to create value in the economy. See The Origins of Order, Kauffman, S., Oxford University Press (1993), Chapter 10, which is incorporated herein by reference. 
     Most goods and services create value in the economy via positive functional interactions with their complements and via competition with their substitutes. Further, most new goods and services enter the economy as complements or substitutes for existing goods and services. The goods and services in an economy themselves offer new opportunities to invent yet further goods and services. Thus, the economy transforms as new goods and services drive older goods and services out of the economy. See The Origins of Order, Chapter 10. 
     For example, the invention of the automobile led to the requirement for other goods and services ranging from paved roads, traffic lights, and traffic adjudication systems to oil refineries, gasoline stations, automobile repair facilities, parts manufacturers, and emission control devices. In contrast, the invention of the automobile led to elimination of the horse for most transport. In turn, the elimination of the horse led to the elimination of stables, public watering troughs, blacksmiths, the Pony Express, etc. See The Origins of Order, Chapter 10. 
     Accordingly, much of economic growth is driven by the persistent creation of novel economic opportunities in the interstices between existing goods and services, where new goods and services can enter the economy. The rate of formation of new economic niches is an increasing function of the total diversity of goods and services in the economy. 
     To succeed within the economy, companies and other economic agents need to know information about the economy to identify new economic niches, new growth opportunities and new locations of strategic competition. Specifically, companies and other economic agents need to know the relation among the agents, goods and services of the economy and their position within the economy. Similarly, economic agents must achieve reasonable concepts about how the relation among the agents, goods, and services of the economy and their position within the economy will change as new goods and services enter and old ones go extinct in small and large Shumpeterian gales of creative destruction. 
     A previous method has attempted to identify new economic niches by combining goods and services with generative tools and by selecting a subset of the resulting set of new goods and services with a utility function which measures economic value. See Origins of Order, Chapter 10. This method generates new goods and services by representing them with binary strings and by performing operations among the strings to create new strings. 
     However, none of the prior art methods constructs an economic web, generates new goods and services to analyze an economy, and identifies new market niches using the functional relations among the goods and services in the economy. Accordingly, there is a need for a method and system that effectively and rapidly gathers data on the functional relations within an economy and synthesizes an economic web model defining the local structure of the economic relations within the vicinity of a company or other economic agent. Further, there is a need for a method and system that can analyze the functional structure of the economic web model to identify new niches, new growth opportunities and new locations of strategic competition for a company or other economic agent. 
     SUMMARY OF THE INVENTION 
     The invention provides a system and method called Economic Web Sherpa which effectively and rapidly gathers data on the functional relations within an economy and which synthesizes an economic web model defining the local structure of the economic relations within the vicinity of a company or other economic agent. Economic Web Sherpa also analyzes the functional structure of the economic web model and synthesizes new goods and services to identify new niches, new growth opportunities and new locations of strategic competition for a company or other economic agent. 
     In particular, it is an aspect of the invention to present a system for providing economic guidance to economic agents acting within an economy of economic agents, goods and services comprising: 
     a plurality of economic objects characterizing the economic agents, the goods and the services in the economy; 
     a plurality of searching operations corresponding to the economic objects wherein the searching operations find relations with the economic agents, the goods and the services in the economy and construct a graph representation of the functional relations; and 
     a plurality of analysis operations for determining features of the graph representation of the functional relations in the economy. 
     It is a further aspect of the invention to present a system for providing economic guidance to economic agents acting within an economy of economic agents, goods and services wherein the analysis operations comprise a plurality of generative operations corresponding to the economic objects for generating new goods and new services from the graph representation of the functional relations in the economy to identify new market niches. 
     It is a further aspect of the invention to present a system for providing economic guidance to economic agents acting within an economy of economic agents, goods and services wherein the economic objects further comprise a corresponding plurality of attributes and behavior, the attributes and the behavior characterizing functionalities of the economic agents, the goods and the services in the economy. 
     It is a further aspect of the invention to present a system for providing economic guidance to economic agents acting within an economy of economic agents, goods and services wherein the searching operations comprise: 
     a plurality of search complement operations for locating complementary objects of the economic objects having complementary ones of the attributes or the behavior; and 
     a plurality of search substitute operations for locating substitute objects of the economic objects having substitute ones of the attributes or the behavior. 
     It is a further aspect of the invention to present a method for providing economic guidance to economic agents acting within an economy of economic agents, goods and services comprising the steps of: 
     characterizing the economic agents, the goods and the services in the economy with a plurality of economic objects; 
     finding relations with the economic agents, the goods and the services in the economy with a plurality of searching operations corresponding to the economic objects; 
     constructing a graph representation of the functional relations; and 
     determining features of the graph representation of the relations in the economy with a plurality of analysis operations. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     These and other objects, features and advantages of the invention will be more readily apparent from the following detailed description in which: 
     FIG. 1 provides a dataflow diagram representing an overview of the system and method for creating an economic web model of an economy of goods and services and synthesizing new goods and services from the economic web model to identify new market niches. 
     FIG. 2 shows an exemplary class generalization or inheritance. 
     FIG. 3 shows an exemplary aggregation hierarchy comprising assembly classes and component classes. 
     FIG. 4a provides the dataflow diagram corresponding to a SearchComplement operation for each object in the undirected graph G[V, E, δ] representation of the economic web model. 
     FIG. 4b provides the dataflow diagram corresponding to a SearchSubstitute operation for each object in the undirected graph G[V, E, δ] representation of the economic web model. 
     FIG. 5a shows an object model representing economic agents, goods and services in an economy. 
     FIG. 5b shows the undirected graph representations G[V, E, δ] which result from execution of the SearchComplement and SearchSubstitute operations. 
     FIG. 6 provides the dataflow diagram corresponding to another SearchComplement operation for each object in the undirected graph G [V, E, δ] representation of the economic web model. 
     FIG. 7 shows the undirected graph representations G[V, E, δ] at the economic agents resulting from execution of the SearchComplement operation and the SearchSubstitute operations for a period of time. 
     FIG. 8 provides the dataflow diagram corresponding to the object construction operator. 
     FIG. 9 provides the dataflow diagram corresponding to the object destruction operator. 
     FIG. 10 shows an exemplary database system to store the undirected graph G [V, E, δ] representations of the economic web model and the objects corresponding to the agents, goods and services in an economy. 
     FIG. 11 is a dataflow diagram illustrating the procedure for translating the object model representation of the economic web model 104 to the tables in the relational database and for processing the database tables of the distributed database system. 
     FIG. 12 is a dataflow diagram illustrating the implementation of the SearchComplement operation and the SearchSubstitute operation on the indexed collections containing the objects representing the goods and services in the economy. 
     FIG. 13 is a dataflow diagram illustrating a generative operation to identify new niches, new growth opportunities and new locations of strategic competition for an economic agent by combining goods and services with generative tools and by selecting a subset of the resulting set of new goods and services with a utility function which measures economic value. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 provides a dataflow diagram 100 representing an overview of the system and method of the present invention for creating an economic web model of an economy of goods and services and synthesizing new goods and services from the economic web model to identify new market niches. This system and method is called Economic Web Sherpa. As is known to persons of ordinary skill in the art, a dataflow diagram is a graph whose nodes are processes and whose arcs are dataflows. See Object Oriented Modeling and Design, Rumbaugh, J., Prentice Hall, Inc. (1991), Chapter 1. In step 102, an economic web synthesis system creates an economic web model 104 of an economy from information 106 on the relation of agents, goods, and services within the economy. In step 108, an economic web analysis tool extracts useful economic information and synthesizes new goods and services 110 from the economic web model 104 to identify new market niches. 
     Without limitation, the following embodiments of the invention, Economic Web Sherpa, are described in the illustrative context of a solution using object oriented design and graph theory. However, it will be apparent to persons of ordinary skill in the art that other design techniques such as a structured procedural paradigm could be used to embody the aspect of the present invention which includes the gathering of data on the relations within an economy, the synthesis of an economic web model defining the local structure of the economic relations, the analysis of the structure of the economic web model and the generation of new goods and services to identify new market niches. 
     The economic web model 104 comprises a plurality of undirected graph representations of the relations of the agents, goods and services within the economy. As is known in the art, an undirected graph G[V, E, δ] consists of a set V of vertices, a set E of edges, and a function δ from the set E to the set of ordered pairs &lt;u, v&gt; for u a member of V and v a member of V. See Introduction to Discrete Structures, Preparata and Yeh, Addison-Wesley Publishing Company, Inc., (1973), pg 67. 
     In one of the plurality of undirected graphs, G[V, E, δ] of the economic web model 104, each vertex v of the set of vertices V represents an object. More formally, there exists a one-to-one correspondence between the set of objects representing the goods and services in the economy and the set of vertices V in the undirected graph G[V, E, δ] model of the economic web 104. A function denoted by g: O-&gt;V from the set of objects O representing the goods and services in the economy to the set of vertices V in the corresponding undirected graph G[V, E, δ] assigns the vertex v to an object o (g(o)=v). Preferably, a vertex v is created and assigned to an object o when the good or service corresponding to the object becomes conceivable in an economy. 
     As is known in the art, objects are distinguishable entities and have attributes and behavior. See Object Oriented Modeling and Design, Chapter 1. Further, objects having the same attributes and behavior are grouped into a class. In other words, objects are instances of classes. In the economic web model 104 of the present invention, each class represents a type of agent, good, or service in the economy. 
     As is known in the art, class generalization or inheritance is the sharing of attributes and operations among classes based on a hierarchical relationship. The classes of the economic web model 104 are defined broadly and then refined into successively finer subclasses. Each subclass incorporates, or inherits, all of the properties of its superclass and adds its own unique attributes or operations. Accordingly, the attributes and operations of a superclass need not be repeated in each subclass. See Object Oriented Modeling and Design, Chapter 1. 
     However, the present invention is not limited to any particular type of class generalization or inheritance. For example, the present invention also operates with classes of objects which do not share any single property. Instead, these classes merely represent a family resemblance. See Philosophical Investigations, Ludwig Wittgenstein, Macmillan, New York, (1968). 
     FIG. 2 shows an exemplary class generalization or inheritance 200. In the hierarchical relationship, the StorageDevice class 202 is a superclass of the DiskStorage class 204 and the TapeStorage class 206. Similarly, both the DiskStorage class 204 and the TapeStorage class 206 are subclasses of the StorageDevice class 202. Because of the subclass relationship, both the DiskStorage class 204 and the TapeStorage class 206 will inherit the attributes and operations of the StorageDevice class 202. Further, the DiskStorage class 204 and the TapeStorage class 206 will also add their own unique attributes and operations. 
     As is known in the art, aggregation is a &#34;part-whole&#34; relationship among classes based on a hierarchical relationship in which classes representing components are associated with a class representing an entire assembly. See Object Oriented Modeling and Design, Chapter 3. The aggregation hierarchy of the economic web model 104 comprise assembly classes and component classes. An aggregation relationship relates an assembly class to one component class. Accordingly, an assembly class having many component classes has many aggregation relationships. 
     FIG. 3a shows an exemplary aggregation hierarchy 300 comprising assembly classes and component classes. The system box 306 is an assembly class of the chassis component class 312, the CPU component class 314, the RAM component class 316, the ROM component class 317, and the fan component class 318. Similarly, the microcomputer class 302 is an assembly class of the monitor component class 304, the system box component class 306, the mouse component class 308, the touchpad component class 309 and the keyboard component class 310. 
     FIG. 3b shows an aggregation hierarchy 350 showing an aggregation relation among the goods, the services and the economic agents of an economy. The EconomicAgent class 352 is an assembly class of the Good component class 354 and the Service component class 356. Accordingly, this aggregation hierarchy 350 represents a &#34;part-whole&#34; relationship between an economic agent and the goods and services which it provides. 
     Exemplary attributes and behavior for the classes in the object model of the present invention include, &#34;needs a&#34;, &#34;is a&#34;, &#34;performs a&#34;, &#34;has a&#34;, etc. These attributes and behavior enable Economic Web Sherpa to find complement and substitute goods and services in the economy. 
     FIG. 4a provides the dataflow diagram corresponding to a SearchComplement operation 400 for each object (v1) in the undirected graph G[V, E, δ] representation of the economic web model 104. In step 402, the SearchComplement operation 400 searches for other objects represented by vertices from the set of vertices V in the undirected graph G[V, E, δ] having the attributes or operations which complement the searching object&#39;s (v1) selected attributes or operations. The SearchComplement operation 400 searches for an object (v2) having complementary attributes or complementary operations by traversing the generalization or inheritance hierarchy from the class corresponding to the object (v2). In the preferred embodiment, the SearchComplement operation 400 searches continuously for complement objects. However, as is known in the art, the SearchComplement operation 400 can search by executing a discrete number of times. Execution of step 402 yields at 404 a subset V1 of the set of vertices V: V1={v2 member of V|v2 has a complementary attribute or operation of v1}. 
     In step 406, for each object (v2) matching the search criteria, the SearchComplement operation 400 creates an edge connecting the vertices v1, v2 (&lt;v1,v2&gt;) which becomes a member of the set of edges E in the undirected graph G[V, E, δ]. The SearchComplement operation 400 also creates a complement edge label for each edge (&lt;v1,v2&gt;) created in step 406 to properly identify the relation between the vertices v1, v2. Execution of step 406 yields at 408 a modified undirected graph G[V, E, δ]. 
     Accordingly, execution of the SearchComplement operation 400 for all objects representing the goods and services in the economy yields an undirected graph G[V, E, δ] representation of the economic web model 104 at each economic agent in the economy. Moreover, the SearchComplement operation 400 yields undirected graph G[V, E, δ] representations of the economic web model 104 which evolve as new goods and services enter the economy and existing goods and services expire from the economy. Further, as is known in the art, the SearchComplement operation 400 can continue to develop the undirected graph G[V, E, δ] representations of the economic web model 104 after the economy stops changing. 
     Similarly, FIG. 4b provides the dataflow diagram corresponding to a SearchSubstitute operation 450 for each object (v1) in the undirected graph G[V, E, δ] representation of the economic web model 104. In step 452, the SearchSubstitute operation 450 searches for other objects represented by vertices from the set of vertices V in the undirected graph G[V, E, δ] having the attributes or operations which can substitute for the searching object&#39;s (v1) selected attributes or operations. The SearchSubstitute operation 450 searches for an object (v2) having substitute attributes or substitute operations by traversing the generalization or inheritance hierarchy from the class corresponding to the object (v2). In the preferred embodiment, the SearchSubstitute operation 450 searches continuously for substitute objects. However, as is known to persons of ordinary skill in the art, the SearchSubstitute operation 450 can search by executing a discrete number of times. Execution of step 452 yields at 454 a subset V1 of the set of vertices V: V1={v2 member of V|v2 has a substitute attribute or operation of v1}. 
     In step 456, for each object (v2) matching the search criteria, the SearchSubstitute operation 450 creates an edge connecting the vertices v1, v2 (&lt;v1,v2&gt;) which becomes a member of the set of edges E in the undirected graph G[V, E, δ]. The SearchSubstitute operation 450 also creates a substitute edge label for each edge (&lt;v1,v2&gt;) created in step 456 to properly identify the relation between the vertices v1, v2. Execution of step 456 yields at 458 a modified undirected graph G[V, E, δ]. 
     Accordingly, execution of the SearchSubstitute operation 450 for all objects representing the goods and services in the economy yields an evolving undirected graph G[V, E, δ] representation of the economic web model 104 at each economic agent in the economy. Moreover, the SearchSubstitute operation 450 yields undirected graph G[V, E, δ] representations of the economic web model 104 which evolve as new goods and services enter the economy and existing goods and services expire from the economy. Further, as is known in the art, the SearchSubstitute operation 400 can continue to develop the undirected graph G[V, E, δ] representations of the economic web model 104 after the economy stops changing. 
     To illustrate the results of the SearchComplement operation 400 and the SearchSubstitute operation 450, FIG. 5a shows an object model 500 representing economic agents, goods and services in an economy and FIG. 5b shows the resulting undirected graph representations G[V, E, δ] 552, 554, 556, and 558. The EconomicAgent 502 assembly object comprises the fan component object 510, the chassis component object 512 and the mouse component object 514. Similarly, the EconomicAgent assembly object 504 comprises a CPU component object 516 and a RAM component object 518. The EconomicAgent assembly object 506 comprises a monitor component object 520 and a touchpad component object 522. The EconomicAgent assembly object 508 comprises a keyboard object 524 and a ROM object 526. 
     FIG. 5b shows the undirected graph representations G[V, E, δ] 552, 554, 556 and 558 at the economic agents 502, 504, 506, and 508 respectively resulting from execution of the SearchComplement operation 400 and the SearchSubstitute operations 450 for a period of time. For example, the undirected graph representation G[V, E, δ] 552 at the economic agent 502 shows complement relations between the RAM object 518 and the fan object 510, the fan object 510 and the chassis object 512, and the fan object 510 and the mouse object 514. Similarly, the undirected graph representation G[V, E, δ] 552 at the economic agent 502 shows a substitute relation between the mouse object 514 and the touchpad object 522. Next, the undirected graph representation G[V, E, δ] 554 at the economic agent 504 shows complement relations between the RAM object 518 and the fan object 510, the RAM object 518 and the CPU object 516, and the CPU object 516 and the monitor object 520. 
     Accordingly, each economic agent maintains a partial subgraph of the undirected graph representation G[V, E, δ] of the economic web model 104. As is known in the art, an undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] is called a subgraph of an undirected graph G[V, E, δ] if V&#39; is a subset of V and if E&#39; (a subset of E) consists of all the edges in E joining vertices in V&#39;. Further, δ&#39; is a restriction of δ to the domain E&#39;. G&#39; is a partial subgraph of G if E&#39; is a subset of all edges joining vertices in V&#39;. See Introduction to Discrete Structures, Chapter 2. 
     In another of the plurality of undirected graphs, G&#39;[V&#39;, E&#39;, δ&#39;] of the economic web model 104, each vertex v&#39; of the set of vertices V&#39; represents an object of the EconomicAgent class 352. More formally, there exists a one-to-one correspondence between the set of objects O&#39; representing the economic agents in the economy and the set of vertices V&#39; in the undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] model of the economic web 104. A function denoted by g&#39;: O&#39;-&gt;V&#39; from the set of objects O&#39; representing the economic agents in the economy to the set of vertices V&#39; in the corresponding undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] assigns the vertex v&#39; to an object o&#39; (g&#39;(o&#39;)=v&#39;). 
     FIG. 6a provides the dataflow diagram corresponding to another SearchComplement operation 600 for each object (v1) in the undirected graph G [V, E, δ] representation of the economic web model 104. Step 602 operates like step 402 of the SearchComplement operation 400. Specifically, in step 602, the SearchComplement operation 600 searches for other objects represented by vertices from the set of vertices V in the undirected graph G[V, E, δ] for attributes or operations which can complement the searching object&#39;s (v1) selected attributes or operations. The SearchComplement operation 600 searches for an object (v2) having complement attributes or operations by traversing the generalization or inheritance hierarchy from the class corresponding to the object (v2). In the preferred embodiment, the SearchComplement operation 600 searches continuously for complementary objects. 
     However, as is known to persons of ordinary skill in the art, the SearchComplement operation 600 can search by executing a discrete number of times. Execution of step 602 yields at 604 a subset V of the set of vertices V: V1={v2 member of V|v2 has a complement attribute or operation of v1}. 
     However, unlike step 406 in the SearchComplement operation 400, in step 606 the SearchComplement operation 600 traverses the aggregation hierarchy 350 to find the assembly object v1&#39; representing an economic agent corresponding to the component object v1. Likewise, for each object (v2) matching the search criteria, in step 606 the SearchComplement operator 600 traverses the aggregation hierarchy 350 to find the assembly object v2&#39; representing an economic agent corresponding to the component object v2. In step 607, the assembly object v1 creates an edge connecting the vertices v1&#39;, v2&#39; (&lt;v1&#39;,v2&#39;&gt;) which becomes a member of the set of edges E&#39; in the undirected graph G&#39;[V&#39;, E&#39;, δ&#39;]. The SearchComplement operation 600 also creates a complement edge label for each edge (&lt;v1&#39;,v2&#39;&gt;) created in step 607 to properly identify the relation between the vertices v1&#39;, v2&#39;. Execution of step 606 and step 607 yields at 608 a modified undirected graph G&#39;[V&#39;, E&#39;, δ&#39;]. 
     Accordingly, execution of the SearchComplement operation 600 for all objects representing the goods and services in the economy yields an evolving undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] representation of the economic web model 104 at each economic agent in the economy. Moreover, the SearchComplement operation 600 yields undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] representations of the economic web model 104 which evolve as new goods and services enter the economy and existing goods and services expire from the economy. Further, as is known to persons of ordinary skill in the art, the SearchComplement operation 600 can continue to develop the undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] representations of the economic web model 104 after the economy stops changing. 
     FIG. 6b provides the dataflow diagram corresponding to another SearchSubstitute operation 650 for each object (v1) in the undirected graph G [V, E, δ] representation of the economic web model 104. Step 652 operates like step 452 of the SearchSubstitute operation 450. Specifically, in step 652, the SearchSubstitute operation 650 searches for other objects represented by vertices from the set of vertices V in the undirected graph G[V, E, δ] for attributes or operations which can substitute for the searching object&#39;s (v1) selected attributes or operations. The SearchSubstitute operation 650 searches for an object (v2) having substitute attributes or operations by traversing the generalization or inheritance hierarchy from the class corresponding to the object (v2). In the preferred embodiment, the SearchSubstitute operation 650 searches continuously for substitute objects. However, as is known to persons of ordinary skill in the art, the SearchSubstitute operation 650 can search by executing a discrete number of times. Execution of step 652 yields at 654 a subset V1 of the set of vertices V: V1={v2 member of V|v2 has a substitute attribute or operation of v1}. 
     Unlike step 456 in the SearchSubstitute operation 450 however, in step 656, the SearchSubstitute operation 650 traverses the aggregation hierarchy to find the assembly object v1&#39; representing an economic agent corresponding to the component object v1. Likewise, also in step 656, for each object (v2) matching the search criteria, the SearchSubstitute operator 650 traverses the aggregation hierarchy to find the assembly object v2&#39; representing an economic agent corresponding to the component object v2. In step 657, the assembly object v1 creates an edge connecting the vertices v1&#39;, v2&#39; (&lt;v1&#39;,v2&#39;&gt;) which becomes a member of the set of edges E&#39; in the undirected graph G&#39;[V&#39;, E&#39;, δ&#39;]. The SearchSubstitute operation 650 also creates a substitute edge label for each edge (&lt;v1&#39;,v2&#39;&gt;) created in step 657 to properly identify the relation between the vertices v1&#39;, v2&#39;. Execution of step 706 and step 707 yields at 708 a modified undirected graph G&#39;[V&#39;, E&#39;, δ&#39;]. 
     Accordingly, execution of the SearchSubstitute operation 650 for all objects representing the goods and services in the economy yields an evolving undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] representation of the economic web model 104 at each economic agent in the economy. Moreover, the SearchSubstitute operation 650 yields undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] representations of the economic web model 104 which evolve as new goods and services enter the economy and existing goods and services expire from the economy. Further, as is known to persons of ordinary skill in the art, the SearchSubstitute operation 650 can continue to develop the undirected graph G&#39;[V&#39;, E&#39;, δ&#39;] representations of the economic web model 104 after the economy stops changing. 
     FIG. 7 shows the undirected graph representations G[V, E, δ] at the economic agents 502, 504, 506, and 508 respectively resulting from execution of the SearchComplement operation 600 and the SearchSubstitute operations 650 for a period of time. For example, the undirected graph representation G[V, E, δ] at EconomicAgent 502 shows that EconomicAgent 502 has a relation with EconomicAgent 504 and EconomicAgent 506. Specifically, the EconomicAgent 502 assembly object has component objects which have either a complement relation or a substitute relation with a component object of assembly object EconomicAgent 504 and with a component object of assembly object EconomicAgent 506. 
     Similarly, the undirected graph representation G[V, E, δ] at EconomicAgent 504 shows that EconomicAgent 504 has a relation with EconomicAgent 502 and EconomicAgent 506. The undirected graph representation G[V, E, δ] at EconomicAgent 506 shows that EconomicAgent 506 has a relation with EconomicAgent 504 and EconomicAgent 508. Finally, the undirected graph representation G[V, E, δ] at EconomicAgent 508 shows that EconomicAgent 508 has a relation with EconomicAgent 506. Accordingly, each economic agent maintains a partial subgraph of an undirected graph representation G[V, E, δ] of an economic web model 104 which shows all the relations among the economic agents. See Introduction to Discrete Structures, Chapter 2. 
     FIG. 8 provides the dataflow diagram corresponding to the object construction operator 800. When an economic agent, good or service becomes part of an economy, the object construction operator 800 creates a vertex v in the undirected graph G[V, E, δ] representation of the economic web model 104 in step 802 for an object o corresponding to the agent, good or service. In step 804, the object construction operator 800 assigns the vertex v to the object o (g(o)=v). In step 806, the object construction operator 800 initiates the SearchComplement operators 400 (FIG. 4), 600 (FIG. 6) and the SearchSubstitute operators 450 (FIG. 4b), 700 (FIG. 7). 
     In the preferred embodiment, the object construction operator 800 is a constructor. As is known in the art, a constructor for an object executes when the object is instantiated. See C++ Primer, Stanley B. Lippman, Addison-Wesley Publishing Company, 2nd edition, (1991), Section 1.8. 
     FIG. 9 provides the dataflow diagram corresponding to the object destruction operator 900. When an agent, good, or service is removed from an economy, the object destruction operator 900 locates the subset of edges E1 of the set of edge E connecting the vertex v1 corresponding to the object o (g(o)=v1) to a vertex v2 of the set of vertices V of the undirected graph G[V, E, δ]: E1={&lt;v1, v2&gt;|v2 is a member of the set of vertices V} in step 902. In step 904, the object destruction operator 900 removes the subset of edges E1 including the edge labels from the undirected graph G[V, E, δ]. Execution of step 904 yields a modified undirected graph G[V, E, δ] 906. Accordingly, execution of the object destruction operator 900 for all objects representing the agents, goods, or services which are removed from the economy yields an evolving undirected graph G[V, E, δ] representation of the economic web model 104. In the preferred embodiment, the object destructor operator 900 is a destructor. As is known in the art, a destructor for an object executes when the object is removed. 
     See C++ Primer, Section 1.8. 
     In the preferred embodiment, a distributed database system 1000 as shown in FIG. 10, stores the undirected graph G [V, E, δ] representations of the economic web model 104 and the objects corresponding to the agents, goods and services in an economy. As is known to persons of ordinary skill in the art, a distributed database system 1000 consists of a collection of sites 1002, each of which maintains a local database system and each of which may participate in the execution of transactions which access data at one site, or several sites through a communication network 1004. Further, a database is a collection of data. See Database System Concepts, Henry F. Korth and Abraham Silberschatz, McGraw-Hill Book Company, (1986), Chapters 1 and 12. 
     In the preferred embodiment each site 1002 represents an economic agent. Accordingly, each site 1002 maintains a local database wherein the collection of data comprises the objects representing the goods and services associated with the economic agent represented by the site 1002. The collection of data further comprises the economic agent&#39;s local view of the undirected graph G [V, E, δ] representations of the economic web model 104. 
     However, the present invention is not restricted to a distributed database. For example, in an alternate embodiment, a central database system stores the undirected graph G [V, E, δ] representations of the economic web model 104 and the objects corresponding to the agents, goods and services in an economy. Exemplary databases include: Microsoft SQL Server, Microsoft Access 1.0, 2.0 and 7.0, Microsoft FoxPro 2.0, 2.5 and 2.6, Oracle 7.0, Borland Paradox 3.X and 4.X, Borland dBase III and dBase IV, and Microsoft Excel 3.0, 4.0 and 5.0. 
     In the preferred embodiment, the local databases at the sites 1002 representing economic agents are relational databases. As is known in the art, a relational database consists of a collection of tables, each of which is assigned a unique name. Further, a row in a table represents a relationship among a set of values. See Database System Concepts, Chapter 3. 
     FIG. 10 shows the major operational elements of the distributed database system 1000. The extraction utility 1012 transfers the data from the database 1010 to a bulk insert file (bif) 1014. A style file 1016 defines the format of the bif 1014. An indexing utility 1018 transforms the data from the bif 1014 to an indexed collection 1020 which can be accessed by a search engine 1028. Preferably, the search engine 1028 is Verity available from Verity, Inc. as described in, &#34;Introduction to Verity Search Technology&#34;, http://www.verity.com/support/, the contents of which are herein incorporated by reference. Preferably, the indexing utility 1018 for use with Verity is mkvdk. 
     A query filter 1040 processes the query language statements of the SearchComplement steps 402 (FIG. 4), 602 (FIG. 6) and the SearchSubstitute steps 452 (FIG. 4b), 652 (FIG. 7). In the preferred embodiment, the query language statements are Verity query language statements. See &#34;Introduction to Verity Search Technology&#34;. Preferably, the query filter 1040 is the Verity Server Component called Query Filter. 
     The search engine 1028 searches the indexed collection 1020 in accordance with the queries from the query filter 1040. Before performing the search, the search engine 1028 optimizes the queries as specified in Database System Concepts, Chapter 9, the contents of which are herein incorporated by reference. Preferably, the search engine 128 is the Verity Search &#39;97 Information Server. In the preferred embodiment, the communication network 1004 of the distributed database system 1002 is the World Wide Web and each of the sites 1002 in the distributed database system 1000 is a Website. 
     FIG. 11 is a dataflow diagram illustrating the procedure 1100 for translating the object model representation of the economic web model 104 to the tables in the relational database and for processing the database tables of the distributed database system 1002. In step 1102, the translation procedure 1100 maps the classes representing the agents, goods and services in the economy to tables in the relational database. Specifically, each class corresponds to one or more tables. Further, each attribute of the class corresponds to a column in the table. Similarly, each instance of the class corresponds to a row in the table. 
     In step 1104, the translation procedure 1100 maps the associations among the classes to tables in the relational database. These associations include the complement and substitute associations as well as the associations of the generalization and inheritance hierarchy and the aggregation hierarchy. 
     As is known in the art, the primary keys for both related classes and any link attributes become attributes of the association table. See Object Oriented Modeling and Design, Chapter 17. A primary key denotes the minimal set of one or more attributes chosen by a database designer, which, taken collectively, uniquely identify a row in a table. See Database System Concepts, Chapter 1. 
     In step 1106, the extraction utility 1012 assembles the data from the database 1010 into the bulk insert file 1014 in accordance with the format defined by the style file 1016. Next, in step 1108, the indexing utility 1018, using the style file 1016, transforms the data from the bif 1014 to an indexed collection 1020 which can be accessed by the search engine 1028. 
     FIG. 12 is a dataflow diagram illustrating the implementation of the SearchComplement steps 402 (FIG. 4), 602 (FIG. 6) and the SearchSubstitute steps 452 (FIG. 4b), 702 (FIG. 7) on the indexed collections 1020 containing the objects representing the goods and services in the economy. In step 1202, the query filter 1040 processes the query language statements of the SearchComplement steps 402 (FIG. 4), 602 (FIG. 6) and the SearchSubstitute steps 452 (FIG. 4b), 702 (FIG. 7). Next, in step 1204, a search engine 1028 parses and optimizes the queries. See Database System Concepts, Chapter 9. In step 1206, the search engine 1028 searches the indexed collection 1020 for complement and substitute objects. 
     In the preferred embodiment, the query language statements of the SearchComplement steps 402 (FIG. 4), 602 (FIG. 6) and the SearchSubstitute steps 452 (FIG. 4b), 702 (FIG. 7) are assembled into a stored procedure at each site 1002 and executed on other site 1002 (FIG. 10) to improve the performance of the SearchComplement operations 400, 600 and the SearchSubstitute operations 450, 650. As is known to persons of ordinary skill in the art, a stored procedure is a collection of query language statements which are pre-compiled and stored on a database server. See MCSE Training Guide, SQL Server™ 6.5 Design &amp; Implementation, Sean Baird et al., New Riders Publishing, (1997) (&#34;SQL Server™&#34;), Chapter 10. 
     A database management system (DBMS) implements the object destructor operator 900 (FIG. 9) on the indexed collections 1020 containing the objects representing the goods and services in the economy. In other words, the DBMS enforces the referential integrity required to support the destructor operation 900. As is known in the art, a DBMS consists of a database and a collection of programs to access the database. See Database System Concepts, Chapter 1. Referential Integrity refers to ensuring that a row referenced in one table actually exists in another table. See SQL Server™, Chapter 10. 
     In the preferred embodiment, the DBMS uses nested triggers to cascade deletes for an object corresponding to an agent, good, or service which is removed from the economy. See SQL Server, Chapter 10. Specifically, when an object is deleted, a delete trigger on the class table removes the row corresponding to the object. In addition, the delete trigger performs a delete on the tables corresponding to the object&#39;s complement and substitute associations. Next, the delete trigger on the association tables remove the deleted object&#39;s complement and substitute associations. 
     In the preferred embodiment, the Economic Web Sherpa system 100 is implemented with distributed applications called applets. As is known to persons of ordinary skill in the art, applets are loaded and executed dynamically upon selection of a web page to which they are linked. Applets are written in a computer language that is specifically designed for creating distributed programs. See The Internet, Complete Reference, Harley Hahn, McGraw Hill, 1996, Chapter 10. In the preferred embodiment, the Economic Web Sherpa 100 uses Java as the computer language for implementing the distributed programs. 
     The assembly of the partial subgraphs maintained at each economic agent 502, 504, 506, 508, etc. as shown in FIG. 5b at their corresponding sites 1002 yields an undirected graph representation G[V, E, δ] of the complete economic web model 104 of the economy of goods, services and economic agents. 
     The present invention, Economic Web Sherpa operates in a plurality of different modes corresponding to a plurality of different levels of abstraction. In the most abstract mode, Economic Web Sherpa constructs an economic web model 104 from observations of relations between goods and services in the economy. The undirected graph representation G[V, E, δ] of the most abstract mode contains an edge between two vertices if a complement or substitute relation was observed between two corresponding goods and services. Accordingly, in its most abstract mode, Economic Web Sherpa does not represent any functional attributes or behavior of the objects of the economic web model 104. In successively less abstract modes, the objects of the economic web model 104 contain successively more detailed functional attributes and behavior of the goods and services in the economy. 
     After construction of the economic web model 104, the present invention performs an analysis of the economic web model 104 at any moment in time to reveal important features of the economy (Step 108, FIG. 1). Like the undirected graph representation G[V, E, δ] of the economic web model 104, the analysis aspect of Economic Web Sherpa operates in different levels of abstraction. In the most abstract mode, the analysis aspect only considers structural features of the undirected graph representation G[V, E, δ]. For example, as is known in the art and as explained in Physical Design Automation of VLSI Systems, The Benjamin/Cummings Publishing Company, Inc. (1988), Chapters 1 and 2, the contents of which are herein incorporated by reference, partitioning and clustering algorithms can identify central locations of activity within the economic web model 104. Likewise, additional analysis tools reveal other features such as the complementary and substitution connectivity among the sites 1002 and the diameter, radius, centroids, descendant trees, cliques, and cycle structure of the economic web model 104. 
     The structure of the economic web model 104 and the analysis reveal important economic data. For example, it is almost certainly more valuable to be at a center of a cluster in the economic web model 104, like the automobile and the computer, than on its periphery, like the hula hoop or the pet rock. 
     Further, major new goods create a burst of innovation of other new goods in their vicinity in the web. Testing for the location and local structure of the web of such new activities is of high economic value, both for capitalization choices and for marketing purposes. 
     In successively less abstract modes, Economic Web Sherpa considers successively more detailed functional aspects and behavior of the objects representing the goods and services in the economy. For example, FIG. 13 is a dataflow diagram illustrating a generative operation 1300 to identify new niches, new growth opportunities and new locations of strategic competition for an economic agent by combining goods and services with generative tools which recognize functional relations between objects representing the goods and services. In less abstract embodiments, the generative operation 1300 also has a economic utility which selects a subset of the resulting set of new goods and services by measuring and considering economic value. 
     In step 1302, a generative operation 1300 automatically links pairs of objects, triplets of objects or higher order sets of objects which are functionally linkable to form a set of first adjacent objects representing a new set of adjacent possible goods and services. The generative operation 1300 uses the identified relations in the undirected graph representations G[V, B, δ] at the economic agents 502, 504, 506, and 508 (FIG. 7) to guide the search for functionally linkable objects. 
     In step 1304, the generative operation 1300 determines whether it has generated adjacent objects to the predetermined depth. If the generative operation 1300 has not generated adjacent objects to the predetermined depth, control proceeds to step 1302. In the second iteration of the loop, the generative operation 1300 automatically links objects from the set of extant objects and the set of first adjacent objects to form a set of second adjacent objects. By induction, the generative operation 1300 produces a set of incrementally higher adjacent objects at each successive iteration of the loop from the previously generated sets of adjacent objects and the original set of objects from the economic web model 104. 
     If the generative operation 1300 has generated adjacent objects to the predetermined depth, control exits the loop and proceeds to step 1306. In step 1306, an optional utility function, available in less abstract modes of Economic Web Sherpa, computes a value of each adjacent object as specified in The Origins of Order, Chapter 10. Specifically, the utility function computes the economic value of each adjacent object. The utility function also discounts the economic value of higher order adjacent objects to present value. For instance, if the economic value of a router today is 100 utils, the same router tomorrow is worth B*100 utils where B&lt;1.0. 
     In step 1308, an optional selection utility, which is also available in less abstract modes of Economic Web Sherpa, chooses a predetermined number of the first adjacent objects with the highest economic utility. The optional selection utility further comprises a stochastic element which accounts for stochastic considerations such as the probability of acquiring venture capital. 
     In step 1310, the algorithm determines whether it has executed the predetermined number of times. If the algorithm has not executed the predetermined number of times, control proceeds to step 1302 where the generative algorithm creates new objects representing new goods and services from the first adjacent objects chosen by the selection utility. If the algorithm has executed the predetermined number of times, the algorithm terminates. Upon termination, the generative operation 1300 yields a set of new goods and services to identify new niches, new growth opportunities and new locations of strategic competition. 
     As is known in the art, a variety of generative operations 1300 could be used to link objects and to compute the economic value of the adjacent objects including multi-criteria landscapes and multi-criteria landscapes as specified in a patent application which is currently under development titled, &#34;A Method and System for Configuration Guidance, Organizational Simulation and Landscape Representation,&#34; attorney docket 009392-0009-999, the contents of which are herein incorporated by reference. 
     An additional analysis tool of Economic Web Sherpa simulates the effect of the entry of a new good or service into the economy by creating a corresponding object with attributes and behavior and by propagating the effect of the new object on the undirected graph representation G[V, E, δ] of the economic web model 104 using the Object Constructor 800, the SearchComplement operations 400, 600 and the SearchSubstitute operations 450, 650. Similarly, the analysis tool simulates the extinction of an existing good or service from the economy by propagating the effect of the object&#39;s extinction on the economic web model 104 using the Object Destructor 900. 
     The analysis tool also simulates the effect of changing an existing good or service by propagating the effect of the change on the undirected graph representation G[V, E, δ] of the economic web model 104 using the SearchComplement operations 400, 600 and the SearchSubstitute operations 450, 650. For example, the modification of an automobile tire enabling higher speeds around corners could lead to new complement relations with modified axles and with roads having a higher degree of curvature. Accordingly, the analysis tool also simulates technological co-evolution to identify new market niches, new growth opportunities and new locations of strategic competition 
     While the above invention has been described with reference to certain preferred embodiments, the scope of the present invention is not limited to these embodiments. One skilled in the art may find variations of these preferred embodiments which, nevertheless, fall within the spirit of the present invention, whose scope is defined by the claims set forth below.