It is highly unlikely that John moved to the office. It is almost certain that Lily is green. It is improbable that Mary got the football. It is probable that if either 'Mary got the football' or 'John moved to the office' but not both then Bernhard is white. It is probably not the case that if 'John moved to the office and Mary got the football' then Sandra dropped the milk. There is almost no chance that if 'Lily is green and Mary got the football' then Julius is gray.
Chances are about even that either 'John moved to the office' or 'Julius is gray' but not both.
It is highly unlikely that either 'John moved to the office' or 'Julius is gray' but not both.
Chances are about even that either 'John moved to the office' or 'Julius is gray' 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.05::factA.
  0.95::factB.
  0.1::factC.
  %hop1
  0.7::factX:-xor(factC,factA).
  0.25::factY:-and(factA,factC).
  0.02::factZ:-and(factB,factC).

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

  query(conclusion).
  
Either 'John moved to the office' or 'Julius is gray' but not both.