strony reguły. Akcja ta może oczywiście zmieniać aktualny kontekst, co może następnie powodować to, że inne reguły, dotychczas nie-spełnialne (zablokowane), staną się spełnialne. Aktualny kontekst powinien być przedstawiony za pomocą takiej struktury danych, która umożliwia szybkie jej przeglądanie i modyfikację. Oczywiście, jeżeli więcej niż jedna reguła jest w danej chwili stosowalna, istnieje możliwość wystąpienia konfliktu wyboru. Interpreter reguł musi mieć zatem wbudowaną jakąś strategię wyboru. Proponuje się tu /1/ kilka różnych rozwiązań: jako pierwsza zastosowana zostaje:
- pierwsza reguła stosowalna (jeżeli występują one w jakimś porządku);
- reguła o najwyższym priorytecie (jeśli mają przypisane priorytety) ;
- najbardziej szczegółowa reguła (to jest taka, która ma najwięcej warunków);
reguła posiadająca warunek ostatnio dodany do kontekstu;
- nowa, jeszcze nie stosowana reguła (jeśli taka istnieje);
T dowolna reguła (ale tu występuje hazard!);
- równolegle wszystkie w lanym momencie stosowalne (jeśli istnieje możliwość współbieżnego zastosowania tych reguł).
Niestety, żaden prosty sposób rozwiązywania tego konfliktu nic wydaje się doskonały. Obszerna dyskusja na ten temat znajduje się
w pracy Davis’a i King’a /3/.
W trakcie konsultacji użytkownik przedstawia swój problem (podaje fakty z nim związane) i odpowie:s na ewentualne»dodatkowe pytania. System sterujący odpowiedzialny jest za zorganizowanie i nadzór nad przebiegiem rozwiązywania problemów. Na podstawie bazy wiedzy i danych wejściowych oraz wbudowanego mechanizmu wnioskowania buduje aktualny kontekst (obraz stanu wiedzy systemu w aktualnym mo-
61