In this paper the concepts behind Enif are explained and they are illustrated using examples from the current implementation, which can be used to produce graphic and list output based on EMME/2 data banks. The emphasis is put on making the reader understand the foundation on which Enif is built. The user interface itself, i.e. the details of the interaction between the user and Enif are not dealt with explicitly, since a) the current implementation is not final and the external aspects may still change and b) this paper is not intended to be a reference manual.
Enif - The Basic Concepts
When the Enif project started in the summer of 1999, its design was approached with the following goals in mind:
- Provide all functional features needed within the framework of a consistent modern graphical user interface.
- Remain compatible with all current EMME/2 applications at the data bank level. This compatibility implies being able to access the data available in these data banks. It does not imply that Enif should be able to produce identical output as does EMME/2.
- Run with identical functionality on all platforms on which the current version of EMME/2 is running. This means that Enif must be able to run both under the Microsoft Windows family of operating systems as well as under the various flavors of Unix supported by EMME/2.
- Build a solid base which is strong enough, both on the conceptual level and on the implementation side, to build upon the future developments of EMME/2 for many years to come.
- Provide useful functionality to the EMME/2 users within a reasonably short time frame.
In the past 15 months most effort went into the development of the general concepts and the basic mechanisms needed for their implementation. These concepts are more important for understanding the ``philosophy'' behind Enif th






