It is certain that John went to the garden. We believe that Greg is a rhino. We doubt that Mary got the apple. There is a better than even chance that if either 'Greg is a rhino' or 'Mary got the apple' but not both then Brian is green. It is likely that if either 'John went to the garden' or 'Mary got the apple' but not both then Daniel took the milk. It is likely that if 'Greg is a rhino' or 'Mary got the apple' or both then Bernhard is a swan.
It is highly unlikely that either 'Daniel took the milk' or 'Greg is a rhino' but not both.
Chances are about even that either 'Daniel took the milk' or 'Greg is a rhino' but not both.
It is highly unlikely that either 'Daniel took the milk' or 'Greg 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
  1.0::factA.
  0.75::factB.
  0.2::factC.
  %hop1
  0.6::factX:-xor(factB,factC).
  0.7::factY:-xor(factA,factC).
  0.7::factZ:-or(factB,factC).

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

  query(conclusion).
  
Either 'Daniel took the milk' or 'Greg is a rhino' but not both.