We doubt that Lily is a rhino. There is almost no chance that Mary dropped the milk. It is impossible that Fred went to the garden. It is probably not the case that if either 'Mary dropped the milk' or 'Lily is a rhino' but not both then Greg is a swan. It is almost certain that if 'Mary dropped the milk and Lily is a rhino' then John discarded the apple. There is little chance that if either 'Fred went to the garden' or 'Mary dropped the milk' but not both then Bernhard is yellow.
It is unlikely that either 'Fred went to the garden' or 'Lily is a rhino' but not both.
It is unlikely that either 'Fred went to the garden' or 'Lily is a rhino' but not both.
We believe that either 'Fred went to the garden' or 'Lily is a rhino' 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.2::factA.
  0.02::factB.
  0.0::factC.
  %hop1
  0.25::factX:-xor(factB,factA).
  0.95::factY:-and(factB,factA).
  0.1::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Fred went to the garden' or 'Lily is a rhino' but not both.