There is almost no chance that Greg is a rhino. There is little chance that Daniel got the football. There is a better than even chance that John put down the apple. It is unlikely that if either 'Greg is a rhino' or 'Daniel got the football' but not both then Jeff went to the garden. It is certain that if 'Greg is a rhino and Daniel got the football' then Sandra left the milk. It is certain that if 'Greg is a rhino and John put down the apple' then Mary is in the school.
There is little chance that either 'John put down the apple' or 'Mary is in the school' but not both.
There is a better than even chance that either 'John put down the apple' or 'Mary is in the school' but not both.
There is little chance that either 'John put down the apple' or 'Mary is in the school' 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.02::factA.
  0.1::factB.
  0.6::factC.
  %hop1
  0.2::factX:-xor(factA,factB).
  1.0::factY:-and(factA,factB).
  1.0::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'John put down the apple' or 'Mary is in the school' but not both.