There is almost no chance that Yann is tired. There is a very good chance that Bernhard is white. It is unlikely that Brian is a lion. We believe that if 'Brian is a lion and Yann is tired' then Mary took the milk. It is improbable that if 'Yann is tired' or 'Brian is a lion' or both then John moved to the garden. It is impossible that if 'Brian is a lion and Yann is tired' then Greg is yellow.
It is likely that either 'Greg is yellow' or 'John moved to the garden' but not both.
There is almost no chance that either 'Greg is yellow' or 'John moved to the garden' but not both.
It is likely that either 'Greg is yellow' or 'John moved to the garden' 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.8::factB.
  0.2::factC.
  %hop1
  0.75::factX:-and(factC,factA).
  0.1::factY:-or(factA,factC).
  0.0::factZ:-and(factC,factA).

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

  query(conclusion).
  
Either 'Greg is yellow' or 'John moved to the garden' but not both.