Hi everyone,

I'm new here. I'd like to learn more about how to get human readable explanations for query answers, both why and why not. For example, with the file:

scared(P1) :- no_escape(P1), faces_conflict_against(P1,P2), is_weaker_than(P1,P2).
no_escape(john).
faces_conflict_against(john,bob).
is_weaker_than(john,bob).
?- scared(john).

John is scared because all three prerequisites matched. How can I ask s(CASP) to tell me the three ways John would not be scared: (1) if he had an escape, (2) if he did not face a conflict with Bob (3) if he were not weaker than Bob.

Let's say John has an escape. I'm not exactly sure how negation works yet in Ciao. "not no_escape(john)" triggers an error but "-no_escape(john)" works. Now, John is not scared. How can I ask s(CASP) to tell me what would be required to make him scared?

Finally, is there a way to express that we don't know whether John has an escape? Do I simply omit that line? Then, how can I ask s(CASP) to reason through both possibilities and tell me the results?

Thank you!
-david