It is likely that Greg is a frog. It is impossible that Bernhard is yellow. It is unlikely that John left the apple. Chances are slight that if 'Bernhard is yellow' or 'Greg is a frog' or both then Fred moved to the office. It is probable that if 'Greg is a frog' or 'John left the apple' or both then Mary went to the kitchen. There is little chance that if 'John left the apple and Bernhard is yellow' then Julius is gray.
It is impossible that 'Julius is gray' or 'Bernhard is yellow' or both.
It is impossible that 'Julius is gray' or 'Bernhard is yellow' or both.
There is a very good chance that 'Julius is gray' or 'Bernhard is yellow' 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.7::factA.
  0.0::factB.
  0.2::factC.
  %hop1
  0.1::factX:-or(factB,factA).
  0.7::factY:-or(factA,factC).
  0.1::factZ:-and(factC,factB).

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

  query(conclusion).
  
'Julius is gray' or 'Bernhard is yellow' or both.