Chances are slight that Sandra left the milk. It is highly likely that Greg is gray. Chances are slight that Bernhard is yellow. There is little chance that if 'Sandra left the milk and Greg is gray' then Mary went to the bedroom. It is certain that if 'Bernhard is yellow' or 'Sandra left the milk' or both then Lily is a frog. It is probably the case that if either 'Sandra left the milk' or 'Bernhard is yellow' but not both then John put down the milk.
We doubt that 'Greg is gray' or 'John put down the milk' or both.
It is highly likely that 'Greg is gray' or 'John put down the milk' or both.
We doubt that 'Greg is gray' or 'John put down 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.1::factA.
  0.9::factB.
  0.1::factC.
  %hop1
  0.1::factX:-and(factA,factB).
  1.0::factY:-or(factC,factA).
  0.7::factZ:-xor(factA,factC).

  %hop2
  conclusion:-or(factB,factZ).

  query(conclusion).
  
'Greg is gray' or 'John put down the milk' or both.