There is a better than even chance that Winona is a mouse. It is impossible that Bernhard is a frog. There is almost no chance that Jason is thirsty. It is unlikely that if either 'Bernhard is a frog' or 'Winona is a mouse' but not both then Julius is a lion. There is little chance that if either 'Winona is a mouse' or 'Bernhard is a frog' but not both then Greg is yellow. It is unlikely that if 'Jason is thirsty' or 'Winona is a mouse' or both then Mary went to the garden.
It is certain that either 'Greg is yellow' or 'Jason is thirsty' but not both.
There is little chance that either 'Greg is yellow' or 'Jason is thirsty' but not both.
It is certain that either 'Greg is yellow' or 'Jason 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.6::factA.
  0.0::factB.
  0.02::factC.
  %hop1
  0.2::factX:-xor(factB,factA).
  0.1::factY:-xor(factA,factB).
  0.2::factZ:-or(factC,factA).

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

  query(conclusion).
  
Either 'Greg is yellow' or 'Jason is thirsty' but not both.