E3 would consist of a ``knowledge base'' (KB), a single, unified, easily accessed, and easily updated reservoir of EE&E\ data, on top of which would sit the mill, which would give the User the ability not only to query the raw data in the KB, but also to perform tasks via the Apprentice which require combining different pieces of information in the KB, including performing the back of the envelope estimates mentioned above, as well as constructing and solving more sophisticated models.
The KB would contain 4 general sorts of information:
(a)`macro', or `extensive' numbers, characterizing the stocks and flows of resources in systems of interest, e.g., the amount of cropland in the US, or the number of Gigatons of CO2 being pumped into the atmosphere per year.
(b)`micro', or `intensive' numbers, characterizing technologies or materials out of which systems are built, e.g., the conversion efficiencies of aeroderivative turbines, the energy per unit weight of dry wood, or the cost per installed Watt of a coal-fired plant.
(c)`relational' information, including links between objects in the KB, which indicate the relationships which exist among these objects, and equations giving the Apprentice an understanding of important EE&E concepts that both it and the User can call upon in performing analyses.
(d)`support' information, including help information on the meaning and use of the symbols and functions in the system, notes on the proper interpretation of the numbers in the KB, the source from which they were drawn, and pointers to useful references and authorities on a specified topic. The potential power of these pointers could be enhanced by a facility allowing E3 to directly access information on the World Wide Web.
We have chosen to implement most of E3 in Mathematica, and some preliminary prototyping has been done to sharpen our understanding of where the possibilities and challenges lie in building the system. The symbolic capabilities of a computer-algebra system (CAS) like Mathematica are useful in a number of respects, in organizing and manipulating the heterogenous kind of information EE&E work entails. Mathematica is a modern, widely used and well supported CAS, with excellent capabilities not only for symbolic algebra, but also for graphics, pattern-matching (useful in writing code for AI/expert system applications), for numerical solution of algebraic and differential equations (which will lend itself well to incorporating facilities for modeling), and facilities for interacting with outside software, in possible extensions of the system, such as the direct Web access mentioned above.
The KB is organized as a `net,' or `graph,' with labeled `links,' or `arcs' between one concept and another. One set of arcs gives concepts in the KB an `Object-Oriented' (OO) structure, with concepts organized into classes and subclasses, which inherit the properties of their superclass, similar to in an OO-language like C++. These `inheritance hierarchies' can be seen in the syntax of some of the illustrations in Sec. .
Another set of arcs describes the decomposition of an object into
its constituent parts, and inheritance properties may be inferred from these relations as well. Thus, the partition of the US into its constituent states or landuse types could be used to automatically compute the total area, population, or energy use of the US, if the KB only knew these quantities for each state. Similary, economic routines could compute the total capital cost of a system for which the KB only held the cost of each of its component parts.
For E3, one needs a User/Apprentice communication language which is natural enough that the User can get started quickly, having read perhaps a few introductory pages and seen a few examples of E3's operation. The User will know a modest amount about algebraic notation, but should not be required to have much expertise in either mathematics, computer programming, or Mathematica itself. We believe that the computer-algebraic form of the Mathematica expressions in terms of which E3 currently operates, supplemented by online help-facilities (see below), should permit this envisioned population of users to quickly begin making use of the Apprentice. However, if initial testing indicates it is warranted, the initial `kernel' system could be overlaid with a natural-language parser, to allow questions to be posed in a subset of English. Mathematica has the symbolic capabilities to make writing a language parser feasible.