Chances are about even that Bill went to the garden. It is impossible that Lily is a rhino. It is almost certain that Sandra took the milk. We doubt that if either 'Sandra took the milk' or 'Bill went to the garden' but not both then Jessica is a mouse. Chances are about even that if 'Sandra took the milk' or 'Bill went to the garden' or both then Daniel grabbed the apple. There is almost no chance that if 'Bill went to the garden' or 'Lily is a rhino' or both then Bernhard is green.
There is almost no chance that either 'Daniel grabbed the apple' or 'Sandra took the milk' but not both.
Chances are about even that either 'Daniel grabbed the apple' or 'Sandra took the milk' but not both.
There is almost no chance that either 'Daniel grabbed the apple' or 'Sandra took 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.5::factA.
  0.0::factB.
  0.95::factC.
  %hop1
  0.2::factX:-xor(factC,factA).
  0.5::factY:-or(factC,factA).
  0.02::factZ:-or(factA,factB).

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

  query(conclusion).
  
Either 'Daniel grabbed the apple' or 'Sandra took the milk' but not both.