It is highly likely that Greg is a rhino. It is probably the case that Sandra dropped the milk. There is little chance that Winona is a sheep. We doubt that if either 'Greg is a rhino' or 'Sandra dropped the milk' but not both then Mary went to the garden. It is highly unlikely that if either 'Winona is a sheep' or 'Greg is a rhino' but not both then Brian is white. Chances are slight that if 'Greg is a rhino and Sandra dropped the milk' then John picked up the milk.
It is improbable that either 'Mary went to the garden' or 'Brian is white' but not both.
It is improbable that either 'Mary went to the garden' or 'Brian is white' but not both.
It is highly likely that either 'Mary went to the garden' or 'Brian is white' 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.9::factA.
  0.7::factB.
  0.1::factC.
  %hop1
  0.2::factX:-xor(factA,factB).
  0.05::factY:-xor(factC,factA).
  0.1::factZ:-and(factA,factB).

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

  query(conclusion).
  
Either 'Mary went to the garden' or 'Brian is white' but not both.