We doubt that Greg is a frog. There is almost no chance that Bernhard is yellow. It is almost certain that Brian is a swan. It is almost certain that if 'Bernhard is yellow and Greg is a frog' then Sumit is thirsty. We believe that if 'Greg is a frog' or 'Bernhard is yellow' or both then Julius is a lion. Chances are about even that if either 'Brian is a swan' or 'Bernhard is yellow' but not both then Lily is white.
Chances are about even that either 'Lily is white' or 'Sumit is thirsty' but not both.
Chances are about even that either 'Lily is white' or 'Sumit is thirsty' but not both.
It is almost certain that either 'Lily is white' or 'Sumit is thirsty' 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.2::factA.
  0.02::factB.
  0.95::factC.
  %hop1
  0.95::factX:-and(factB,factA).
  0.75::factY:-or(factA,factB).
  0.5::factZ:-xor(factC,factB).

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

  query(conclusion).
  
Either 'Lily is white' or 'Sumit is thirsty' but not both.