Chances are about even that John got the apple. It is probably the case that Bernhard is yellow. It is unlikely that Lily is a lion. There is little chance that if either 'Lily is a lion' or 'John got the apple' but not both then Greg is gray. It is certain that if either 'John got the apple' or 'Bernhard is yellow' but not both then Mary left the football. It is probable that if 'John got the apple and Lily is a lion' then Brian is a swan.
It is probable that either 'Brian is a swan' or 'Bernhard is yellow' but not both.
It is probable that either 'Brian is a swan' or 'Bernhard is yellow' but not both.
There is almost no chance that either 'Brian is a swan' or 'Bernhard 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.5::factA.
  0.7::factB.
  0.2::factC.
  %hop1
  0.1::factX:-xor(factC,factA).
  1.0::factY:-xor(factA,factB).
  0.7::factZ:-and(factA,factC).

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

  query(conclusion).
  
Either 'Brian is a swan' or 'Bernhard is yellow' but not both.