It is improbable that John put down the milk. We doubt that Mary moved to the garden. It is probable that Greg is green. It is highly unlikely that if either 'Mary moved to the garden' or 'John put down the milk' but not both then Brian is a swan. It is impossible that if 'John put down the milk' or 'Greg is green' or both then Lily is white. We doubt that if 'Mary moved to the garden and John put down the milk' then Bernhard is a rhino.
It is improbable that either 'Greg is green' or 'Mary moved to the garden' but not both.
There is a better than even chance that either 'Greg is green' or 'Mary moved to the garden' but not both.
It is improbable that either 'Greg is green' or 'Mary moved 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.1::factA.
  0.2::factB.
  0.7::factC.
  %hop1
  0.05::factX:-xor(factB,factA).
  0.0::factY:-or(factA,factC).
  0.2::factZ:-and(factB,factA).

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

  query(conclusion).
  
Either 'Greg is green' or 'Mary moved to the garden' but not both.