Some aspects of the solutions based on a software based analysis framework are that they need to act more "intelligent" and be more tolerant of uncertainty than traditional software based systems. These characteristics are, to some extent, present in the way that humans approach the same kinds of problems. Although the purpose of an analysis framework is not necessarily to mimic biological thought processes, there is sufficient common ground to make it a logical place to begin a design. From one standpoint, there are basically two ways that human analysts can approach a given situation. Both cases amount to dealing with the problem as more manageable parts which are either more easily understood or more deterministic than attempting to deal with the entire problem at once. The design of the framework must be able to support both forms of analysis.
Top-down - Prediction driven processing - addresses questions of the type " Why is this?" In this case the decomposition process identifies what information is necessary or at least desirable before a statistically valid inference can take place. For each of the required pieces of information the process repeats until either all mandatory information is obtained from atomic values or a roadblock is hit where one or more required pieces of information are unavailable and can not be estimated by other means, in which case the deficiency is simply reported. If all the necessary information can be collected then it is applied according to the system model to produce the resulting "answer".
Bottom-up - Data driven processing - addresses questions of the type " What does this mean?" The bottom up process is essentially a sensemaking exercise where there initially exists some amount of basic information (observations) that need to be processed into progressively more relevant or understandable forms.
The figure below illustrates a stack that is equally relevant for either top-down or bottom-up forms of reasoning. Each successive layer is derived from information in the layer below it. The intent of the reasoning framework developed in this investigation is to provide optimal capabilities for producing and operating on information (knowledge) in each of the levels in the stack. Note that this process stack and the capabilities required to implement it are extremely generic. A framework capable of generalizing analysis capabilities across all the layers could be applied to a very broad range of problems.

A specific algorithm or technology might be effective at providing one small part of the overall stack, such as detecting an inferred entity from an observation, or classifying a group of inferred entities. It is the goal of the reasoning framework to incorporate those kinds of capabilities along with others into a framework capable of addressing the full stack. Each aspect of a given analysis problem can be easily mapped somewhere in the stack. For example, detection activities typically occur between the bottom two layers while decision support tasks might occur between the top two layers. It is often the case that a particular analysis activity falls between two layers and serves to relate information from one layer to the next.