It is unlikely that Julius is a lion. It is probable that Brian is white. It is probable that Lily is white. There is little chance that if either 'Lily is white' or 'Brian is white' but not both then John went to the garden. It is almost certain that if 'Brian is white' or 'Julius is a lion' or both then Mary dropped the milk. It is almost certain that if 'Julius is a lion' or 'Brian is white' or both then Bernhard is a swan.
It is highly likely that 'Bernhard is a swan and John went to the garden'.
There is almost no chance that 'Bernhard is a swan and John went to the garden'.
It is highly likely that 'Bernhard is a swan and John went to the garden'.

  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.2::factA.
  0.7::factB.
  0.7::factC.
  %hop1
  0.1::factX:-xor(factC,factB).
  0.95::factY:-or(factB,factA).
  0.95::factZ:-or(factA,factB).

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

  query(conclusion).
  
'Bernhard is a swan and John went to the garden'.