In the time of my university studies, computers were treated as mystical powerful machines accessible only to government agencies or big corporate owners. That was twenty years ago. Now they are in almost every office and many homes.For the average person software is the integral key to getting the most out of computers. In the beginning of computer application, software was aimed to replace people in tedious tasks. Besides specialistic software, spreadsheets and databases are the most popular of these kinds of programs and known to almost every computer user. There is a diversity of these types of products on the market and everyone can choose the program which suits him the best. Other kinds of programs which are invisible to the common day user are embedded in programmable chips of home or business hardware. Their role is to maintain environmental variables (temperature, humidity, light) on pre-programmed levels.
All the above mentioned software helps us to deal with data. The knowledge concerning data manipulation is contained in programs. To change the mode of data handling one has to rewrite a program or re-programme a chip.
In the late 1960s, some research centres began to involve computers in knowledge handling and created what is known as artificial intelligence science. Since then, we have learned how to simulate logical reasoning, pattern recognition and learning processes in computers. One of the outcomes of these experiments was 'expert systems', a new generation of computer software. In an expert system not only data are supplied by a user but also the knowledge how to handle them.
Knowledge incorporated in expert systems can be of two kinds: common knowledge or scientific knowledge based on experimentation. The aim of an expert system is to model human behaviour in dealing with a natural system which is a set of entities of interest together with relationships between them. Such as:
- Aiming at the economic analysis of a horticultural operation, one can define a greenhouse, its employees, plants produced, and materials used as the system. The aim of the analysis can be to find the configuration of all these elements (crop rotation, work scheduling, technology used) which will give the best economic results.
- Trying to optimise the growth of a particular crop, a scientist can analyse the relationship between the environment (light, temperature, carbon dioxide concentration, substrate composition) and net photosynthesis. All environmental variables together with plants constitute the system.
The values of variables, such as names of employees, light, temperature, carbon dioxide levels, mortgage rates, material prices are data flowing from these specified systems. Knowledge is information on how the replacement of one crop with another would influence the economic outcome of production (first example) and how environmental variables influence plant photosynthesis and respiration (second example). Expert systems originated from the demand for domain knowledge. Human experts are rare, busy and expensive.
The first expert systems of practical significance, Mycin and Emycin, were created for the diagnosis of human diseases. The 1980s saw a rapid development of this kind of software and presently thousands of expert systems help real experts or replace them in decision undertaking. A typical expert system is composed of a 'user interface', a 'knowledge base', and the 'inference engine'.
- User interface should enable communication between an user and a program in a natural language or through friendly window interface. Through interface all data and queries are supplied to a system and answers are fed back.
- Knowledge base contains facts, type hierarchy and rules specific to a particular domain.
- Facts describe the natural system elements and structure, i.e. to grow plants one must plant them, provide proper temperature and light, fertilise, water, protect from pests and diseases and harvest; plants can be grown in pots, plug trays, hanging baskets; fungicides are used to protect plants against diseases.
- Type hierarchy is a tree-like structure mirroring human systemising reality. The notions within it are connected by the expression is a, is a type of or is a kind of, such as igloo is a greenhouse, Benlate is a fungicide, pot is a container. Notions on the left hand side are called sub-types, notions on the right hand side - super-types. Sub-types inherit properties and characteristics of their super-types, but they are more detailed and have some characteristics specific only to them. Type hierarchy is used by an inference engine in a reasoning process.
- Rules can be expressed by if ... then ... statements, i.e. if you water plants overhead in an afternoon and leaves will get wet then there is an increased chance for disease attack or can be based on mathematical formulas developed during scientific experimentation (see below).Rules of both types are usually defined with certain probabilities.
Example:
Relationship between kiwifruit vine dry weight and estimated fruit yield (Buwalda and Smith, 1988): VDW = (FY * k) + TVDW
whereVDW - vine dry weight (t * ha-1), FY - estimated fruit yield (fresh weight)(t * ha-1), k - linear term in regression of vine dry weight against fruit yield (0.59), TVDW - threshold vine dry weight below which no fruit production occurs (3.8 t * ha-1)
In a well constructed expert system all these elements are usually independently developed programs which communicate with each other during an expert system execution. Such a structure makes corrections and upgrading easy.
- Inference engine is the brain of an expert system and contains reasoning strategies which can be universal laws of logic or inference strategies typical for a particular domain or an expert. When a user supplies data to an expert system, an inference engine processes them according to its reasoning rules and knowledge contained in a knowledge base. Afterwards, a solution and its probability is given to the user with a description of a reasoning path.
Expert systems are especially suited for applications in:
Traditional expert systems are limited by the lack of learning abilities. However, recent developments in this field - knowledge-based systems or knowledge systems - have the ability to learn from data which they deal with. They can also gather expertise from an expert or a knowledge engineer via specialised interfaces.
- identification procedures (pests, diseases, nutritional disorders, plants);
- optimisation of production from a technological and economical point of view;
- allocation of multiple resources,
and- risk management.
The learning process can be modelled with the use of an inference engine which infers new rules from existing ones and data supplied (learning by discovery), neural networks (learning by example) or genetic algorithms (learning by adaptation through mutations and selection).