Chances are slight that Lily is white. Chances are slight that Sandra left the football. Chances are about even that Julius is a swan. It is probably the case that if 'Sandra left the football' or 'Lily is white' or both then Bernhard is a rhino. We doubt that if 'Lily is white and Julius is a swan' then Greg is green. There is a very good chance that if 'Lily is white' or 'Sandra left the football' or both then John put down the apple.
There is a very good chance that either 'Sandra left the football' or 'Lily is white' but not both.
We doubt that either 'Sandra left the football' or 'Lily is white' but not both.
There is a very good chance that either 'Sandra left the football' or 'Lily is white' 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.1::factB.
  0.5::factC.
  %hop1
  0.7::factX:-or(factB,factA).
  0.2::factY:-and(factA,factC).
  0.8::factZ:-or(factA,factB).

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

  query(conclusion).
  
Either 'Sandra left the football' or 'Lily is white' but not both.