It is unlikely that Lily is gray. It is probably not the case that Greg is green. We believe that Bernhard is yellow. It is probably not the case that if 'Lily is gray and Bernhard is yellow' then John moved to the office. It is probable that if 'Lily is gray' or 'Bernhard is yellow' or both then Jeff went to the bedroom. There is almost no chance that if 'Bernhard is yellow' or 'Lily is gray' or both then Mary got the apple.
It is certain that 'Greg is green and Bernhard is yellow'.
It is unlikely that 'Greg is green and Bernhard is yellow'.
It is certain that 'Greg is green and Bernhard is yellow'.

  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.2::factA.
  0.25::factB.
  0.75::factC.
  %hop1
  0.25::factX:-and(factA,factC).
  0.7::factY:-or(factA,factC).
  0.02::factZ:-or(factC,factA).

  %hop2
  conclusion:-and(factB,factC).

  query(conclusion).
  
'Greg is green and Bernhard is yellow'.