It is certain that Bernhard is green. There is almost no chance that John went to the hallway. It is probably not the case that Greg is a swan. Chances are slight that if 'Bernhard is green' or 'Greg is a swan' or both then Bill moved to the office. It is highly unlikely that if 'Greg is a swan and John went to the hallway' then Brian is yellow. Chances are slight that if either 'Bernhard is green' or 'John went to the hallway' but not both then Lily is a lion.
It is almost certain that 'Bernhard is green and Bill moved to the office'.
There is little chance that 'Bernhard is green and Bill moved to the office'.
It is almost certain that 'Bernhard is green and Bill moved to the office'.

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

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

  query(conclusion).
  
'Bernhard is green and Bill moved to the office'.