There is a very good chance that Sandra dropped the milk. It is certain that John picked up the apple. There is little chance that Daniel got the milk. It is impossible that if 'John picked up the apple and Daniel got the milk' then Jessica is a mouse. There is a very good chance that if 'Daniel got the milk' or 'Sandra dropped the milk' or both then Lily is green. It is certain that if 'Daniel got the milk and John picked up the apple' then Sumit is thirsty.
It is impossible that 'Daniel got the milk' or 'Sandra dropped the milk' or both.
There is a very good chance that 'Daniel got the milk' or 'Sandra dropped the milk' or both.
It is impossible that 'Daniel got the milk' or 'Sandra dropped the milk' or both.

  and(A,B) :- A,B.
  or(A,B) :- A;B.
  nand(A,B) :- not(and(A,B)).
  nor(A,B) :- not(or(A,B)).
  xor(A,B) :- or(A,B), nand(A,B).

  %hop0
  0.8::factA.
  1.0::factB.
  0.1::factC.
  %hop1
  0.0::factX:-and(factB,factC).
  0.8::factY:-or(factC,factA).
  1.0::factZ:-and(factC,factB).

  %hop2
  conclusion:-or(factC,factA).

  query(conclusion).
  
'Daniel got the milk' or 'Sandra dropped the milk' or both.