We believe that Julius is a frog. It is certain that Mary got the apple. It is almost certain that John moved to the office. It is likely that if 'John moved to the office' or 'Julius is a frog' or both then Fred dropped the milk. There is a very good chance that if 'John moved to the office' or 'Julius is a frog' or both then Brian is white. There is little chance that if 'Julius is a frog' or 'Mary got the apple' or both then Winona is a wolf.
It is highly likely that either 'John moved to the office' or 'Brian is white' but not both.
We doubt that either 'John moved to the office' or 'Brian is white' but not both.
It is highly likely that either 'John moved to the office' or 'Brian is white' 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.75::factA.
  1.0::factB.
  0.95::factC.
  %hop1
  0.7::factX:-or(factC,factA).
  0.8::factY:-or(factC,factA).
  0.1::factZ:-or(factA,factB).

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

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