There is a better than even chance that Bernhard is a lion. It is likely that Brian is yellow. There is almost no chance that John left the milk. It is impossible that if either 'John left the milk' or 'Bernhard is a lion' but not both then Greg is gray. It is probably not the case that if 'John left the milk' or 'Brian is yellow' or both then Jeff went to the bedroom. There is almost no chance that if 'Bernhard is a lion' or 'John left the milk' or both then Lily is a swan.
It is impossible that 'Jeff went to the bedroom and Greg is gray'.
It is impossible that 'Jeff went to the bedroom and Greg is gray'.
We believe that 'Jeff went to the bedroom and Greg is gray'.

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

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

  query(conclusion).
  
'Jeff went to the bedroom and Greg is gray'.