It is highly unlikely that Bernhard is a swan. It is impossible that John got the apple. There is a better than even chance that Daniel left the football. There is a better than even chance that if either 'Daniel left the football' or 'John got the apple' but not both then Greg is green. It is certain that if either 'Bernhard is a swan' or 'John got the apple' but not both then Brian is white. Chances are slight that if 'John got the apple and Bernhard is a swan' then Fred went to the garden.
It is impossible that 'Greg is green and Fred went to the garden'.
It is impossible that 'Greg is green and Fred went to the garden'.
It is almost certain that 'Greg is green and Fred 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.05::factA.
  0.0::factB.
  0.6::factC.
  %hop1
  0.6::factX:-xor(factC,factB).
  1.0::factY:-xor(factA,factB).
  0.1::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Greg is green and Fred went to the garden'.