1. The various diseases and symptons the essential concepts in this domain. The attributes and their values we distinguish can be found in attributes.txt. The relationships between diseases is described with the family attribute. Symptoms are also embedded in a taxonomy. 2. The input will be a selection from a list of symptoms, which can be iteratively refined, guided by the software. The output will be a diagnosis based on the available information, or a list of posibilities. 3. Match the input attributes with database value pairs. Check in database for crossreferencing. Get probability for each matching output. Reference highest qualifiers back to their stored input values. Find best matching. Find non-matching. 4. The knowledge determines the output of the system. 5. A scheme where the system guides the diagnosis is probably the most effective. If the user has to take all the initiative, one could ask "give me all diseases with fever', but that's more like a database than a knowledge system. Therefore it's better if the computer uses the knowledge to guide the reasoning process, to ask specific questions, in a top down fashion. This also relieves the burden of interpreting the user's answers; if the computer specifically asks for fever temperature in degrees celsius it can be matched against the knowledge base imediately. If the user would have the initiative it would be more of a challenge to try to unify the stated symptoms with symptoms already in the knowledge base.