It is probably the case that Sandra dropped the milk. We doubt that Bernhard is green. It is probably not the case that Brian is a lion. It is impossible that if either 'Brian is a lion' or 'Sandra dropped the milk' but not both then Emily is a wolf. It is highly likely that if either 'Sandra dropped the milk' or 'Bernhard is green' but not both then Julius is gray. It is probable that if 'Sandra dropped the milk' or 'Bernhard is green' or both then John moved to the office.
It is probably not the case that either 'Sandra dropped the milk' or 'John moved to the office' but not both.
It is probably not the case that either 'Sandra dropped the milk' or 'John moved to the office' but not both.
It is highly likely that either 'Sandra dropped the milk' or 'John moved to the office' 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.7::factA.
  0.2::factB.
  0.25::factC.
  %hop1
  0.0::factX:-xor(factC,factA).
  0.9::factY:-xor(factA,factB).
  0.7::factZ:-or(factA,factB).

  %hop2
  conclusion:-xor(factA,factZ).

  query(conclusion).
  
Either 'Sandra dropped the milk' or 'John moved to the office' but not both.