There is almost no chance that Julius is white. We believe that Mary discarded the milk. Chances are about even that Greg is a lion. It is probable that if either 'Greg is a lion' or 'Julius is white' but not both then Lily is a lion. It is probably the case that if either 'Julius is white' or 'Greg is a lion' but not both then Sandra left the milk. It is highly unlikely that if either 'Julius is white' or 'Mary discarded the milk' but not both then John went to the hallway.
We doubt that either 'Greg is a lion' or 'Lily is a lion' but not both.
We doubt that either 'Greg is a lion' or 'Lily is a lion' but not both.
It is certain that either 'Greg is a lion' or 'Lily is a lion' 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.75::factB.
  0.5::factC.
  %hop1
  0.7::factX:-xor(factC,factA).
  0.7::factY:-xor(factA,factC).
  0.05::factZ:-xor(factA,factB).

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

  query(conclusion).
  
Either 'Greg is a lion' or 'Lily is a lion' but not both.