There is almost no chance that Lily is gray. It is unlikely that Sandra dropped the milk. We doubt that Mary got the football. There is almost no chance that if 'Lily is gray and Sandra dropped the milk' then Julius is a swan. It is almost certain that if 'Lily is gray and Mary got the football' then Jeff left the apple. It is unlikely that if either 'Sandra dropped the milk' or 'Lily is gray' but not both then Bill went to the office.
It is certain that either 'Sandra dropped the milk' or 'Lily is gray' but not both.
It is unlikely that either 'Sandra dropped the milk' or 'Lily is gray' but not both.
It is certain that either 'Sandra dropped the milk' or 'Lily is gray' 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.2::factB.
  0.2::factC.
  %hop1
  0.02::factX:-and(factA,factB).
  0.95::factY:-and(factA,factC).
  0.2::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'Sandra dropped the milk' or 'Lily is gray' but not both.