store known facts store IF-THEN rules compare facts with rule conditions apply matching rules generate new facts or conclusions repeat until no useful rule applies