It is highly unlikely that Lily is white. It is improbable that Bernhard is a swan. It is highly unlikely that Julius is gray. We believe that if 'Lily is white and Julius is gray' then Sandra left the apple. We believe that if either 'Julius is gray' or 'Bernhard is a swan' but not both then Emily is a sheep. It is impossible that if either 'Julius is gray' or 'Bernhard is a swan' but not both then Brian is green.
There is a better than even chance that either 'Lily is white' or 'Bernhard is a swan' but not both.
There is little chance that either 'Lily is white' or 'Bernhard is a swan' but not both.
There is a better than even chance that either 'Lily is white' or 'Bernhard is a swan' 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.05::factA.
  0.1::factB.
  0.05::factC.
  %hop1
  0.75::factX:-and(factA,factC).
  0.75::factY:-xor(factC,factB).
  0.0::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Lily is white' or 'Bernhard is a swan' but not both.