It is highly unlikely that Fred moved to the office. It is certain that John went to the hallway. There is almost no chance that Brian is green. It is highly likely that if 'Fred moved to the office' or 'Brian is green' or both then Mary dropped the apple. It is impossible that if 'Brian is green' or 'Fred moved to the office' or both then Bernhard is a frog. It is highly unlikely that if either 'Brian is green' or 'Fred moved to the office' but not both then Lily is white.
It is impossible that 'Mary dropped the apple and Lily is white'.
It is impossible that 'Mary dropped the apple and Lily is white'.
There is a better than even chance that 'Mary dropped the apple and Lily is white'.

  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.05::factA.
  1.0::factB.
  0.02::factC.
  %hop1
  0.9::factX:-or(factA,factC).
  0.0::factY:-or(factC,factA).
  0.05::factZ:-xor(factC,factA).

  %hop2
  conclusion:-and(factX,factZ).

  query(conclusion).
  
'Mary dropped the apple and Lily is white'.