It is unlikely that Jeff moved to the office. We doubt that Bernhard is a swan. There is little chance that Lily is a frog. It is impossible that if 'Bernhard is a swan and Jeff moved to the office' then Mary went to the garden. Chances are about even that if 'Jeff moved to the office' or 'Lily is a frog' or both then Julius is white. Chances are slight that if 'Lily is a frog and Bernhard is a swan' then Brian is yellow.
Chances are slight that either 'Mary went to the garden' or 'Julius is white' but not both.
Chances are slight that either 'Mary went to the garden' or 'Julius is white' but not both.
We believe that either 'Mary went to the garden' or 'Julius is white' 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.2::factB.
  0.1::factC.
  %hop1
  0.0::factX:-and(factB,factA).
  0.5::factY:-or(factA,factC).
  0.1::factZ:-and(factC,factB).

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

  query(conclusion).
  
Either 'Mary went to the garden' or 'Julius is white' but not both.