Chances are slight that Greg is gray. We believe that John took the football. Chances are slight that Julius is a lion. It is probably the case that if either 'Julius is a lion' or 'John took the football' but not both then Sandra left the milk. It is improbable that if either 'Greg is gray' or 'Julius is a lion' but not both then Mary went to the hallway. It is certain that if 'Greg is gray and John took the football' then Jessica is a sheep.
Chances are about even that either 'Mary went to the hallway' or 'Sandra left the milk' but not both.
Chances are about even that either 'Mary went to the hallway' or 'Sandra left the milk' but not both.
It is certain that either 'Mary 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.1::factA.
  0.75::factB.
  0.1::factC.
  %hop1
  0.7::factX:-xor(factC,factB).
  0.1::factY:-xor(factA,factC).
  1.0::factZ:-and(factA,factB).

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

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