It is probable that Bill went to the garden. It is likely that Mary moved to the office. It is almost certain that Bernhard is green. It is almost certain that if 'Mary moved to the office and Bernhard is green' then Lily is a swan. It is certain that if 'Bernhard is green' or 'Bill went to the garden' or both then Greg is white. It is probably not the case that if 'Bernhard is green and Bill went to the garden' then Julius is a frog.
There is almost no chance that 'Bernhard is green and Lily is a swan'.
There is a better than even chance that 'Bernhard is green and Lily is a swan'.
There is almost no chance that 'Bernhard is green and Lily is a swan'.

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

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

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