It is impossible that Julius is a swan. It is highly unlikely that Mary moved to the garden. It is likely that Bill left the football. Chances are slight that if 'Bill left the football and Mary moved to the garden' then Lily is a lion. We doubt that if 'Mary moved to the garden and Bill left the football' then Greg is a rhino. There is a better than even chance that if 'Mary moved to the garden and Julius is a swan' then Winona is a mouse.
It is impossible that 'Greg is a rhino and Julius is a swan'.
It is impossible that 'Greg is a rhino and Julius is a swan'.
It is almost certain that 'Greg is a rhino and Julius 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.0::factA.
  0.05::factB.
  0.7::factC.
  %hop1
  0.1::factX:-and(factC,factB).
  0.2::factY:-and(factB,factC).
  0.6::factZ:-and(factB,factA).

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

  query(conclusion).
  
'Greg is a rhino and Julius is a swan'.