Chances are slight that Greg is a rhino. It is highly unlikely that Bernhard is green. There is a very good chance that John moved to the garden. It is certain that if 'John moved to the garden' or 'Bernhard is green' or both then Fred dropped the milk. It is probable that if 'Bernhard is green and Greg is a rhino' then Sandra left the apple. It is impossible that if 'John moved to the garden and Greg is a rhino' then Lily is yellow.
There is a very good chance that either 'Sandra left the apple' or 'Fred dropped the milk' but not both.
There is a very good chance that either 'Sandra left the apple' or 'Fred dropped the milk' but not both.
It is impossible that either 'Sandra left the apple' or 'Fred dropped the milk' but not 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.05::factB.
  0.8::factC.
  %hop1
  1.0::factX:-or(factC,factB).
  0.7::factY:-and(factB,factA).
  0.0::factZ:-and(factC,factA).

  %hop2
  conclusion:-xor(factY,factX).

  query(conclusion).
  
Either 'Sandra left the apple' or 'Fred dropped the milk' but not both.