Can I define new rules while execution using predicates?
For example:- In a file- am(i,best). am(A,B):-set(am(A,B)).%here is an imaginary function set that defines a new rule that am(A,B). :-op(451,xfx,am). In swi- ?- consult(file). true. ?-i am great.% this should define a rule that, |'am(i, great)'. I=great. true. Also, I want the program to define a new rule only when I use the operator 'am' not the predicate 'am'.