Chances are about even that Lily is gray. There is a better than even chance that Mary got the apple. There is a better than even chance that John dropped the milk. Chances are slight that if 'John dropped the milk and Mary got the apple' then Jessica is a cat. It is highly likely that if 'Mary got the apple and John dropped the milk' then Brian is a rhino. It is probably not the case that if either 'John dropped the milk' or 'Lily is gray' but not both then Julius is a swan.
It is almost certain that either 'John dropped the milk' or 'Lily is gray' but not both.
Chances are about even that either 'John dropped the milk' or 'Lily is gray' but not both.
It is almost certain that either 'John 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.5::factA.
  0.6::factB.
  0.6::factC.
  %hop1
  0.1::factX:-and(factC,factB).
  0.9::factY:-and(factB,factC).
  0.25::factZ:-xor(factC,factA).

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

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