There is almost no chance that Julius is white. There is a better than even chance that Brian is yellow. There is a better than even chance that Greg is a swan. We doubt that if 'Julius is white and Brian is yellow' then Emily is a mouse. It is probably the case that if either 'Brian is yellow' or 'Greg is a swan' but not both then Mary got the apple. Chances are about even that if 'Julius is white' or 'Greg is a swan' or both then John went to the garden.
We believe that either 'Julius is white' or 'Mary got the apple' but not both.
It is probably not the case that either 'Julius is white' or 'Mary got the apple' but not both.
We believe that either 'Julius is white' or 'Mary got the apple' 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.02::factA.
  0.6::factB.
  0.6::factC.
  %hop1
  0.2::factX:-and(factA,factB).
  0.7::factY:-xor(factB,factC).
  0.5::factZ:-or(factA,factC).

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

  query(conclusion).
  
Either 'Julius is white' or 'Mary got the apple' but not both.