It is impossible that Sandra left the football. It is likely that Bill moved to the office. It is probable that Julius is a frog. Chances are slight that if either 'Sandra left the football' or 'Bill moved to the office' but not both then Sumit is tired. It is impossible that if 'Sandra left the football and Julius is a frog' then Lily is green. We doubt that if either 'Bill moved to the office' or 'Julius is a frog' but not both then John went to the hallway.
It is probably the case that either 'John went to the hallway' or 'Bill moved to the office' but not both.
It is probably the case that either 'John went to the hallway' or 'Bill moved to the office' but not both.
It is probably not the case that either 'John went to the hallway' or 'Bill moved to the office' 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.0::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  0.1::factX:-xor(factA,factB).
  0.0::factY:-and(factA,factC).
  0.2::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'John went to the hallway' or 'Bill moved to the office' but not both.