There is almost no chance that Mary went to the hallway. It is probably the case that Fred dropped the milk. There is a very good chance that Julius is a swan. Chances are slight that if 'Fred dropped the milk and Mary went to the hallway' then Brian is yellow. There is little chance that if either 'Mary went to the hallway' or 'Julius is a swan' but not both then Daniel grabbed the apple. We doubt that if 'Julius is a swan' or 'Fred dropped the milk' or both then Bernhard is gray.
It is almost certain that either 'Bernhard is gray' or 'Mary went to the hallway' but not both.
We doubt that either 'Bernhard is gray' or 'Mary went to the hallway' but not both.
It is almost certain that either 'Bernhard is gray' or 'Mary went to the hallway' 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.7::factB.
  0.8::factC.
  %hop1
  0.1::factX:-and(factB,factA).
  0.1::factY:-xor(factA,factC).
  0.2::factZ:-or(factC,factB).

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

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