It is probable that Lily is gray. Chances are about even that Fred dropped the milk. It is impossible that Mary left the football. We doubt that if either 'Fred dropped the milk' or 'Mary left the football' but not both then Yann is tired. It is highly unlikely that if either 'Lily is gray' or 'Mary left the football' but not both then John moved to the garden. It is impossible that if either 'Lily is gray' or 'Mary left the football' but not both then Brian is a swan.
It is almost certain that either 'Brian is a swan' or 'Yann is tired' but not both.
It is improbable that either 'Brian is a swan' or 'Yann is tired' but not both.
It is almost certain that either 'Brian is a swan' or 'Yann is tired' 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.5::factB.
  0.0::factC.
  %hop1
  0.2::factX:-xor(factB,factC).
  0.05::factY:-xor(factA,factC).
  0.0::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Brian is a swan' or 'Yann is tired' but not both.