It is likely that Bernhard is a lion. It is highly likely that Greg is white. There is little chance that John went to the hallway. We doubt that if either 'Greg is white' or 'John went to the hallway' but not both then Mary picked up the milk. Chances are about even that if 'Bernhard is a lion and Greg is white' then Sandra left the milk. It is probable that if either 'Greg is white' or 'John went to the hallway' but not both then Brian is a frog.
It is certain that either 'John went to the hallway' or 'Sandra left the milk' but not both.
It is probably not the case that either 'John went to the hallway' or 'Sandra left the milk' but not both.
It is certain that either 'John went to the hallway' or 'Sandra left the milk' 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.7::factA.
  0.9::factB.
  0.1::factC.
  %hop1
  0.2::factX:-xor(factB,factC).
  0.5::factY:-and(factA,factB).
  0.7::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'John went to the hallway' or 'Sandra left the milk' but not both.