There is almost no chance that Bernhard is a swan. It is unlikely that Lily is a lion. It is probably not the case that Julius is yellow. There is little chance that if either 'Lily is a lion' or 'Julius is yellow' but not both then Brian is gray. It is highly likely that if 'Bernhard is a swan' or 'Lily is a lion' or both then John dropped the apple. There is a better than even chance that if 'Julius is yellow' or 'Bernhard is a swan' or both then Jeff put down the milk.
It is almost certain that 'Jeff put down the milk' or 'Julius is yellow' or both.
It is probably not the case that 'Jeff put down the milk' or 'Julius is yellow' or both.
It is almost certain that 'Jeff put down the milk' or 'Julius is yellow' or both.

  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.02::factA.
  0.2::factB.
  0.25::factC.
  %hop1
  0.1::factX:-xor(factB,factC).
  0.9::factY:-or(factA,factB).
  0.6::factZ:-or(factC,factA).

  %hop2
  conclusion:-or(factZ,factC).

  query(conclusion).
  
'Jeff put down the milk' or 'Julius is yellow' or both.