It is highly unlikely that Julius is yellow. It is unlikely that Brian is a frog. We believe that John moved to the office. It is unlikely that if 'Julius is yellow and John moved to the office' then Greg is a swan. It is highly unlikely that if 'John moved to the office' or 'Julius is yellow' or both then Mary went to the hallway. It is improbable that if either 'Brian is a frog' or 'John moved to the office' but not both then Bernhard is white.
It is almost certain that either 'Mary went to the hallway' or 'Bernhard is white' but not both.
It is improbable that either 'Mary went to the hallway' or 'Bernhard is white' but not both.
It is almost certain that either 'Mary went to the hallway' or 'Bernhard 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.05::factA.
  0.2::factB.
  0.75::factC.
  %hop1
  0.2::factX:-and(factA,factC).
  0.05::factY:-or(factC,factA).
  0.1::factZ:-xor(factB,factC).

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

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