It is unlikely that Lily is white. We believe that Mary discarded the milk. It is impossible that John went to the garden. It is almost certain that if 'Lily is white' or 'Mary discarded the milk' or both then Sandra dropped the milk. It is probably not the case that if either 'Lily is white' or 'John went to the garden' but not both then Brian is a rhino. It is likely that if 'Lily is white and John went to the garden' then Bernhard is a swan.
It is impossible that 'Bernhard is a swan and Lily is white'.
It is impossible that 'Bernhard is a swan and Lily is white'.
It is probably the case that 'Bernhard is a swan and Lily 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.2::factA.
  0.75::factB.
  0.0::factC.
  %hop1
  0.95::factX:-or(factA,factB).
  0.25::factY:-xor(factA,factC).
  0.7::factZ:-and(factA,factC).

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

  query(conclusion).
  
'Bernhard is a swan and Lily is white'.