It is likely that Julius is green. There is almost no chance that Greg is a lion. It is improbable that Brian is gray. There is little chance that if either 'Julius is green' or 'Greg is a lion' but not both then Mary is in the bathroom. It is highly likely that if 'Greg is a lion and Julius is green' then Jeff moved to the garden. It is certain that if either 'Greg is a lion' or 'Julius is green' but not both then Bernhard is yellow.
There is a better than even chance that either 'Mary is in the bathroom' or 'Bernhard is yellow' but not both.
There is a better than even chance that either 'Mary is in the bathroom' or 'Bernhard is yellow' but not both.
It is impossible that either 'Mary is in the bathroom' 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.7::factA.
  0.02::factB.
  0.1::factC.
  %hop1
  0.1::factX:-xor(factA,factB).
  0.9::factY:-and(factB,factA).
  1.0::factZ:-xor(factB,factA).

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

  query(conclusion).
  
Either 'Mary is in the bathroom' or 'Bernhard is yellow' but not both.