There is a better than even chance that Brian is a swan. It is highly unlikely that Bill moved to the office. We doubt that Bernhard is white. It is probably not the case that if 'Bill moved to the office' or 'Brian is a swan' or both then Winona is a mouse. It is likely that if 'Bill moved to the office and Brian is a swan' then Lily is yellow. It is almost certain that if either 'Bernhard is white' or 'Brian is a swan' but not both then John picked up the apple.
It is probably not the case that either 'Bill moved to the office' or 'Bernhard is white' but not both.
It is probably not the case that either 'Bill moved to the office' or 'Bernhard is white' but not both.
It is almost certain that either 'Bill moved to the office' or 'Bernhard 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.6::factA.
  0.05::factB.
  0.2::factC.
  %hop1
  0.25::factX:-or(factB,factA).
  0.7::factY:-and(factB,factA).
  0.95::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'Bill moved to the office' or 'Bernhard is white' but not both.