There is a very good chance that Fred is in the office. It is certain that Sandra got the milk. It is certain that Greg is yellow. It is probable that if 'Fred is in the office' or 'Greg is yellow' or both then Mary went to the kitchen. We believe that if either 'Sandra got the milk' or 'Greg is yellow' but not both then Brian is gray. It is unlikely that if 'Fred is in the office and Sandra got the milk' then John picked up the apple.
There is almost no chance that either 'Fred is in the office' or 'Brian is gray' but not both.
There is a very good chance that either 'Fred is in the office' or 'Brian is gray' but not both.
There is almost no chance that either 'Fred is in the office' or 'Brian 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.8::factA.
  1.0::factB.
  1.0::factC.
  %hop1
  0.7::factX:-or(factA,factC).
  0.75::factY:-xor(factB,factC).
  0.2::factZ:-and(factA,factB).

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

  query(conclusion).
  
Either 'Fred is in the office' or 'Brian is gray' but not both.