Conceptually, a network always acts in an environment of some kind. For example, back propagation and pattern associator networks act in an environment of input-output patterns. An unsupervised learning network operates in an environment consisting of input patterns.
In PDP++, the object of type Environment contains all the information that specifies the kinds of stimuli or patterns that the network will be tested or trained on. The role of the environment is to represent all of the data, structured so that the data can be interpreted by the processes and presented to the network appropriately. Thus, it is like a database or a library. The environment does not specify things like the order with which events will be presented to the network--this is the job of the processes, which, to continue the metaphor, act like librarians in providing the interface between the data (the environment) and the consumer (the network).
There is a special relationship between the EventSpec, which specifies properties of events, and the Event objects themselves. Any changes made to the event spec (or its pattern specs), for example in the number of patterns per event or size of one of the patterns, are automatically propagated to all of the events that use the event spec. Thus, the EventSpec acts much like a dynamic template for events, which is a different role for a spec object. This design makes it very easy to modify environments once they've been created.
The EnviroView enables you to interactively configure the event specs for the events, much in the same way the net view allows one to configure networks.