We believe that Brian is gray. It is likely that John moved to the garden. It is highly likely that Sandra took the football. We believe that if 'Brian is gray' or 'John moved to the garden' or both then Bernhard is a lion. There is a better than even chance that if 'Sandra took the football and John moved to the garden' then Jessica is a sheep. It is likely that if either 'Brian is gray' or 'Sandra took the football' but not both then Mary went to the bedroom.
It is probable that either 'Bernhard is a lion' or 'Sandra took the football' but not both.
It is probably not the case that either 'Bernhard is a lion' or 'Sandra took the football' but not both.
It is probable that either 'Bernhard is a lion' or 'Sandra took the football' 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.75::factA.
  0.7::factB.
  0.9::factC.
  %hop1
  0.75::factX:-or(factA,factB).
  0.6::factY:-and(factC,factB).
  0.7::factZ:-xor(factA,factC).

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

  query(conclusion).
  
Either 'Bernhard is a lion' or 'Sandra took the football' but not both.