There is a better than even chance that Lily is a swan. There is little chance that Daniel grabbed the milk. It is likely that Mary is in the bathroom. It is certain that if 'Lily is a swan and Daniel grabbed the milk' then John took the football. It is probable that if either 'Lily is a swan' or 'Daniel grabbed the milk' but not both then Brian is a rhino. It is almost certain that if 'Daniel grabbed the milk' or 'Mary is in the bathroom' or both then Winona is a mouse.
It is probably not the case that either 'Mary is in the bathroom' or 'John took the football' but not both.
It is likely that either 'Mary is in the bathroom' or 'John took the football' but not both.
It is probably not the case that either 'Mary is in the bathroom' or 'John took the football' 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.6::factA.
  0.1::factB.
  0.7::factC.
  %hop1
  1.0::factX:-and(factA,factB).
  0.7::factY:-xor(factA,factB).
  0.95::factZ:-or(factB,factC).

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

  query(conclusion).
  
Either 'Mary is in the bathroom' or 'John took the football' but not both.