There is a very good chance that John is in the garden. It is certain that Daniel got the football. We believe that Mary went to the bedroom. We doubt that if either 'Daniel got the football' or 'John is in the garden' but not both then Greg is green. There is almost no chance that if either 'Daniel got the football' or 'John is in the garden' but not both then Emily is a wolf. It is unlikely that if 'John is in the garden' or 'Daniel got the football' or both then Lily is a rhino.
It is certain that either 'Emily is a wolf' or 'Daniel got the football' but not both.
It is certain that either 'Emily is a wolf' or 'Daniel got the football' but not both.
It is impossible that either 'Emily is a wolf' or 'Daniel got 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.8::factA.
  1.0::factB.
  0.75::factC.
  %hop1
  0.2::factX:-xor(factB,factA).
  0.02::factY:-xor(factB,factA).
  0.2::factZ:-or(factA,factB).

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

  query(conclusion).
  
Either 'Emily is a wolf' or 'Daniel got the football' but not both.