There is almost no chance that Brian is white. There is a better than even chance that Winona is a wolf. There is a very good chance that John went to the garden. It is almost certain that if either 'John went to the garden' or 'Brian is white' but not both then Fred dropped the milk. It is probable that if either 'John went to the garden' or 'Winona is a wolf' but not both then Bernhard is a swan. There is almost no chance that if 'Brian is white and Winona is a wolf' then Mary picked up the apple.
We believe that either 'Brian is white' or 'Fred dropped the milk' but not both.
We believe that either 'Brian is white' or 'Fred dropped the milk' but not both.
Chances are slight that either 'Brian is white' or 'Fred dropped 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.02::factA.
  0.6::factB.
  0.8::factC.
  %hop1
  0.95::factX:-xor(factC,factA).
  0.7::factY:-xor(factC,factB).
  0.02::factZ:-and(factA,factB).

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

  query(conclusion).
  
Either 'Brian is white' or 'Fred dropped the milk' but not both.