It is highly likely that Lily is green. Chances are about even that Julius is gray. There is a very good chance that Bernhard is green. It is probably the case that if 'Lily is green' or 'Julius is gray' or both then John moved to the garden. It is highly likely that if 'Bernhard is green and Lily is green' then Greg is a lion. We doubt that if 'Julius is gray' or 'Lily is green' or both then Mary grabbed the milk.
There is almost no chance that either 'John moved to the garden' or 'Julius is gray' but not both.
Chances are about even that either 'John moved to the garden' or 'Julius is gray' but not both.
There is almost no chance that either 'John moved to the garden' or 'Julius is gray' 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.9::factA.
  0.5::factB.
  0.8::factC.
  %hop1
  0.7::factX:-or(factA,factB).
  0.9::factY:-and(factC,factA).
  0.2::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'John moved to the garden' or 'Julius is gray' but not both.