It is improbable that Sandra left the milk. It is likely that Emily is a wolf. We believe that Brian is yellow. It is probably the case that if 'Sandra left the milk' or 'Emily is a wolf' or both then Mary went to the office. There is a very good chance that if 'Sandra left the milk' or 'Brian is yellow' or both then John put down the apple. It is improbable that if either 'Sandra left the milk' or 'Brian is yellow' but not both then Bernhard is white.
It is probably the case that either 'Bernhard is white' or 'Brian is yellow' but not both.
It is probably the case that either 'Bernhard is white' or 'Brian is yellow' but not both.
It is probably not the case that either 'Bernhard is white' or 'Brian is yellow' 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.7::factB.
  0.75::factC.
  %hop1
  0.7::factX:-or(factA,factB).
  0.8::factY:-or(factA,factC).
  0.1::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Bernhard is white' or 'Brian is yellow' but not both.