It is probably not the case that John went to the office. It is highly likely that Sandra took the milk. It is almost certain that Lily is a rhino. It is probably not the case that if either 'John went to the office' or 'Lily is a rhino' but not both then Mary moved to the garden. It is impossible that if either 'John went to the office' or 'Sandra took the milk' but not both then Jason is thirsty. Chances are slight that if either 'Lily is a rhino' or 'John went to the office' but not both then Brian is yellow.
It is probably not the case that either 'John went to the office' or 'Jason is thirsty' but not both.
It is probably not the case that either 'John went to the office' or 'Jason is thirsty' but not both.
It is probable that either 'John went to the office' or 'Jason is thirsty' 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.25::factA.
  0.9::factB.
  0.95::factC.
  %hop1
  0.25::factX:-xor(factA,factC).
  0.0::factY:-xor(factA,factB).
  0.1::factZ:-xor(factC,factA).

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

  query(conclusion).
  
Either 'John went to the office' or 'Jason is thirsty' but not both.