It is highly unlikely that Sandra left the apple. It is impossible that Gertrude is a sheep. It is probably not the case that John put down the milk. Chances are about even that if 'Sandra left the apple' or 'John put down the milk' or both then Julius is a lion. It is likely that if 'Gertrude is a sheep and John put down the milk' then Winona is a wolf. We doubt that if 'Sandra left the apple and John put down the milk' then Lily is a swan.
It is almost certain that either 'Winona is a wolf' or 'Gertrude is a sheep' but not both.
It is impossible that either 'Winona is a wolf' or 'Gertrude is a sheep' but not both.
It is almost certain that either 'Winona is a wolf' or 'Gertrude is a sheep' 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.05::factA.
  0.0::factB.
  0.25::factC.
  %hop1
  0.5::factX:-or(factA,factC).
  0.7::factY:-and(factB,factC).
  0.2::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'Winona is a wolf' or 'Gertrude is a sheep' but not both.