The basic design of Enif is shown in Figure 1 in the form of a block diagram. The central part of the diagram describes the internal concepts which, as such, are not specific for the graphical user interface, but form the abstract pilers on which Enif is built. This includes the internal representation of the
[Page]network, the attributes, the expressions and the parameters, which are the basic objects used to build user configurable objects in Enif.The graphical interface part of Enif is depicted on the right hand side of Figure 1. It is based on an abstract network plane which receives the graphical information generated by a set of mappers using an abstract drawing and a writing tool we call the stylus.
Other functionalities can be based on the foundation provided by Enif, as indicated in the upper left corner of the block diagram. One example of this is the list generator.
The access to the EMME/2 data bank is completely modular and separated from the rest of the Enif code. This implies that accessing network data from other sources than an EMME/2 data bank could be achieved by simply providing the corresponding alternate network I/O modules, should this ever be required.
In the following sections, all these fundamental building blocks of Enif will be discussed in more detail. While reading on, it is a good idea to return back to Figure 1 from time to time. What at the beginning might look like a bunch of empty phrases, will --hopefully!-- after having reached the end of this paper be f






