It is almost certain that Mary dropped the milk. There is a better than even chance that Sandra grabbed the apple. It is highly likely that Bill went to the garden. It is certain that if 'Bill went to the garden and Sandra grabbed the apple' then Yann is tired. It is unlikely that if 'Mary dropped the milk' or 'Sandra grabbed the apple' or both then Greg is yellow. There is little chance that if 'Mary dropped the milk' or 'Sandra grabbed the apple' or both then Julius is a swan.
It is unlikely that either 'Greg is yellow' or 'Bill went to the garden' but not both.
We believe that either 'Greg is yellow' or 'Bill went to the garden' but not both.
It is unlikely that either 'Greg is yellow' or 'Bill went to the garden' 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.95::factA.
  0.6::factB.
  0.9::factC.
  %hop1
  1.0::factX:-and(factC,factB).
  0.2::factY:-or(factA,factB).
  0.1::factZ:-or(factA,factB).

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

  query(conclusion).
  
Either 'Greg is yellow' or 'Bill went to the garden' but not both.