It is highly likely that Julius is a lion. It is impossible that Winona is a wolf. It is probable that Gertrude is a sheep. It is unlikely that if 'Winona is a wolf' or 'Gertrude is a sheep' or both then Antoine is thirsty. It is probably not the case that if 'Julius is a lion' or 'Gertrude is a sheep' or both then Mary took the football. We doubt that if either 'Winona is a wolf' or 'Julius is a lion' but not both then John went to the bedroom.
It is probably not the case that either 'John went to the bedroom' or 'Mary took the football' but not both.
It is probably not the case that either 'John went to the bedroom' or 'Mary took the football' but not both.
It is likely that either 'John went to the bedroom' or 'Mary 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.9::factA.
  0.0::factB.
  0.7::factC.
  %hop1
  0.2::factX:-or(factB,factC).
  0.25::factY:-or(factA,factC).
  0.2::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'John went to the bedroom' or 'Mary took the football' but not both.