It is impossible that Bernhard is gray. We doubt that Greg is white. It is almost certain that Jeff went to the hallway. We believe that if 'Greg is white' or 'Bernhard is gray' or both then Daniel put down the milk. Chances are slight that if 'Jeff went to the hallway and Greg is white' then John dropped the milk. It is likely that if either 'Bernhard is gray' or 'Jeff went to the hallway' but not both then Lily is green.
It is impossible that 'Bernhard is gray and Greg is white'.
It is impossible that 'Bernhard is gray and Greg is white'.
We believe that 'Bernhard is gray and Greg 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.0::factA.
  0.2::factB.
  0.95::factC.
  %hop1
  0.75::factX:-or(factB,factA).
  0.1::factY:-and(factC,factB).
  0.7::factZ:-xor(factA,factC).

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

  query(conclusion).
  
'Bernhard is gray and Greg is white'.