There is a very good chance that Lily is a lion. There is little chance that John went to the garden. It is probably the case that Daniel took the apple. It is probably the case that if 'John went to the garden' or 'Daniel took the apple' or both then Greg is a swan. It is probably not the case that if 'John went to the garden' or 'Lily is a lion' or both then Sandra got the milk. It is certain that if 'John went to the garden' or 'Lily is a lion' or both then Brian is green.
It is impossible that either 'Daniel took the apple' or 'Lily is a lion' but not both.
Chances are about even that either 'Daniel took the apple' or 'Lily is a lion' but not both.
It is impossible that either 'Daniel took the apple' or 'Lily is a lion' 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.
  0.1::factB.
  0.7::factC.
  %hop1
  0.7::factX:-or(factB,factC).
  0.25::factY:-or(factB,factA).
  1.0::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Daniel took the apple' or 'Lily is a lion' but not both.