It is probably not the case that John discarded the milk. There is almost no chance that Brian is green. It is highly unlikely that Greg is gray. It is improbable that if either 'John discarded the milk' or 'Brian is green' but not both then Sumit is tired. There is little chance that if either 'Greg is gray' or 'John discarded the milk' but not both then Julius is a swan. It is probably the case that if 'John discarded the milk' or 'Greg is gray' or both then Lily is yellow.
There is little chance that either 'Lily is yellow' or 'John discarded the milk' but not both.
There is little chance that either 'Lily is yellow' or 'John discarded the milk' but not both.
It is probable that either 'Lily is yellow' or 'John discarded the milk' 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.25::factA.
  0.02::factB.
  0.05::factC.
  %hop1
  0.1::factX:-xor(factA,factB).
  0.1::factY:-xor(factC,factA).
  0.7::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Lily is yellow' or 'John discarded the milk' but not both.