It is almost certain that Bernhard is green. There is almost no chance that Greg is a swan. Chances are about even that Lily is yellow. It is likely that if either 'Bernhard is green' or 'Lily is yellow' but not both then Sandra dropped the milk. There is a very good chance that if 'Greg is a swan' or 'Bernhard is green' or both then John got the apple. Chances are about even that if 'Greg is a swan and Lily is yellow' then Mary moved to the garden.
Chances are about even that either 'Bernhard is green' or 'Lily is yellow' but not both.
Chances are about even that either 'Bernhard is green' or 'Lily is yellow' but not both.
It is almost certain that either 'Bernhard is green' or 'Lily is yellow' 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.95::factA.
  0.02::factB.
  0.5::factC.
  %hop1
  0.7::factX:-xor(factA,factC).
  0.8::factY:-or(factB,factA).
  0.5::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'Bernhard is green' or 'Lily is yellow' but not both.