Knowledge based reasoning is a general modeling methodology in which phenomena are described in terms of abstract entities and their logical relations to one another. There are two basic reasons for using knowledge based reasoning:
Both cases are quite common. The first case naturally arises when the nature of the problem involves relatively abstract entities. These problems may simply be easier to solve with logic. The second case arises very frequently because, particularly when dealing with ecosystems, there is an almost unlimited number of relations potentially of interest. Agencies, academia, and others have developed numerous mathematical models to describe some of the important relations of interest to ecosystem management, but many relations have not been studied in sufficient detail to provide generally applicable mathematical models. However, there is often a wealth of human experience in these same institutions that can be drawn upon to develop useful, more qualitative, knowledge based models to guide decision making.
Another valuable aspect of knowledge-based reasoning that makes it ideal for use in environmental assessment is that such systems can reason with incomplete information. The NetWeaver engine used provides partial evaluations of system states and processes based on available information, and provides useful information about the influence of missing data which can be used to improve an assessment.
A NetWeaver knowledge base represents relations among concerns, system states and processes, and data requirements. Uses of dependency networks include:
One of the virtues of a dependency network representation is that a single knowledge base may incorporate a very wide variety of topics. This is particularly valuable in the context of ecological assessments and in which topics of interest might include, for example, many different topics and subtopics related to terrestrial vegetation and wildlife, fish populations, recreation, water and air quality, aesthetic concerns, and commercial concerns. The number of topics and their inter-relations that can be represented in a knowledge base is only limited by a computer’s dynamic memory.
As we discussed in the overview, NetWeaver is a rigorously object-based knowledge base development system. One of the more practical implications of object-based knowledge bases is that it is very easy to start with simple knowledge representations and gradually evolve them into large complex systems because object-based knowledge bases are extremely modular. A basic modeling principle that has motivated development and application of object-oriented technology in general is well captured by Gall1):
"A complex system that works is invariably found to have evolved from a simple system that worked... A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system".
NetWeaver is designed to build a knowledge base in an incremental and evolutionary fashion. The best possible advice that we can give to the novice user is to avoid designing large complex systems at the outset, and instead, start with a simple knowledge base built from a small number of dependency networks, and gradually evolve this simple representation into a more complex representation of the problem.
It is almost always best to start at the top with the highest level (primary) dependency networks that apply to the problem domain, and develop the structure downward. To get started, create and document at least a few of the primary dependency networks (see the sections Creating network objects and Documenting network objects). Don’t be too concerned about identifying an exhaustive list of primary networks at the outset. Because of the modular structure of NetWeaver knowledge bases, new dependency networks can easily be added later in development without upsetting overall knowledge base structure.
For each primary network in the knowledge base, create antecedents. Unless it is an unusually simple knowledge base, there will usually be at least one or two levels of antecedents before a chain of dependencies terminates in a data link.
In a completed knowledge base, you will normally want to be sure that each chain of dependencies terminates in a data link. However, while a knowledge base is under development, it is always possible to evaluate a network object, regardless of how complete the network structure is.
As a knowledge base structure evolves, you will probably find occasion to use existing antecedents (both dependency networks and data links). Multiple occurrences of dependency networks and data links in a single knowledge base, are not a problem because NetWeaver objects are reusable. In fact, the presence of a dependency network, in particular, in two or more other networks within the same knowledge base is an important mechanism by which networks are interrelated.