It is almost certain that Mary went to the hallway. There is a very good chance that Julius is yellow. There is a very good chance that Emily is a wolf. It is almost certain that if 'Mary went to the hallway and Julius is yellow' then Winona is a sheep. There is almost no chance that if either 'Emily is a wolf' or 'Mary went to the hallway' but not both then Bernhard is a frog. It is probable that if 'Julius is yellow' or 'Mary went to the hallway' or both then Sandra put down the milk.
It is probably not the case that either 'Sandra put down the milk' or 'Julius is yellow' but not both.
It is probably not the case that either 'Sandra put down the milk' or 'Julius is yellow' but not both.
It is almost certain that either 'Sandra put down the milk' or 'Julius is yellow' 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.95::factA.
  0.8::factB.
  0.8::factC.
  %hop1
  0.95::factX:-and(factA,factB).
  0.02::factY:-xor(factC,factA).
  0.7::factZ:-or(factB,factA).

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

  query(conclusion).
  
Either 'Sandra put down the milk' or 'Julius is yellow' but not both.