We believe that Jeff dropped the apple. There is a better than even chance that Bill went to the office. It is almost certain that Greg is a swan. It is certain that if 'Bill went to the office' or 'Greg is a swan' or both then Bernhard is yellow. It is highly likely that if 'Greg is a swan' or 'Bill went to the office' or both then Sumit is hungry. We believe that if either 'Bill went to the office' or 'Greg is a swan' but not both then John grabbed the milk.
Chances are about even that either 'Bill went to the office' or 'Bernhard is yellow' but not both.
Chances are about even that either 'Bill went to the office' or 'Bernhard is yellow' but not both.
It is certain that either 'Bill went to the office' or 'Bernhard is yellow' 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.
  0.6::factB.
  0.95::factC.
  %hop1
  1.0::factX:-or(factB,factC).
  0.9::factY:-or(factC,factB).
  0.75::factZ:-xor(factB,factC).

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

  query(conclusion).
  
Either 'Bill went to the office' or 'Bernhard is yellow' but not both.