There is a very good chance that Bill moved to the office. It is almost certain that Greg is yellow. It is certain that John got the apple. It is unlikely that if 'John got the apple' or 'Greg is yellow' or both then Mary left the football. We believe that if 'John got the apple' or 'Greg is yellow' or both then Lily is a frog. It is almost certain that if 'John got the apple and Bill moved to the office' then Bernhard is a swan.
It is impossible that 'Bill moved to the office' or 'John got the apple' or both.
It is certain that 'Bill moved to the office' or 'John got the apple' or both.
It is impossible that 'Bill moved to the office' or 'John got the apple' or 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.
  0.95::factB.
  1.0::factC.
  %hop1
  0.2::factX:-or(factC,factB).
  0.75::factY:-or(factC,factB).
  0.95::factZ:-and(factC,factA).

  %hop2
  conclusion:-or(factA,factC).

  query(conclusion).
  
'Bill moved to the office' or 'John got the apple' or both.