Chances are about even that Jeff went to the garden. It is probably the case that Sandra left the milk. It is probably the case that Greg is a rhino. It is improbable that if 'Sandra left the milk and Jeff went to the garden' then John discarded the milk. It is impossible that if 'Greg is a rhino' or 'Jeff went to the garden' or both then Bernhard is a frog. It is probably the case that if 'Jeff went to the garden' or 'Sandra left the milk' or both then Lily is a swan.
It is probable that either 'Sandra left the milk' or 'John discarded the milk' but not both.
It is probable that either 'Sandra left the milk' or 'John discarded the milk' but not both.
It is probably not the case that either 'Sandra left the milk' or 'John discarded 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.7::factB.
  0.7::factC.
  %hop1
  0.1::factX:-and(factB,factA).
  0.0::factY:-or(factC,factA).
  0.7::factZ:-or(factA,factB).

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

  query(conclusion).
  
Either 'Sandra left the milk' or 'John discarded the milk' but not both.