We believe that John moved to the garden. It is unlikely that Mary went to the kitchen. It is highly unlikely that Lily is yellow. It is unlikely that if either 'Lily is yellow' or 'Mary went to the kitchen' but not both then Sandra left the milk. It is probably not the case that if either 'Lily is yellow' or 'John moved to the garden' but not both then Gertrude is a wolf. There is a very good chance that if 'John moved to the garden and Lily is yellow' then Fred is in the school.
It is probably not the case that either 'Gertrude is a wolf' or 'Lily is yellow' but not both.
It is probably not the case that either 'Gertrude is a wolf' or 'Lily is yellow' but not both.
We believe that either 'Gertrude is a wolf' or 'Lily is yellow' 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.2::factB.
  0.05::factC.
  %hop1
  0.2::factX:-xor(factC,factB).
  0.25::factY:-xor(factC,factA).
  0.8::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'Gertrude is a wolf' or 'Lily is yellow' but not both.