Chances are slight that Jessica is a mouse. It is highly likely that Bernhard is a frog. It is impossible that John moved to the office. It is probably the case that if 'Jessica is a mouse and Bernhard is a frog' then Mary went to the kitchen. It is unlikely that if 'Jessica is a mouse' or 'John moved to the office' or both then Brian is gray. It is impossible that if 'Bernhard is a frog' or 'Jessica is a mouse' or both then Sandra left the football.
It is certain that 'Sandra left the football' or 'John moved to the office' or both.
It is impossible that 'Sandra left the football' or 'John moved to the office' or both.
It is certain that 'Sandra left the football' or 'John moved to the office' 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.1::factA.
  0.9::factB.
  0.0::factC.
  %hop1
  0.7::factX:-and(factA,factB).
  0.2::factY:-or(factA,factC).
  0.0::factZ:-or(factB,factA).

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

  query(conclusion).
  
'Sandra left the football' or 'John moved to the office' or both.