MYCIN databases are declared as Prolog modules containing mycin rules. Those rules are given a
certainty factor (CF) which denotates an expert's credibility on that rule:

A value of -1 stands for surely not.

A value of 1 stands for certainly.

A value of 0 stands for I don't know.

Intermediate values are allowed.

Mycin rules work on a different way as Prolog clauses: a rule will never fail (in the Prolog sense), it will return a certainty value instead. As a consequence all mycin rules will be explored during inference, so the order in which rules are written is not significant. For this reason, the usage of the Prolog cut (!) is discouraged.

This directive allows a given mycin predicate to be called from Prolog programs. The way in which mycin rules are called departs from Prolog ones. For instance, the followin mycin predicate:

:- export p/1.

must be called from Prolog Programs as: mycin(p(X),CF), where CF will be binded to the resulting
certainty factor. Obviously, the variables on P/1 may be instantiated as you wish. Since the Prolog predicate mycin/2 may be imported from several mycin databases, it is recommended to fully qualify those predicate goals. For example : mydatabase:mycin(p(X),CF).